이기적 최신 기출문제 01회 오답노트

1과목

1

  • 리눅스는 대부분의 코드가 C언어로 작성되어 있어 다양한 CPU 아키텍처로의 이식성이 높다.
    • 리눅스는 플랫폼 종속적인 부분을 최소화하여 어셈블리 언어로 작성하고, 나머지 대부분을 C 언어로 구현해서 다양한 하드웨어에 쉽게 이식할 수 있다.
  • 리눅스의 소스 코드 및 프로그램은 자유롭게 사용, 수정, 배포할 수 있는 자유 소프트웨어이다.

2

  • 운영체제의 파일 시스템, 프로세스 관리, 메모리 관리, 입출력 기능 등 핵심 기능을 하나의 커널 공간에서 실행되는 단일 코드 베이스로 통합한 구조

    모노리딕 커널

    • 명령어의 입출력을 파일이나 다른 명령어로 전달한다.

      리다이렉션

    • 한 명령의 출력을 다른 명령의 입력으로 연결해 데이터 흐름을 처리한다.

      파이프

    • 운영체제의 핵심 기능을 최소화하고, 나머지 기능을 사용자 공간에서 실행하는 커널 구조

      마이크로커널

3

어떤 계열의 리눅스 배포판인가?

  • CentOS, Fedora, Rocky Linux

    Red Hat 계열

  • Ubuntu, Raspbian

    Debian 계열

  • 하모니카, 구름OS

    Ubuntu 기반으로 한국에서 개발됨

  • openSuse

    SUSE 계열

4

LVM(Logical) Volume Manager

  • 물리적 볼륨을 논리적 볼륨으로 결합하여 저장 공간을 유연하게 관리
  • 디스크를 추가하지 않고 기존 볼륨의 크기를 동적으로 확장, 축소 가능
  • 디스크 스냅샷 기능을 제공하여 특정 시점의 데이터 백업 가능
  • 캐싱 기능을 기본적으로 제공하지 않음
  • 파일 시스템의 성능 개선보다는 디스크 공간 관리와 관련된 유연성 제공이 주 목적

5

  • 리눅스 부팅 시 가장 먼저 실행되어 다른 모든 프로세스의 부모 역할을 하는 프로세스

    init

  • 현대 리눅스 배포판에서 위의 명령어를 대체하며, 병렬 처리를 통해 더 빠른 부팅 속도를 제공하는 시스템 관리 도구

    systemd

6

systemd에서 제공하는 Unit 유형

  • Service Unit
    • [오답] **Process Unit → Service Unit에 의해 간접적으로 관리됨
  • Target Unit
  • Device Unit
  • Mount Unit
  • Path Unit
  • Socket Unit
  • Timer Unit

7

GRUB2 패스워드를 잃어버렸을 때의 대처 방법

  • root 비밀번호를 알고 있다면 GRUB 설정을 편집하여 복구 가능
  • 부팅 시 GRUB 메뉴에서 e 키를 눌러 GRUB 설정을 편집한 후, 패스워드를 재설정
  • GRUB 메뉴 접근이 불가하다면 (root 비밀번호를 잃어버렸다면) 복구 디스크를 통해 부팅한 후 GRUB 설정 편집
  • [오답] BIOS 설정을 초기화하고 리눅스 초기화

8

systemd를 사용한 전원 관리

  • 시스템 종료

    systemctl halt

  • 시스템 재부팅

    systemctl reboot

  • 시스템 절전모드

    systemctl hibernate

  • [오답] systemctl halt → 특정 서비스나 시스템의 현재 상태 확인

9

  • 실제 파일과 디렉터리의 데이터 위치를 알고 있는 자료구조로, 파일 권한, 하드링크 수, 소유자 id, 파일 크기, 마지막 접근 시간 등의 정보를 담고 있다.

    아이노드

    [오답]

    • 대형 파일 시스템을 더 작은 그룹으로 나누어 관리하기 위한 구조

      블록 그룹

      • 각 그룹은 슈퍼 블록, 그룹 디스크립터 테이블, 데이터 블록, 아이노드 테이블 등을 포함
    • 디스크의 첫 번째 섹터로, 운영체제를 부팅하기 위한 정보를 포함

      부트 섹터

    • 파일 시스템의 크기, 빈 블록 수, 사용된 블록 수 등의 블록 그룹의 전체적인 정보를 저장

      슈퍼 블록

10

X 윈도우

  • 키보드, 마우스, 화면과 같은 실제 장치와 직접 통신을 수행하고 관리
  • X 클라이언트 : Xlib을 사용하여 작성된 응용 프로그램
  • X 서버와 X 클라이언트가 정보를 주고 받기 위해 X 프로토콜을 사용
  • [오답] 서버 클라이언트 구조를 기반으로 X 프로토콜을 통해 플랫폼 종속적 GUI 환경 구현 → 플랫폼 독립적인 GUI 환경 제공

11

[ihd@www ~] (    ) HOME
/home/ihd
  • 정답

    printenv : 환경변수 값 확인 **

    [오답]

    • echo : 환경 변수 내용 조회할 수 있지만, $ 를 변수 이름 앞에 붙여야 한다.

        $ echo $HOME
      

12

셸의 메타문자

  • 리다이렉션을 통해 출력을 파일에 추가

    »

  • 와일드카드로, 파일 이름 패턴에서 모든 문자를 의미


  • 논리 OR 연산자, 첫 번째 명령 실패시 두 번째 명령을 실행

    ** **

13

kill 명령어

  • SIGKILL 과 같은 특정 시그널을 다른 프로세스에 전달 가능
  • root 사용자만이 다른 사용자가 생성한 프로세스를 kill 가능
  • -l 옵션을 통해 리눅스가 제공하는 시그널 목록 확인
  • [오답] root 사용자만 사용자가 직접 생성한 프로세스를 kill 가능 → 사용자는 자신이 생성한 프로세스를 직접 kill 가능

14

좀비 프로세스

  • 실행이 완료되었지만, 부모 프로세스가 종료 상태를 수거하지 않아 남아있는 프로세스
  • 메모리와 CPU 자원을 계속해서 소모하지 않지만 프로세스 테이블의 엔트리를 차지
  • 부모 프로세스가 종료될 때 자동으로 사라지지 않음
  • kill 명령어로 직접 종료할 수 없음

15

