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

1과목

1

  • 리눅스의 특징

    이식성, 멀티 태스킹, 멀티 유저

    [오답]

    • 무료로 사용할 수 있지만, 소스코드가 공개되지 않으며 수정이나 재배포의 자유가 없는 소프트웨어

      프리웨어

      • 리눅스는 자유 소프트웨어로서, GNU, GPL 라이선스하에 소스코드가 공개되어 있고, 누구나 수정 및 재배포가 가능

2

  • 소스코드 공개를 요구하지 않는 라이선스

    MIT

    [오답 - 소스코드 공개를 요구하는 라이선스]

    • 라이브러리의 수정된 부분에 대해 소스코드 공개를 요구

      LGPL

    • 수정된 파일의 소스코드 공개를 요구

      MPL

    • 수정한 소스코드뿐 아니라 소스코드를 활용한 소프트웨어의 소스코드도 공개를 요구

      GPL

3

  • CentOS의 개발 중단 이후, 기존 CentOS 사용자들을 위해 탄생한 배포판으로, CentOS의 개발 목표를 지속적으로 달성하기 위해 커뮤니티 주도로 개발하고 있는 리눅스 배포판

    Rocky Linux

    [오답]

    • 보안테스트윤리적 해킹을 위한 전문 배포판

      Kali Linux

    • 단순하고 유연하면서 경량을 추구하는 배포판

      Arch Linux

    • 데비안 기반의 사용자 친화적인 배포판

      Ubuntu

4

  • 애플리케이션을 컨테이너로 패키징하여 이미지로 빌드하고, 이러한 이미지를 배포 및 실행할 수 있게 해주는 오픈소스 프로그램

    Docker

    [오답]

    • 웹 서버나 리버스 프록시로 많이 쓰고 로드 밸런서로도 활용하는 프로그램

      Nginx

    • 클라우드 인프라를 구축하는데 사용하는 오픈소스 플랫폼

      OpenStack

    • Docker 같은 컨테이너들을 관리하고 오케스트레이션해주는 도구

      Kubernetes

5

  • 여러 대의 서버나 시스템에 작업 부하를 분산시켜 전체적인 성능과 처리 능력을 향상시키는 클러스터 기술

    부하분산 클러스터

    [오답]

    • 복잡한 계산이나 시뮬레이션을 빠르게 처리하기 위한 과학계산용 클러스터

      고계산용 클러스터

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

      고가용성 클러스터

    • 대용량 데이터 저장을 위해 여러 스토리지를 연결한 클러스터

      스토리지 클러스터

6

  • 디스크의 읽기 및 쓰기 향상을 위해 연속된 데이터를 여러 개의 디스크에 라운드로빈 방식으로 기록하는 기술을 적용하는 RAID 방식 (RAID 1, 2, 3, 4)

    RAID 2, 3, 4

    • 스트라이핑(Striping) 기술에 대한 설명
    • RAID 2, 3, 4는 모두 스트라이핑 기술을 사용하여 각각 비트, 바이트, 블록 단위로 데이터를 여러 디스크에 나누어 기록하며 동시에 입출력을 수행한다.
    • RAID 1미러링(Mirroring) 기술을 사용하여 데이터의 안전성을 위해 동일한 데이터를 두 개 이상의 디스크에 복제하여 저장한다.

    • RAID : 여러 개의 저장 장치를 묶어 사용하여 고용량, 고성능 저장 장치의 효과를 제공하는 기술
      • 주요 구성 방식

        구성방식설명
        RAID-0스트라이프(Stripe) 모드로 데이터를 저장 장치에 나누어 기록
        RAID-1미러링(Mirroring) 모드로 데이터를 저장 장치에 중복하여 기록
        RAID-2해밍코드(Hamming Code)를 이용하여 오류를 점검
        RAID-3바이트 단위의 패리티를 이용하여 오류를 점검
        RAID-4블록 단위의 패리티를 이용하여 오류를 점검
        RAID-5- 순환식 패리티 어레이를 포함하며 3개 이상의 디스크 어레이가 필요
        - N개의 디스크를 RAID-5 형식으로 구성할 경우 실제 사용 가능한 용량은 (N-1)개의 디스크 크기와 같음
        RAID-6- 2차 패리티 정보를 분산 저장하여 2개의 저장 장치에 문제가 발생한 경우에도 복구 가능
        - N개의 디스크를 RAID-6 형식으로 구성할 경우 실제 사용 가능한 용량은 (N-2)개의 디스크 크기와 같음

7

  • 고성능 서버를 위해 병렬 처리와 저지연 특성을 갖춘 PCIe 인터페이스를 사용하는 디스크 전송 기술

    NVMe

    [오답]

    • 일반 소비자 컴퓨터 환경에 적합하며 6Gbps 대역폭 수준의 직렬 방식 인터페이스

      S-ATA

    • 대량의 데이터 처리고성능 요구환경에 적합하며 12GBPS 대역폭 수준의 직렬 방식 인터페이스

      SAS

    • 병렬 연결 방식을 사용하지만 단일 명령어큐를 사용하여 명령어를 순차적으로 처리하기 때문에 속도가 느림

      SCSI

8

  • 역할이 다른 하나 (MBR, LILO, GRUB, GRUB2)

    MBR

    • LILO, GRUB, GRUB2는 모두 부트로더이다.
      • 부트로더 : 컴퓨터 부팅 시 운영체제를 선택하고 로드하는 역할 수행
    • MBR(Master Boot Record) : 하드 디스크의 첫 번째 섹터에 위치하며, 부트로더의 위치 정보와 부팅에 필요한 정보를 담고 있는 영역

9

systemd

  • init 프로세스 대체
  • 부팅 시 서비스가 병렬로 시작될 수 있는 기능 제공
  • 데몬을 필요한 순간에만 실행하는 온디맨드 액티베이션 기능 제공
  • [오답] 데몬, 타켓, 장치, 타이머 유닛을 제공 → 데몬 유닛은 올바른 용어가 아니며 서비스 유닛을 이용해야 한다.

10

  • 최대 1EB의 파일시스템과 16TB의 파일 크기를 지원하며 익스텐트(Extent) 기술을 적용하여 단편화를 줄이고 성능을 향상시킨 파일시스템

    ext4

    • ext4는 익스텐트를 통해 연속적인 데이터 블록을 한 번에 할당하여 단편화를 최소화하고, 대용량 파일 처리에 적합하도록 성능을 개선한 파일 시스템

    [오답]

    • ext, ext2, ext3고용량 지원과 익스텐트 기능을 지원하지 않는다.

11

  • 사용자 요청에 따라 시스템 콜을 호출
  • 리눅스의 대표적은 셸은 bash
  • 셸을 통해 파일, 프로세스 관리, 배치 처리 및 시스템 환경 설정을 수행 가능
  • [오답] 모든 셸은 명령어 기반의 대화형 사용자 인터페이스 → 명령어를 통한 CLI 인터페이스뿐 아니라 GUI 인터페이스로도 구현 가능, 스크립트를 사용하여 비대화형으로 자동 작업 처리 가능

12

  • 로그인한 상태에서 새로운 터미널을 열 때마다 로드되는 설정 파일

    ~/.bashrc

    • ~/.bashrc는 사용자가 별도로 로그인하지 않고도 새로운 셸이 시작될 때 적용된다.

    [오답]

    • 시스템 전반의 설정을 정의하는 파일로, 사용자가 로그인할 때 한 번 로드된다.

      /etc/profile

    • 로그인 셸이 시작될 때 실행되는 사용자별 설정 파일

      ~/.bash_profile

    • 사용자가 로그아웃할 때 실행되는 설정 파일

      ~/.bash_logout

13

#!/bin/bash
i=10

until [ $i -lt 5 ]
do
    i=$((i-2))
done

echo "$i"
  • 셸 스크립트의 실행 결과

    4

    • until [ $i -lt 5 ] : i가 5보다 작아질 때까지

14

  • 현재 프로세스의 이미지를 새로운 프로그램의 이미지로 교체하여 새로운 프로그램을 실행하는 함수

    exec

    [오답]

    • 현재 프로세스를 복제하여 자식 프로세스를 생성하는 함수

      fork

    • 시스템 부팅 시 실행되는 첫 번째 프로세스로, 모든 프로세스의 부모 역할을 한다.

      init

    • 현대 리눅스 시스템에서 init 프로세스를 대체하는 시스템 및 서비스 관리 도구

      systemd

15

$ tar -czf backup.tar.gz /home/user

$ ()
[2]+ Stopped tar -czf backup.tar.gz /home/user

$ ()
  • 실행 중인 명령어를 중지한 후, 포그라운드에서 다시 실행하도록 전환하는 과정으로 괄호 안에 들어갈 내용

    ① CTRL^Z ② fg

    • CTRL^Z : 실행 중인 명령어를 중지 상태로 만든다.
    • fg : 중지된 프로세스를 포그라운드로 전환

    [오답]

    • SIGINT 시그널을 전송하여 프로그램을 종료한다.

      CTRL^C

    • EOF(end of file)을 입력하여 파일의 입력을 종료한다.

      CTRL^D

    • 중지된 프로세스를 백그라운드로 전환한다.

      bg

