이기적 최신 기출문제 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

Image

  • 다음에 해당하는 클러스터링 기법

    고가용성 클러스터링

    • 시스템의 안전성지속적인 서비스를 보장하기 위해 이중화된 클러스터

    [오답]

    • 고성능 계산 능력을 제공하며 주로 과학 계산용으로 활용

      고계산용 클러스터

    • 로드 밸런서를 통해 대규모의 트래픽을 여러 대의 서버로 분산

      부하분산 클러스터

    • 저렴한 PC를 이더넷과 같은 LAN으로 연결하여 클러스터 구성 후 병렬화한 프로그램을 실행하여 슈퍼 컴퓨터를 구현

      베어울프 클러스터

5

  • 유닉스를 개발한 인물

    켄 톰슨

    • 유닉스는 1970년대 초반 벨 연구소의 켄 톰슨, 데니스 리치 등이 처음 개발함

    [오답]

    • 핀란드 헬싱키에서 태어난 소프트웨어 개발자이자 리눅스 커널과 을 개발

      리누스 토발즈

    • C언어를 기반으로 강력한 셸 프로그래밍 기능을 가진 C셸을 개발

      빌 조이

    • 자유 소프트웨어 운동의 중심 인물이며 GNU 프로젝트와 자유 소프트웨어 재단의 설립자

      리처드 스툴먼

6

grub.conf

default=1
timeout=100
  • 위의 설정은 무엇인가

    100초동안 대기한 후에 메뉴 선택이 없으면 두 번째 항목의 운영체제로 부팅함

    • default : 사용자가 아무런 선택을 하지 않을 때 기본으로 선택되는 운영체제
      • 0번은 grub.conf 상 첫 번째 운영체제, 1번은 두 번째 운영체제
    • timeout : 사용자가 운영체제를 선택할 때까지 기다리기 위한 대기시간( 단위)

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

10

  • 번호값이 가장 큰 시그널

    SIGTSTP

    시그널 번호시그널 이름설명
    1SIGHUP- 터미널의 접속 연결이 끊어질 때 보내는 시그널
    - 로그아웃 혹은 모뎀 접속을 끊는다.
    2SIGINTCtrl + C 를 입력하면 발생하며, 프로세스를 종료한다.
    3SIGQUITCtrl + Q 를 입력하면 발생하며, 코어 덤프와 함께 프로세스를 종료한다.
    9SIGKILL프로세스를 즉시 종료시킨다.
    15SIGTERM소프트웨어 종료 시그널로 트래킹이 가능하다.
    18SIGCONTSIGSTOP, SIGTSTP에 의해 정지된 프로세스를 다시 실행한다.
    19SIGSTOP정지 시그널로 프로세스를 무조건 정지한다.
    20SIGTSTP- 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 파일명을 갖는다.

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개

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 그룹에도 속함.
  • 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
      —versionrpm의 버전 출력
    • 설치 및 업데이트 옵션

      옵션설명
      -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 usercrontab을 열람하고 수정할 수 있는 사용자를 지정한다.
        -l현재 crontab 설정을 표시한다.
        -r현재 crontab 설정을 제거한다.
        -e- crontab 설정을 편집한다.
        - 환경변수 VISUAL, EDITOR에 지정되어 있는 편집기가 실행된다.

28

  • 사용자 디스크 용량을 제한하기 위해 쿼터를 설정하려고 할 때 /etc/fstab에 설정해야 하는 내용은?

    4번째 필드에 usrquota라는 옵션 추가

    • 사용자 쿼터를 이용하기 위해 /etc/fstab 파일에 등록하는 설정값

      usrquota

      • /etc/fstab : 장치를 마운트할 때 참조하는 파일로, /etc/fstab에 설정하여 부팅 시 자동으로 마운트 되도록 구성
      • 4번째 필드에 usrquotagrpquota를 지정하여 사용자 및 그룹 쿼터를 설정
      • 주요 설정 옵션

        옵션설명
        파일 시스템 장치명파티션 혹은 장치 위치 지정
        마운트 포인트어떠한 디렉터리로 연결할 지 지정
        파일 시스템 종류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
      

