이기적 최신 기출문제 05회 오답노트
1과목
1
공개 소프트웨어 중의 하나를 선택해서 상업용 제품을 만들려고 한다. 수정된 소스코드에 대한 공개나 어떠한 표시도 하지 않으려고 할 때의 라이선스
BSD
- BSD 라이선스는 수정된 소스코드에 대한 공개가 의무사항이 아님
[오답]
공개 소프트웨어의 소스코드를 수정하여 적용하였다면 관련 소스코드 공개가 반드시 필요
GPL
소스코드를 수정하였다면 이에 대한 공개가 필요하나 그 외의 소스코드는 공개할 필요 없음
MPL
해당 라이선스의 공개 소프트웨어와 동적 링크하여 사용한다면 소스코드 공개가 필요하지 않다. 하지만 정적 링크하여 사용한다면 오브젝트 파일의 제공이 필요하므로 상용 프로그램에서는 적당하지 않음
LGPL
2
나머지 셋과 다른 종류에 속하는 리눅스 배포판은? (Ubuntu, Linux Mint, Elementary OS, Vector Linux)
Vector Linux
- Vector Linux는 슬랙 웨어 계열의 리눅스
- Ubuntu, Linux Mint, Elementary OS는 데비안 계열의 리눅스
3
리눅스 기반 운영체제로 틀린 것 (Tizen, webOS, QNX, GENIVI)
QNX
- QNX : 첫 상용 마이크로 커널 운영체제이며, 자동차 산업에서 주로 사용하고 있는 유닉스 기반 실시간 상업용 운영체제
4
다음에 해당하는 클러스터링 기법
고가용성 클러스터링
- 시스템의 안전성과 지속적인 서비스를 보장하기 위해 이중화된 클러스터
[오답]
고성능 계산 능력을 제공하며 주로 과학 계산용으로 활용
고계산용 클러스터
로드 밸런서를 통해 대규모의 트래픽을 여러 대의 서버로 분산
부하분산 클러스터
저렴한 PC를 이더넷과 같은 LAN으로 연결하여 클러스터 구성 후 병렬화한 프로그램을 실행하여 슈퍼 컴퓨터를 구현
베어울프 클러스터
5
유닉스를 개발한 인물
켄 톰슨
- 유닉스는 1970년대 초반 벨 연구소의 켄 톰슨, 데니스 리치 등이 처음 개발함
[오답]
핀란드 헬싱키에서 태어난 소프트웨어 개발자이자 리눅스 커널과 깃을 개발
리누스 토발즈
C언어를 기반으로 강력한 셸 프로그래밍 기능을 가진 C셸을 개발
빌 조이
자유 소프트웨어 운동의 중심 인물이며 GNU 프로젝트와 자유 소프트웨어 재단의 설립자
리처드 스툴먼
6
grub.conf
default=1
timeout=100
위의 설정은 무엇인가
100초동안 대기한 후에 메뉴 선택이 없으면 두 번째 항목의 운영체제로 부팅함
- default : 사용자가 아무런 선택을 하지 않을 때 기본으로 선택되는 운영체제
- 0번은 grub.conf 상 첫 번째 운영체제, 1번은 두 번째 운영체제
- timeout : 사용자가 운영체제를 선택할 때까지 기다리기 위한 대기시간(초 단위)
- default : 사용자가 아무런 선택을 하지 않을 때 기본으로 선택되는 운영체제
7
[lin@www ~]$ ls
joon.txt
[lin@www ~]$ mv joon.txt lin.txt || echo "OK"
위의 설정 해석
joon.txt는 lin.txt로 이름이 변경되고, 화면에는 아무것도 출력되지 않는다.
지정한 파일이나 경로를 이동하거나 이름을 변경하는 명령어
mv
앞 명령어가 성공하면 그 결과를 출력하고, 실패하면 그 다음 명령어를 실행
** ** - 즉, 이전 명령어(
mv
)가 실패하면 다음 명령어(echo "OK"
)를 실행.
- 즉, 이전 명령어(
8
X 클라이언트 프로그램을 X 서버로 전송하기 전에 변경해야 할 환경 변수
DISPLAY
- X 클라이언트 프로그램이 윈도우를 표시할 X 서버의 주소를 설정하기 위한 환경 변수
9
6개의 하드디스크로 RAID를 구성하려고 한다. 1개는 여분 디스크로 구성하고, 나머지 디스크로 RAID-5를 구성했을 경우 실제 사용 가능한 디스크의 비율
66.7%
- RAID-5 개요
- RAID-5는 패리티(Parity) 정보를 분산 저장하여, 디스크 1개가 고장 나도 데이터 복구가 가능하다.
- 총 N개의 디스크 중 1개는 패리티 저장용으로 사용되므로, 사용 가능한 디스크 개수는
N-1
개가 된다.
- 구성 조건
- 총 6개의 하드디스크 사용.
- 1개는 여분(Spare) 디스크로 설정.
- 나머지 5개 중 1개는 패리티 디스크로 사용.
- 따라서 실제 데이터 저장에 사용되는 디스크 개수는 4개.
- 실제 사용 가능한 디스크 비율 계산
( 실제 데이터 저장용 디스크 개수 / 총 디스크 개수 ) x 100
- RAID-5 개요
10
번호값이 가장 큰 시그널
SIGTSTP
시그널 번호 시그널 이름 설명 1 SIGHUP - 터미널의 접속 연결이 끊어질 때 보내는 시그널
- 로그아웃 혹은 모뎀 접속을 끊는다.2 SIGINT Ctrl + C
를 입력하면 발생하며, 프로세스를 종료한다.3 SIGQUIT Ctrl + Q
를 입력하면 발생하며, 코어 덤프와 함께 프로세스를 종료한다.9 SIGKILL 프로세스를 즉시 종료시킨다. 15 SIGTERM 소프트웨어 종료 시그널로 트래킹이 가능하다. 18 SIGCONT SIGSTOP, SIGTSTP에 의해 정지된 프로세스를 다시 실행한다. 19 SIGSTOP 정지 시그널로 프로세스를 무조건 정지한다. 20 SIGTSTP - Ctrl + Z
를 입하면 발생하며, 프로세스의 실행을 정지시킨 후 다시 실행하기 위해 대기한다.
- 트래킹이 가능하다.
11
보통 부팅 시에 실행되어 해당 프로세스가 메모리에 계속 상주하면서 클라이언트의 요청을 처리하는 방식이다. 웹, 메일 등과 같이 빈번한 요청이 들어오는 서비스인 경우 이 방식으로 동작
standalone
[오답]
프로세스 실행 방식 중 하나로 fork()를 통해 부모 프로세스를 복제한 후 자식 프로세스가 생성되고, exec()를 통해 자식 프로세스의 프로그램으로 교체됨
exec
사용자 요구에 따라 필요한 서비스를 실행하고, 요청을 완료하면 서비스를 종료하여 시스템 자원을 효율적으로 사용한다.
inetd
- standalone 방식과 비교하면 사용자 요청에 대한 처리 시간이 느리지만, 다양한 서비스를 제한된 시스템 자원으로 운영하기에 효율적이다.
- 리눅스 커널 2.4 버전 이후 최신 리눅스 배포판은 inetd를 확장한 xinetd를 사용한다.
사용자의 요청이 있을 경우 관련된 서비스를 시작하는 온디맨드(on-demand) 기능을 제공
systemd
12
포어그라운드 프로세스를 백그라운드 프로세스로 전환할 때 사용하는 키 조합
Ctrl + Z
Ctrl + C
SIGINT 시그널 발생하며 프로세스를 종료
Ctrl + D
EOF(End Of File)를 의미
Ctrl + ₩
Ctrl + Q와 동일하다. SIGQUIT 시그널이 발생하고, 코어 덤프와 함께 프로세스를 종료한다.
13
장치 파일명의 종류가 나머지 셋과 다른 것 (보기: IDE 디스크, SCSI 디스크, S-ATA 디스크, SSD(Solid State Drive)
IDE 디스크
- IDE, ATA는
/dev/hdX
파일명을 갖는다. - S-ATA, USB, SSD, SCSI는
/dev/sdX
파일명을 갖는다.
- IDE, ATA는
14
런 레벨 5로 부팅할 경우에 사용자 이름과 암호를 요청하고 유효한 값이 입력되면 세션을 시작해주는 역할을 수행
디스플레이 매니저
- 로그인 매니저라고도 한다.
[오답]
윈도 매니저 뿐만 아니라 계정 관리, 디바이스 관리, 시작 프로그램 관리, 네트워크 관리, 문서 관리 등 데스크톱 구성을 위한 모든 애플리케이션을 포함한 패키지 형태를 말함
데스크톱 환경
윈도 생성 위치, 윈도의 이동/크기 변경, 윈도의 외관(look and feel) 등 윈도 그래픽 요소를 관리하는 매니저 프로그램
윈도 매니저
X 서버와 X 클라이언트 간의 통신 규약
X 프로토콜
15
바로 직전에 수행한 명령을 재실행할 때 사용하는 명령
!!
[오답]
히스토리 목록의 첫 번째를 실행
!1
- !0는 오류 발생
이전 히스토리 3개만을 보여줄 때 사용하는 명령
history 3
- history -1은 오류 발생
16
C 클래스에 속하는 하나의 네트워크 주소 대역을 할당받았다. 이 주소 대역을 2개의 네트워크로 나누면 총 사용 가능한 전체 호스트의 개수는 252개가 된다. 이에 해당하는 서브넷마스크 값의 네트워크 접두어는?
/25
- 기존 C 클래스 기본 서브넷 마스크:
255.255.255.0 (/24)
- 호스트 부분에서 1비트를 네트워크 비트로 전환하여 2개의 서브넷 생성(서브넷 개수는 네트워크 비트가 추가되는 만큼 2의 제곱으로 증가, 즉 2^1 = 2개)
- 새로운 서브넷 마스크:
255.255.255.128 (/25)
- 네트워크 비트: 25비트
- 호스트 비트: 7비트 (2⁷ - 2 = 126)
- 서브넷 개수: 2개
- 기존 C 클래스 기본 서브넷 마스크:
17
netstat의 State 결과값
3 Way-Handshaking이 완료된 후 서버와 클라이언트가 서로 연결된 상태
ESTABLISHED
서버에서 클라이언트로 들어오는 패킷을 위해 소켓을 열고 기다리는 상태
LISTEN 상태
로컬 시스템의 클라이언트 애플리케이션이 원격 호스트에 연결을 요청한 상태
SYN_SENT 상태
원격 호스트가 종료되고 소켓도 닫힌 상태에서 마지막 ACK 패킷을 기다리는 상태
TIME_WAIT 상태
18
리눅스에서 지원하는 네트워크 하드웨어 장치명
경량화된 서버 가상화 기술인 Docker를 사용할 경우 설정되는 네트워크 장치
docker0
로컬 루프백을 나타내는 장치로
물리적으로 존재하는 인터페이스 → 논리적으로 존재lo
CentOS 6 이전 버전에서 사용되었던 이더넷 카드 인터페이스 장치→ pci 버스상의 디바이스enpx
ppp(point-to-point) 연결을 위한 장치
pppx
패러럴 케이블을 사용하는 패러럴 라인 인터페이스 장치
pppx→ lpx
19
이 계층은 데이터를 패킷 단위로 분할하여 전송하며 데이터 전송과 경로 선택에 관한 서비스를 제공한다. 이 계층은 패킷을 최종 수신 측까지 정확하게 전송할 수 있도록 경로를 담당한다. 즉, 송신호스트에서 전송한 데이터가 수신호스트에 도착하기 위해서는 여러 개의 중개 시스템을 거치는데, 올바른 경로를 선택할 수 있도록 지원하는 역할 수행
네트워크 계층
[오답]
프레임 단위로 데이터 전송
데이터링크 계층
종단 간의 데이터 전송을 위한 제어와 에러 관리
전송 계층
양 끝단의 프로세스가 통신할 수 있도록 연결을 담당
세션 계층
20
OSI 모델의 물리 계층, 데이터 링크 계층, 네트워크 계층의 기능을 지원하는 장치이다. 자신과 연결된 네트워크 및 호스트 정보를 유지하고 관리해야 하며, 어떤 경로를 이용해야 빠르게 전송할 수 있는 지 판단하는 장치
Router
[오답]
여러 개의 네트워크 세그먼트를 연결하기 위해 데이터 프레임의 MAC 주소를 보고 해당 포트로 포워딩하는 OSI 2계층의 네트워크 장비
Bridge
서로 다른 프로토콜이나 통신망을 사용하는 네트워크를 연결하기 위한 네트워크 장비
Gateway
신호를 증폭하고 재생하여 전송 거리를 늘려주는 OSI 1계층 네트워크 장비
Repeater
2과목
21
1시간 주기로 실행되는 crontab 설정
1 * * * * /etc/joon.sh
- 분, 시, 일, 월, 요일 순서
22
[root@www ~]# id lin
uid=505(lin) gid=508(kait) groups=508(kait),504(project)
[root@www ~]# ls -ld /project
drwxrws---T. 2 root project 4096 Nov 17 08:08 /project
[root@www ~]#
lin 사용자가 /project 디렉터리에 파일을 생성했을 경우, 해당 파일의 그룹 소유권은 2차 그룹인 project이다.
id lin
명령어 결과[root@www ~]# id lin uid=505(lin) gid=508(kait) groups=508(kait),504(project)
- 사용자
lin
의 정보:- UID =
505
- 기본 그룹 (GID) =
508 (kait)
- 추가 그룹 =
508 (kait), 504 (project)
- 즉,
lin
사용자는kait
그룹이 기본 그룹이며, 추가적으로project
그룹에도 속함.
- UID =
- 사용자
ls -ld /project
명령어 결과[root@www ~]# ls -ld /project drwxrws---T. 2 root project 4096 Nov 17 08:08 /project
- 권한(
drwxrws---T
) 분석d
→ 디렉터리rwx
→ 소유자(root
)는 읽기(r), 쓰기(w), 실행(x) 가능rws
→ 그룹(project
)는 읽기(r), 쓰기(w), 실행(s) 가능s
(Set-GID) 비트 설정됨 → 새 파일 생성 시 그룹이 자동으로project
로 설정됨--
→ 기타 사용자(others)는 접근 불가T
→ Sticky Bit이 설정되어 있으나, 실행 권한(x)이 없음
- 보통 Sticky Bit(
t
) 은/tmp
디렉토리처럼 모든 사용자가 파일을 생성할 수 있지만, 삭제는 소유자만 가능하게 할 때 사용.
- 권한(
Set-GID(
s
) 설정 덕분에,lin
이/project
내에서 생성하는 파일의 그룹은 자동으로project
가 됨.
23
[root@www ~]# /bin/ls
linux-gate.so.1 => (0x00554000)
libselinux.so.1 => /lib/libselinux.so.1 (0x004a5000)
librt.so.1 => /lib/librt.so.1 (0x00365000)
libcap.so.2 => /lib/libcap.so.2 (0x00dbf000)
libacl.so.1 => /lib/libacl.so.1 (0x04e03000)
libc.so.6 => /lib/libc.so.6 (0x0017c000)
libdl.so.2 => /lib/libdl.so.2 (0x0035e000)
/lib/ld-linux.so.2 (0x80093000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00341000)
libattr.so.1 => /lib/libattr.so.1 (0x00cb5000)
위에 해당하는 명령
ldd
- 지정한 프로그램의 의존성을 확인하는 명령어
[오답]
블록 디바이스의 속성과 UUID 등 정보를 출력해주는 명령어
blkid
빠른 동적 라이브러리 경로 검색을 위한
/etc/ld.so.cache
파일을 생성하는 명령어ldconfig
동적 라이브러리의 경로를 설정하기 위한 환경 설정 파일
ld.so.conf
24
다수의 텍스트 파일이 10MB 정도로 묶여있는 tar 파일을 압축하려고 할 때 가장 압축률이 좋은 명령어
xz
- gzip < bzip2 < xz
25
rpm 파일을 설치하기 전에 어떠한 파일이 설치되는지 미리 확인하기 위해
rpm ( ) totem-2.28.6-2.el6.i686.rpm
괄호에 들어갈 옵션-qlp
기본 질의 옵션인
-q
와 목록 확인을 위한-l
, 패키지를 대상으로 하는-p
옵션을 함께 사용해-qlp
가 된다.- RPM
- 레드햇 기반 리눅스에서 패키지 관리를 지원한다.
기본 옵션
옵션 설명 -v 자세한 정보 출력 —quiet 에러 메시지 외에는 다른 정보 출력 X —version rpm의 버전 출력 설치 및 업데이트 옵션
옵션 설명 -l 동일한 패키지가 설치되어 있지 않은 경우 패키지를 새로 설치 -h 설치 혹은 업그레이드 진행 상황을 # 문자를 이용하여 표시 -U 패키지 업그레이드, 기존에 설치된 패키지가 없을 경우 새로 설치 -F 이전 버전이 설치되어 있는 경우 업그레이드 —force 기존에 패키지가 설치되어 있더라도 강제로 설치 —nodeps 패키지 설치 및 업그레이드 시 의존성을 점검하지 않음 —test 실제 설치하지 않고 잠재적 충돌이 있는지 체크 제거 옵션
옵션 설명 -e 패키지 삭제 —nodeps 패키지 삭제 시 의존성을 점검하지 않음 —test 실제 삭제하지 않고 모의로 삭제 —allmatches 패키지의 모든 버전 제거 질의 옵션
옵션 설명 -q 질의를 위해 기본적으로 사용해야 하는 옵션으로 패키지 이름, 버전, 릴리즈 등 간단한 정보 표시 -i 패키지 정보, 이름, 버전, 설명 등 패키지에 대한 자세한 정보 표시 -l 패키지 목록 출력 -f 지정한 파일을 설치한 패키지 출력 -a 설치된 모든 패키지에 대해 질의 -c 패키지의 설정 파일이나 스크립트 파일 출력 -s 패키지의 각 파일 상태를 normal, not installed, replaced로 표시 검증 옵션
옵션 설명 -V 검증 시 사용하는 기본 옵션 -a 시스템에 설치되어 있는 모든 패키지에 대해 검증
26
프로세스의 우선순위를 높이려고 할 때
# ( ) ( ) bash
에 들어갈 내용nice –10 bash
- nice : 인자로 지정한 프로그램의 우선순위를 변경할 수 있는 명령어
- 우선순위를 높이기 위해서는 값을 낮추어야 한다.
- 우선순위의 범위 : -20 ~ 19
[오답]
현재 실행 중인 프로세스의 우선순위를 변경하며, 인자로 PID를 입력
renice
27
root 사용자가 lin 사용자의 예약된 cron 작업을 제거하는 명령
crontab -r -u lin
- crontab
- 사용자가 반복적으로 수행할 작업을 예약할 때 사용한다.
- 설정파일은
/var/spool/cron
밑에 사용자 이름으로 파일이 생성된다. 형식
crontab [options] file
옵션
옵션 설명 file 특정 파일에 설정되어 있는 내용을 크론 설정 파일에 반영한다. -u user crontab을 열람하고 수정할 수 있는 사용자를 지정한다. -l 현재 crontab 설정을 표시한다. -r 현재 crontab 설정을 제거한다. -e - crontab 설정을 편집한다.
- 환경변수 VISUAL, EDITOR에 지정되어 있는 편집기가 실행된다.
- crontab
28
사용자 디스크 용량을 제한하기 위해 쿼터를 설정하려고 할 때
/etc/fstab
에 설정해야 하는 내용은?4번째 필드에 usrquota라는 옵션 추가
사용자 쿼터를 이용하기 위해
/etc/fstab
파일에 등록하는 설정값usrquota
/etc/fstab
: 장치를 마운트할 때 참조하는 파일로,/etc/fstab
에 설정하여 부팅 시 자동으로 마운트 되도록 구성- 4번째 필드에 usrquota와 grpquota를 지정하여 사용자 및 그룹 쿼터를 설정
주요 설정 옵션
옵션 설명 파일 시스템 장치명 파티션 혹은 장치 위치 지정 마운트 포인트 어떠한 디렉터리로 연결할 지 지정 파일 시스템 종류 nfs, NTFS, ext3, iso9660 (DVD) 등을 지정 마운트 옵션 - timeo : 타임아웃 후 첫번째 재전송 요구 시간 지정
- retrans : 타임아웃 후 재전송 요청 횟수 지정
- soft : retrans에 설정한 값만큼 요청
- hard : 무한 반복하여 요청 - auto : 부팅 시 자동 마운트로 지정
- rw(읽기/쓰기), nouser(roo만 마운트 가능), exec(실행 허용), suid(Set-UID, Set-GID 허용), quota(Quota 설정 가능) 등을 추가 지정덤프 백업 여부를 지정(0: 불가능, 1: 가능) 무결성 검사 fsck에 의한 무결성 검사 우선순위 지정(0: 하지 않음)
30
특정 사용자가 자신이 속한 주 그룹을 다른 그룹으로 변경할 때 사용하는 명령
newgrp
[오답]
GID, 그룹 이름 등의 그룹 관련 속성 변경
groupmod
그룹의 패스워드 변경
gppasswd
특정 사용자나 현재 로그인한 사용자가 속한 그룹을 표시
groups
31
# passwd -d lin
의 결과lin 사용자는 패스워드 입력 없이 로그인 가능
- -d 옵션 : 패스워드를 삭제한다. 로그인 시 입력해야 할 패스워드가 없어지기 때문에 로그인 시 비밀번호 입력이 불필요하다.
[오답]
패스워드를 만료하고 다음 로그인 시 변경될 패스워드를 요구한다.
-e 옵션
패스워드에 락을 걸어 로그인을 막는다.
-l 옵션
락을 해제
-u 옵션
passwd로 패스워드 설정하기
- useradd로 사용자 생성 시, 패스워드를 설정하기 전까지 로그인할 수 없다.
- passwd를 사용하여 패스워드를 설정해야 한다.
- 패스워드 입력 후 사용자 패스워드를 삭제하거나 변경 기간을 설정하는 등의 관리 목적으로 사용 가능하다.
형식
passwd [options][username]
예시
$ sudo passwd blue # root 사용자만 사용자의 패스워드를 설정할 수 있다. $ passwd # 현재 사용자의 패스워드 변경 $ sudo passwd -e test # 지정한 사용자의 패스워드를 만료한다. 다음 로그인 시 패스워드를 재지정해야 한다. $ sudo passwd -S blue # 지정한 사용자의 패스워드 상태 출력 $ sudo passwd -l blue # 지정한 사용자의 패스워드에 락을 건다. 관리자가 -u 옵션을 사용해 언락할 때까지 로그인할 수 없다. $ sudo passwd -d blue # 지정한 사용자의 패스워드를 삭제한다. 아이디만 입력해도 로그인 할 수 잇다. # 패스워드를 변경한 후 7일 간 다시 변경할 수 없다. 365일간 사용할 수 있고, 5일전부터 패스워드 변경 경고를 한다. 패스워드 만료 후 10일의 유예기간이 있다. $ sudo passwd -n 7 -x 365 -w 5 -i 10 blue
32
사용자를 추가할 때에 2020년 12월 31일까지만 로그인이 가능하도록 지정하는 파일명
/etc/default/useradd
[오답]
홈 디렉터리 생성 시 기본으로 제공할 파일 존재
/etc/skel
사용자 계정의 아이디, 그룹 정보 등 계정 정보 포함
/etc/passwd
로그인 수행 시 PASS_MAX_DAYS, UID_MIN, GID_MIN과 같은 기본 설정 포함
/etc/login.defs
33
yum을 이용해서 telnet이라는 문자열이 들어있는 패키지를 검색하는 명령
yum search telnet
[오답]
- 시스템에 설치된 파일이 어떤 패키지를 통해 설치되었는지 확인할 때, dpkg는 —search를 사용한다.
- dpkg : 데비안 계열의 패키지 명령어
dpkg --search file_name
- 시스템에 설치된 파일이 어떤 패키지를 통해 설치되었는지 확인할 때, dpkg는 —search를 사용한다.
34
시그널 이름과 번호를 확인할 수 있는 명령
kill -l
- kill : PID를 인자로 하여 해당 프로세스에 원하는 시그널을 전달함.
[오답]
사용 가능한 시그널의 목록을 확인할 수 있지만 번호는 확인할 수 없다.
killall -l
프로세스 이름을 인자로 하여 해당 프로세스를 종료시킨다.
pkill
- pkill과 pgrep은 -l 옵션을 제공하지 않음
프로세스 이름 매칭 혹은 속성을 기반으로 현재 실행 중인 프로세스를 검색하여 출력
pgrep
35
백그라운드로 수행중인 작업번호가 2인 프로세스를 포어그라운드로 전환하는 명령
fg %2
- fg 2도 동일한 역할을 수행한다.
- fg 명령만 사용하면 가장 최근의 잡을 포어그라운드로 전환
36
ihd라는 그룹명을 kait로 변경하는 명령
groupmod -n kait ihd
- groupmod로 그룹 정보 변경하기
- 그룹 관련 설정 파일인
/etc/group
,/etc/gshadow
,/etc/passwd
에서 그룹 관련 속성을 변경한다. 형식
groupmod [options] groupname
예제
$ sudo groupmod -n newcolors colors # colors 그룹을 newcolors 그룹으로 이름을 변경 $ sudo groupmod -g 567 colors # colors 그룹의 GID를 567로 변경. (정수면서 유일한 값이어야 함)
- 그룹 관련 설정 파일인
- groupmod로 그룹 정보 변경하기
37
[root@www ~]#
17:58:10 up 6:31, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 :0 02:27 1531m 34.99s 34.99s /usr/bin/xorg
root pts/0 0.0.0.0 02:27 00.0s 0.21s 0.15s w
위에 해당하는 명령어
w
- 현재 로그인한 사용자가 어떤 시스템에서 로그인했는지 출력
[오답]
현재 호스트에 로그인되어 있는 **모든 사용자의 **정보 출력
who
현재 로그인한 사용자의 사용자명 출력
users
현재 호스트에 로그인되어 있는 모든 사용자의 사용자명 출력
whoami
38
[root@www ~]#
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 15G 6.3G 7.4G 46% /
tmpfs 2.0G 304K 2.0G 1% /dev/shm
/dev/sda3 2.0G 3.2M 1.9G 1% /data
위에 해당하는 명령어
df
- 파일 시스템의 전체 크기, 가용 용량 등 파일 시스템에 대한 자세한 정보 출력
[오답]
디렉터리 또는 파일이 차지하는 공간의 정보 출력
du
지정한 사용자 또는 그룹의 디스크 사용량과 쿼터 정보 출력
quota
현재 시스템상 사용자 및 그룹의 파일 시스템 사용량과 쿼터 정보 출력
repquota
39
10줄이 기록된 텍스트 파일인 lin.txt 파일에서 4번째부터 7번째 줄까지 출력하는 명령
**head -7 lin.txt tail -4** - head : 앞에서부터 지정한 줄 수만큼 출력
- tail : 파일 끝을 기준으로 지정한 줄 수만큼 출력
40
# gcc lin.c
위의 명령의 실행 결과
a.out라는 실행 파일이 생성됨
지정한 소스코드를 컴파일하여 목적 파일을 생성한 후 실행 파일 생성
gcc
- gcc(GNU Compiler Collection)
- cc는 GNU 프로젝트에서 개발하였다.
- C, C++, Objective-C, Fortran, Java, Ada, Go 등 다양한 프로그래밍 언어를 지원하는 컴파일러다.
- 리눅스 커널뿐 아니라 GNU 프로젝트, 리눅스 등 대부분 프로젝트의 표준 컴파일러로 사용된다.
- 소스코드를 컴파일하는 컴파일러와 다른 시스템 환경에서도 컴파일 가능하도록 하는 툴체인 등 크게 2가지로 구성된다.
형식
gcc [options] 파일명..
옵션
옵션 의미 -o 컴파일시 기본 이름 대신 실행파일의 이름을 지정한다. -c - 지정한 소스코드를 컴파일하여 목적 파일(.o)를 생성한다.
- 목적파일을 하나로 합치는 링크는 수행하지 않는다.-std 컴파일할 언어의 버전을 선택한다. 예제
# hello.c를 컴파일하여 목적 파일을 생성하고 링크하여 실행 파일 생성 # 실행 파일 이름은 hellogcc $ gcc hello.c -o hellogcc # hello.c와 world.c를 컴파일하여 helloworldgcc 실행파일 생성 $ gcc hello.c world.c -o helloworldgcc # hello.c를 컴파일하여 목적 파일 (hello.o)만을 생성 $ gcc -c hello.c # C언어 11버전으로 hello.cpp를 컴파일하고 hellogcc 실행 파일 생성 $ gcc -std=c111 hello.cpp -o hellogcc
- cc는 GNU 프로젝트에서 개발하였다.
- gcc(GNU Compiler Collection)
41
커널 컴파일
커널 모듈 생성을 위한 컴파일 작업
make modules
기존의 오브젝트 파일, 환경 파일, 다양한 백업 파일을 모두 xh
make mrproper
커널 컴파일 시 원하는 커널의 기능을 메뉴를 통해 활성화
make menuconfig
컴파일된 커널 모듈을 복사
make modules_install
42
특정 모듈을 제거하면서 의존성 있는 모듈을 같이 제거하려고 할 때
modprobe ( ) ip6table_filter
에 들어갈 옵션-r
- modprobe : 모듈과 관련 있는 모듈을 먼저 언로드하고 지정한 모듈을 언로드한다.
[오답]
모듈의 의존성을 고려하지 않고 모듈을 언로드
rmmod
43
새로운 디스크를 인식하려고 할 때 디스크 인식 여부를 확인하는 명령
fdisk -l
[오답]
디스크를 파일 시스템의 특정 경로로 마운트하는 명령어
mount
시스템 부팅 시 자동으로 마운트할 대상을 설정하기 위한 환경설정 파일
/etc/fstab
현재 마운트 되어 있는 파일 시스템 목록을 기록
/etc/mtab
44
모듈
- 모듈 관련 명령어로 lsmod, insmod, rmmod가 있다.
- 리눅스 모듈의 경우 C 컴파일러로 만들어진
*.ko
파일 형태이다. - 사용 가능한 모듈은
/lib/modules/커널 버전/kernel
디렉터리 안에서 확인할 수 있다. - [오답]
모듈이 커널에 내장되는 방식을 모놀리식 방식이라고 한다. → 모놀리식 커널은 입출력 기능, 네트워크 기능, 장치 지원 등 운영체제의 일반적인 기능을 커널 메모리 공간에 적재, 실행하는 운영체제 아키텍처이다.- 상반된 운영체제 아키텍처로 마이크로 커널이 있다.
45
커널 컴파일 과정
- 커널 컴파일 전에 반드시 리부팅해야 할 필요는 없다.
- 어셈블러, GCC, make 유틸리티 등 개발 도구가 사전에 설치되어 있어야 한다.
- 커널 초기화 시 make clean 명령을 이용하여 .config 파일을 삭제하지 않고도 초기화할 수 있다.
- make clean : 커널 환경설정을 제외한 대부분의 파일을 모두 제거한다.
- [오답] 리눅스 커널 버전의 소스를
/usr/src/kernels에 다운로드해야 한다. → 커널 소스를 반드시 정해진 경로에 다운로드 해야 하는 것은 아니며 일반적으로 /usr/src/kernels 경로에 다운로드할 뿐이다.
46
새로운 디스크를 추가 할당하고 리부팅하였으나 해당 디스크가 mount 되어 있지 않았다. 리부팅 후에도 자동으로 mount 되도록 설정하는 파일
/ect/fstab
[오답]
그룹에 속한 사용자를 관리하기 위한 환경설정 파일
/etc/groups
서버의 모든 공유 디렉터리 표시
/etc/exports
시스템의 파티션 정보 포함
/proc/partitions
47
프린트 작업의 Request-ID를 확인하는 명령어
lpstat
- 설정한 프린터와 클래스, 인쇄 작업에 대한 상태 정보 출력
[오답]
문서를 프린터로 출력
lp
프린터와 CUPS 프린팅 시스템에서 제공하는 프린터 클래스 대기열을 제어
lpc
인쇄 작업을 취소
cancel
48
자동 문서 공급 장치가 장착된 스캐너에서 스캔할 때 사용하는 명령어
scanadf
[오답]
그래픽 기반 평면 스캐너나 카메라로부터 이미지를 스캔할 수 있는 SNE의 프론트엔드 프로그램
xcam
평면 스캐너나 카메라와 같은 장치의 이미지 스캔을 제어하는 프로그램
scanimage
SANE 백엔드를 지원하는 스캐너를 검색하기 위한 명령
sane-find-scanner
49
CUPS 프린팅 시스템
- 로컬에 직접 연결한 프린터를 네트워크 프린터처럼 설정이 가능
- [오답] 설정 정보는
/etc/printcap파일에 저장됨 → /etc/printcap은 LPRng를 위한 환경설정 파일 - [오답]
BSD 계열 유닉스에서사용하기 위해 개발됨 → BSD 뿐만 아니라 System V 계열에서도 사용할 수 있음 - [오답] 초기에는 printconf, printtool과 같은 도구를 사용하여 설정함 → LPRng 초기 설명
50
uname 명령을 이용하여 커널 버전을 확인하는 옵션
-r
[오답]
네트워크 호스트 이름 출력
-n
운영체제 출력
-o
커널 이름 출력
-s
51
장치 파일이나 네트워크 파일 등의 특수 파일도 백업이 가능하고 백업본의 크기도 작고, 백업본에 손상된 부분이 있더라도 손상된 부분을 제외하고 나머지 부분을 복구한다. 아울러, 기존의 명령어를 사용하여 백업을 진행하므로 다양한 조건을 활용하여 백업이 가능하다.
cpio
내용만 확인할 때 사용하는 옵션
-t, —list
필요한 경우 디렉터리를 생성하는 옵션
-d, —make-directories
표준입력으로 백업한 자료를 불러올 때 사용하는 옵션
-i, —extract
[오답]
- -b, —incremental : 증분 백업으로 백업할 때 사용 → cpio는 증분 백업 기능을 제공하지 않는다.
52
# setfacl -R -m g:docker:rwx docker/
다음 설명과 관련된 파일 시스템 보안
파일이나 디렉터리에 접근 권한을 제어할 수 있도록 만든 시스템
/docker 디렉터리에 대해 docker 그룹에게 rwx 권한을 부여
리눅스 기본 허가권의 대상이 소유자, 그룹, 다른 사용자로만 지정할 수 있는 한계를 극복하기 위해 ACL을 설정하는 명령어
setfacl
53
리눅스 주요 보안 도구와 기능
조건식을 설정하여 네트워크 인터페이스를 거치는 패킷 헤더 정보를 출력
tcpdump
네트워크 탐지 도구 및 보안스캐너로 시스템의 서비스 중인 포트를 스캔하여 관련 정보 출력
nmap
상용 취약점 스캐너
nessus
호스트 기반 침입 탐지 시스템
tripwire
54
SSH(Secure Shell)
- 패킷을 암호화하여 telnet이나 rlogin에 비해 안전함
- ssh-keygen을 이용하면 인증키를 이용한 접속이 가능
- 기본 설정 포트는 22번이며 원격 셸, scp, sftp 기능을 지원
- [오답] ssh2는 ssh1을 개선한 것으로
하위호환성을 완벽하게 지원→ ssh2는 ssh1과 호환되기는 하지만, ssh1 서버가 반드시 필요함. 즉, ssh2만으로는 ssh1을 지원할 수 없음
55
/var/log/xferlog
전송된 지시를 나타내는 영역은 ( 1 )이다. 사용자가 어떤 형태로 login을 했는지를 나타내는 영역은 ( 2 )이다. special-action-flag 영역에서 ( 3 )는 어떠한 action도 발생하지 않은 경우를 뜻한다.
1) direction 2) access-mode 3) _
FTP 로그 파일이며, proftpd 또는 vsfptd 데몬의 활동이 기록된다.
/var/log/xferlog
- direction : Outgoing, Incoming과 같은 전송 방향
- access-mode : 익명 사용자, 패스워드 방식 게스트 사용자, 실제 인증된 사용자와 같은 로그인 방식
- special-action-flag : 파일 압축됨을 뜻하는 C, 파일이 압축되지 않음을 뜻하는 U, 파일이 아카이브됨을 뜻하는 T를 포함
56
콘솔, telnet, ftp 등 이용하여 접속한 사용자 기록, 시스템을 재부팅한 기록 등의 로그가 쌓이는 파일이다. 바이너리 파일로 last라는 명령으로 확인 가능
/var/log/wtmp
[오답]
모든 로그인 실패 기록을 보관하고 있으며 바이너리 형식으로 lastb 명령어로 확인 가능
/var/log/btmp
각 사용자의 마지막 로그인 기록을 보관하며 바이너리 형식이다. lastlog 명령어로 확인 가능
/var/log/lastlog
전체 시스템의 모든 동작 사항과 정보 메시지와 이벤트가 로그로 남겨진다. 텍스트 형식이기 때문에 grep과 같은 명령어로 원하는 로그만 필터해서 볼 수 있다.
/var/log/messages
57
sudo
- 특정 사용자 또는 특정 그룹에 root 사용자 권한을 가질 수 있게 하는 도구
- visudo는 환경 설정 파일을 편집할 때 사용하는 도구
- 적용된 사용자는
sudo 명령어
형태로 실행하며 root 권한을 대행 - [오답] 환경설정 파일은
~~/etc/sudo~~
→/etc/sudoers
58
dmesg
- 커널 링 버퍼(kernel ring buffer)의 내용을 출력하고 제어하는 명령
- 커널 변수 값을 제어하여 시스템을 최적화할 수 있는 명령
/var/log/dmesg
파일에 기록된 환경 변수 설정값을 출력→ /var/log/dmesg 파일에 시스템에 대한 전반적인 동작상 로그가 저장되며, 시스템에 문제가 되었을 때 원인을 파악할 때 가장 먼저 보는 로그이기도 하다.- [오답] 커널 부트 메시지 로그를 보여주는 명령으로 실행 시
~~/var/log/dmesg~~
에 기록됨 →/var/log/boot.log
로그 파일에 기록됨
59
파일 시스템 전체를 백업할 때 사용하는 유틸리티로 보통 파티션 단위로 백업할 때 사용한다. 전체 백업과 증분 백업을 지원하고, 0~9 단계의 레벨을 가지고 증분 백업을 지원한다.
dump
[오답]
데이터를 블록 단위로 변환 혹은 복사하는 명령어로, 파일 단위 백업 불가
dd
대상 파일들을 복사하거나 하나의 파일로 아카이빙 혹은 아카이빙된 파일을 복원하는 명령어
cpio
특정 디렉터리를 동기화하거나 백업하는 명령어
rsync
60
rsync
- rcp(remote copy)에 비해 처리속도가 빠름
- 내부 파이프라인을 통하여 전송기간을 줄임
- 링크된 파일도 복사 가능하고 소유권도 유지하여 복사할 수 있음
- [오답] ssh을 이용하여 전송 가능하나
root 권한 필요→ root 권한 없이 모든 사용자 사용 가능
3과목
61
# cd /usr/local/mysql/bin
( ) --initialize --user=root
MySQL 5.7.28 버전을 설치한 후에 mysql에서 사용하는 기본 데이터베이스를 생성하는 과정으로 괄호안에 들어갈 내용은?
./mysqld
- ./mysqld —initialize 로 필요한 DB를 생성
62
가상화가 지원되는 최신의 AMD CPU를 구입하여 사용중이다. 서버 가상화 프로그램을 실행하였더니 가상화 지원 여부가 비활성화 상태라는 오류 메시지를 접하게 되었다. 메인보드의 BIOS에서 활성화 여부를 확인해야 하는 항목은?
SVM
/proc/cpuinfo
파일의 flag 값을 확인하여 CPU 가상화 지원 여부를 점검할 수 있다.- Intel VT-x를 지원할 경우 vmx가 포함된다.
- vmx가 없으면 VT-x를 지원하지 않거나 BIOS에서 비활성화된다.
Intel VT-x 지원을 확인하는 예제
egrep 'svm|vmx' /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx sse sse2 ss ht syscall nx rdtscp lm constant_tsc nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 ...
- AMD-V를 지원할 경우 svm이 포함된다.
- svm이 없으면 AMD-V를 지원하지 않거나 비활성화 상태.
[오답]
Intel CPU가 지원하는 CPU 가상화 기술
VT-x
서버에 설치된 가상 PC 환경에 접속하여 데이터와 응용 프로그램을 사용하는 기술(환경)
VDI(Virtual Desktop Infrastructre)
63
# vi /etc/exports
/nfsdata ( )
괄호 안에 들어갈 수 있는 설정 내용
*.ihd.or.kr
192.168.12.0/255.255.255.0
192.168.5.0/24
[오답] 192.168.12.
- NFS 서버가 참조하는
/etc/exports
설정은 3가지 정보를 갖는다.- 공유 디렉터리명
- 접근 가능한 클라이언트 : 네트워크 IP 주소 혹은 주소 대역 설정
- 공유 옵션 : ro(read-only) rw(read-write), 사용자의 접근 권한
root 사용자의 접근 권한 설정
옵션 설명 no_root_squash root 권한 접근을 허용한다. root_squash root 권한 접근을 거부하기 위해 클라이언트의 root 요청을 nobody
(또는nfsnobody
)로 매핑시킨다.(기본값)all_squash NFS 클라이언트에서 접근하는 모든 사용자(root 포함)의 권한을 nobody(또는 nfsnobody)로 매핑시킨다. anonuid 특정 계정의 권한(uid)을 할당한다.
- NFS 서버가 참조하는
64
( 1 ) only;
( 2 ) 168.126.63.1; ;
/etc/named.conf
파일 설정의 일부로 괄호 안에 들어갈 내용1. forward 2. forwarders
- /etc/named.conf
- 존(zone) 파일, 리버스 존(reverse zone) 파일을 비롯한 DNS 서버의 주요 환경을 설정하는 설정 파일
- zone 파일: 도메인 이름, IP 주소 또는 관련 리소스 간 매핑을 포함하고, 리소스 레코드(resource record)로 구성된다.
- 리버스 존 : IP 주소에 대한 도메인 정보 조회 제공
- /etc/named.conf의 형식
- 주석문과 구문으로 구성된다.
- 주석은 /* ~ */, //, # 등을 모두 사용할 수 있다.
- options, acl, logging, zone 등의 주요 구문이 있고, 각 구문은 중괄호
{}
로 둘러싸고 끝날 때 세미콜론;
을 붙인다. - 별도로 파일에 정의 후 include 지시자를 이용하여 포함할 수 있다.
options 구문 설정 항목
설정 항목 설명 directory zone 파일의 저장 디렉터리를 설정하며, 반드시 필요한 항목이다.
- ex. directory “/var/named”dump-file - 정보 갱신 시 저장 파일로 사용할 dump-file의 파일명을 지정한다.
- ex. dump-file “/var/named/data/cache_dump.db”statistics-file - 통계 정보를 저장할 파일명을 지정한다.
- ex. statistics-file “/var/named/data/named_stats.txt”;memstatistics-file - 메모리 통계 정보를 저장할 파일명을 지정한다.
- ex. memstatistics-file “/var/named/data/named_mem_stats.txt”;recursing-file recursing query 정보를 저장하는 파일명을 지정한다. forward - forwarders 옵션과 함께 사용하며 only 혹은 first 값을 가진다.
- forward only: 도메인 주소에 대한 질의를 다른 서버에게 넘긴다.
- forward first : 다른 서버에서 응답이 없을 경우 자신이 응답하도록 설정한다.forwarders - forward를 처리할 서버를 지정한다.
- 여러 개의 서버를 세미콜론으로 구분하여 설정한다.allow-query - 네임 서버에 질의할 수 있는 호스트를 지정한다.
- ex. allow-query { localhost };allow-transfer - 존(zone) 파일 내용을 복사(transfer) 할 대상을 제한한다.
- ex. allow- transfer { 172.3.1.0/24; };datasize - DNS 정보 캐싱에 사용할 메모리 크기를 제한한다.
- ex. datasize 128M;recursion - 하위 도메인 검색 허용 여부를 지정한다.
- yes로 설정시 네임 서버에 설정하지 않은 도메인을 질의할 경우 캐싱 네임 서버의 역할로 동작하여 DNS 질의를 수행한다.
- ex. recursion yes;
- /etc/named.conf
65
2004년에 등장한 웹 서버 프로그램으로 가벼움과 높은 성능을 목표로 한다. 제공되는 기능으로는 리버시 프록시, 로드 밸런서, HTTP cache 기능 등이 있다.
Nginx
[오답]
아파치 재단이 주도하는 대표적인 오픈소스 웹 서버
Apache HTTP Server
구글이 제공하는 웹 서버
GWS(Google Web Server)
마이크로소프트가 개발 및 제공하는 웹 서버
IIS(Internet Information Server)
66
httpd.conf 파일의 문법적 오류를 명령어를 사용해서 점검하는 과정으로
httpd ( )
의 괄호 안에 들어갈 내용은?-t
httpd 명령 형식 : httpd [옵션][파일이름]
옵션 설명 -t 환경설정 파일인 httpd.conf
의 문법적 오류 점검-f 특정 환경설정 파일을 지정하여 아파치 데몬을 실행 -S 현재 설정된 가상 호스트 목록 출력 -l 아파치 웹 서버와 함께 컴파일 된 모듈 목록 출력 -M 로딩된 모든 모듈의 목록 출력(static, shared)
67
LDAP
- X.500 Directory Access Protocol 기반으로 만들어진 통신 규약
- RDBMS에 비교해서 검색 속도가 빠르다.
- 읽기 위주의 검색 서비스에서 상당히 좋은 성능을 발휘한다.
[오답] 자주 변경되는 정보인 경우,
RDBMS보다 더욱 뛰어난 성능을 발휘한다. → 자주 변경되는 정보의 관리에는 다소 불리하다.- LDAP : 디렉터리 서비스를 조회하고 수정하는 TCP 기반 응용 프로토콜
68
다수의 텔넷 서버를 운영 중이다. 하나의 서버를 이용해서 텔넷 서버로 접속하는 사용자의 아이디 및 패스워드를 인증하려고 할 때 구성해야 할 서버는?
NIS
- NIS : NIS 서버에 등록된 사용자 계정, 암호, 그룹 정보 등을 네트워크를 이용하여 다른 시스템(클라이언트)에게 제공한다. 따라서 여러 호스트들이 동일한 계정 정보를 사용할 수 있다.
[오답]
원격의 서버나 시스템이 안전하게 연결하기 위한 프로토콜이다. 호스트와 클라이언트 간의 패킷을 암호화하여 주고 받음으로써 보안에 강하다.
SSH
TCP/IP를 이용하여 원격 호스트(컴퓨터)의 파일 시스템을 마치 로컬 호스트(PC)에 있는 것처럼 마운트(Mount)하여 사용할 수 있는 서비스
NFS
마이크로소프트가 개발 및 제공하는 웹 서버
IIS
69
NIS 서버에서 사용자 관련 정보가 저장되는 파일명
passwd.byname
[오답]
호스트 관련 정보 확인
hosts.byname
70
NFS 서버의 IP 주소가 192.168.5.13이고, 공유된 디렉터리가 /data일 때 NFS 클라이언트에서 마운트하는 과정인
mount -t nfs ( ) /mnt
의 괄호에 들어갈 내용은?192.168.5.13:/data
- NFS를 위한 mount 명령은
mount -t nfs [NFS 서버]:[대상 디렉터리] [마운트 디렉터리]
의 형식을 따른다. mount -t nfs
대신mount.nfs
를 이용할 수 있다.
- NFS를 위한 mount 명령은
71
메일 관련 프로그램의 종류가 다른 것은? (보기 : qmail, postfix, dovecot, sendmail)
dovecot
- dovecot : IMAP, POP3 이메일 서버 프로그램
[오답]
MTA(Mail/Message Transfer Agent)의 역할을 담당하는 프로그램
qmail
메일 서버 역할(Mail Transfer Agent, MTA)을 수행하는 프로그램
postfix
SMTP 프로토콜을 이용하여 메일을 전송하는 대표적인 MTA 프로그램
sendmail
72
하나의 메일 서버에 각각 ihd.co.kr이라는 도메인을 갖는 회사와 kait.co.kr이라는 도메인을 갖는 회사의 호스팅 서비스를 운영 중이다. 이 두 개의 회사에서 ceo라는 E-mail 계정을 요구하였다. 이와 관련된 설정 파일명은?
/etc/mail/virtusertable
- /etc/mail/virtusertable : 가상의 메일 계정으로 들어오는 메일을 특정 계정으로 전달하는 정보를 설정한다.
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
와 같은 방식으로 /etc/mail/virtusertable.db에 적용한다.
[오답]
메일의 별칭 혹은 특정 계정으로 수신한 이메일을 다른 계정으로 전달하도록 설정하며, 보통 여러 사람에게 전달할 때 사용한다.
/etc/aliases
- sendmail이 참조하는 파일은
/etc/aliases.db
이므로/etc/aliases
를 수정한 후 newaliases나 sendmail -bi 명령으로 적용한다.
- sendmail이 참조하는 파일은
sendmail에서 수신할 메일의 도메인과 호스트, 즉 메일 수신자를 설정하며 sendmail을 다시 시작하여 적용한다.
/etc/mail/local-host-names
sendmail의 기본 설정 파일
/etc/mail/sendmail.cf
- /etc/mail/virtusertable : 가상의 메일 계정으로 들어오는 메일을 특정 계정으로 전달하는 정보를 설정한다.
73
webmaster라는 계정으로 들어오는 메일을 회사의 고객지원실에 근무하는 다수의 사용자에게 메일을 전달하려고 할 때 관련 있는 설정 파일명
/etc/aliases
- /etc/aliases : 메일의 별칭 혹은 특정 계정으로 수신한 이메일을 다른 계정으로 전달하도록 설정하며, 보통 여러 사람에게 전달할 때 사용한다.
- sendmail이 참조하는 파일은
/etc/aliases.db
이므로/etc/aliases
를 수정한 후 newaliases나 sendmail -bi 명령으로 적용한다.
74
@ IN SOA ns.ihd.or.kr. ( ) (
202004011200 ; serial
-- 이하 생략 --
zone 파일에서 메일 서버를 설정하는 과정으로 도메인이 ihd.or.kr이고, 관리자 계정이 kaituser일 때 괄호안에 들어갈 내용은?
kaituser.ihd.or.kr.
- 계정도메인 형식으로 관리자의 이메일 주소를 지정하며 . 으로 끝나야 한다.
75
IP 네트워크 상에서 가상 SCSI 버스를 구현하는 iSCSI나 물리적 디스크 스토리지상에서 가상 테이프 스토리지 등이 해당되는 가상화의 기능
에뮬레이션(Emulation)
- 물리적인 특징이 다른 장치를 범용적인 모델로 인식하여 사용할 수 있도록 지원
- 즉, 물리적으로 다른 하드웨어나 소프트웨어를 가상의 환경에서 실행할 수 있도록 흉내 내는 기술
[오답]
가상의 자원을 여러 개의 물리적 자원들에 걸쳐서 만들 수 있고, 이를 통해 외견상 전체 용량을 증가시키고, 전체적인 관점에서 활용과 관리를 단순화시킬 수 있다.
단일화(Aggregation)
하나의 가상화 서비스에 문제가 발생해도 다른 서비스로 장애가 전이되지 않도록 관리하는 것
절연(Insulation)
사용자의 요구사항에 맞게 할당, 배치, 배포할 수 있도록 만들어 놓은 것
프로비저닝(Provisioning)
76
위의 그림과 같은 방식의 가상화 기술
VirtualBox
- VirtualBox : 오라클이 주도하며 개발 및 배포하고 있는 x86 기반 가상화 소프트웨어
[오답]
가상 컴퓨터를 배치하고 서비스를 제공할 목적으로 VMware가 개발한 엔터프라이즈 계열 Type-1 하이퍼바이저 서버
VMware ESXi Server
오픈소스 반가상화 하이퍼바이저인 Xen을 기반으로 함
XenServer
하이퍼바이저를 사용하거나 게스트 운영체제를 설치하지 않고, 서버 운영에 필요한 프로그램과 라이브러리만 이미지로 만들어 프로세스처럼 동작시키는 경량화된 가상화 방식
Docker
77
VMware 기반의 가상머신과 XenServer 기반의 가상 머신을 통합 관리하려고 할 때 도입해야 할 가상화 기술
OpenStack
- OpenStack : Iaas(Infrastructure as a Service) 형태의 클라우드 컴퓨팅을 구축할 수 있는 오픈소스 프로젝트로 다양한 커뮤니티 활동이 장점이다.
[오답]
오라클이 주도하여 개발 및 배포하고 있는 x86 기반 가상화 소프트웨어
VirtualBox
KVM 기반의 오픈소스 가상화 솔루션
REHV (Red Hat Enterprise Virtualization)
78
xinetd 기반으로 동작하는 텔넷 서버를 활성화하기 위한 설정
disable = no
- xinetd의 기본 설정 파일은 /etc/xinetd.conf이며, /etc/xinetd.d/ 디렉터리에 각 서비스들의 설정이 저장된다.
- 최근 리눅스의 경우 CentOS 6까지 xinetd 방식으로 이용하던 많은 서비스들이 단독 데몬으로 전환되거나 systemd에 의한 관리 방식으로 통합되었다.
- systemd 방식은 socket 기능을 통해 효율적으로 메모리를 관리할 수 있으며, 이에 따라 기존 xinetd를 통해 제공하던 rsync, telnet 등의 서비스가 systemd 방식으로 통합되었다.
79
TCP wrapper를 이용한 접근 제어가 가능한 서비스가 아닌 것 (보기: sshd, vsftpd, in.telnetd, squid)
squid
- TCP Wrapper를 사용하려면 inxetd 방식으로 서비스되거나 libwrap 라이브러리를 사용해야 한다.
- 대표적으로 sshd의 경우 TCP Wrapper를 사용할 수 있다.
- 최근 리눅스는 xinetd, TCP Wrapper를 제공하는 서비스가 제한적이므로, 접근 제한이 필요할 경우 firewalid 혹은 iptables 사용을 권장한다.
- TCP Wrapper를 사용하려면 inxetd 방식으로 서비스되거나 libwrap 라이브러리를 사용해야 한다.
80
회사 내부에서 100여대의 서버들을 운영 중이다. 이 서버들의 시간이 일정하지 않아서 동기화 시켜주는 서버를 구축하려고 할 때 구성해야 할 서버
NTP 서버
- NTP 서버 : NTP 서버를 이용하여 시간을 동기화하는 서비스
[오답]
비트맵 이미지 기반의 RFB(Remote Frame Buffer) 프로토콜을 이용하고 GUI(Graphic User Interface) 방식으로 원격 컴퓨터에 접속 및 사용하는 기능 제공
VNC 서버
클라이언트와 서버 사이에 위치하여 요청과 응답 과정에서 데이터를 중계하는 역할을 담당한다. 일반적으로 서버의 데이터를 캐시하여 인터넷 속도를 빠르게 하기 위해 사용되며, 서버의 가용성 향상을 위한 부하 분산에 사용할 수도 있다.
Proxy 서버
클라이언트 호스트가 사용할 IP 주소, 게이트웨이 주소, 네임 서버 주소 등을 자동으로 할당한다.
DHCP 서버
81
NTP 서버에서 계층을 나타내는 용어
Stratum
- 원자 시계 또는 GPS와 같은 장치인 0단계부터 가장 낮은 15단계의 계층으로 구성된다.
- Stratum16은 비동기 장치를 의미한다.
82
아파치 웹 서버 2.4 버전에서 서버 포트 번호를 8080으로 운영하려고 할 때 관련 설정은?
Listen 8080
- 아파치 웹 서버는
/etc/httpd/conf/httpd.conf
를 환경설정 파일로 이용한다. 주요 설정 항목
설정 내용 ServerRoot 웹 서버의 주요 파일들이 저장된 최상위 디렉터리 지정 Listen 웹 서버가 이용할 포트 번호 지정 ServerName 웹 서버의 호스트이름 지정 DocumentRoot HTML과 같은 웹 서버의 컨텐츠가 저장되는 루트 디렉터리 지정 UserDir 일반 사용자의 웹 디렉터리 지정 ServerAdmin 관리자의 메일 주소 지정 DirectoryIndex 웹 브라우저의 요청에 따라 지정한 순서의 파일로 응답 전송 ServerTokens HTTP 응답헤더에 포함하여 전송할 서버의 정보 수준으로, 보안을 위해 최소 정보만 사용하도록 prod로 설정하는 것을 권장 KeepAlive On으로 설정하면 아파치의 한 프로세스로 특정 사용자의 지속적인 요청 작업을 계속 처리
- 아파치 웹 서버는
83
이름과 성의 조합을 나타내는 LDAP의 속성 키워드
cn
- LDAP(Lightweight Directory Access Protocol) : 디렉터리 서비스를 조회하고 수정하는 TCP 기반 응용 프로토콜
LDAP의 주요속성
속성 설명 속성 설명 c 국가 이름 ou 부서 이름 st 주 이름(우리나라는 도) cn 전체 이름(이름 + 성) l 도시 혹은 지역 sn 성 street 도로명 주소 givenName 이름 dn 조직 내 고유 식별자 dc 도메인 네임 요소 rdn 상대(relative) DN mail 이메일 주소 o 조직(회사) 이름 telephoneNumber 전화번호
84
# vi ( )
server nis.ihd.or.kr
ypserver nis.ihd.or.kr
domain ihd.or.kr
NIS 클라이언트에서 NIS 서버 및 도메인명을 지정하는 과정이다. 괄호에 들어갈 파일명은?
/etc/yp.conf
- /etc/yp.conf : NIS 바인드 정보를 관리하는 ypbind의 환경설정 파일
[오답]
도메인 이름과 IP 주소의 매핑 정보를 설정하는 파일
/etc/hosts
해당 파일에 NIS 도메인명을 설정하여 부팅 시 항상 적용될 수 있도록 한다.
/etc/sysconfig/network
85
삼바 서버와 관련 있는 프로토콜의 조합
SMB, CIFS
- 삼바는 TCP/IP 기반 NetBIOS 상에서 동작하는 SMB(Server Message Block) 프로토콜을 이용한다.
- CIFS(Common Internet File System) : SMB를 인터넷까지 확장한 표준 프로토콜로, 유닉스와 윈도우 환경을 동시에 지원한다.
[오답]
위치에 상관없이 원격 함수나 프로시저를 실행할 수 있게 해주는 프로세스 간 통신 방법
RPC(Remote Procedure Call)
두 프로세스가 상호 통신하여 정보를 교환하는 방법
IPC(Inter Process Communication)
86
삼바 서버의 환경설정
[www]
comment = Web Directory
( ) = /usr/local/apache/htdocs
정답
path
- 삼바 서버는
/etc/samba/smb.conf
를 환경설정 파일로 이용하며, 각 공유 폴더 별로 설정값을 지정한다. 삼바의 공유 폴더의 주요 설정 옵션
설정 옵션 설명 [디렉터리 이름] - []
사이에 공유 폴더 이름 지정
- ex. [homes]comment - 공유 폴더에 대한 설명 기술
- ex. comment = Home Directoriespath - 공유 디렉터리의 절대 경로 지정
- ex. path = /var/www/htmlread only = yes 읽기만 가능하도록 설정 writable = yes 쓰기 가능하도록 설정 write list = [사용자명] - 쓰기 가능한 사용자 지정
- @를 앞에 붙여서 그룹 지정
- ex. write list = smbuser @managervalid users = [사용자명] 접근 가능한 사용자를 지정하고, 별도로 지정하지 않는 경우 전체 사용자가 접근 가능하다. public = no 개인 사용자만 사용할 수 있도록 설정 browseable = no 이용 가능한 공유 리스트에 표시되지 않도록 설정 create mask = 값 파일 생성 시 사용되는 기본 접근 모드를 지정 (ex. 0644) follow symlinks = no 심볼릭 링크를 따르지 않도록 설정하여 잠재적 보안 위협 제거 printable = yes 삼바 프린터를 네트워크 프린터로 공유
- 삼바 서버는
87
vsftpd 설치 시 제공되는 /etc/vsftpd/ftpusers 파일
vsftpd 서버에 접근이 불가능한 사용자 목록 파일
- /etc/vsftpd/ftpusers에 등록된 모든 계정은 접속 차단된다.
- userlist_enable=YES로 설정하면 ftpusers와 함께 user_list에 등록된 모든 계정도 접속 차단된다.
88
메일 클라이언트가 메일 서버에 도착한 E-mail을 가져올 때 사용되는 프로토콜 조합
IMAP, POP3
메일을 수신하는 프로토콜
POP3
이메일 서버로부터 이메일을 가져오는데 사용한다. 이메일 메시지를 서버에 남겨두었다 나중에 삭제할 수 있다.
IMAP (POP3와 달리 이메일 메시지를 서버에 남겨두었다 나중에 삭제할 수 있다. )
[오답]
인터넷에서 이메일을 전송하기 위해 사용하는 프로토콜
SMTP (Simple Message Transfer Protocol)
89
메일을 보낸 후 외부로 메일이 전송되었는지 여부를 확인하는 명령
mailq
- mailq : 메일 큐의 내용을 표시한다.
[오답]
sendmail.cf를 생성
m4 (
m4 sendmail.mc > sendmail.cf
와 같이 사용)/etc/aliases의 정보를 읽어들여 관련 DB 정보인 /etc/aliases.db를 업데이트한다.
sendmail -bi
90
DNS 서버가 등장하는데 계기가 된 파일
/etc/hosts
- /etc/hosts : 로컬 호스트에서만 사용할 수 있는 DNS 정보를 설정할 수 있다. 외부 DNS 서버에 질의하기 전에 /etc/hosts 파일의 내용을 먼저 참조한다.
[오답]
시스템 전체에 적용할 기본 게이트웨이 주소, 호스트명, 네트워크 연결 허용 여부, 게이트웨이 장치 파일 설정, NIS 도메인 이름을 설정
/etc/sysconfig/network
91
/etc/named.conf 파일 설정의 일부로 Zone 파일이 위치하는 디렉터리를 지정할 때
( ) "var/named";
의 괄호에 들어갈 내용?directory
[오답]
도메인을 관리하기 위한 데이터 파일인 zone 파일을 지정한다.
zone
별도의 파일에 정의한 설정을 해당 지시자를 이용하여 포함할 수 있다.
include
92
리버스 존(Reverse Zone) 파일에만 사용하는 레코드 타입
PTR
[오답]
도메인 이름에 대한 메일 교환 서버
MX
도메인 이름에 대한 별칭
CNAME
93
위에 해당하는 프로그램을 실행하는 명령
virt-manager
- virt-manager : 가상 머신을 손쉽게 시작 및 종료할 수 있고, 가상 머신의 CPU 사용량, 호스트 CPU 사용량 등을 모니터링 할 수 있는 GUI 기반 도구
[오답]
텍스트 기반의 콘솔 환경에서 가상 머신을 관리해주는 도구로 생성, 시작, 재시작, 종료, 강제종료 등의 기능을 수행한다.
virsh
libvirt 관리 시스템의 서버 데몬으로 관리 도구와 통신하여 원격 도메인의 명령을 전달한다.
libvirtd
가상화 현황을 top과 유사한 형식으로 출력한다.
virt-top
94
리눅스 서버와 윈도우 클라이언트 간의 데스크톱 공유를 하려고 할 때 구성해야 할 서버
VNC 서버
- VNC 서버 : 비트맵 이미지 기반의 RFB(Remote Frame Buffer) 프로토콜을 이용하고, GUI 방식으로 원격 컴퓨터에 접속 및 사용하는 기능 제공
[오답]
시간을 동기화하는 서버
NTP 서버
클라이언트와 서버 사이에 위치하며, 요청과 응답 과정에서 데이터를 중계하는 역할을 담당한다. 일반적으로 서버의 데이터를 캐시하여 인터넷 전송 속도를 빠르게 하기 위해 사용하며, 서버의 가용성 향상을 위한 부하분산에 사용할 수도 있다.
Proxy 서버
클라이언트 호스트가 사용할 IP 주소, 게이트웨이 주소, 네임 서버 주소 등을 자동으로 할당한다.
DHCP 서버
95
( ) "/usr/local/apache/html"
httpd.conf 파일에서 웹 문서가 위치하는 디렉터리를 변경하는 과정으로 괄호 안에 들어갈 내용은?
DocumentRoot
- DocumentRoot : HTML과 같은 웹 서버의 컨텐트가 저장되는 루트 디렉터리를 지정한다.
[오답]
웹 서버의 주요 파일들이 저장된 최상위 디렉터리 지정
ServerRoot
관리자의 메일 주소 지정
ServerAdmin
웹 서버의 호스트이름 지정
ServerName
96
sshd:192.168.7.4
ssh 침입을 시도하는 특정 호스트를 차단하려고 할 때 적용할 있는 파일
/etc/hosts.deny
- TCP Wrapper는 /etc/hosts.allow 파일과 /etc/hosts.deny 설정 파일을 이용하여 접근 제어를 제공한다.
- 접근을 허가하는 호스트는 /etc/hosts.allow에 등록하고, 접근을 거부하는 호스트는 /etc/hosts/deny에 등록한다.
- 설정 파일은 hosts.allow → hosts.deny 순으로 적용된다.
hosts.allow와 hosts.deny의 규칙이 중복되면 hosts.deny 규칙은 무시된다.
- 최근 리눅스의 경우 CentOS 6까지 xinetd 방식으로 이용하던 많은 서비스들이 단독 데몬으로 전환되거나 systemd에 의한 관리 방식으로 통합되었다.
- systemd : socket 기능(온디맨드)을 통해 효율적으로 메모리를 관리할 수 있으며, 이에 따라 기존 xinetd를 통해 제공하던 rsync, telnet 등의 서비스가 systemd 방식으로 통합되었다.
- TCP Wrapper를 사용하려면 xinetd 방식으로 서비스되거나 libwrap 라이브러리를 사용해야 한다.
- 대표적으로 sshd의 경우, TCP Wrapper를 사용할 수 있다.
- 최근 리눅스는 xinetd, TCP Wrapper를 제공하는 서비스가 제한적이므로, 접근 제한이 필요할 경우 firewalld나 iptables 사용을 권장한다.
97
iptables에 구성되어 있는 테이블
넷필터의 연결 추적 하위 시스템과 독립적으로 동작해야 하는 규칙을 설정하는 테이블
raw
[오답]
iptables의 기본 테이블로 패킷 필터링 기능을 제공한다.
filter
성능 향상을 위한 TOS(Type Of Service) 설정과 같이 패킷 데이터를 변경하는 특수 규칙을 적용한다.
mangle
IP 주소 및 포트를 변환하고 관리한다.
nat (Network Address Translation)
- CentOS 7은 firewalld를 기본 방화벽으로 사용하고 iptables 대비 편리한 사용성을 제공한다.
- iptables를 사용하면 보다 상세하고 명확한 규칙 설정이 가능하므로 iptables는 여전히 중요하며, firewalld도 내부적으로 iptables를 기반으로 동작한다. 이후 출제 문제의 패턴을 예상하기 어려우므로 filewalld와 iptables 모두 확인하기
98
데이터를 전송하기 위해서는 패킷을 분할하고 시퀀스 넘버를 생성하는데, 이러한 시퀀스 넘버를 조작하거나 중첩시켜 내부에 과부하를 발생시키는 공격 방법
Teardrop Attack
[오답]
공격 대상에 IP 패킷을 보낼 때 발신자 IP, 수신자 IP 모두 공격 대상의 IP로 하여 문제를 일으키게 하는 공격 기법
Land Attack
IP 브로드캐스트 주소를 통해 컴퓨터 네트워크로 ICMP 패킷을 전송하는 분산 서비스 거부 공격
Smurf Attack
TCP 연결 설정 (3-way handshake)의 특성을 이용한 공격이다. 클라이언트는 서버에 연결하기 위해 SYN 패킷을 전송하고, 서버는 SYN/ACK 패킷을 응답하고 클라이언트의 ACK 응답을 최종적으로 기다린다. 이 때 백로그 큐에 연결 정보를 저장하는데, 이러한 ACK 응답 없는 연결이 누적되면 백로그 큐가 가득차서 더 이상 서버가 연결을 받을 수 없는 상태가 된다.
TCP SYN Flooding
99
DDoS 공격 도구의 종류가 다른 것은? (Boink, Trinoo, TFN 2K, Stacheldraht)
Boink
- Boink : 데이터를 전송할 때 처음에는 순서대로 시퀀스 번호를 보내나, 중간부터 반복되는 시퀀스 번호를 보내어 패킷 조립 시 문제를 일으키는 공격 도구
[오답]
UDP Flooding 분산 서비스 거부 공격을 할 수 있는 통합 도구
Trinoo
TFN의 발전된 형태로 UDP, TCP, ICMP를 복합적으로 사용하고 포트도 임의로 결정된다. 지정된 TCP 포트에 백도어를 실행할 수 있다.
TFN 2K
- TFN : 공격자 시스템과 마스터 시스템 간 연결이 평문으로 되어 있으며 UDP Flooding, TCP SYN Flooding, ICMP 브로드캐스트 공격이 가능하다.
Linux 시스템용 분산 서비스 거부 공격(DDoS, Distributed Denial of Service)의 에이전트 역할을 하는 악성코드로 Smurf 공격에 사용될 수 있다.
Stacheldraht
- 통신 시 암호화 기능을 지원하며 공격자 확인을 위해 패스워드를 지정한다
100
iptables 관련 로그가 기록되는 로그 파일
/var/log/messages
[오답]
시스템의 로그인 행위에 대해 성공, 실패, 인증 과정에 대한 로그가 기록된다.
/var/log/secure
FTP 접속과 관련된 작업이 기록된 파일
/cat/log/xferlog