16

  • SDN(Software Defined Networking)은 제어 영역(Control Plane)데이터 전달 영역(Data Plane)을 분리하여, 네트워크의 경로 설정과 패킷 전송을 소프트웨어적으로 제어하는 기술과 가장 연관성이 높은 OSI 7계층

    네트워크 계층

    • SDN네트워크 경로 설정과 패킷 전달을 소프트웨어적으로 제어하는 기술로, 네트워크 계층과 밀접하게 관련이 있다.

    [오답]

    • 동일 네트워크 내의 프레임 전송과 물리적 링크 제어를 담당

      데이터 링크 계층

    • 종단 간 연결 및 데이터 전송의 신뢰성을 제공하는 계층

      전송 계층

    • 사용자가 직접 접하는 애플리케이션 서비스를 제공하는 계층

      응용 계층

17

  • 리눅스 시스템에서 원격 접속과 명령어 실행을 위해 가장 많이 사용되며, 보안적으로 필수적인 포트

    22

    • SSH(Secure Shell) 프로토콜은 원격 접속과 명령어 실행을 위해 사용되며, 포트번호는 22번이다.

    [오답]

    • HTTP 웹 트래픽을 처리하는데 사용되는 포트

      80

    • HTTPS 암호화된 웹 트래픽을 처리하는데 사용되는 포트

      443

    • Syslog를 통해 시스템 로그를 전송하는데 사용되는 포트

      514

18

IPv6

  • IPv4의 주소 고갈 문제를 해결하기 위해 등장한 규격
  • IPv6 주소의 길이는 128비트
  • 흐름 레이블(Flow label)을 통해 QoS 처리가 가능
  • [오답] DHCPv6는 라우터가 제공하는 프리픽스와 인터페이스 식별자를 통해 IP 주소를 할당 → SLAAC
    • DHCPv6 : IPv4의 DHCP와 유사하게 중앙의 서버가 각 노드에 IP 주소를 할당하는 방식
    • IPv6에서는 DHCPv6 없이도 SLAAC(Stateless Address Autoconfiguration)을 통해 IP 주소를 자동으로 할당할 수 있다.
    • SLAAC : 네트워크에 연결된 장치가 라우터로부터 프리픽스 정보를 받아, 자신의 인터페이스 식별자를 결합하여 IP 주소를 생성
  • IPv6(Internet Protocol version 6)
    • IPv6
      • IPv4의 주소 고갈 문제를 해결하기 위해 주소 길이를 128비트로 확장한 프로토콜
      • 16비트 단위로 8자리로 구성된다.
      • 각각은 콜론(:)으로 구분된다.
      • 16진수 값으로 표기되고 0값은 생략가능하다.
    • 특징
      • 헤더를 확장헤더로 옮김으로써 기본 헤더에서 포함하는 필드가 12개에서 8개로 줄어들어 헤더 구조를 단순화하였다.
      • 주소 길이를 128비트로 확장하여 인터넷상 모든 기기에 주소를 할당할 수 있게 됐다.
      • 상위 ISP가 할당받은 주소의 일부분을 할당 받도록 하는 계층적 체계를 갖는다.
      • 호스트의 주소를 자동할당 받을 수 있다.
      • 패킷 출처 인증, 데이터 무결성 및 비밀 보장 기능을 IPv6 확장 헤더를 통해 기본으로 인증 및 보안 기능을 제공한다.
      • 흐름 레이블 필드로 트래픽을 구분한다.
      • 라우터에 의해 QoS 처리가 가능하다.
      • IPv6 호스트는 동일한 주소를 유지하면서 자유롭게 이동할 수 있다.

19

$

gateway (192.168.1.1) at 00:1a:2b:3c:4d:5e
[ether] on eth0

printer (192.168.1.50) at 00:1b:44:11:3a:b7
[ether] on eth0

laptop (192.168.1.21) at 28:c1:e9:12:ab:cd
[ether] on eth0
  • 실행결과에 해당하는 명령어

    arp

    • ARP(Address Resolution Protocol) 테이블을 보여주는 결과
    • arp 명령어네트워크의 IP 주소해당 MAC 주소 간의 매핑 정보를 확인하는 데 사용한다.

20

  • nslookup, dig, host, ip 중 성격이 다른 명령어

    ip

    • nslookup, dig, host 는 모두 DNS 조회와 관련된 명령어
      • 네임 서버 정보를 조회하거나 IP를 통해 도메인명을 질의한다.

        nslookup

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

        dig

      • DNS 조회를 위한 명령어로, 도메인 이름과 IP 주소 간의 매핑 정보를 확인하는 데 사용

        host

    • ip : 네트워크 인터페이스 및 라우팅과 관련된 정보를 설정하거나 확인하기 위한 명령어

2과목

21

# vi ( ① )

() no

# systemctl restart sshd
  • SSH 서비스에서 root 로그인을 막기위한 설정 과정

    ① /etc/ssh/ssd_config ② PermitRootLogin

    • SSH 설정 파일 : /etc/ssh/sshd_config
    • PermitRootLogin 옵션을 no로 설정하면 root 사용자의 SSH 로그인을 막을 수 있다.
    • 설정을 변경한 후 systemctl restrart sshd 명령어로 적용한다.

22

/etc/passwd

john:x:1001:1001:Team1:/home/john:/bin/
bash
mary:x:1002:1002:Team2:/home/mary:/bin/
sh
  • john의 UID는 1001이며, 기본 셸은 bash를 사용한다.
  • john의 홈디렉터리는 /home/john이다.
  • john과 mary의 비밀번호는 /etc/shadow에 보관되어 있다.
  • [오답] mary의 GID는 1002이며 그룹명은 Team2이고 그룹 정보는 /etc/grooup에 보관된다. → Team2는 그룹명이 아니라 사용자 정보(주석) 필드로, 추가적인 설명을 나타낸다.

23

useradd

# useradd -m -s /bin/bash -G developers john
  • -m 옵션은 사용자 계정의 홈 디렉터리 생성
  • -s 옵션은 사용자가 로그인할 때 사용할 셸을 지정하며, 여기서는 /bin/bash이다.
  • john은 새로 생성된 사용자 이름
  • [오답] -G 옵션은 사용자를 추가할 기본 그룹을 지정하며, 여기서는 developers 그룹이다. → 사용자가 속할 보조 그룹을 설정하는데 사용된다.
    • -g : 기본 그룹 지정

24

su, sudo

  • su 명령어로 root 계정으로 전환 시, 해당 세션에서는 root 권한이 지속되므로 모든 명령어를 root 권한으로 실행
  • sudo 명령어는 /etc/sudoers 파일을 통해 특정 사용자에게 특정 명령어의 실행 권한 부여
  • sudo 명령어로 실행된 명령어는 로그 파일에 기록되지만, su 명령어로 전환된 후의 명령어는 로그에 기록되지 않는다.
  • [오답] su와 sudo 명령어 모두 사용 시 root 비밀번호를 입력해야 하며, 이를 통해 보안을 강화한다. → su 명령어는 root 비밀번호가 필요하지만, sudo 명령어는 사용자의 비밀번호를 요구한다.

  • 현재 로그인 세션에서 다른 사용자의 권한으로 명령 실행

    su

  • 다른 사용자의 권한으로 명령 실행

    sudo

25

  • /etc/passwd 파일에 저장된 사용자 암호를 /etc/shadow 파일로 옮겨서 더 안전하게 관리

    pwconv

    • pwconv : /etc/passwd 파일에 저장된 사용자 암호를 /etc/shadow 파일로 옮겨서 관리하는 명령어

    [오답]

    • /etc/shadow 파일에 있는 암호 정보를 /etc/passwd복원하는 명령어

      pwunconv

    • 그룹 정보를 /etc/group에서 /etc/gshadow옮기는 명령어

      grpconv

    • ./etc/gshadow 파일의 그룹 정보를 다시 /etc/group으로 되돌리는 명령어

      grpunconv

26

# ( ① ) developers /project

# chmod ( ② ) /project
  • 특정 디렉터리를 그룹이 공용 작업 공간으로 사용하기 위해 설정하는 명령어

    ① chgrp ② 2775

    • 공용 작업 공간으로 설정하기 위해서는 그룹 소유권만 변경하면 되므로 chgrp 명령어가 적절하다.
    • 그룹이 공용으로 작업할 수 있도록 하기 위해서 /project 디렉터리의 소유권을 변경하고, Set-GID 비트를 설정하여 디렉터리 내에 생성된 모든 파일이 동일한 그룹 소유권을 갖도록 한다.
    • 첫 번째 숫자: 2 → 특수 권한 (Set-GID)
      • 첫 번째 자리는 특수 권한(Special Permission)을 설정하는 곳이다.
      • 2Set-GID (Set Group ID) 비트를 의미한다.
      • Set-GID 비트가 설정되면 해당 디렉터리 내에서 생성된 파일은 디렉터리의 그룹 소유권을 자동으로 상속받는다.
        • 예를 들어 /project의 그룹 소유자가 developers라면, /project 안에서 생성되는 파일은 자동으로 developers 그룹 소유권을 가진다.

    [오답]

    • 파일의 소유자와 그룹을 동시에 변경하는 명령어

      chown