34

  • 시그널 이름과 번호를 확인할 수 있는 명령

    kill -l

    • kill : PID를 인자로 하여 해당 프로세스에 원하는 시그널을 전달함.

    [오답]

    • 사용 가능한 시그널의 목록을 확인할 수 있지만 번호는 확인할 수 없다.

      killall -l

    • 프로세스 이름을 인자로 하여 해당 프로세스를 종료시킨다.

      pkill

      • pkillpgrep-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로 변경. (정수면서 유일한 값이어야 함)
        

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.txttail -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
          

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_squashroot 권한 접근을 허용한다.
      root_squashroot 권한 접근을 거부하기 위해 클라이언트의 root 요청을 nobody(또는 nfsnobody)로 매핑시킨다.(기본값)
      all_squashNFS 클라이언트에서 접근하는 모든 사용자(root 포함)의 권한을 nobody(또는 nfsnobody)로 매핑시킨다.
      anonuid특정 계정의 권한(uid)을 할당한다.

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 구문 설정 항목

      설정 항목설명
      directoryzone 파일의 저장 디렉터리를 설정하며, 반드시 필요한 항목이다.
      - 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-filerecursing 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;

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를 이용할 수 있다.

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를 수정한 후 newaliasessendmail -bi 명령으로 적용한다.
    • sendmail에서 수신할 메일의 도메인과 호스트, 즉 메일 수신자를 설정하며 sendmail을 다시 시작하여 적용한다.

      /etc/mail/local-host-names

    • sendmail의 기본 설정 파일

      /etc/mail/sendmail.cf

73

  • webmaster라는 계정으로 들어오는 메일을 회사의 고객지원실에 근무하는 다수의 사용자에게 메일을 전달하려고 할 때 관련 있는 설정 파일명

    /etc/aliases

    • /etc/aliases : 메일의 별칭 혹은 특정 계정으로 수신한 이메일을 다른 계정으로 전달하도록 설정하며, 보통 여러 사람에게 전달할 때 사용한다.
    • sendmail이 참조하는 파일은 /etc/aliases.db이므로 /etc/aliases를 수정한 후 newaliasessendmail -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

Image

  • 위의 그림과 같은 방식의 가상화 기술

    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 사용을 권장한다.

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웹 서버의 호스트이름 지정
      DocumentRootHTML과 같은 웹 서버의 컨텐츠가 저장되는 루트 디렉터리 지정
      UserDir일반 사용자의 웹 디렉터리 지정
      ServerAdmin관리자의 메일 주소 지정
      DirectoryIndex웹 브라우저의 요청에 따라 지정한 순서의 파일로 응답 전송
      ServerTokensHTTP 응답헤더에 포함하여 전송할 서버의 정보 수준으로, 보안을 위해 최소 정보만 사용하도록 prod로 설정하는 것을 권장
      KeepAliveOn으로 설정하면 아파치의 한 프로세스로 특정 사용자의 지속적인 요청 작업을 계속 처리

83

  • 이름과 성의 조합을 나타내는 LDAP의 속성 키워드

    cn

    • LDAP(Lightweight Directory Access Protocol) : 디렉터리 서비스를 조회하고 수정하는 TCP 기반 응용 프로토콜
    • LDAP의 주요속성

      속성설명속성설명
      c국가 이름ou부서 이름
      st주 이름(우리나라는 도)cn전체 이름(이름 + 성)
      l도시 혹은 지역sn
      street도로명 주소givenName이름
      dn조직 내 고유 식별자dc도메인 네임 요소
      rdn상대(relative) DNmail이메일 주소
      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 Directories
      path- 공유 디렉터리의 절대 경로 지정
      - ex. path = /var/www/html
      read only = yes읽기만 가능하도록 설정
      writable = yes쓰기 가능하도록 설정
      write list = [사용자명]- 쓰기 가능한 사용자 지정
      - @를 앞에 붙여서 그룹 지정
      - ex. write list = smbuser @manager
      valid 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

image.png

  • 위에 해당하는 프로그램을 실행하는 명령

    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.allowhosts.deny의 규칙이 중복되면 hosts.deny 규칙은 무시된다.

    • 최근 리눅스의 경우 CentOS 6까지 xinetd 방식으로 이용하던 많은 서비스들이 단독 데몬으로 전환되거나 systemd에 의한 관리 방식으로 통합되었다.
    • systemd : socket 기능(온디맨드)을 통해 효율적으로 메모리를 관리할 수 있으며, 이에 따라 기존 xinetd를 통해 제공하던 rsync, telnet 등의 서비스가 systemd 방식으로 통합되었다.
    • TCP Wrapper를 사용하려면 xinetd 방식으로 서비스되거나 libwrap 라이브러리를 사용해야 한다.
      • 대표적으로 sshd의 경우, TCP Wrapper를 사용할 수 있다.
    • 최근 리눅스는 xinetd, TCP Wrapper를 제공하는 서비스가 제한적이므로, 접근 제한이 필요할 경우 firewalldiptables 사용을 권장한다.

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


© 2021. All rights reserved.

yaejinkong의 블로그