다음은 하나의 메일 서버에 여러 도메인을 사용하는 환경에서 동일한 메일 계정을 요구하여 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 메일 서버에 사용하는 도메인인 ihd.or.kr을 등록한다.
# vi ( ① )
ihd.or.kr
나. 발신 도메인을 무조건 ihd.or.kr로 설정한다.
# vi ( ② )
( ③ )
다. 발신지 도메인이 spam.com으로부터 오는 메일을 거부한다.
# vi ( ④ )
( ⑤ )
■ 조건
① /etc/mail/local-host-names
② /etc/mail/sendmail.cf
③ Djihd.or.kr
④ /etc/mail/access
⑤ From:spam.com REJECT (또는 DISCARD)
@ IN SOA ( ① ) ( ② )
(
--중략--
3H ) ; minimum
IN NS ns.ihd.or.kr.
IN A 192.168.5.13
( ③ )
( ④ )
■ 조건
① ns.ihd.or.kr.
② kait.ihd.or.kr.
③ IN MX 10 ihd.or.kr.
④ www IN A 192.168.5.13
DNS Zone 파일 설정은 도메인 이름 시스템(DNS)에서 도메인에 대한 정보를 정의하는데 사용되는 텍스트 파일의 한 형식입니다. 여기서 주어진 조건에 따라 괄호 안에 들어갈 적절한 내용은 다음과 같습니다.
① - SOA 레코드에서 첫 번째 위치는 주로 해당 도메인의 기본 이름 서버를 나타냅니다. 'ihd.or.kr' 도메인의 경우 이것은 ns.ihd.or.kr.
이 될 것입니다. (마지막에 점을 찍어야 함을 주의하세요. 이는 FQDN(Fully Qualified Domain Name)을 나타냅니다.)
② - SOA 레코드의 두 번째 위치는 도메인에 대한 관리자 연락처 정보입니다. 'kait@ihd.or.kr'를 DNS 형식으로 바꾸면 kait.ihd.or.kr.
가 됩니다. (이메일 주소에서 '@'는 DNS에서 '.'으로 바뀌며, FQDN을 나타내므로 끝에 점을 찍습니다.)
③ - ihd.or.kr 도메인에서 메일을 받기 위한 MX 레코드를 설정해야 합니다. 예를 들어 IN MX 10 mail.ihd.or.kr.
라고 설정할 수 있습니다. 여기서 '10'은 우선 순위를 나타내며, 'mail.ihd.or.kr.'은 메일 서버의 주소입니다.
④ - 'www' 서브 도메인에 대한 A 레코드를 설정하여 IP 주소를 지정합니다. 따라서 www IN A 192.168.5.13
이 됩니다.
최종 설정은 다음과 같습니다.
@ IN SOA ns.ihd.or.kr. kait.ihd.or.kr. (
--중략--
3H ) ; minimum
IN NS ns.ihd.or.kr.
IN A 192.168.5.13
IN MX 10 mail.ihd.or.kr.
www IN A 192.168.5.13
가. 현재 설정되어 있는 iptables의 규칙(rule)을 firewall.sh 파일로 저장한다
# ( ① ) ( ② ) firewall.sh
나. 현재 설정되어 있는 iptables의 규칙 (rule)을 전부 제거한다
# iptables ( ③ )
다. firewall.sh 파일에 저장되어 있는 iptables의 규칙(rule)을 불러와서 반영한다.
( ④ ) ( ⑤ ) firewall.sh
라. 적용된 iptables의 규칙(rule)을 확인한다.
# iptables ( ⑥ )
■ 조건
① iptables-save
② >
③ -F
④ iptables-restore
⑤ <
⑥ -L
다음은 사용자의 디스크 사용량을 제한하기 위해 쿼터(Disk Quota)를 설정하는 과정이다.
조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 사전 준비 사항 - 사용자의 디스크 쿼터를 설정하기 위해서는 ( ① ) 파일에서 설정하려는 파티션과관련된 항목의 ( ② ) 번째 필드에 ( ③ )을 추가 기입하고 다시 마운트하거나 재시작해야 한다. 나. 사용자 쿼터 정보가 기록되는 파일을 생성한다. # ( ④ ) /home
■ 조건
① /etc/fstab
② 4
③ usrquota
④ quotacheck
물론입니다. 리눅스 시스템에서 디스크 쿼터(Disk Quota)를 설정하는 것은 관리자가 특정 사용자나 그룹의 디스크 사용량을 제한할 수 있게 해주는 기능입니다. 이 과정에는 몇 가지 단계가 포함되며, 여기에서 언급된 과정들은 다음과 같은 의미를 가집니다:
/etc/fstab
파일 편집:
/etc/fstab
파일은 시스템 부팅 시에 파일 시스템을 어떻게 마운트할지 정의하는 중요한 설정 파일입니다.usrquota
와 grpquota
옵션을 추가함으로써, 시스템은 해당 파티션에서 사용자와 그룹의 쿼터를 추적하도록 설정됩니다.quotacheck
명령어 사용:
quotacheck
명령어는 파일 시스템을 검사하여 쿼터 정보를 생성하거나 업데이트하는데 사용됩니다.quotacheck /home
은 /home
디렉터리(일반적으로 사용자의 홈 디렉터리가 위치하는 곳)에 대한 쿼터 정보를 검사하고 생성합니다.이러한 설정 후에는 시스템이나 쿼터 서비스를 재시작하여 새 설정이 적용되도록 해야 합니다. 이후 관리자는 quotaon
, quotaoff
, edquota
, repquota
등의 명령어를 사용하여 쿼터를 관리하고 사용자별 또는 그룹별 디스크 사용량을 제한하고 보고할 수 있습니다.
다음은 rpm 명령을 이용해서 패키지를 관리하는 과정이다. 조건에 맞게 ( 괄호 ) 안에알맞은 내용을 적으시오.
가. vsftpd 패키지와 의존적인 관계에 있는 파일, 라이브러리, 패키지 목록을 출력한다.
# rpm ( ① ) vsftpd
나. /etc/shadow 파일을 설치한 패키지 정보를 출력한다.
# rpm ( ② ) /etc/shadow
다. 지정한 패키지 파일이 설치될 파일이나 디렉터리를 미리 확인한다.
# rpm ( ③ ) totem-2.28.6-2.el6.i686.rpm
라. vsftpd 패키지의 환경 설정 파일 정보만 출력한다.
# rpm ( ④ ) vsftpd
■ 조건
① -qR 또는 -q --requires
② -qf 또는 -qif
③ -qlp
④ -qc
[root@localhost /]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@localhost /]#
[root@localhost /]# rpm -qc httpd
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf
/etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/logrotate.d/httpd
/etc/sysconfig/htcacheclean
/etc/sysconfig/httpd
[root@localhost /]#
[root@localhost /]# grep -i userdir $(rpm -qc httpd)
/etc/httpd/conf.d/userdir.conf:# UserDir: The name of the directory that is appended onto a user's home
/etc/httpd/conf.d/userdir.conf:<IfModule mod_userdir.c>
/etc/httpd/conf.d/userdir.conf: # UserDir is disabled by default since it can confirm the presence
/etc/httpd/conf.d/userdir.conf: UserDir disabled
/etc/httpd/conf.d/userdir.conf: # directory, remove the "UserDir disabled" line above, and uncomment
/etc/httpd/conf.d/userdir.conf: #UserDir public_html
/etc/httpd/conf.d/userdir.conf:# Control access to UserDir directories. The following is an example
/etc/httpd/conf.modules.d/00-base.conf:LoadModule userdir_module modules/mod_userdir.so
[root@localhost /]#
#UserDir public_html
다음은 모듈 관련 작업 및 커널 컴파일을 진행하는 과정이다. 조건에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.
가. 모듈 간의 의존성이 기록된 파일명을 절대 경로로 기입한다. ( ① )
나. 커널 모듈 간의 의존성을 관리하는 명령으로 ①번에 해당하는 파일과 맵 파일을 생성
한다. ( ② )
다. 커널 컴파일 과정에서 선택한 모듈(m으로 선택)을 생성하는 명령을 기입한다. ( ③ )
라. 커널 컴파일 과정에서 생성한 모듈을 설치하는 명령을 기입한다. ( ④ )
■ 조건
① /lib/modules/커널버전/modules.dep
(커널버전: 2.6.33.3-85.fc13.i686, 2.6.33.3-85.fc13.x86_64)
② depmod
③ make modules
④ make modules_install
리눅스 시스템에서 커널 모듈은 시스템의 기능을 확장하는 데 사용됩니다. 이 모듈들은 커널 컴파일 과정에서 함께 컴파일될 수도 있고, 나중에 필요할 때 불러와져서 사용될 수도 있습니다. 여기서 말하는 의존성(dependency)은 한 모듈이 다른 모듈을 필요로 할 때의 관계를 말합니다.
가. 모듈 간의 의존성이 기록된 파일:
리눅스에서 모듈 간의 의존성 정보는 modules.dep
파일에 저장됩니다. 이 파일은 각 모듈이 어떤 다른 모듈들을 필요로 하는지를 나타내며, 시스템이 올바른 순서로 모듈을 불러올 수 있게 돕습니다.
나. 의존성 파일 생성 명령어:
depmod
명령어는 모든 설치된 커널 모듈을 검사하고, 그 의존성을 분석하여 modules.dep
파일과 관련 맵 파일들을 생성합니다. 이렇게 하면 모듈을 불러올 때 필요한 의존성 정보를 시스템이 알 수 있게 됩니다.
다. 모듈 컴파일 명령어:
make modules
명령어는 리눅스 커널 소스 코드 내에서 사용되며, 현재 커널 설정에 따라 커널 모듈을 컴파일합니다. 이때 'm'으로 표시된 모듈(즉, 선택적으로 빌드되는 모듈)들이 컴파일됩니다.
라. 모듈 설치 명령어:
컴파일된 모듈을 시스템에 설치하기 위해서는 make modules_install
명령어를 사용합니다. 이 명령은 컴파일된 모든 모듈을 시스템의 적절한 위치에 복사하여 설치하며, 필요한 경우 modules.dep
파일과 관련 맵 파일들도 업데이트합니다.
이러한 명령어들은 리눅스 커널 개발자 또는 시스템 관리자가 커널을 커스터마이징하거나 최신 하드웨어 지원, 보안 패치 적용 등의 이유로 커널을 컴파일할 때 사용됩니다.
다음은 시스템 로그 관련 설정을 하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은내용을적으시오.
가. 모든 서비스(facility)에 대해 가장 최고 수준(priority)의 위험한 상황인 경우에 root 및 ihduser 사용자의 터미널로 관련 로그를 전송한다. ( ① ) ( ② )
나. 메일 서비스(facility)에서 발생하는 error 수준 메시지만 /var/log/mail_error에 기록한다.
( ③ ) /var/log/mail_error
다. 인증 서비스 관련 로그는 로컬 시스템의 두 번째 터미널로 전송한다.
authpriv.* ( ④ )
■ 조건
① *
.emerg 또는 *
.panic
② root,ihduser 또는 :omusrmsg:root,ihduser
③ mail.=error 또는 mail.=err
④ /dev/tty2
나. 로컬시스템의 3번째 터미널 창(/dev/tty3)에 로그인이 성공한 정보를 출력한다.
# ( ② )
참고로 /dev에 어떤 파일이 있는지 확인하면 다음과 같이 로컬에 터미널이 엄청 많이 존재하는 것을 확인할 수 있습니다.
[root@localhost dev]# ls /dev
autofs fuse null stderr tty23 tty41 tty6 vcs
block hpet nvram stdin tty24 tty42 tty60 vcs1
bsg hugepages oldmem stdout tty25 tty43 tty61 vcs2
btrfs-control hwrng port tty tty26 tty44 tty62 vcs3
bus initctl ppp tty0 tty27 tty45 tty63 vcs4
cdrom input ptmx tty1 tty28 tty46 tty7 vcs5
centos kmsg pts tty10 tty29 tty47 tty8 vcs6
char log random tty11 tty3 tty48 tty9 vcsa
console loop-control raw tty12 tty30 tty49 ttyS0 vcsa1
core lp0 rtc tty13 tty31 tty5 ttyS1 vcsa2
cpu lp1 rtc0 tty14 tty32 tty50 ttyS2 vcsa3
cpu_dma_latency lp2 sda tty15 tty33 tty51 ttyS3 vcsa4
crash lp3 sda1 tty16 tty34 tty52 uhid vcsa5
disk mapper sda2 tty17 tty35 tty53 uinput vcsa6
dm-0 mcelog sg0 tty18 tty36 tty54 urandom vfio
dm-1 mem sg1 tty19 tty37 tty55 usbmon0 vga_arbiter
dri mqueue shm tty2 tty38 tty56 usbmon1 vhci
fb0 net snapshot tty20 tty39 tty57 usbmon2 vhost-net
fd network_latency snd tty21 tty4 tty58 vboxguest zero
full network_throughput sr0 tty22 tty40 tty59 vboxuser
다음은 ssh 클라이언트에서 ssh 서버인 192.168.12.22로 접근하는 과정이다. 조건에맞게( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 현재 ihduser로 로그인되어 있는 상태이다. kaituser로 계정을 변경해서 접근하는 명령을
기입한다. $ ssh ( ① )
나. ssh 서버의 포트 번호가 180번으로 변경된 경우에 접근하는 명령을 기입한다. $ ssh ( ② )
다. ssh 서버의 홈 디렉터리에 data 디렉터리는 생성하는 명령을 기입한다. $ ssh ( ③ )
라. ssh 서버에 키 기반 인증을 위해 ssh 클라이언트에서 관련 키 쌍을 생성하는 명령을
기입한다. $ ( ④ )
■ 조건
① kaituser@192.168.12.22 또는 -l kaituser 192.168.12.22
② -p 180 192.168.12.22
③ 192.168.12.22 mkdir data (또는 ~/data)
④ ssh-keygen
난이도 말이 안되게 어렵습니다. 5개년 기출 훑어보면서 ssh 관련 문제는 전부 sshd_config로 출제되었습니다. 딱 이 문제를 제외하면 말이죠.
일단 man 페이지로 다음 명령어의 쓰임새를 확인해보면 다음과 같습니다.
ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile]
[-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-Q query_option] [-R address] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]
마지막에 인자로 [user@]hostname [command]
가 있는데, 어이가 없는게 user@]hostname 띄어쓰기가 없어 언뜻 보면 user@|hostname로 보여 hostname을 반드시 쓰지 않아도 되는 것처럼 느껴진다는 것입니다.
즉, ssh 명령은 반드시 hostname을 인자로 받아야하며, 192.168.12.22를 명령어마다 꼬박꼬박 써줘야 한다는게 고난이도의 이유입니다. 예제도 한두개 숨어있지만 문제를 풀기 위해선 역부족인 man 페이지입니다. 꼼꼼하게 눈에 익혀둬야겠습니다.
다음은 아파치 웹 사용자 인증을 위해 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에알맞은 내용을 적으시오.
가. 아파치 웹 사용자로 ihduser를 생성하고, 저장되는 파일명은 /etc/password로 지정한다. (단, /etc/password은 처음 생성하는 파일이다. )
# ( ① ) ( ② ) /etc/password ihduser
나. httpd.conf 파일에 인증할 디렉터리 관련 설정을 한다.
<Directory "/usr/local/apache/htdocs/admin">
AllowOverride ( ③ )
</Directory>
다. 아파치 웹 사용자 인증 대상 디렉터리인 /usr/local/apache/htdocs에 생성할 파일명을
기입한다.
( ④ )
■ 조건
① htpasswd
② -c
③ AuthConfig
④ .htaccess
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
다음은 삼바 서버 관련해서 설정 내용을 확인하는 과정이다. 조건에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.
가. 삼바 클라이언트에서 삼바 서버로 운영중인 192.168.5.13의 공유 디렉터리를 확인한다.
# ( ① ) ( ② ) 192.168.5.13
나. 공유된 디렉터리가 192.168.5.13의 data 디렉터리로 확인되었다. 접근하는 명령을 기입한다.
# ( ① ) ( ③ )
다. 삼바 서버에서 환경 설정 파일인 smb.conf 파일의 설정 여부를 확인한다.
# ( ④ )
■ 조건
① smbclient
② -L
③ \\192.168.5.13\data 또는 //192.168.5.13/data
④ testparm
다음은 TCP Wrapper를 이용해서 접근 제어를 설정하는 과정이다. 조건에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.
가. 모든 서비스에 대한 모든 호스트의 접근을 차단한다.
# vi /etc/hosts.deny
( ① )
나. 텔넷 서비스에 대해 192.168.5.0 네트워크 대역에 속한 호스트의 접근을 허가한다.
( ② )
다. ssh 서비스에 대해 IP 주소가 192.168.5.13인 호스트만 허가한다.
( ③ )
라. vsftpd 서비스에 대해 ihd.or.kr 도메인에 속한 호스트만 허가한다.
( ④ )
■ 조건
① ALL: ALL
② in.telnetd: 192.168.5. (또는 192.168.5.0/255.255.255.0)
③ sshd: 192.168.5.13
④ vsftpd: .ihd.or.kr
다음 그림과 같이 하나의 공인 IP 주소를 이용해서 다수의 서버를 연결하여 구성한 상태이고, iptables를 이용해서 방화벽 규칙(rule)을 설정하는 과정이다. 조건에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.
- 외부로부터 들어오는 웹 서비스 요청을 내부의 사설 IP 주소가 192.168.0.4인 웹 서버로 전달한다.
# iptables -t ( ① ) -A ( ② ) -p ( ③ ) -d 203.247.50.100 ( ④ ) -j ( ⑤ ) --to ( ⑥ )
■ 조건
① nat
② PREROUTING
③ tcp
④ --dport 80
⑤ DNAT
⑥ 192.168.0.4:80
TCP(Transmission Control Protocol) 포트 번호는 인터넷 프로토콜 스위트에서 호스트 내의 특정 프로세스나 서비스를 식별하기 위해 사용됩니다. 포트 번호는 0부터 65535까지 있으며, 0부터 1023까지는 잘 알려진 포트 번호로 예약되어 있고, 일반적으로 시스템 또는 관리자 권한이 필요한 서비스에 사용됩니다.
일부 잘 알려진 TCP 포트 번호는 다음과 같습니다:
1024부터 49151까지의 포트 번호는 등록된 포트로, 특정 서비스를 위해 할당됩니다. 49152부터 65535까지는 동적 또는 개인 포트로 사용되며, 일시적인 통신에 사용되는 포트 번호입니다.
다음은 2개의 하드디스크를 이용해서 스트라이핑(striping) 기술이 적용된 RAID를 구성하는 과정이다. ( 괄호 ) 안에 알맞은 내용을 적으시오.
# ( ① ) ( ② ) /dev/md0 ( ③ ) /dev/sdb1 /dev/sdc1
■ 조건
① mdadm
② -C 또는 --create
③ -l 0 -n 2 또는 --level=0 --raid-devices=2
다음은 파일 시스템을 점검하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. XFS 파일 시스템인 /dev/sdb1을 점검한다.
# ( ① ) /dev/sdb1
나. EXT4 파일 시스템인 /dev/sdc1을 점검한다.
# ( ② ) /dev/sdc1
■ 조건
① xfs_repair
② fsck 또는 e2fsck 또는 fsck.ext4
가. XFS 파일 시스템을 점검하기 위해 사용하는 명령어는 xfs_repair
입니다.
나. EXT4 파일 시스템을 점검할 때 사용하는 명령어는 e2fsck
입니다.
따라서 조건에 맞추어 다음과 같이 적으면 됩니다.
가. XFS 파일 시스템인 /dev/sdb1을 점검한다.
# ( xfs_repair ) /dev/sdb1
나. EXT4 파일 시스템인 /dev/sdc1을 점검한다.
# ( e2fsck ) /dev/sdc1
개인 사용자의 홈페이지 등록과 관련된 아파치 웹 서버 환경 설정을 진행하려고 한다. ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 관련 모듈과 환경 설정 파일을 활성화시킨다.
# vi httpd.conf
LoadModule ( ① )
Include ( ② )
나. 개인 사용자들의 웹 문서가 위치하는 디렉터리를 www로 지정한다.
# vi ( ③ )
( ④ )
■ 조건
① userdir_module modules/mod_userdir.so
② conf/extra/httpd-userdir.conf
③ /usr/local/apache/conf/extra/httpd-userdir.conf
④ UserDir www
아파치 웹 서버에서 개인 사용자의 홈페이지를 설정하는 경우 주로 "userdir" 모듈을 사용하고, 이와 관련된 설정은 httpd.conf
파일 또는 그것을 포함하는 설정 파일에 위치합니다. 아래 내용은 주어진 조건을 토대로 채워진 것입니다.
가. 관련 모듈과 환경 설정 파일을 활성화시킨다.
# vi /usr/local/apache/conf/httpd.conf
LoadModule userdir_module modules/mod_userdir.so
Include conf/extra/httpd-userdir.conf
나. 개인 사용자들의 웹 문서가 위치하는 디렉터리를 www로 지정한다.
# vi /usr/local/apache/conf/extra/httpd-userdir.conf
UserDir www
위 설정들은 아파치 서버가 해당 디렉터리의 사용자 이름에 해당하는 하위 디렉터리 내의 www
폴더를 사용자의 홈페이지로 접근하도록 설정합니다. 예를 들어, http://example.com/~user 요청은 /home/user/www
디렉터리 내의 파일을 참조하게 됩니다.
rpm -qc를 활용하여 3번 보기를 풀면 안됩니다. /etc/http~ 경로에 있는 httpd.conf와 /usr/local/~ 경로의 httpd.conf 의 내용은 전부 똑같을지언정 답을 적어내는 경로는 많이 다르기 때문에 반드시 find / | grep -i userdir 로 검색하여 푸는 것이 현명하다고 할수 있겠습니다.
잘못된 예시
[root@localhost conf]# grep -ri userdir $(rpm -qc httpd)
/etc/httpd/conf.d/userdir.conf:# UserDir: The name of the directory that is appended onto a user's home
/etc/httpd/conf.d/userdir.conf:<IfModule mod_userdir.c>
/etc/httpd/conf.d/userdir.conf: # UserDir is disabled by default since it can confirm the presence
/etc/httpd/conf.d/userdir.conf: UserDir disabled
/etc/httpd/conf.d/userdir.conf: # directory, remove the "UserDir disabled" line above, and uncomment
/etc/httpd/conf.d/userdir.conf: #UserDir public_html
/etc/httpd/conf.d/userdir.conf:# Control access to UserDir directories. The following is an example
/etc/httpd/conf.modules.d/00-base.conf:LoadModule userdir_module modules/mod_userdir.so
firewalld를 이용해서 방화벽 정책을 설정하는 과정이다. 작업 사항에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
(작업 사항) 웹 서비를 public 영역에 설정하는데, 시스템 재부팅 이후에도 지속적으로 방화벽 정책이 적용되도록 설정한다.
# ( ① ) ( ② ) ( ③ ) ( ④ )
■ 조건
① firewall-cmd
② --permanent
③ --zone=public
④ --add-service=http (②∼④는 순서 무관)
다음은 DNS 서버의 역 존(Reverse zone) 파일을 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
@ IN SOA ( ① ) ( ② )
--중략
3H) ; minimum
( ③ )
( ④ )
■ 조건
① ns.ihd.or.kr.
② kait.ihd.or.kr.
③ IN NS ns.ihd.or.kr. (첫 번째 필드는 공백이고, IN은 생략 가능)
④ 15 IN PTR ihd.or.kr. (15 및 IN은 생략 가능함) (③∼④는 순서 무관)
다음은 2개의 하드디스크를 이용해서 LVM을 구성하는 과정이다. ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 2개의 파티션을 물리적 볼륨으로 구성한다.
# ( ① ) /dev/sdb1 /dev/sdc1
나. 물리적 볼륨을 lvm0이라는 볼륨 그룹으로 구성한다.
# ( ② ) /dev/sdb1 /dev/sdc1
다. 약 2GB정도의 논리적 볼륨을 생성하는데, 이름은 kdata1로 설정한다.
# ( ③ ) ( ④ )
■ 조건
① pvcreate
② vgcreate lvm0
③ lvcreate
④ -L 2000M -n kdata1 lvm0
man lvm 으로 검색하고 맽 밑으로 내리면, pvcreate, vgcreate 등 정보를 얻을 수 있다. 여기서, 각 명령어들을 찾으면 된다.
주의사항은 vgcreate lvm0, 그리고 다. 설명에서 vg에 대한 언급이 없어서 헷갈리는데, 어쨌든 vg를 인자로 받아야 논리적 볼륨이 생성되는 것이므로 lvm0을 마지막에 꼭 써줘야 한다는 점이다.
외부로부터의 접근을 일시적으로 허가하기 위해서 SELinux 설정을 확인하고 제어하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 현재 SELinux 설정 상태를 확인한다.
# ( ① )
나. SELinux를 비활성화 상태로 바꾼다.
# ( ② )
■ 조건
① getenforce
② setenforce 0
다음은 메일 서버를 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 발신지 도메인의 spam.com으로부터 오는 메일을 거부하는데, 별도의 메세지는 보내지 않도록 설정한다.
# vi ( ① )
( ② )
나. 변경된 내용이 적용되도록 관련 정보를 갱신시킨다.
# ( ③ ) ( ① ) ( ④ ) ( ① )
■ 조건
① /etc/mail/access
② From:spam.com DISCARD
③ makemap hash
④ <
다음 문제는 2번 보기가 어려운 보기였습니다. discard? drop? reject? 너무 헷갈립니다.
option
다음 조건에 따라 아파치 웹 서버 환경 설정을 진행하려고 한다. ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 아파치 웹 서버 환경 설정 파일을 vi 편집기로 불러온다.
# vi ( ① )
나. 도메인명을 www.ihd.or.kr으로 지정하고 포트 번호는 80을 사용한다.
( ② )
다.웹 문서가 위치하는 디렉터리의 경로는 /usr/local/apache/html로 변경한다.
( ③ )
라. 아파치 웹 서버 데몬을 실행한다.
# ( ④ )
■ 조건
① /usr/local/apache/conf/httpd.conf
② ServerName www.ihd.or.kr:80
③ DocumentRoot "/usr/local/apache/html"
④ /usr/local/apache/bin/apachectl start
다음은 사용자를 관리하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. ihduser 사용자를 생성하는데, 주 그룹은 kait로 추가 그룹은 ihd로 지정한다.
# useradd ( ① ) kait ( ② ) ihd ihduser
나. ihduser 사용자를 추가로 linuxmaster라는 그룹에 포함한다.
# ( ③ ) ( ④ ) ihduser
■ 조건
① -g
② -G
③ usermod
④ -a -G (linuxmaster)
useradd에서의 man 페이지이다
-g, --gid GROUP
The group name or number of the user's initial login
group. The group name must exist. A group number must
refer to an already existing group.
If not specified, the behavior of useradd will depend on
the USERGROUPS_ENAB variable in /etc/login.defs. If this
variable is set to yes (or -U/--user-group is specified
on the command line), a group will be created for the
user, with the same name as her loginname. If the
variable is set to no (or -N/--no-user-group is
specified on the command line), useradd will set the
primary group of the new user to the value specified by
the GROUP variable in /etc/default/useradd, or 100 by
default.
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
A list of supplementary groups which the user is also a
member of. Each group is separated from the next by a
comma, with no intervening whitespace. The groups are
subject to the same restrictions as the group given with
the -g option. The default is for the user to belong
only to the initial group.
한편, usermod에서의 man 페이지이다
-a, --append
Add the user to the supplementary group(s). Use only
with the -G option.
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
A list of supplementary groups which the user is also a
member of. Each group is separated from the next by a
comma, with no intervening whitespace. The groups are
subject to the same restrictions as the group given with
the -g option.
If the user is currently a member of a group which is
not listed, the user will be removed from the group.
This behaviour can be changed via the -a option, which
appends the user to the current supplementary group
list.
다음은 디렉터리 생성 후 특정 그룹과 관련해서 권한을 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. project 그룹 및 관련 작업 디렉터리를 생성한다.
# mkdir /project
# groupadd project
나. /project 디렉터리의 그룹 소유권을 project로 변경한다.
# ( ① ) ( ② ) /project
다. /project 그룹에 속한 사용자만 /project 디렉터리에 접근할 수 있고, 파일 생성 시에는 자동으로 그룹 소유권이 project로 지정되도록 한다.
또한 해당 디렉터리에 있는 파일 삭제는 본인 소유인 경우에만 가능하도록 설정한다.
# ( ③ ) ( ④ ) /project
■ 조건
① chgrp (2번과 함께 맞추면 chown도 정답으로 인정)
② project
③ chmod
④ 3770 또는 3070
-R
옵션은 리눅스의 chmod
나 chown
명령어에서 사용하며, 해당 디렉터리와 그 안에 포함된 모든 파일 및 하위 디렉터리에 대하여 재귀적으로 권한을 변경하고 싶을 때 사용합니다. 만약 /project
디렉터리 안에 다수의 파일과 하위 디렉터리가 있고, 모든 내용에 대해 권한 변경을 일괄적으로 적용하고자 할 때 -R
옵션을 사용할 수 있습니다.
다만, 당신의 원래 요구사항에서는 /project
디렉터리에 대한 권한 설정만 언급되었고, 하위 파일이나 디렉터리에 대한 언급이 없었습니다. 그렇기 때문에 -R
옵션 없이 명령을 수행하는 것이 원하는 작업에 더 부합할 수 있습니다.
만약 /project
디렉터리와 그 안의 모든 파일과 하위 디렉터리에도 동일한 권한을 설정하고자 한다면 -R
옵션을 포함시켜 명령을 실행할 수 있습니다.
예를 들어, /project
디렉터리와 그 안의 모든 내용에 대해 재귀적으로 그룹 권한을 설정하고자 할 때는 다음과 같이 사용할 수 있습니다.
이 명령은 /project
디렉터리뿐만 아니라 그 안에 있는 모든 파일과 하위 디렉터리에 대해서도 그룹 사용자에게 읽기, 쓰기, 실행 권한을 주고, 다른 사용자의 모든 권한을 제거하며, 생성되는 파일들이 project 그룹 소유가 되도록 합니다.
다음은 모듈 확인 및 관리하는 과정이다. ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 리눅스 커널에 적재된 모든 정보를 출력한다.
# ( ① )
나. virtis net ko'라는 거린 모듈의 정보를 출력한다.
# ( ② ) virtio net.ko.xz
다. 지정된 모듈을 삭제하면서 연관된 모듈들도 함께 삭제한다.
# ( ③ ) ( ④ ) virtio net
■ 조건
① lsmod
② modinfo
③ modprobe
④- r 또는 --remove
다음은 시스템 로그 관련 설정을 하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 모든 서비스(facility)에 발생하는 메시지 중에 error 수준 이상의 메시지만 /var/log/critical 파일에 기록하는데, 커널이 발생하는 메시지는 제외한다.
( ① ) /var/log/critical
나. 모든 서비스(facility)에서 발생하는 alert 수준의 메시지만 로그인된 root 사용자의 터미널로 전송한다.
( ② ) ( ③ )
다. 인증 서비스와 관련된 모든 메시지는 /var/log/login_list 파일에 기록한다.
( ④ ) /var/log/login_list
■ 조건
① .error;kern.none 또는 .err;kern.none
② .=alert
③ root 또는 :omusrmsg:root
④ authpriv.
다음은 조건에 따라 아파치 웹 서버에서 주 도메인 이외에 0메인을 운영하기 위해 설정하는 과정이다. ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 관련 모듈과 환경 설정 파일을 활성화한다.
# vi httpd.conf
LoadModule ( ① )
Include ( ② )
나. 관련 파일에서 추가 도메인에 대한 설정을 진행한다.
# vi ( ③ )
< ( ④ ) 192.168.5.13:80>
ServerAdmin admin@ihd.or.kr
DocumentRoot "/usr/local/apache/htdocs"
</ ( ④ )>
■ 조건
① vhost_alias_module modules/mod_vhost_alias.so
② conf/extra/httpd-vhosts.conf
③ /usr/local/apache/conf/extra/httpd-vhosts.conf
④ VirtualHost
다음은 DHCP 서버의 설정 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 기본 테이블인 필터의 모든 사슬에 설정된 정책 정보를 출력한다.
# iptalbes ①
나. 기본 테이블인 필터의 모든 사슬에 설정된 정책 정보(포트, 프로토콜 등)를 숫자값으로 출력한다.
# iptables ②
다. 기본 테이블인 필터의 모든 사슬에 설정된 정책 정보를 패킷, 바이트 등을 추가하여 자세히 출력한다.
# iptables ③
라. 기본 테이블인 필터의 INPUT 사슬에 설정된 정책 정보만 출력한다.
#iptables ④
마. NAT 테이블의 모든 테이블에 설정된 정책 정보를 출력한다.
# iptables ⑤
바 기본 테이블인 필터의 INPUT 사슬에 설정된 정책 정보의 앞부분에 번호를 덧붙여 출력한다.
# iptables ⑥
■ 조건
① -L 또는 --list
② -nL
③ -vL
④ -L INPUT
⑤ -t nat -L
⑥ -L INPUT --line-number(s)