27

  • 원본 파일과 동일한 inode를 공유하며, 원본 파일이 삭제되어도 대상 파일은 유지된다.

    하드 링크

    [오답]

    • 원본 파일의 경로를 참조하는 방식으로, 원본 파일이 삭제되면 심볼릭 링크는 더 이상 유효하지 않게 된다.

      심볼릭 링크(소프트 링크)

    • 파일 링크는 존재하지 않는 용어이다.

28

  • 빈 파일을 생성하거나 특정 파일의 타임스탬프를 변경하여 make 명령어가 해당 파일을 강제로 다시 빌드하도록 유도한다.

    touch

    [오답]

    • 파일을 복사하는 명령어

      cp

    • 파일 링크를 생성하는 명령어

      ln

    • 파일의 이름을 변경하거나 파일 위치를 이동하는 명령어

      mv

29

$ cat example.txt
Hello World
This is an example text file.
wc is a useful command.

$ () example.txt
3 () 69 example.txt
  • example.txt 파일의 내용이다. 실행 결과의 괄호 안에 알맞은 내용을 고르시오.

    ① wc ② 13

    • 지정한 파일에 대해 줄 수, 단어의 수, 개행 문자, 문자의 개수, 파일 크기를 출력하는 명령어

      wc

    • 단어의 개수인 13을 출력한다.

    [오답]

    • 텍스트 파일을 한 줄씩 읽어서 정렬한다.

      sort

30

$ 
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=403796k,mode=755)
/dev/sda2 on /home type ext4 (rw,relatime)
  • 어떤 명령어의 실행결과인가

    mount

    • 현재 마운트된 파일 시스템의 목록을 출력하며, 파일 시스템의 타입, 마운트 위치, 마운트 옵션 등의 정보를 상세히 보여준다.

      mount

      • ex. sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
        • /sys 디렉터리는 시스템 정보를 제공하는 가상 파일 시스템(sysfs)
        • 옵션: rw(읽기/쓰기 가능), nosuid(SUID 금지), nodev(장치 파일 금지), noexec(실행 금지), relatime(접근 시간 업데이트 최적화).

    [오답]

    • 파일 시스템의 디스크 사용량을 표시하는 명령어로, 용량 관련 정보가 주로 출력된다.

      df

    • 블록 장치의 정보를 나열하는 명령어로, **마운트 정보가 포함될 수 있지만 형식이 다르다.

      lsblk

    • 디스크의 파티션 정보를 나열하며, 파일 시스템의 마운트 여부와는 관련이 없다.

      fdisk -l

31

top 명령어의 실행 예시

$ top

PID    USER   PR  NI   VIRT   RES   SHR  S  %CPU  %MEM   TIME+   COMMAND
1234   john   20   0  123456  65432  1234  S  1.3   0.4   0:05.67  myprocess
2345   mary   19  -1  234567  12345  2345  R  2.5   1.0   0:15.02  anotherproc
3456   root   14   5  345678  45678  3456  S  0.7   0.2   0:02.15  rootproc
  • 1234번 프로세스의 PR 값은 20이며, NI 값이 0이기 때문에 기본 우선순위를 가짐
  • NI 필드는 niceless값을 나타내며, -20에서 19까지 변경 가능
  • 2345번 프로세스의 PR 값이 19로, 이는 NI 값이 -1이기 때문에 우선순위가 기본보다 높아짐
  • [오답] 가장 우선순위가 높은 프로세스는 2345번임 → 3456번
    • PR 값이 작을수록 우선순위가 높다.
    • PR : NI 값이 적용된 최종 우선순위 값

PR (Priority)와 NI (Nice)의 관계

  1. PR (우선순위): 프로세스의 최종 우선순위를 나타낸다.
    • 값이 낮을수록 우선순위가 높음 (즉, CPU를 더 많이 받을 가능성이 높아짐).
    • PR = 20 + NI로 계산됨.
  2. NI (Nice): 프로세스가 CPU를 사용할 수 있는 우선권을 설정하는 값이다.
    • 범위: -20(최고 우선순위) ~ 19(최저 우선순위)
    • 기본값: 0
    • 값이 작을수록 CPU 우선권이 높아지고, 클수록 우선권이 낮아짐.

32

  • 여러 프로세스를 실행하고 있는 데몬을 한 번의 명령어로 모두 종료할 때 유용한 명령어

    killall

    • 프로세스 이름 매칭 혹은 속성을 기반으로 현재 실행 중인 프로세스를 검색하여 출력

      pgrep

    • PID를 인자로 하여 해당 프로세스에 원하는 시그널을 전달함. 시그널을 지정하지 않는 경우 기본값으로 종료를 위한 TERM 시그널을 이용

      kill

33

$
2   Tue Feb  6 14:00:00 2024  a  user1
5   Wed Feb  7 09:30:00 2024  a  user2
8   Thu Feb  8 18:45:00 2024  a  user1
  • 어떤 명령어의 실행결과인가

    atq

    • 현재 예약된 작업 목록을 출력하고 있다.
    • 지정한 시간에 설정한 명령을 실행

      at

    • 각각 예약된 작업 목록을 확인

      atq

    [오답]

    • 지정한 시간 마다 명령어, 프로그램, 작업 등을 실행할 수 있는 서비스

      cron

    • 예약된 작업을 삭제

      atrm

34

  • 매주 월요일 새벽 3시에 /home/user/backup.sh 스크립트를 실행하는 작업을 예약하는 cron 설정파일

    0 3 * * 1 /home/user/backup.sh

    • [분][시][일][월][요일]

35

  • 다른 사용자의 프로세스와 터미널에 연결되지 않은 프로세스를 포함한 시스템의 모든 프로세스를 표시할 때 부합하지 않은 ps 명령어 옵션 (보기 : aux, ax, -ef, -f)

    -f

    • 실행 중인 프로세스의 목록 출력

      ps

      • [옵션] 현재 사용자뿐 아니라 모든 사용자의 프로세스 출력

        a

      • [옵션] 터미널에 연관되지 않은 프로세스를 포함한 모든 사용자의 프로세스를 소유자 정보와 함께 프로세스 정보를 출력

        aux

      • [옵션] 터미널에 연관되지 않은 프로세스 출력

        x

      • 위의 두 옵션은 BSD 스타일이다.
      • 동일한 효과를 내는 UNIX 스타일 옵션으로, 시스템 전체 프로세스를 출력

        -ef

36

  • Rocky Linux 패키지 관리 도구

    rpm, dnf, yum

    • 레드햇 계열의 CentOS를 계승한 오픈소스 기반의 리눅스 배포판

      Rocky Linux

    • rpm, dnf, yum은 모두 레드햇 게열에서 사용하는 패키지 관리 도구로, Rocky Linux에서도 동일하게 사용된다.

    [오답]

    • 데비안 계열(ex. Ubuntu)의 패키지 관리 도구로, Rocky Linux와 관련이 없다.

      apt

37

yum 패키지 관리 도구

  • 보안 상 사내 전용 레포지토리를 운영 가능
  • /etc/yum.repos.d 디렉터리의 변경이 있는 경우, yum clean all 명령어 실행이 필요할 수 있음
  • EPEL 레포지토리를 설치하면 널리 알려진 패키지들을 간단히 추가할 수 있음
  • [오답] /etc/yum.repos.d 디렉터리에서 레포지토리 설정은 여러 개의 .conf 파일로 관리됨 → .repo

38

ldd 명령어

  • 실행 파일이나 공유 라이브러리가 사용하는 동적 라이브러리를 확인하는데 사용됨
  • 실행 파일이 참조하는 라이브러리 경로와 파일 이름 출력
  • 주로 디버깅 목적이나 의존성 확인을 위해 사용
  • [오답] 동적 라이브러리를 검사하는 동안 실행 파일을 실행시킴ldd 명령어는 실행 파일을 직접 실행하지 않음

39