셸 스크립트의 위치 매개변수

  • $0 : 현재 실행 중인 스크립트의 이름
  • $1, $2 등 : 스크립트 실행 시 전달된 인자(argument)
  • $# : 스크립트에 전달된 인자의 총 개수
  • $* : 인자 전체를 하나의 문자열(String)로 처리, 개별 인자 사이에 구분자를 추가하지 않고 출력
  • $@ : 환경변수 $IFS 설정된 구분자를 통해 인자를 각각 나누어 출력

16

TCP/IP의 4가지 계층

  • 데이터가 물리적으로 네트워크로 전송됨

    네트워크 엑세스 계층

  • 네트워크 간 패킷의 라우팅을 담당

    인터넷 계층

  • 데이터의 신뢰성 있는 전송을 제공

    전송 계층

  • 어플리케이션이 사용자와 상호 작용

    응용 계층

17

특수 목적 IP 주소

  • 127.0.0.1 : 루프백 주소로, 자신의 컴퓨터를 가리키며 네트워크 인터페이스를 거치지 않고 내부에서 통신할 때 사용
  • 169.254.0.0 ~ 169.254.255.255 : APIPA 범위로, DHCP 서버로부터 IP 주소를 받지 못할 경우 자동으로 할당되는 IP 주소 범위
  • 255.255.255.255 : 브로드캐스트 주소, 네트워크의 모든 호스트에게 데이터를 전송할 때 사용
  • 192.168.0.0 ~ 192.168.255.255 : 사설 IP 주소 범위, 인터넷에서 직접 사용되지 않고 내부 네트워크 구축 시 사용

18

IP가 192.168.123.132/26

  • 서브넷 마스크

    255.255.255.192

  • 네트워크 주소

    192.168.123.128

  • 실제 사용 가능한 호스트의 수

    62

계산 방법

  1. 서브넷 마스크 구하기
    • CIDR 표기법이 /26이면 앞에서 26비트가 네트워크, 남은 32 - 26 = 6비트가 호스트 부분이다.
    • 이진수로 표현 시 11111111.11111111.11111111.11000000
    • 10진수로 변환하면 255.255.255.192 (서브넷 마스크)
  2. 네트워크 주소 구하기
    • IP 주소와 서브넷 마스크를 &&(AND) 연산을 적용한다.
    • IP 주소의 24비트는 모두 1이므로, 마지막 8비트만 체크하면 된다.
    • 10진수로 변환
  3. 사용 가능한 호스트 수 구하기
    • 호스트 부분이 6비트이므로 전체 IP 개수는 2^6 = 64개이다.
    • 네트워크 주소(192.168.123.128)와 브로드캐스트 주소(192.168.123.191)는 사용불가이므로, 실제 사용한 호스트 수는 64 - 2 = 62개이다.

19

ip 명령어

  • ifconfig 대체
  • 네트워크 인터페이스에 IP를 할당하거나 제거 가능
  • 네트워크 인터페이스를 활성화하거나 비활성화 가능
  • [오답] 라우팅 정보 출력을 위해 ip 명령어 대신 route 명령어를 사용ip route를 사용하여 라우팅 정보를 출력하거나 수정한다.

20

  • 네트워크 장애 분석을 위해 패킷이 어떤 경로로 전송되는지 추적하기 위한 명령어

    traceroute

    [오답]

    • 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등을 보여주는 명령어

      netstat

    • 네트워크 인터페이스의 링크 상태를 확인하고 설정하는 도구

      mii-tool

    • DNS 서버에서 호스트 이름을 IP 주소로 변환하거나, 도메인 네임 정보를 확인하는 명령어

      dig

2과목

21

리눅스의 루트 계정 관리 방안

  • root 권한이 필요할 때, root 사용자로 로그인하는 것보다 sudo 명령어를 통해 임시로 권한을 획득하여 명령어 실행
  • /etc/passwd 파일을 조사하여 UID의 설정이 0인 복수의 사용자가 있는지 점검
  • 환경 변수 TMOUT 설정을 하여 자동 로그아웃이 되도록 함

22

다음의 상황에서 사용자 계정 관리 방안

운영팀에 새로 입사한 인턴은 3개월 간 근무를 한다. 인턴은 3개월간 시스템에 로그인하여 백업이 잘되는지 모니터링하는 업무를 수행한다.

  • 사용자 계정 추가 시 useradd -e 명령어 사용
  • 사용자 그룹은 운영팀으로 지정하고 적절한 권한 부여
  • passwd -e 명령어를 사용하여 사용자가 다음 로그인시 패스워드를 직접 변경하도록 유도
  • [오답] 3개월 이후 사용자 계정이 만료되도록 ~~chage -e 명령어를 사용~~ → chage -E를 사용해야 함
    • chage - E : 계정 만료 후 패스워드가 비활성화 될 때까지 유예기간 설정

23

[root@www ~] #
root:$6$D2v/NwzEl6u9nOvL$0NSNUZZPaO
UXGD8Mmx6/6B1bcKuGRM:0:99999:7::
bin:*:19326:0:99999:7::
daemon:*:19326:0:99999:7::
adm:*:19326:0:99999:7::
lp:*:19326:0:99999:7::
sync:*:19326:0:99999:7::
shutdown:*:19326:0:99999:7::
halt:*:19326:0:99999:7::
mail:*:19326:0:99999:7::

(중간 생략)

[root@www ~] #
  • 위의 파일을 출력하는 명령어

    cat /etc/shadow

    • /etc/shadow : 사용자의 암호화된 비밀번호 및 패스워드 정책 관련 정보를 저장하는 파일

24

  • 사용자가 현재 세션에서 다른 그룹으로 전환하여 해당 그룹의 권한을 일시적으로 적용받도록 하는 명령어

    newgrp

25

사용자와 그룹 관리 관련 명령어

  • 그룹 파일의 무결성 검사

    grpck

  • 사용자가 시스템에 로그인할 때 사용

    login

  • 다른 사용자 계정으로 전환

    su

파일 관리 명령어

  • 파일 및 디렉터리의 목록과 정보 조회

    ls

26

$ ls -l /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 Oct 1 2022 /usr/sbin/adduser -> useradd

위의 명령어의 실행결과

  • root 그룹의 사용자는 adduser 파일에 대한 읽기 권한 존재
  • adduser 파일의 소유자는 root
  • adduser 파일 실행 시 useradd 명령어가 실행됨
  • [오답] 일반 사용자에게 useradd 파일을 실행할 권한 없음 → useradd 파일의 권한은 추가로 확인해야 함
    • /user/sbin/adduser 는 심볼릭 링크 파일로, 모든 사용자에게 읽기, 쓰기, 실행 권한을 부여하고 있음
    • 하지만, 해당 명령어가 가리키고 있는 실제 파일 useradd 의 실행 권한은 해당 출력 결과만으로 알 수 없음

