이기적 최신 기출문제 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)을 설정하는 곳이다.
      • 2는 Set-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

    [오답]

    • syslog와 rsyslog는 로그를 텍스트 형식으로 저장하며, 로그 파일은 /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은 조직 **내 **고유한 식별자를 가질 수 있음
  • [오답] LDAP는 UDP를 이용하여 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 주소를 기반으로 도메인 이름 반환

    MX → PTR

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

    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의 블로그