tar 명령어 옵션

  • 특정 디렉터리 /home/user/data를 압축하여 data.tar.gz 파일로 저장하려고 한다. 또한, 압축 진행 상황을 확인하면서 압축하려고 한다.

    tar -cvzf

    • c 옵션 : 새 압축 파일 생성
    • v 옵션 : 압축 진행 상황 표시
    • z 옵션 : gzip 형식으로 압축 수행
    • f 옵션 : 출력 파일명을 지정

    • 옵션

      옵션의미
      -c, —create- 새로운 tar 파일 생성
      - 인자로 여러 파일 이름을 지정해 tar 파일을 만들 수 있다.
      - 디렉터리를 지정해 하위 모든 파일과 디렉터리에 대한 tar 파일을 생성할 수 있다.
      - —no-recursion 옵션이 주어지면 바로 하위 파일만 아카이브된다.
      -x, —extract- 묶인 tar 파일을 여러 파일로 다시 해체한다.
      - 아카이브된 파일 선택 시 해당 파일만 추출할 수 있다.
      -v, —verbose- 각 명령마다 사용자에게 보여주는 정보량을 늘려주는 옵션이다.
      - -c 와 함께 사용시 tar 파일에 묶여지는 파일을 확인할 수 있다.
      -f, —file생성되는 tar 파일 이름 지정
      -r, —append이미 생성된 tar 파일에 또 다른 파일들을 추가
      -t, —lis- tar 파일 안에 묶여있는 파일 목록 출력
      - 인자로 tar 파일 내의 파일을 지정하면 해당 파일 존재 유무를 확인한다.
      -h, —dereference링크 파일이 가리키고 있는 원본 파일도 tar에 포함
      -C, —directory어떤 명령을 수행할 디렉터리 지정
      -p, —preserve-permissionstar 파일에서 파일을 추출할 때 사용자의 권한을 그대로 유지
      -Z, —compress, —uncompress- compress를 사용하여 압축
      - 예전 UNIX 계열 표준 압축 파일인 tarZ를 생성
      -z, —gzip, —gunzip- gzip을 사용하여 압축
      - tar.gz 형식으로 생성
      -i, —bzip2- bzip2를 사용하여 압축
      - tar.bz2 형식으로 생성
      -J, —xz- xz를 사용하여 압축
      - tar.xz 형식으로 생성
      -g, —listed-incremental- 새로운 버전의 GNU 형식 증분 백업 지원
      - 스냅샷 파일을 지정
      - 기존의 아카이브가 없는 경우 모든 파일과 디렉터리가 묶이며 이를 특별히 레벨 0 덤프라고 한다. 그리고 추가된 파일과 디렉터리 정보는 스냅샷 파일을 바탕으로 변경된다. 두 번째 아카이브 할 때에는 기존의 생성된 스냅샷 파일을 바탕으로 변경된 파일만 아카이브가 되며 스냅샷 파일은 변경된 파일에 대한 정보로 다시 갱신된다. 이를 레벨 1 덤프라고 하며 아카이브를 N번 반복하면 레벨 N 덤프가 된다.
      -G, —incremental구 버전의 GNU 형식 증분 백업을 지원

40

  • 설치된 패키지 목록을 확인하는 YUM 명령어

    yum list installed

    [오답]

    • 설치할 수 있는 사용 가능한 패키지 목록 조회

      yum list available

    • 패키지를 이름 또는 설명으로 검색

      yum search

    • 특정 파일이 어떤 패키지에 속해 있는 지 확인

      yum provides

41

리눅스 커널 컴파일 과정

  • make menuconfig : 커널 설정 메뉴를 텍스트 기반의 인터페이스로 제공
  • make : 커널 소스 파일을 컴파일하여 바이너리 커널 이미지 생성
  • make modules_install : 컴파일된 커널 모듈을 /lib/modules/ 에 설치
  • [오답] 커널 컴파일 후 반드시 grub-install 명령어를 사용하여 새 커널을 부팅 메뉴에 추가해야 한다. → grub-install은 부트로더 자체를 새로 설치할 때 쓰는 명령어로 일반적인 커널 컴파일 후에는 쓸 필요가 없다.
    • 커널 컴파일 과정에서 make install을 하면, 새로 컴파일된 커널이 자동으로 부팅 메뉴에 추가된다.
    • 이 때 GRUB 부트로더의 설정 파일이 자동으로 업데이트되어 새 커널을 설치할 수 있게 된다.

42

  • 커널의 기능을 확장하기 위해 메모리에 동적으로 로드 및 언로드할 수 있는 커널 오브젝트 파일

    모듈

    • 모듈은 커널의 기능을 확장하거나 하드웨어 드라이버를 추가할 때 사용되며, 시스템이 실행 중인 상태에서도 메모리에 동적으로 로드하거나 언로드 할 수 있다.

43

filename: /lib/modules/5.4.0-26-generic/
kernel/drivers/net/ethernet/intel/e1000/
e1000.ko version: 7.3.21-k8-NAPI

license: GPL

description: Intel(R) PRO/1000 Network Driver
  • 실행 결과에 해당하는 명령어

    modinfo

    • modinfo : 모듈 파일 경로, 버전, 라이선스, 설명 등 커널 모듈의 정보를 출력

    [오답]

    • 커널에 모듈을 적재하는 명령으로 자동으로 검색하고 삽입

      insmod

    • 커널에서 모듈을 제거하는 명령으로 사용 중인 모듈은 제거할 수 없음

      rmmod

    • 적재 가능한 커널모듈(LKM : Loadable Kernel Module)을 리눅스 커널에 추가하거나 제거하는 명령어

      modprobe

44

/etc/modprobe.d/ 디렉터리 아래에 위치한 모듈 설정 파일

  • options : 특정 모듈이 로드될 때, 그 모듈의 동작을 제어하는 옵션을 설정
  • 부팅 시 자동으로 모듈을 로드하기 위해 설정 파일에 모듈명 기재
  • blacklist : 특정 모듈의 로드를 금지하기 위해 사용
  • [오답] remove : 특정 모듈을 자동으로 제거모듈이 제거될 때 실행할 명령어 지정

45

커널 환경설정 명령어

  • bash 혹은 csh에서 실행하는 텍스트 기반 환경설정 도구

    make config

  • 텍스트 기반의 메뉴를 제공하여 옵션 설정

    make menuconfig

  • X 윈도우 환경Qt 기반의 환경설정 도구

    make xconfig

[오답]

  • 커널 환경설정을 포함하여 모든 파일을 제거

    make mrproper

    • 커널 설정을 구성하는 명령어가 아니라, 대상 디렉터리에서 중간 파일, 임시 파일, 이전 설정 파일 등을 모두 제거하여 디렉터리를 초기화하는 명령어
    • 이전 빌드에서 남은 불필요한 파일들을 정리하고, 새로운 컴파일을 위한 깨끗한 환경 준비

46

  • 하드디스크의 파티션을 생성, 삭제, 수정할 수 있으며, MBR 파티션 테이블을 사용하는 디스크에 대해 파티션 관리를 제공하는 명령어

    fdisk

    [오답]

    • ext4, xfs 등 파일 시스템을 생성하는 명령어

      mkfs

    • 현재 마운트된 파일 시스템의 디스크 사용량을 표시

      df

    • 디스크 파티션이나 파일 시스템을 시스템에 마운트하는 명령어

      mount

47

  • 최신 파티션 방식으로, 무제한 파티션, 대용량 디스크 지원, 안정성, UEFI 시스템 호환 등의 특징이 있다.

    GPT 파티션

    • GPT(Guid Partition Table)
      • 무제한 파티션: GPT는 MBR과 달리 4개의 파티션 제한이 없다. 거의 무제한에 가까운 파티션을 만들 수 있다.
      • 대용량 디스크 지원 : GPT는 2TB 이상의 디스크와 최대 9.42B까지 지원한다.
      • 더 안전함 : GPT는 파티션 테이블의 복사본을 디스크의 시작과 끝에 저장하므로, 데이터 손상 시 복구할 수 있는 백업이 존재한다.
      • UEFI 시스템과 호환 : GPT는 BIOS 대신 UEFI 기반 시스템에서 주로 사용되며, 최신 운영 체제에서 부팅 파티션으로 자주 사용된다.

48

리눅스 프린트 시스템

  • CUPS(공통 UNIX 프린트 시스템) : 리눅스에서 가장 널리 사용되는 프린트 시스템
  • 리눅스 프린트 시스템은 IPP(Internet Printing Protocol)를 지원하며, 네트워크를 통한 프린트 서버 기능도 제공함
  • CUPS는 다양한 프린터 드라이버를 지원하며, 사용자가 직접 PPD 파일을 업로드 할 수 있음
  • [오답] CUPS는 웹 인터페이스를 제공하지 않으며, 모든 설정은 터미널에서만 가능웹 인터페이스를 제공하여 사용자가 브라우저를 통해 프린터를 관리할 수 있으며, 터미널 뿐만 아니라 GUI에서도 설정이 가능하다. 기본적으로 localhost:631에서 접근 가능하다.

49

오픈 사운드 시스템(Open Sound System, OSS)

  • 리눅스 및 다양한 UNIX 계열 운영 체제에서 사운드를 처리하기 위한 초기 사운드 시스템
  • 사운드 카드에 직접 접근하여 하드웨어 수준에서 오디오 처리를 제어
  • 상용 라이선스로 제공되었으나 이후 오픈 소스로 전환
  • [오답] ALSA(Advanced Linux Sound Architecture)보다 후에 개발되었으며, 현대 리눅스 시스템에서 주로 사용된다. → OSS는 ALSA보다 먼저 개발되었고, ALSA가 OSS의 한계를 극복하기 위해 등장했다. 현대 리눅스 시스템에서는 주로 ALSA가 사용되고, OSS는 일부 레거시 시스템에서만 사용된다.