실행 결과 분석

  • 첫 번째 문자 l 은 심볼릭 링크(symbolic link) 를 의미함
    • 즉, /usr/sbin/adduser 파일은 실제 실행 파일이 아니라 다른 파일을 가리키는 링크
    • 여기서 useradd 라는 실제 파일을 가리키고 있음 → /usr/sbin/adduser 명령어를 실행하면 실제로는 useradd 명령어가 실행됨
  • rwxrwxrwx (모든 사용자 권한 777 부여)
    • 소유자 (root) → rwx (읽기, 쓰기, 실행 권한)
    • 소유 그룹 (root) → rwx (읽기, 쓰기, 실행 권한)
    • 기타 사용자 (others) → rwx (읽기, 쓰기, 실행 권한)

27

$ umask ( )

$ touch myfile

$ ls -l myfile

-rw-r--r--. 1 francis francis 0 Sep 19 15:39 myfile
  • 빈칸에 들어갈 값

    0022

    [계산과정]

    • 기본 파일 권한
      • 일반 파일 : 0666, 디렉터리 : 0777
    • umask값이 적용되는 방식
      • 파일의 실제 권한 = 기본권한 - 실제 파일 권한
      • rw-r—r— : 실제 파일 권한으로, 0644
      • 즉, 0666 - 0644 = 0022

28

$ ls -ld /tmp
drwxrwxrwt 18 root root 4096 Sep 19 15:58 /tmp

위의 명령어의 수행과 수행결과

  • /tmp : 디렉터리 → drwxrwxrwt 에서 d 가 디렉터리를 의미
  • 디렉터리 자체 정보를 출력하기 위해 -d 옵션 사용 → ls -ld 에서 -d 사용
  • 누구나 /tmp 디렉터리에 파일을 생성 가능
  • [오답] 누구나 /tmp 디렉터리에서 다른 사용자가 생성한 파일 삭제 가능자신이 생성한 파일만 삭제 가능
    • drwxrwxrwt 에서 t스티키 비트
    • 스티키 비트가 없는 경우, 디렉터리에 쓰기 권한(w)이 있는 경우 다른 사용자의 파일도 삭제 가능
    • 스티키 비트가 있는 경우, 사용자는 자신이 생성한 파일만 삭제 가능
    • 즉, /tmp 디렉터리는 스티키 비트(t)가 설정되어 있어서 모든 사용자가 파일을 생성할 수 있지만, 자신이 생성한 파일만 삭제할 수 있음

29

$ ls -lR

total 0

drwxrwxr-x. 3 francis francis 18 Sep 19
16:57 dir1

/dir1:

total 0

drwxrwxr-x. 2 francis francis 6 Sep 19
16:57 dir2

/dir1/dir2:

total 0
  • 디렉터리 dir1을 삭제하는 방법

    rmdir -p dir1/dir2

    • rmdir : 비어있는 디렉터리만 삭제
    • rmdir -p : 경로에 있는 비어있는 하위 디렉터리부터 상위 디렉터리까지 순차적으로 삭제

30

스왑(swap)

  • swapon : 활성화된 스왑 공간 확인
  • swapoff : 스왑 공간 비활성화
  • 스왑 공간은 메모리가 부족할 때 디스크의 일부를 메모리처럼 사용
  • [오답] 스왑 공간은 항상 물리적 메모리보다 우선적으로 사용물리적 메모리가 부족할 때 사용되며, 물리적 메모리보다 우선적으로 사용되지 않음

31

  • 현재 실행중인 백그라운드 작업 목록을 표시하는 명령어

    jobs

  • 포그라운드에서 중지된 작업을 백그라운드에서 다시 실행하는 명령어

    bg

32

nohup 명령어

  • 터미널 세션이 종료된 후에도 프로세스를 계속 실행
  • 기본적으로 nohup.out 파일에 출력이 저장
  • 시스템이 종료되면 해당 프로세스도 종료됨
  • [오답] 프로세스를 백그라운드에서 자동 실행자동 실행되지 않음
    • 백그라운드에서 실행하려면 명령어 뒤에 &를 추가해야 함

33

$ ls -l /etc/at.*

-rw-r--r--. 1 root root 1 Sep 29 2022 /etc/at.deny

$ cat /etc/at.deny

$

실행결과 분석

  • ls -l /etc/at.*
    • ls -l : 지정된 파일의 상세 정보 출력
    • /etc/at.* : /etc 디렉터리 내에서 at. 으로 시작하는 모든 파일을 찾음
  • -rw-r--r--. 1 root root 1 Sep 29 2022 /etc/at.deny
    • - : 일반 파일(디렉터리 X)
    • rw-r—r— : root만 수정 가능하고, 다른 사용자들은 읽기만 가능
    • . : SELinux 보안 컨텍스트 존재
    • 즉, /etc/at.deny 파일은 root만 수정 가능하고, 다른 사용자는 읽기 가능
  • cat /etc/at.deny
    • /etc/at.deny 파일에는 at 명령어를 사용할 수 없는 사용자 목록이 저장됨
    • 아무런 내용이 출력되지 않음 → 파일이 비어있음

문제

  • /etc/at.allow/etc/at.deny 환경 설정 파일을 통해 일반 사용자가 at 명령어를 사용하거나 불가하게 설정 가능
  • /etc/at.deny 설정 파일은 root 사용자만 수정 가능
  • /etc/at.deny 설정 파일에 지정된 사용자가 존재하지 않음
  • [오답] ~~/etc/at.allow 파일이 존재하지 않으므로 일반 사용자는 at 명령어를 사용할 수 없음~~ → 모든 사용자는 at 명령어 사용 가능
    • /etc/at.allow 파일이 존재하지 않는 경우, etc/at.deny 파일을 참조하여 at 명령어 사용이 제한됨
    • /etc/at.deny 파일도 비어있으면, 모든 사용자가 at 명령어 사용 가능

34

  • ( ) nano*

    pkill

    • pkill : 주어진 정규 표현식에 부합하는 프로세스를 찾아 종료
      • nano* 은 nano로 시작하는 모든 프로세스를 뜻함

    [오답]

    • killall : 프로세스 이름을 기반으로 작동하지만, 정규 표현식은 지원하지 않음
    • kill : 프로세스 IP(PID)를 대상으로 종료
    • bg : job ID를 대상으로 함

35