50

SANE(Scanner Access Now Easy)

  • 리눅스UNIX 계열 운영체제에서 스캐너 하드웨어에 접근할 수 있도록 설계된 표준 인터페이스
  • 다양한 스캐너 드라이버를 제공하며, 많은 제조사의 스캐너와 호환
  • 사용자가 스캔을 제어하고, 스캔 설정을 세밀하게 조정할 수 있는 다양한 옵션을 지원
  • [오답] 주로 네트워크 스캐너를 지원하며, 로컬에 연결된 스캐너는 지원하지 않음로컬에 연결된 스캐너도 지원한다. USB, SCSI 등의 연결을 통해 로컬 스캐너에 접근 가능하다.

51

로키 리눅스 8의 시스템 로그

  • 시스템 로그는 보안, 커널, 인증, 하드웨어 등 다양한 이벤트와 시스템 동작 정보를 기록
  • 로그 파일은 주로 /var/log 디렉터리에 저장되며, 로그 파일별로 기록되는 정보가 다름
  • 시스템 로그는 서버 모니터링, 문제 해결, 보안 점검 등 다양한 용도로 활용
  • [오답] syslog와 rsylog 데몬에 의해 시스템 로그가 관리됨 → syslog는 더 이상 사용되지 않으며, 시스템 로그는 systemd-journald와 rsyslog에 의해 관리됨

52

  • 시스템 및 커널 로그를 수집하고 저장하는 역할을 하며, 로그를 이진 형식으로 저장하여 검색과 필터링을 용이하게 한다. 시스템 이벤트, 인증, 하드웨어 메시지 등 다양한 정보를 관리하는 로그 관리 데몬은?

    systemd-journald

    [오답]

    • syslogrsyslog는 로그를 텍스트 형식으로 저장하며, 로그 파일은 /var/log 디렉터리 아래에 저장된다.
    • systemd-journald는 로그를 이진 형식으로 저장하여 검색과 필터링을 더 효율적으로 처리한다.
    • 이진 형식으로 저장된 로그는 journalctl 명령어를 사용하여 확인 가능하며, 다양한 필터링 옵션을 통해 필요한 로그를 쉽게 조회할 수 있다.

53

rsyslog

  • /var/log/messages 파일은 일반적인 시스템 이벤트와 커널 메시지 등의 로그를 저장하는 기본 로그 파일
  • /etc/rsyslog.d/ 디렉터리에는 추가적인 rsyslog 설정 파일을 포함할 수 있으며, 개별 서비스나 애플리케이션에 대한 로그 규칙을 정의할 수 있다.
  • /var/log/secure 파일은 사용자 인증과 관련된 로그 파일
  • [오답] /etc/syslog.conf 파일은 rsyslog의 메인 설정 파일로, 로그의 형식, 필터링, 저장 위치 등을 설정할 수 있다. → 전통적인 syslog 시스템에서 사용되는 설정 파일로, rsyslog와는 다른 구성을 가진다.
    • rsyslog의 메인 설정 파일은 /etc/rsyslog.conf 파일이다.

54

rsyslog.conf 파일의 Omusrmsg

authpriv.* omusrmsg:mary
  • 사용자가 로그인한 모든 터미널로 관련 로그를 실시간으로 전송
  • 모든 사용자에게 전송하기 위해 omusrmsg:* 를 사용
  • 사용자가 여러 터미널에 로그인한 경우, 로그는 모든 로그인된 터미널로 전송
  • [오답] 다수의 사용자에게 로그를 전송하는 기술은 없음여러 사용자에게 로그를 전송할 수 있으며, omusrmsg:user1, user2, user3과 같이 설정하면 다수의 사용자에게 로그를 전달 가능

55

journalctl 옵션

  • -f : 실시간으로 로그를 출력하며, 새로운 로그가 생성될 때마다 자동으로 갱신
  • -u [서비스명] : 특정 서비스에 대한 로그를 필터링하여 출력
  • —since : 지정된 시점 이후의 로그만 출력
  • [오답] —vacuum-size : 시스템 로그를 압축하여 용량을 줄이는 옵션로그가 차지하는 디스크 용량이 지정한 크기를 초과할 때, 오래된 로그를 삭제하는 기능

  • systemd에서 제공하는 커널 및 저널 로그를 관리하기 위한 명령어

    journalctl

56

리눅스 진영이 오픈소스의 보안 취약성 문제를 극복하기 위해 수행한 활동

  • SELinux와 같은 보안 확장 기능을 통해 시스템의 권한 관리와 보안을 강화하고, 엄격한 보안 정책을 적용
  • 커뮤니티와 기업이 협력하여 취약점을 신속하게 발견하고 패치하는 시스템을 구축하여 보안 대응 속도를 높임
  • AppArmor와 같은 보안 모듈을 도입하여 응용 프로그램 단위의 보안 정책을 설정하고, 시스템 보호를 위한 세밀한 접근 제어 제공
  • [오답] 모든 리눅스 배포판은 일관되게 동일한 보안 정책을 따른다. → 모든 리눅스 배포판은 동일한 보안 정책을 따르지 않는다.
    • 각 배포판은 서로 다른 보안 요구 사항에 맞게 보안 정책을 커스터마이즈할 수 있다.
    • AppAmor는 우분투와 같은 데비안 계열에서 기본으로 설치되는 모듈로, SELinux와 유사한 MAC(Mandatory Access Control) 정책을 제공하지만, 설정과 적용방식에서 약간 차이가 있다.

57

  • 리눅스에서 파일 속성을 변경하기 위해 사용되는 명령어로, 특정 파일을 삭제 불가능하거나 변경 불가능하도록 설정

    chattr

    • 파일의 읽기 전용, 삭제 금지 등과 같은 파일 속성을 변경하는 명령어로, 파일 시스템 레벨에서 파일을 보호하는데 사용된다.

    [오답]

    • 기호나 8진수 숫자를 통해 허가권을 변경하는 명령어

      chmod

    • 오직 루트사용자만 파일이나 디렉터리의 사용자 및 그룹의 소유권 변경 가능한 명령어

      chown

    • 파일 속성 출력

      lsattr

58

sysctl의 보안 강화 서정

  • net.ipv4.tcp_timestamps = 0 : TCP 타임스탬프를 비활성화하여 타임스탬프 기반의 공격 방지
  • net.ipv4.tcp_syncookies = 1 : SYN 플러딩 공격을 방지하기 위해 TCP Syncookies 기능 활성화
  • net.ipv4.tcp_keepalive_time = 600 : TCP 연결 유지 시간을 설정하여 불필요한 연결을 빠르게 종료
  • [오답] net.ipv4.icmp_echo_ignore_all = 0 : 모든 ICMP Echo 요청을 무시하여 Ping 공격을 방지 → 모든 ICMP Echo 요청을 허용하게 된다.
    • Ping 공격을 방지하려면 1로 설정하여 ICMP Echo 요청을 무시해야 한다.

59

재난 및 재해 대비를 위한 시스템 백업 및 서버 이중화 방안

  • 오프사이트 백업을 통해 데이터를 다른 물리적 위치에 저장하여, 한 장소에서 발생한 재해로부터 데이터 보호
  • 서버 이중화(HA, High Availability)를 통해 주요 서버의 다운 타임을 최소화하고, 하나의 서버에 문제가 발생하더라도 다른 서버가 자동으로 서비스를 대체하도록 함
  • 클라우드 백업을 사용하여 중요한 데이터를 외부 클라우드에 저장하고, 필요 시 재해 발생 시에도 빠르게 복구할 수 있도록 함
  • [오답] RAID 구성을 통해 데이터의 이중화를 보장하여 재해 시 데이터를 완벽하게 보호RAID 구성은 로컬 백업 방안의 하나로, 로컬에서 재난 재해가 발생할 경우 데이터가 손상되므로 오프사이트 백업 방안이 필요

60

rsync의 옵션

  • -a : 아카이브 모드로, 디렉터리 구조, 소유권, 권한, 타임스탬프, 심볼릭 링크 등을 유지하여 복사
  • -v : 상세 모드로, 전송중인 파일 목록 및 진행 상황을 출력
  • -z : 파일 전송 시 압축을 사용하여 네트워크 트래픽을 줄이고 전송속도를 높임
  • [오답] -r : 파일 권한과 타임 스탬프를 유지하면서 디렉터리와 하위 파일 복사디렉터리와 그 하위 파일 및 서브디렉터리를 재귀적으로 복사하는 옵션
    • 파일 권한과 타임스탬프를 유지하기 위해서는 -a 옵션도 함께 사용해야 한다.

61

웹 서비스 구성요소

  • 웹 문서는 .html을 확장자로 가진 정적 문서와 .php, .jsp 등의 확장자를 가진 동적 문서로 구성
  • Javascript는 웹 브라우저에서 실행되는 프로그램 루틴(기능)을 추가하여 사용자 동작에 반응
  • Nginx로드밸런싱, HTTP Cache, 리버스 프록시 등의 기능 제공
  • [오답] Apache Web 서버는 비동기 이벤트 방식으로 동작하며, PHP를 기본 지원함 → 사용자 요청에 따라 별도의 프로세스 혹은 스레드를 생성하여 처리하며, PHP를 기본 지원하지 않음
    • 일반적으로 별도의 모듈을 탑재해서 PHP를 지원