/proc 디렉터리

  • 실행 중인 프로세스의 명령줄 인자, 작업 디렉터리, 환경 변수 등 세부 정보를 포함
  • 시스템의 CPU, 장치, 파일 시스템 등의 정보도 포함
  • /proc/self/maps 열람시 현재 프로세스의 메모리 맵 확인
  • [오답] 디스크에 물리적으로 존재하는 디렉터리 → 가상 파일 시스템으로, 디스크에 물리적으로 저장된 파일이 아닌 메모리 상에서 동적으로 생성된 파일들로 구성됨

36

패키지 관리 도구

  • 고수준 패키지 관리 도구로 패키지 의존성을 자동으로 해결하고, 패키지 저장소를 통해 패키지를 관리

    yum, apt, zypper

  • 저수준 패키지 관리 도구로 개별 패키지를 설치, 삭제하거나 정보 확인만을 수행하며 의존성 해결을 자동으로 처리하지 않음

    rpm

37

rpm 명령어의 패키지 검증

  • rpm -V : 패키지 파일의 무결성 검증
  • 검증 결과에서 5다이제스트(해시값)문제가 있음을 나타냄
  • 검증 결과가 아무것도 출력되지 않으면 해당 패키지는 정상
  • [오류] 검증 결과에서 S파일의 소유권과 관련된 문제가 있음을 나타냄 → 파일 크기가 다름을 의미
    • U : 파일의 소유권이 문제가 있음을 나타냄

38

yum 명령어

  • 패키지를 레포지토리에서 다운받아 설치

    yum install mariadb

  • 패키지 삭제

    yum remove mariadb

  • 레포지토리의 패키지 정보를 갱신

    yum update mariadb

  • 패키지 캐시 또는 메타데이터를 정리하는 명령어

    yum clean all

    yum clean metadata

    yum clean packages

    • 특정 패키지와 관련된 명령어가 아니기 때문에 특정 패키지를 지정할 수 없음

39

tar or tar.gz 파일의 생성 검증

  • tar -tvf archive.tar 을 통해 tar 파일의 내부 파일 목록 확인함. 간접적으로 파일이 정상적으로 생성되었는 지 확인 가능
  • tar -xvf archive.tar : tar 파일을 실제로 추출하여 파일들이 정상적으로 해제 되었는 지 확인
  • tar -cvf archive.tar : tar를 생성
  • [오답] gunzip -t archive.tar.gz : tar.gz 파일을 실제로 추출하여 파일들이 정상적으로 해제되는지 확인직접적으로 무결성을 체크할 수 있는 -t 옵션을 통해 gzip 파일의 무결성을 검사함

40

893 libs found in cache '/etc/ld.so.cache'

p11-kit-trust.so (libc6, x86-64) => /lib64/p11-kit-trust.so
libzstd.so.1 (libc6, x86-64) => /lib64/libzstd.so.1
libzhuyin.so.13 (libc6, x86-64) => /lib64/libzhuyin.so.13
libz.so.1 (libc6, x86-64) => /lib64/libz.so.1
libyelp.so.0 (libc6, x86-64) => /lib64/libyelp.so.0
libyaml-0.so.2 (libc6, x86-64) => /lib64/libyaml-0.so.2
libyajl.so.2 (libc6, x86-64) => /lib64/libyajl.so.2
libxtables.so.12 (libc6, x86-64) => /lib64/libxtables.so.12
  • 위의 실행 결과에 해당하는 명령어

    ldconfig -p

    • ldconfig : 시스템의 공유 라이브러리의 캐시 관리
    • -p : 현재 캐시에 저장된 모든 공유 라이브러리 목록과 경로 출력

41

  • 실행결과로 5.15.0-60-generic 가 올 수 있는 명령어

    uname -r

    • -r : 커널의 정식 버전 번호 출력
    • -s : 커널 이름 출력
    • -v : 커널이 빌드된 날짜 및 빌드 번호 등 커널 컴파일과 관련된 정보 출력
    • -a : 관련 모든 정보 출력

42

리눅스 커널을 컴파일할 때 필요한 모듈을 선택하고, 필요한 환경 설정을 완료하였다. 그리고 커널 컴파일 또한 이상 없음을 확인하였다. 이제 이러한 설정을 유지한 채 초기 상태에서 커널을 다시 컴파일하려고 한다.

  • 위의 상황에서 가장 먼저 사용할 수 있는 명령어

    make clean

    • make clean : 커널 환경설정을 제외한 대부분의 파일을 모두 제거
    • make mrproper : 커널 환경설정을 포함하여 모든 파일 제거
    • make distclean : mrproper의 동작을 모두 수행하고, 추가로 백업 및 패치 파일도 모두 제거
    • make config : 커널 설정을 새로 구성하거나 수정 → 관련 없음

43

  • 모듈 간 의존성을 고려하여 모듈을 언로드 할 수 있는 명령어

    modprobe

    • 지정한 모듈을 제거할 때, 해당 모듈에 의존하는 다른 모듈도 함께 제거

      modprobe -r

    • 모듈을 제거하는 기능은 있지만, 의존성이 있는 모듈이 있을 경우 제거에 실패

      rmmod

    • 모듈을 커널에 로드하는 명령어

      insmod

    • 현재 커널에 로드된 모듈의 목록과 정보를 출력

      lsmod

44

$
kernel/drivers/net/ethernet/e1000e/e1000e.ko: kernel/net/core/libphy.ko
kernel/drivers/net/ethernet/mii.ko
kernel/drivers/scsi/scsi_mod.ko: kernel/drivers/scsi/scsi_common.ko
kernel/fs/nfs/nfs.ko: kernel/fs/lockd/lockd.ko kernel/fs/sunrpc/sunrpc.ko
kernel/net/ipv4/tcp_cubic.ko: kernel/net/ipv4/tcp_cong.ko
kernel/drivers/input/serio/i8042.ko:
  • 위의 파일을 생성할 수 있는 명령어

    depmod

    • depmod : 모듈 간 의존성 정보를 분석하여 modules.dep 파일을 생성하는 명령어

45

커널 컴파일 과정

  1. make menuconfig : 커널 설정 구성
  2. make bzimage : 부팅 가능한 커널 이미지 생성
  3. make modules : 커널 외부에서 동적으로 로드할 모듈을 컴파일
  4. make install : 최종적으로 생성된 커널 이미지와 모듈을 시스템에 설치

46

하드 디스크를 새로 장착 후, 시스템에 마운트 과정

  1. fdisk -l : 리눅스 시스템에서 하드디스크를 새로 장착한 후 확인
  2. fdisk /dev/sdb : 파티션 생성
  3. mkfs.ext4 /dev/sdb5 : 포맷
  4. mount /dev/sd5 /mnt : 마운트