62

HTTP 프로토콜

[오답] HTTP 요청 메서드 중 GET 메서드를 요청할 내용을 바디에 담아 서버에 전송 → POST

63

  • HTTP 프로토콜의 요청 헤더에서 ‘웹 브라우저의 정보’를 확인할 수 있는 항목

    User-Agent

    [오답]

    • 서버로부터 전송받고자 하는 콘텐츠의 마임(MIME) 타입 지정

      Accept

    • 웹 서버의 요청에 의해 클라이언트에 저장해 놓은 쿠키를 키와 값의 쌍으로 전송

      Cookie

    • 서버의 도메인 이름 지정

      Host

64

아파치 웹 서버의 동작방식

  • 실행 중인 프로세스를 복제(fork)하여 미리 동작시킨 후 클라이언트의 요청을 처리

    prefork

  • 아파치 웹 서버의 소스 컴파일 시 필요한 모듈을 함께 포함

    정적적재

  • 아파치 웹 서버를 실행한 후, 사용자의 요청이 있을 경우 필요한 모듈 적재

    동적적재

  • 프로세스 당 여러 개의 스레드를 갖는 구조로, 각 스레드가 클라이언트의 요청을 처리. 일반적으로 프로세스 당 최대 스레드 개수는 64개로, 이를 초과할 경우 새로운 프로세스를 생성하게 됨

    worker

65

  • 아파치 웹 서버의 기본 설정 항목 중 웹 문서가 저장되는 기본 디렉터리 경로를 지정하는 항목

    DocumentRoot

    [오답]

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

      LoadModule

    • 웹 디렉터리를 방문할 경우 처음으로 열릴(Open) 파일 목록 정의

      DirectoryIndex

    • 아파치 웹 서버의 주요 파일들이 저장된 최상위 디렉터리를 절대 경로로 지정

      ServerRoot

66

$ ls
httpd-2.4.37.tar.bz2  httpd-2.4.37.tar.bz2.md5

$ cat httpd-2.4.37.tar.bz2.md5
6a36e742180ee74b1f97b28eee90c3f7  httpd-2.4.37.tar.bz2

$ (  ) httpd-2.4.37.tar.bz2
6a36e742180ee74b1f97b28eee90c3f7  httpd-2.4.37.tar.bz2
  • Apache Web 서버의 소스코드를 다운로드 하는 과정에서 무결성을 점검하기 위한 명령어의 일부

    md5sum

    • httpd-2.4.37.tar.bz2 httpd-2.4.37.tar.bz2.md5 : .md5 파일은 httpd-2.4.37.tar.bz2 파일의 해시값을 저장하고 있다.
    • 무결성은 해당 파일이 변경되지 않음을 확인하는 것으로 md5sum으로 MD5 해시값을 계산한 후 비교하여 무결성을 점검할 수 있음

67

MySQL을 컴파일, 설치 및 초기화하는 과정

  • MySQL의 소스코드를 빌드하기 위한 환경설정 작업을 수행

    cmake

  • 생성한 실행 파일을 대상 디렉터리로 복사(설치)

    make install

  • 설치한 MySQL의 버전 확인

    mysql —version

  • MySQL에 필요한 DB 생성

    make —initialize mysqld —initialize

68

  • PHP를 이용한 파일 업로드 시 업로드 파일의 크기를 10M로 제한하고자 한다. 이 때 사용할 수 있는 php.ini의 설정 항목

    post_max_size

    • PHP(PHP-Hypertext Preprocessor)
      • 웹 서비스의 로직을 구현하고 동적으로 웹 페이지를 생성할 수 있도록 고안된 스크립트 언어로 PHP Group에서 관리한다.
      • PHP는 서버에서 실행되는 언어(Server-Side Script)
      • DSO(Dynamic Shared Objects) 방식으로 동작

    [오답]

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

      max_file_uploads

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

      short_open_tag

69

리눅스 시스템의 인증 방식

  • /etc/passwd, /etc/shadow 파일을 이용하여 사용자 로그인 시 패스워드를 이용하여 인증
  • NIS는 대표적인 네트워크 기반 인증 서비스로 RPC(Remote Procedure Call)을 이용
  • LDAP의 주요 속성 중 dn은 조직 **내 **고유한 식별자를 가질 수 있음
  • [오답] LDAPUDP를 이용하여 RDMBS보다 빠른 검색 속도 제공 → TCP를 기반으로 동작하며, RDBMS에 비하여 빠른 검색 속도를 제공하지만, 자주 변경되는 정보의 관리에는 다소 불리

70

  • NIS 서버와 NIS 클라이언트 간의 매핑 속도를 높이기 위해 사용하는 서비스

    ypxfrd.service

    [오답]

    • NIS 서버의 메인 데몬 구동

      ypserv.service

    • NIS 사용자 패스워드 관리

      yppasswdd.service

    • RPC daemon을 담당

      rpcbind

71

  • NIS 서비스에 사용자를 추가하는 등 NIS 관련 설정 후 NIS 정보를 갱신하기 위해 사용하는 명령어

    make -c /var/yp

    [오답]

    • NIS 클라이언트에서 NIS의 동작 및 설정 등을 확인하고 도메인명, 맵 파일 목록, 사용자 계정 정보 등을 출력

      yptest

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

      ypwhich

    • RPC daemon을 담당

      systemctl restart rpcbind

72

삼바(SAMBA)가 사용하는 설정 파일인 smb.conf의 설정항목

  • 서버에 대한 설명을 지정

    server string

  • 삼바 서버의 로그 파일 지정

    log file

  • 여러 개의 네트워크 인터페이스를 갖고 있을 경우 어떠한 것을 이용할 지 설정

    interfaces

  • IP 주소를 이용하여 직접 접속하기 위해 설정

    netbios name

73

삼바 서비스 설정의 Share Definition (공유 폴더의 주요 설정) 항목

  • 별도로 지정하지 않은 경우 전체 사용자가 접근 가능

    valid users

  • 개인 사용자만 사용할 수 있도록 설정

    public = no

  • 쓰기 가능한 사용자를 지정

    write list

  • 공유 디렉터리의 상대 절대 경로를 지정

    path

74

  • 리눅스 계정과 삼바 이용자명을 매핑하기 위해 사용할 수 있는 설정 파일

    smbusers

    • /etc/samba/smbusers

75

삼바의 계정과 패스워드를 설정하는 smb-passwd의 주요 옵션

  • 삼바 사용자 계정 제거

    -x

  • 삼바 사용자 계정 비활성화

    -d

  • 삼바 사용자 계정 활성화

    -e

  • 삼바 사용자 계정을 추가하고 패스워드 설정

    -a

    [오답] 모든 삼바 사용자 계정 정보를 출력

76

NFS를 위한 설정 파일인 /etc/exports의 구성항목

  • 하위 디렉터리 검사 금지

    no_subtree_check

  • 데이터 변경을 기록할 때 비동기적으로 처리

    async

  • 기본 설정값이며, 포트 번호가 1024 이하의 요청만 허가

    secure

  • root 권한 접근 거부 허용

    no_root_squash

77

/etc/fstab

192.168.45.223/var/youngjin-nis /var/youngjin-local nis timeo=15,soft,retrans=3 0 0
  • 파일 시스템 장치명은 192.168.45.223/var/younjin-nfs이다.
  • 마운트 포인트는 /var/youngjin-local이다.
  • 백업과 무결성 검사는 하지 않는다.
  • [오답] NFS 파일 시스템으로 ext3가 사용된다.ext3가 아니라 NFS 자체가 파일 시스템 유형이다.

  • NFS(Network File System) 마운트 설정
    • 192.168.45.223:/var/youngjin-nis
      • 원격 서버(192.168.45.223)에 있는 /var/youngjin-nis 디렉터리를
      • 로컬 머신의 /var/youngjin-local 디렉터리에 마운트함.
    • 옵션 설명
      • nis → NIS(Network Information Service)와 관련된 설정 가능성 있음.
      • timeo=15 → NFS 요청이 응답을 기다리는 시간(1.5초).
      • soft → NFS 요청이 실패하면 오류를 반환(하드 마운트는 계속 재시도).
      • retrans=3 → 요청 실패 시 최대 3번 재전송.
      • 0 0/etc/fstab의 마지막 두 필드로, 덤프 및 fsck 검사 비활성화.

78

vsftp의 설정 파일인 vsftpd.conf의 항목

  • 익명 사용자 접속 허가

    anonymous_enable=YES

  • 한 IP 주소당 접속할 수 있는 최대 허용 건수 지정

    max_per_ip

  • /etc/vsftpd/user_list를 사용하며, /etc/vsftpd/user_list에 등록된 사용자는 vsftp를 사용할 수 없다.

    userlist_enable=YES

  • 로컬 계정 사용자의 접속 허가

    local_enable=YES

    • [오답] 접속한 사용자의 홈 디렉터리를 최상위 디렉터리가 되도록 지정