47

CUPS(Common Unix Printing)

  • CUPS의 데몬으로, 프린트 요청을 관리하고 처리하는 핵심 서비스

    cupsd

  • CUPS에서 프린터를 관리하는 명령어로, 프린터 추가, 제거, 속성 설정 가능

    lpadmin

  • 프린터 모델의 기능과 옵션을 설명하는 환경설정 파일

    ppd(PostScript Printer Description)

[오답]

  • 파일 시스템의 마운트 정보를 포함하는 환경설정 파일

    fstab

48

프린터 작업의 대기열 상태 조회

  • 프린터와 관련된 상태 정보 및 대기열 상태를 조회하는 명령어

    lpstat

  • LPD(Linux Printing Daemon) 관리 명령어로, 대기열의 상태를 관리할 수 있지만 CUPS에서는 대기열의 상태 정보만 한정적으로 제공

    lpc

  • 프린터 대기열 상태를 확인하는 명령어로, 현재 대기 중인 프린터 작업 목록 조회

    lpq

[오답]

  • 프린터 작업을 전송하는 명령어 → 대기열 상태 조회와 관련 없음

    lpr

49

ALSA(Advanced Linux Sound Architecture)의 기능

  • 하드웨어 기반 MIDI 합성 기능
  • 다중 채널 하드웨어 믹싱
  • 사운드 카드 자동 인식
  • [오답] 반이중(Half-duplex) 입출력 가능 → 전이중(Full-duplex) 오디오 입출력을 지원하며, 동시에 오디오의 입출력을 처리 가능

50

  • 리눅스에서 이미지 스캔을 수행하는 명령어

    scanimage

    [오답]

    • 스캐너 장치를 탐지하는 명령어, 스캔을 직접 수행하지 않음

      sane-find-scanner

    • ADF(Automatic Document Feeder)를 사용하는 스캐너에서 여러 장의 문서를 자동으로 스캔하는 명령어

      scanadf

    • GUI 기반의 스캔 프로그램으로, 명령어가 아닌 그래픽 프로그램

      xsane

51

  • 로그인 실패 기록을 보관하는 바이너리 형식의 로그파일로, lastb 명령어로 확인 가능

    /var/log/btmp

    [오답]

    • 로그인 및 로그아웃 기록 보관

      /var/log/wtmp

    • 현재 로그인한 사용자 정보 기록

      /var/log/utmp

52

  • mail 서비스가 발생하는 로그 중 디버그 메시지 이상의 로그를 기록하고, 커널 관련 로그는 경고 수준 이상의 로그를 기록하는 로그 파일 설정

    mail.debug; kern.warning

    • . : 지정한 수준 이상의 로그를 기록함
    • = : 지정한 수준의 로그만 기록

      mail.=debug; kern.=warnig

53

  • 리눅스 시스템에서 로그 파일을 저장할 수 있는 공간에 제약이 있다. 저장 공간의 한계로 오래된 로그는 삭제되어도 무방할 때 사용하는 명령어

    logrotate

    [오답]

    • 저널 형식으로 보관된 systemd의 로그를 조회하는 명령어

      journalctl

    • 커널 메시지를 출력하는 명령어

      dmesg

    • 특정 크기의 파일을 만드는 명령어

      truncate

54

rsyslog

  • 시스템 로그 메시지를 수집하고 저장
  • 원격 서버로 로그를 전송
  • 로그 메시지에 따라 다양한 처리 규칙 설정 가능
  • [오류] 환경설정 파일은 /var/log/etc/rsyslog.conf

55

  • sysctl 명령어를 사용해 커널 매개변수를 동적으로 변경할 수 있지만, 시스템이 재부팅되면 설정이 초기화된다. 이를 영구적으로 적용하려면 어떤 파일의 수정이 필요한가?

    /etc/sysctl.conf

    [오답]

    • 파일 시스템 마운트와 관련된 설정파일

      /etc/fstab

    • 로그 관리 설정 파일

      /etc/rsyslog.conf

    • 크론 작업을 관리하는 설정 파일

      /etc/crontab

56

리눅스 시스템의 보안 강화

  • 시스템 내부 보안 강화
    • 불필요한 네트워크 서비스 종료
    • 방화벽 설정을 통해 외부 접근 제한
    • 루트 사용자 계정을 직접 사용하여 원격 접속 제한
  • 시스템 외부 접근 제어
    • 지문 인식을 통한 출입문 인증 강화

57

  • 리눅스의 기본 허가권은 소유자, 그룹, 다른 사용자에 대하여 지정할 수 있다. 이 한계를 극복하기 위해 파일이나 디렉터리 접근에 대한 세밀한 권한을 부여하는 보안 통제 기능 명령어

    setfacl

58

SYN FLOODING 방어

  • /proc/sys/net/ipv4/tcp_syncookies를 1로 설정
    • tcp_syncookie : SYN Flooding 공격을 방어하기 위해 SYN 쿠키를 활성화하는 설정으로 SYN 패킷이 과도하게 발생할 때 시스템 자원을 보호하는 효과가 있음

59

SELinux의 동작모드

  • Enforcing : 정책 강제 적용
  • Permissive : 정책을 적용하지 않고 경고만 기록
  • Disabled : SELinux가 비활성화된 상태
  • [오답] Restrictive

60

백업

  • 네트워크로 연결된 리모트 컴퓨터의 파일들을 동기화하는 도구로 속도가 빠름

    rsync

  • 아카이브로 파일을 복사하거나 아카이브에서 파일을 추출할 때 사용

    cpio

  • dump 명령으로 생성한 백업 파일을 복원할 때 사용

    restore

[오답]

  • 미리 정한 시간에 명령어, 프로그램, 작업 등을 실행

    cron

    • 주기적으로 백업 작업을 스케줄링하는데 사용할 수 있으나 백업을 직접 수행하는 명령어는 아님

3과목

61

아파치 웹 서버

  • 아파치 재단에서 주도하는 대표적인 오픈소스 웹 서버
  • 사용자 요청에 따라 별도의 프로세스나 스레드를 생성하여 처리
  • Loadable Module 기능을 제공하여 서버 동작 확장
  • [오답] 비동기 이벤트 방식으로 동작하며, 로드밸런스와 리버스 프록시 등의 기능을 기본으로 제공 → Nginx 웹 서버

62