79

vsftpd의 보안성 확보

  • anon_upload_enable=NO로 설정하여 익명 사용자의 업로드 제한
  • session_support=YES로 설정하여 wtmp에 로그를 남김
  • xferlog_enable=YES로 설정하여 로그 기록
  • [오답] /etc/vsftpd/user_list에 접속 가능한 사용자 계정 등록 → /etc/vsftpd/user_list에 등록된 사용자 계정은 vsftp를 사용할 수 없다.

80

sendmail

  • 메일의 별칭 혹은 특정 계정으로 수신한 이메일을 다른 계정으로 전달하도록 설정

    /etc/aliases

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

    /etc/mail/access

  • 가상의 메일 계정으로 들어오는 메일을 특정 계정으로 전달하는 정보 설정

    /etc/mail/virtusertable

  • sendmail의 설정을 편리하게 관리할 수 있는 보조 파일이며, m4 유틸리티를 m4 [sendmail.mc](http://sendmail.mc) > sendmail.cf와 같이 사용

    /etc/mail/sendmail.mc

    • [오답] sendmail의 설정을 편리하게 관리할 수 있는 보조 파일이며, makemap 명령어를 이용하여 sendmail.cf를 생성

81

  • sendmail의 설정 파일인 sendmail.cf의 설정 항목 중 Relay를 허용할 도메인을 설정하는 항목

    FR-o

    [오답]

    • 메일 수신 호스트의 이름을 설정하며, 보통 도메인명을 이용

      Cw

    • 여러 개의 도메인명을 수신 호스트의 이름으로 이용할 경우 관련 설정 파일 지정

      Fw

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

      Dj

82

127.0.0.1      localhost localhost.localdomain
localhost4     localhost4.localdomain4 ::1
localhost      localhost.localdomain
localhost6     localhost6.localdomain6

192.168.45.223 server.youngjin-nistest.com
192.168.45.216 client.youngjin-nistest.com
  • DNS 서비스와 관련있는 설정 파일 이름

    /etc/hosts

    • 로컬 호스트에서만 사용할 수 있는 DNS 정보를 설정할 수 있음
    • 도메인 이름과 IP 주소 간의 매핑을 정의하여 로컬 네트워크에서 빠른 DNS 조회 가능

    [오답]

    • 접근 제어를 제공

      /etc/hosts.allow, /etc/hosts.deny

    • 리눅스 시스템에서 사용자가 애플리케이션이나 서비스를 이용하고자 할 때 동적으로 인증할 수 있는 공유 라이브러리 스위트

      PAM

      • /etc/pam 디렉터리에 있는 설정 파일들을 통해 사용자 인증, 비밀번호 정책, 계정 제한 등을 제어
    • 존(zone) 파일, 리버스 존(reverse zone) 파일을 비롯한 DNS 서버의 주요 환경을 설정하는 설정 파일

      /etc/named.conf

83

DNS의 설정 파일인 /etc/named.conf 파일 특징

  • 크게 주석문과 구문으로 구성
  • options, acl, zone 등의 주요 구문이 있으며, 구문 끝에는 세미콜론(;)을 붙임
  • include 지시자를 이용하여 별도의 설정 파일 포함 가능
  • 주석은 /* ~ */, #, 등을 사용 → /* ~ */, #, // 등을 사용 가능

84

DNS의 zone 파일

  • 도메인 이름과 IP 주소 혹은 관련 리소스 간 매핑을 포함함
  • ;를 이용하여 주석을 추가할 수 있음
  • 도메인명, 레코드 클래스, 레코드 타입을 갖는 개발 도메인 속성을 포함
  • [오답] SOA 레코드는 $TTL 항목을 가지며 설정한 정보를 다른 DNS 서버에서 조회하였을 경우, 캐시에 보관할 시간을 지정 → $TTL은 zone 파일에 별도로 존재하는 항목

  • /etc/named.conf에서 도메인을 관리하기 위한 데이터 파일

    zone 파일

    • zone 파일 특징
      • 도메인 이름과 IP 주소 혹은 관련 리소스 간 매핑을 포함하고, 리소스 레코드로 구성된다.
      • 리버스 존(Reverse zone) 파일을 이용하여 IP 주소에 대한 도메인 정보 조회를 제공한다.
      • 일반적으로 zone 파일명은 [도메인명.zone](http://도메인명.zone) 을 따르고, reverse zone 파일명은 도메인명.rev을 따른다.
      • . 을 이용해 주석을 추가한다.

85

DNS가 관리하는 레코드 타입

  • 도메인 이름에 해당하는 IPv4 주소

    A

  • 도메인 이름별칭

    CNAME

  • 호스트에 대한 공식 네임 서버

    NS

  • IP 주소를 기반으로 도메인 이름 반환

    MXPTR

  • 도메인 이름에 대한 메일 교환 서버

    MX

  • zone 파일의 주요 레코드 타입

    타입설명
    A(Address Mapping Records)도메인 이름에 해당하는 IPv4 주소
    AAAA(IPv6 Address Records)도메인 이름에 해당하는 IPv6 주소
    CNAME(Canonical Name)도메인 이름의 별칭
    HNFO(Host Information)CPU, OS 유형 등 호스트에 대한 정보
    MX(Mail exchanger)도메인 이름에 대한 메일 교환 서버
    NS(Name Server)호스트에 대한 공식 네임 서버
    PTR(Reverse-lookup Pointer records)IP 주소를 기반으로 도메인 이름 반환
    SOA(Start of Authority)도메인 관리자 메일, 일련번호 등 DNS 핵심 정보 지정
    TXT(Text)임의의 텍스트 문자열 지정

86

DNS 관련 주요 명령어

  • zone 파일의 문법적 오류를 점검

    named-checkzone

  • /etc/named.conf 환경설정 파일의 문법적 오류를 점검

    named-checkconf

  • DNS 서버의 자세한 상태 확인

    rndc status

  • 도메인을 조회

    dig

    • [오답] DNS 서비스를 재실행하여 설정 파일 적용

87

리눅스 가상화 서비스 특징

  • 사용자의 요구사항에 맞게 할당, 배치, 배포 할 수 있도록 만들어 놓는 것

    프로비저닝(Provisioning)

  • 여러 개의 물리적 자원을 논리적으로 통합하여 하나의 자원으로 사용할 수 있도록 제공

    단일화(Aggregation)

  • 물리적인 특징이 다른 장치를 범용적인 모델로 인식하여 사용할 수 있도록 지원

    에뮬레이션(Emulation)

  • 하나의 가상화 서비스에 문제가 발생하여도 다른 서비스로 장애가 전이되지 않도록 관리

    절연(Insulation)

    • [오답] 서비스 구간을 분할하여 독립적으로 사용할 수 있도록 함

88

리눅스의 대표적인 가상화 기술

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

    KVM

    • [오답] CPU 반가상 기술을 지원하지 않으므로, 이더넷, Disk I/O, 그래픽 등은 전용 에뮬레이터를 이용KVM은 CPU 반가상 기술을 지원하지 않지만, 이더넷, Disk I/O, 그래픽 등은 반가상화를 지원
  • CPU 전가상화, 반가상화를 모두 지원하는 하이퍼바이저 기반의 가상화 기술

    XEN

    • 전가상화 구성 시 QEMU 기반으로 동작

89

  • CPU의 가상화 지원 여부를 확인하기 위해 참고할 수 있는 파일

    /proc/cpuinfo

    • /proc/cpuinfo 파일의 flag 값을 확인하여 CPU 가상화 지원 여부 점검 가능
      • Intel VT-x를 지원할 경우, vmx가 포함된다.
      • AMD-V를 지원할 경우, svm이 포함된다.

90

리눅스 슈퍼 데몬(Super Daemon)

  • 사용자의 요구에 따라 필요한 서비스를 실행하고, 요청을 완료하면 서비스를 종료하여 시스템 자원을 효율적으로 사용
  • TCP Wrapper를 이용하여 접근 통제
  • /etc/xinetd.conf기본 설정 파일로 사용
  • [오답] standalone 방식과 비교하여 사용자 요청에 대한 처리시간이 빠르고 효율적슈퍼 데몬(inetd, xinetd) 방식은 standalone 방식과 비교하여 사용자 요청에 대한 처리 시간이 느리지만, 다양한 서비스를 제한된 시스템 자원으로 운영하기에 효율적

91

TCP Wrapper 설정 ([host.allow])

  • ALL : 192.168.9.0/255.255.255.0 : 192.168.9.0 네트워크 대역에 속한 모든 클라이언트의 접속 허가
  • ALL EXEPT in.telnetd : ALL : telnetd를 제외한 모든 서비스에 대하여 모든 클라이언트의 접속 허가
  • sshd : 192.168.9.7 : severity local0.alert : 192.168.9.7에서 sshd 서비스를 사용할 수 있도록 설정하되 syslog을 기록
  • sshd : 192.168.9.2 : deny : [오답] hosts.allow에 설정되어 있으므로 deny 지정은 무시된다.host.allow에 설정되어 있으나 deny를 지정하여 접근 금지함

92

  • 클라이언트와 서버 사이에 위치하여, 요청과 응답 과정에서 데이터를 중계하는 역할을 담당하는 프로그램(서비스)의 명칭

    squid

    • squid 서버의 특징
      • 리눅스에서 사용할 수 있는 대표적인 프록시 서버이다.
      • GPL(General Public License)를 따르는 오픈소스 소프트웨어이며 캐싱(Caching)을 통해 HTTP, FTP, gopher 등 서비스의 데이터 응답소스를 향상시킨다.
      • 기본 포트로 TCP/3128를 이용한다.

    [오답]

    • SAMBA 관련 서비스의 명칭

      smbd

    • DNS 서비스의 명칭

      named

    • DHCP 서비스의 명칭

      dhcpd

93

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

  • 특정 MAC 주소를 갖는 시스템에 고정적인 IP 주소를 할당

    fixed-address

  • 초(second) 단위로 임대 요청 만료 시간 지정

    default-lease-time

  • 서브넷 마스크 지정

    option subnet-mask

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

    range

    • [오답] ip-range

    • dhcpd.conf의 주요 설정 항목

      설정 항목설명
      range클라이언트에 할당할 IP 범위 지정
      range dynamic-bootpDHCP 클라이언트와 BOOTP 클라이언트 함께 지원
      option domain-name도메인 이름 지정
      option domain-name-servers네임 서버 지정
      option routers게이트웨이 주소 지정
      option broadcast-address브로드캐스팅 주소 지정
      default-lease-time초(second) 단위로 임대요청 만료시간 지정
      max-lease-time초 단위로 클라이언트가 사용할 IP의 최대 시간 지정
      option subnet-mask서브넷 마스크 지정
      fixed-address특정 MAC 주소를 갖는 시스템에 고정적인 IP 주소 할당

94

VNC(Virtual Network Computing)

  • 비트맵 기반 RFB(Remote Frame Buffer) 프로토콜을 이용하여 원격 접속 및 사용하는 기능을 제공
  • 로컬과 원격 호스트가 화면, 키보드, 마우스를 공유하는 방식

    세션 공유 접속 방식

  • 별도의 세션을 이용하여 접속하는 방식

    독립 세션 접속 방식

  • [오답] vncpasswd 명령으로 VNC 서버에 접속할 때 사용할 비밀번호를 /etc/passwd 파일에 설정 → 패스워드는 사용자 홈디렉터리~/.vnc/passwd에 저장됨

95

NTP 서비스의 설정 파일인 /etc/ntp.conf의 항목

  • NTP 서버에 접근할 수 있는 클라이언트 제한

    restrict

  • NTP 서버 지정

    server

  • 대칭키 암호화를 위한 키 파일 지정

    keys

  • NTP 데몬에 의해 자동으로 생성되는 driftfile의 위치를 지정함. 시간 오차의 평균값을 저장하여 시간을 정확하게 유지하는 역할을 수행

    driftfile

  • NTP(Network Time Protocol) 서비스 특징

    • 컴퓨터 간 시간을 동기화하는 NTP 프로토콜을 이용하여 NTP 서버와 시간을 동기화한다.
    • 협정세계시(UTC)를 기준으로 1/1000초까지 시간을 동기화할 수 있다.
    • UDP/123을 기본 포트로 이용한다.

96

chrony 서비스의 설정 파일인 /etc/chrony.conf의 항목

  • 공개된 서버들의 목록을 포함한 풀(pool) 지정

    pool

  • 계급(Stratum) 당 보정해야 할 거리의 값 지정

    stratumweight

  • NTP 서버에 접근 가능한 클라이언트 주소 범위 지정

    allow

  • 시스템의 시간이 크게 빠르거나 느릴 때 조정하는 방식 지정

    makestep

  • chrony : NTP를 구현한 프로그램으로 최근 리눅스의 경우 기본 NTP 프로그램으로 사용
  • chrony 서비스의 설정
    • /etc/chrony.conf 를 설정 파일로 이용한다.
    • 주요 설정 항목

      설정 항목설명
      pool- 공개된 서버들의 목록을 포함한 풀(pool)을 지정한다.
      - ex. pool 2.rocky.pool.ntp.org iburst - server 설정 항목을 이용해 개별 서버를 지정할 수 있다.
      stratumweight- 계급 당 보정해야 할 거리의 값을 지정한다.
      - ex. stratumweight 0
      driftfile- 시스템 클럭 보정 정보를 저장하는 파일을 지정한다.
      - driftfile /var/lib/chrony/drift
      makestep- 시스템의 시간이 크게 빠르거나 느릴 때 조정하는 방식을 지정한다.
      - ex. makestep 1.0 3 : 시스템 시작 후 처음 3회 시간 동기화에서 시스템의 시간과 NTP 서버의 시간 차이가 1초 이상일 경우 즉시 조정
      allow- NTP 서버에 접근 가능한 클라이언트 주소 범위를 지정한다.
      - ex. allow 192.168.0.0/16
      keyfile- 인증 시 사용할 키 파일을 지정한다.
      - ex. keyfile /etc/chrony.keys
      logdir- 로그 파일의 경로를 지정한다.
      - ex. logdir /var/log/chrony
      • /etc/chrony.conf 를 변경한 경우 systemctl restrat chronyd 로 chrony 서비스를 재실행한다.

97

  • $ ( ) eth0 ( ) : interface인 eth0무차별 모드로 변경하기 위한 명령

    ifconfig eth0 promisc

    • 스니핑(Sniffing) 공격
      • 개념
        • 한 서브 네트워크 내에서 전송되는 패킷의 내용을 임의로 확인하는 공격 기법
      • 네트워크 무작위 모드(Promiscuous Mode)와 TCP Dump
        • 네트워크 설정을 무작위 모드로 변경한 후 TCP Dump를 이용하면, 네트워크 내의 모든 패킷을 확인할 수 있다.
        • ifconfig [네트워크 인터페이스 이름] promisc 를 통해 무작위 모드로 변경한다.
        • ifconfig [네트워크 인터페이스 이름] -promisc 를 통해 일반 모드(Normal mode)로 다시 전환한다.
        • tcpdump는 네트워크 패킷을 확인하는 명령어이다.

            $ ifconfig eth0 promisc # 무작위 모드로 변경
                          
            $ ifconfig
                          
            $ tcpdump -ni eth0 # 네트워크 패킷 확인
                          
            $ ifconfig eth0 -promisc # 일반 모드로 전환
          

98

  • IP 주소를 MAC 주소로 변환하는 과정을 변조하여 공격하는 방식

    ARP Spoofing

    • IP 주소를 MAC 주소로 변환하는 ARP 프로토콜의 취약점을 악용한 공격

    [오답]

    • TCP/IP의 구조적 취약점을 악용하여, 공격자가 자신의 IP를 변조하므로 IP 기반 인증 등의 서비스를 무력화시키는 공격기법

      IP Spoofing

    • DNS 요청에 위조된 정보를 응답 패킷으로 보내는 기법

      DNS Spoofing

99

alert ip any any -> any any (msg:"Land Attack"; (   ); sid:1000001;)
  • Land Attack을 탐지하기 위한 Snort Rule의 일부로, 괄호에 들어갈 내용은?

    sameip

    • 공격 대상에 IP 패킷을 보낼 때 발신자 IP, 수신자 IP를 모두 공격 대상의 IP로 하여 문제를 일으키게 하는 공격 기법

      Land Attack

      • snort rule에서는 sameip로 탐지 옵션을 지정할 수 있다.
      • Snort Rule 옵션의 주요 항목

        항목설명
        msg출력할 메시지 지정
        sid설정할 룰의 식별자를 지정하며 사용자가 작성한 룰은 1000000 이상으로 함
        content페이로드(Payload) 내부에서 검색할 문자열 지정
        depth검사할 바이트 수를 지정
        offset검사를 시작할 위치 지정
        distance- 앞에 설정한 룰의 결과에서 지정한 숫자(바이트 수)만큼 떨어진 지점부터 검사
        - ex. content:“Hi”;content:”Hello”:distance:1 이면, Hi 문자를 찾은 뒤 1바이트 이후부터 Hello 문자열 검사
        within시작점부터 검사하되 지정한 바이트 수 내에서만 검사
        nocase문자열 검색 시 대소문자 구별 X
        sameip소스와 목표 IP 주소가 동일함을 검사

100

  • iptables의 테이블 종류 중 패킷 필터링을 위해 사용할 수 있는 항목

    filter

    [오답]

    • Network Address Translation 즉, IP 주소 및 포트를 변환하고 관리

      nat

    • 연결 추적(Connection tracking)을 위한 세부 기능 제공

      raw


© 2021. All rights reserved.

yaejinkong의 블로그