아파치 웹 서버의 설치 여부 확인

  • telnet [localhost](http://localhost) 80 : 아파치 웹 서버가 80 포트로 실행된 경우 정상적으로 응답, 웹 서버가 설치되어 있어도 실행되지 않는다면 정상 응답하지 않음
  • sudo dnf list installed | grep httpd : 최근 리눅스는 yum과 함께 dnf를 지원하여 패키지(서비스)를 설치하고 관리할 수 있음
  • sudo systemctl status http : 아파치 서비스의 상태 확인
  • [오답] httpd -v : 아파치의 버전 확인

63

아파치 웹 서버를 소스코드를 통해 설치하는 순서

  1. /configure : 소스코드가 저장된 폴더에서 환경 설정 및 의존성 확인
  2. make : 소스코드 컴파일
  3. make install : 컴파일된 파일을 시스템에 설치

64

httpd의 실행 옵션

  • httpd -t : 환경 설정 파일인 httpd.conf문법적 오류 점검
  • httpd -l : 아파치 웹 서버와 함께 컴파일된 모듈 목록 출력
  • httpd -M : 아파치 웹 서버에 로딩된 모듈 목록 출력
  • httpd -S : [오류] 서버의 실행중인 상태를 상세하게 표시 → 현재 설정된 가상 호스트 목록 출력

65

  • 아파치 웹 서버의 기본 설정 항목 중 웹 디렉터리를 방문할 경우 처음 열릴 파일 목록을 지정하는 명령어

    DirectoryIndex

    [오답]

    • DSO(Dynamic Shared Object) 방식으로 로딩할 모듈 지정

      LoadModule

    • 웹 문서가 저장되는 기본 디렉터리 경로 지정

      DocumentRoot

    • 기본 MIME 타입 지정

      DefaultType

67

PHP의 주요 설정 파일인 php.ini의 항목

  • HTTP, FTP 등 URL을 이용하여 파일을 오픈할 수 있도록 구성

    allow_url_open

  • <? ~ > 형식의 이전 소스코드 방식에 대한 지원 여부 설정

    short_open_tag

  • 요청을 처리할 최대 시간 설정

    max_execution_time

  • 한 번의 요청으로 업로드할 수 있는 파일의 최대 개수 지정

    max_file_uploads

68

  • MySQL의 root 패스워드를 변경하기 위해 사용할 명령어

    mysqladmin

69

LDAP

  • TCP 기반 프로토콜
  • LDAP 서버에는 여러 엔트리가 트리 구조로 구성됨
  • LDAP의 엔트리는 다수의 속성으로 구성되며 속성은 이름, 값의 형식임
  • [오답] RDBMS에 비해 느린 응답 속도를 가지나, 자주 변경되는 정보 관리에 유리 → RDBMS에 비해 빠른 검색 속도를 제공하지만, 자주 변경되는 정보의 관리에는 다소 불리

70

  • NIS 서버의 구성(맵 파일)의 내용을 확인하는 명령어

    ypcat

    [오답]

    • NIS를 이용하여 로그인한 후 인증에 사용한 NIS 서버 조회

      ypwhich

    • NIS 서버에 등록된 사용자의 셸(shell)을 변경

      ypchsh

    • NIS 도메인 이름을 설정하거나 설정된 이름 표시

      nisdomainname

71

삼바(SAMBA)

  • TCP/IP를 기반으로 한 SMB(Server Message Block) 프로토콜 이용
  • WINS(Windows Internet Name Service)를 이용하여 IP 대신 컴퓨터 이름 이용 가능
  • CIFS(Common Internet File System)은 SMB인터넷까지 확장한 표준 프로토콜
  • [오답] 삼바는 GPL 기반의 자유 소프트웨어리눅스와 윈도우 간 디렉터리와 파일을 공유한다. 단, USB와 같은 장치는 지원하지 않음USB 등을 공유하는데 사용 가능

72

삼바(SAMBA) 관련 구성요소 및 패키지

  • UDP 137, 138 포트를 이용하여 호스트를 검색하고, TCP 139번 포트를 이용하여 호스트에 접속

    nmbd

  • TCP 445 포트를 이용하며, 삼바 프로토콜의 주요 기능 담당

    smbd

  • 삼바 관련 라이브러리 및 스크립트 등을 포함하는 핵심 패키지

    samba

  • 삼바 서버 및 클라이언트에서 공통으로 사용하는 설정 및 명령어를 포함하여 제공

    samba-common

73

  • 삼바 서비스가 사용하는 설정 파일인 smb.conf의 security 옵션 항목 중 삼바 서버에 접속 시 OS에 로그온한 사용자명으로 패스워드를 확인하는 것

    user

    [오답]

    • 인증 없이 삼바 서버에 접근

      share

    • 윈도우 서버와 같은 다른 삼바 서버에 사용자명과 패스워드를 전달하여 확인

      server

    • 윈도우 서버의 도메인 컨트롤러에 사용자명과 패스워드를 전달하여 확인

      domain

75

NIS의 설정 파일인 /etc/export의 항목

  • root 권한의 접근 허용

    no_root_squash

  • root 요청을 nobody(또는 nfsnobody)로 매핑

    root_squash

  • 모든 사용자(root 포함)의 권한을 nobody(또는 nfsnobody)로 매핑

    all_squash

  • 특정 계정의 권한(uid)을 할당

    anonuid

76

vsftpd 서버 관련 설정 파일

  • vsftpd 서버의 기본 설정 파일

    /etc/vsftpd/sftpd.conf

  • vsftpd 서버에 접근할 수 없는 사용자 지정

    /etc/vsftpd/ftuser

  • user_list deny=NO 로 설정되면, user_list에 등록된 사용자는 FTP 서비스 사용 가능

    /etc/vsftpd/user_list

  • vspftd의 PAM(Pluggable Authentication Module) 설정 파일

    /etc/pam.d/vsftpd

77

메일 관련 프로토콜

  • TCP 25번 포트를 이용하며, 이메일을 전송하기 위한 프로토콜

    SMTP

  • TCP 143번 포트를 이용하며 메일 서버에 도착한 메일을 수신하는 프로토콜

    IMAP

  • 메일 박스에 도착한 메일을 가져오거나 전달하는 역할을 수행하는 프로그램으로 대표적으로 procmail이 있음

    MDA

  • 사용자가 메일을 수신 혹은 발신할 때 사용하는 프로그램으로 대표적으로 kmail(KDE 기반), evolution(X 윈도우 기반), mutt(텍스트 기반) 등이 있음

    MUA

78

sendmail의 주요 설정 파일 중 /etc/aliases

  • 메일의 별칭 또는 특정 계정으로 수신한 이메일을 다른 계정으로 전달하도록 설정
  • webmaster : ihduser.kaituser와 같은 형식을 따름
  • admin: :include:/etc/mail_admin 와 같은 형식으로 사용자 이름이 지정된 파일을 지정
  • [오답] sendmail —reload **명령으로 적용 → **newaliasessendmail -bi 명령으로 적용

79

/etc/mail/access의 내용 수정 후 적용

  • ( ) hash /etc/mail/access < /etc/mail/access

    makemap

    • /etc/mail/access : 메일 서버에 접속하는 호스트의 접근을 제어하는 설정 파일

80

sendmail의 /etc/amil/sendmail.cf 설정 파일 항목

  • 메일 수신 호스트 이름 설정

    Cw

  • 메일 발송 시 발신 도메인 이름을 강제로 지정

    Dj

  • sendmail이 회신(return) 메일을 보낼 때 사용하는 사용자 이름 지정

    Dn

  • relay 허용 도메인 설정

    FR-o

81

  • sendmail 관련 명령어 중 메일 큐의 내용을 표시하는 명령

    mailq

82

DNS 및 리눅스 DNS 서비스

  • DNS는 TCP 53번 포트와 UDP 53번 포트를 모두 이용
  • [오답] ~~/etc/host~~ 파일을 이용하여 로컬 호스트에서만 사용할 수 있는 항목 설정 → /etc/hosts 파일
  • [오답] DNS 서버 종류 중 secondary Name Server는 도메인 관리 없이 리졸빙(resolving) 역할만 수행 → caching name server
  • [오답] 도메인 이름에 대한 IP를 관리하며, IP를 이용하여 도메인명을 역으로 확인할 수 없음IP에 대한 도메인명을 확인하기 위해 사용

83

  • DNS 관련 프로그램인 bind의 보안성을 향상하기 위해 사용, bind 관련 기본 디렉터리를 가상의 디렉터리로 변환하는 패키지

    bind-chroot

84

/etc/named.conf 설정 파일

  • 주석은 / * ~ *, //, # 등을 모두 사용
  • 주요 구문의 마지막에는 세미콜론을 붙임
  • 별도의 파일에 설정을 정의한 후 include 지시자로 포함
  • [오답] options.acl, logging, zone 등의 주요 구문이 있고, 각 구문은 **대괄호로 둘러쌈 → **중괄호

85

/etc/named.conf의 options 구문

  • zone 파일의 저장 디렉터리를 설정하며, 반드시 필요한 항목임

    directory

  • forwarders와 함께 사용하며 도메인 주소에 대한 질의를 다른 서버에 넘김

    forward only

  • 네임 서버에 질의할 수 있는 호스트 지정

    allow-query

  • 존(zone) 파일 내용을 복사(transfer)할 대상 제한

    allow-transfer

  • 하위 도메인 검색 허용 여부 지정

    recursion

86

SOA(Start Of Authority) 레코드 속성

  • Zone 파일이 갱신되면 증가하게 되는 일종의 일련번호

    Serial_number

  • 보조 네임 서버가 정보 업데이트를 위해 주 네임서버에 얼마나 자주 접근, 점검할 지 지정

    Refresh_number

  • 네임 서버(Name Server)의 호스트명과 도메인명을 지정하며, 세미콜론(;) .으로 끝남

    Nameserver

  • 보조 네임 서버가 주 네임 서버로 접근 실패한 경우 재시도할 주기 지정

    Retry_number

87

반가상화

  • 게스트 OS하이퍼바이저에 하드웨어의 제어를 요청하여 동작
  • 하이퍼바이저가 하드웨어 사용을 통제하므로 상대적으로 높은 성능 제공
  • XENCPU 전가상화, 반가상화를 모두 지원하는 하이퍼바이저 기반의 가상화 기술
  • [오답] 윈도우, 리눅스 등 다양한 게스트 OS를 수정없이 사용 → 게스트 OS의 수정이 필요하며 리눅스 등 오픈소스가 주로 지원함

88

가상화 기술, 가상화를 지원하는 프로그램

  • 게스트 운영체제의 설치가 필요 없는 경량화된 가상 기술

    Docker

  • 오라클이 주도하여 개발 및 배포하고 있는 가상화 소프트웨어

    VirtualBox

  • [오답] SaaS IaaS 형태의 클라우드 컴퓨팅을 구축할 수 있는 상용 프로그램

    OpenStack

  • 인텔 CPU가 지원하는 VT-xAMD-V를 기반으로 CPU 전가상화를 지원하는 기술

    KVM

89

가상화 관련 명령어 & 도구

  • 가상화 현황을 top(CPU 자원 상태 등 표시)와 유사한 형식으로 출력

    virt-top

  • 텍스트 기반의 콘솔 환경에서 가상머신을 관리해주는 도구

    virsh

  • 가상 머신을 손쉽게 시작 및 종료할 수 있고, 가상 머신의 CPU 사용량, 호스트 CPU 사용량 등을 모니터링 할 수 있는 GUI 기반의 도구

    virt-manager

  • Linux에서 가상화 지원을 위한 API, 데몬, 라이브러리 관리 툴들의 모음

    libvirt

  • 가상화 관리 도구와 통신하여 원격 도메인의 명령을 전달

    [오답] virtliblibvirtd

90

가상화 지원 소프트웨어의 디스크 이미지 형식

  • 버추얼박스에서만 사용할 수 있는 고유의 이미지 형식

    VDI(Virtual Disk Image)

  • 버추얼박스, Hyper-V, Xen에서 사용할 수 있는 디스크 이미지 형식

    VHD(Virtual Hard Disk)

  • 버추얼박스, VMWare Player에서 사용할 수 있는 디스크 이미지 형식

    VMDK(Virtual Machine Disk)

  • 제품 및 플랫폼 간의 가상 장치 교환을 지원하기 위한 파일 형식 즉, 가상머신을 배포하고 이동할 수 있도록 설계된 패키지 형식

    OVA(Open Virtualization Appliance)

91

프록시 서버의 사용 분야

  • 데이터 캐시 - 컨텐츠 요청에 대한 응답 속도 향상
  • 요청 전달 - 다수의 서버로 서버 팜(Server Farm)을 구성한 후 규칙에 따라 요청을 전달하여 부하분산을 지원
  • 컨텐츠 점검 : 전송 컨텐츠를 분석 혹은 점검하여 악성 코드 전달 방지
  • [오답] 구성 비용 절감 - 웹 서버와 응용 서버를 하나로 통합 및 대체하여 운영 비용 절감프록시는 웹 서버와 응용 서버를 하나로 통합 및 대체하는 역할을 하지 않는다. 오히려 기존 서버 시스템에 추가적으로 도입되는 인프라임. 또한, 직접적인 비용 절감 효과도 없음

92

  • 리눅스에서 사용할 수 있는 대표적인 프록시 서버의 명칭

    squid

    [오답]

    • DNS 서비스 명칭

      named

    • DHCP 서비스 명칭 (IP 주소 할당 관련)

      dhcpd

    • SAMBA 관련 서비스 명칭 (파일 및 프린터 공유 관련)

      smbd

93

DHCP 설정 파일인 dhcpd.conf의 항목

  • 클라이언트에 할당할 IP 범위를 지정

    range

  • 네임 서버 지정

    option domain-name-servers

  • 게이트웨이 주소 지정

    option routers

  • [오답] 임대 요청 만료 기간 없이 할당된 주소를 계속 유지하도록 지정특정 MAC 주소를 갖는 시스템에 고정적인 IP주소를 할당

    fixed-address

94

리눅스 원격 접속 및 제어 서비스

  • 비트맵 기반 RFB(Remote Frame Buffer) 프로토콜을 이용하여 원격 접속

    VNC(Virtual Network Computing)

  • VNC 서버에 접근할 때 사용할 패스워드를 설정하는 명령어

    vncpasswd

  • 대표적인 VNC Client 프로그램

    tigervnc

  • TCP [오답] 21번22번 포트를 이용하며 암호화를 이용한 안전한 명령어 전달 및 제어를 지원

    ssh

    • TCP 21번 포트는 FTP를 위한 기본 제어 포트임

95

NTP 서비스 및 관련 명령어

  • /etc/ntp.conf를 기본 설정 파일로 이용하며, server 항목에 NTP 서버를 지정
  • 계급(Stratum)을 이용하며, 숫자가 낮은 계급(단계)이 더 품질이 우수
  • NTP(Network Time Protocol)을 구현한 프로그램

    chrony

  • [오답] NTP 질의 명령어 → 원격 서버와 시간을 동기화

    ntpdate

96

ifconfig 명령 실행 결과

[root@localhost ~]# ifconfig

enp0s3: flags=4419(UP,BROADCAST,RUNNING,PROMISC,MULTICAST)
mtu 1500

inet 10.0.2.54 netmask 255.255.255.0
broadcast 10.0.2.255

inet6 fe80::a00:27ff:fe5b:e837
prefixlen 64 scopeid 0x20(link)
ether 08:00:27:5b:e8:37 txqueuelen
1000 (Ethernet)

RX packets 444 bytes 67236 (65.6 KiB)

RX errors 0 dropped 0 overruns 0
frame 0

TX packets 465 bytes 51027 (49.8 KiB)
TX errors 0 dropped 0 overruns 0
carrier 0 collisions 0
  • 네트워크 기반 공격 중 어떤 공격을 의심할 수 있는가

    스니핑(Sniffing)

    • ifconfig 출력 시 네트워크 정보에 PROMISC(Promiscuous Mode)가 설정되어 있다.
    • PROMISC : 일반적으로 네트워크 인터페이스는 자신에게 향하는 패킷만 수신하지만, PROMISC이 활성화되면 해당 네트워크를 지나가는 모든 패킷을 수신
    • 네트워크 트래픽을 도청하여 민감한 정보를 가로채는 공격 방식

      스니핑(Sniffing)

    [오답]

    • 네트워크 서비스 혹은 패킷 정보를 임의로 변경하여 공격에 사용하는 기법

      스푸핑(Spoofing)

    • 공격 대상의 시스템 및 네트워크 취약점 등을 공격하여 과도한 부하를 발생시키고 정상적인 서비스를 불가능하게 하는 가용성 침해 공격

      DoS(Denial of Service)

    • DDoS의 에이전트 역할을 하는 악성코드

      malware

97

DoS(Denial of Service)

  • ICMP Echo 패킷을 정상적인 크기(64k)보다 매우 크게 전송하여 시스템에 문제를 일으키는 공격 기법

    Ping of Death

  • 발신 IP 주소를 공격 대상의 IP 주소로 위장한 후 공격대상에게 전송하는 공격 기법

    Land Attack

  • 대량의 UDP 패킷을 전송하여 공격 대상의 자원을 소모시키는 공격 기법

    UDP Flooding

  • 다양한 포트번호를 이용한 접속 시도로 공격 대상 서버에서 동작하는 서비스를 발견하는 공격 기법

    Port Scanning

  • IP fragmentation에 따라 패킷을 재조립할 때 오프셋(offset)을 임의 변조하여 문제를 일으키는 공격 기법

    Teardrop Attack

98

리눅스를 대상으로 한 해킹 또는 악성 프로그램

  • 데이터를 암호화하여 사용할 수 없도록 만든 후 금전을 요구하는 악성 프로그램

    랜섬웨어(Ransomware)

  • 정상적인 프로그램으로 가장하였으나 내부에 악성코드를 담고 있는 프로그램

    트로이목마(Trojan Horse)

  • 스스로 실행되는 악성 소프트웨어로 자기 복제와 다른 시스템으로 전파되는 특징을 가짐

    웜바이러스(Warm Virus)

  • 해커와 같이 일반적으로 권한이 없는 사용자가 접근할 수 없는 영역에 접근하여 시스템을 제어하도록 설계된 악성 소프트웨어 모음

    루트킷(rootkit)

99

  • 리눅스 시스템에서 사용할 수 있는 대표적인 공개형 IDS 프로그램

    Snort

    [오답]

    • 리눅스의 방화벽이라고도 하며 패킷 필터링 정책을 사용하여 특정 패킷을 분석하고 허용 또는 차단할 수 있음

      iptables

    • 최근 리눅스에서 방화벽 규칙을 관리하는 데몬

      firewalld

    • 네트워크 설정을 확인하고 제어하는 명령어

      ifconfig

100

iptables rule

iptables -A INPUT -s 192.168.10.7 -d localhost -j DROP
  • Source IP가 192.168.10.7인 패킷에 대해 동작
  • 목적지 주소가 설정 시스템(localhost)인 경우 동작
  • 룰에 해당하는 패킷을 대상으로 함
  • [오답] 192.168.10.7에 거부가 되었음을 전달전달하지 않음
    • DROP : 패킷을 거부하고 버림
    • REJECT : 패킷을 거부하고 상대방에게 응답 메시지 전송

© 2021. All rights reserved.

yaejinkong의 블로그