다음은 특수권한 설정에 관한 명령어 이다. ( 괄호 ) 안에 알맞은 옵션을 넣으시오.
[root@ihd ~]# chmod ( ① ) /ihd
■ 조건
# chmod u+s [파일]
# chmod 4777 [파일]
# chmod g+s [파일]
# chmod 2777 [파일]
chmod 1777 [파일]
다음 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
# ( ① ) ( ② ) -f /var/log/messages 'Hello, World!'
■ 조건
여기서 'LOGGER'가 지칭하는 것이 무엇인지에 따라 다를 수 있습니다만, 일반적으로 LOGGER는 로깅을 수행하는 도구나 프로그램, 또는 커맨드 라인 명령어를 의미합니다.
예를 들어, 컴퓨터 프로그래밍에서 로거(Logger)는 시스템의 실행에 대한 정보를 수집하고 기록하는 컴포넌트를 말합니다. 로그는 시스템의 이벤트, 데이터 처리, 오류, 상태 정보 등을 포함할 수 있으며, 디버깅, 모니터링, 오류 추적 등 다양한 목적으로 사용됩니다.
프로그래밍 언어나 프레임워크에 따라 로거를 구현하는 방식이 다릅니다. 예를 들어, 자바에서는 Log4j, SLF4J 같은 로깅 프레임워크가 사용되고, 파이썬에서는 logging 모듈이 내장되어 있어서 로거를 쉽게 사용할 수 있습니다.
리눅스나 유닉스 시스템에서는 'logger'라는 명령어가 시스템 로그를 관리하는데 사용됩니다. 이 명령어는 메시지를 syslog에 보내는 역할을 하며, 다음과 같이 사용할 수 있습니다.
logger [옵션] 메시지
예를 들어, 사용자가 특정 메시지를 시스템 로그에 기록하고 싶을 때 다음과 같은 명령어를 사용할 수 있습니다.
logger -p local0.notice "특정 작업이 완료되었습니다."
이 명령어는 "특정 작업이 완료되었습니다."라는 메시지를 로컬0.notice 우선 순위로 syslog에 보냅니다.
각 로깅 도구나 시스템은 로거를 사용하는 방식이나 설정 방법이 상이할 수 있으므로, 특정 프로그래밍 언어나 시스템에 대한 LOGGER 사용법에 대해서는 그에 맞는 문서를 참조하시는 것이 좋습니다.
다음은 웹서버 2.x 접근통제에 대한 설정 이다. ( 괄호 ) 안에 알맞은 내용을 넣으시오.
[root@ihd ~]# vi /etc/httpd/conf/httpd.conf
<Directory "www/ihd/admin">
( ① ) Deny,Allow
( ② ) from ( ③ )
Allow from ( ④ )
</Directory>
■ 조건
grep -ri "order" /usr/local/apache
# Allow browsers that do not send Referer info
SetEnvIf Referer "^$" local_referal
<Directory /web/images>
Order Deny,Allow
Deny from all
Allow from env=local_referal
</Directory></pre></div>
다음은 Squid 프록시 서버의 접근 제한 설정하는 과정이다. 조건에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.
( ① ) kait src ( ② )
http_access ( ③ ) ( ④ )
http_access ( ⑤ ) ( ⑥ )
■ 조 건
① acl
② 10.20.17.0/255.255.255.0
또는 10.20.17.0/24
③ allow
④ kait
⑤ deny
⑥ all
Squid 프록시 서버에서 http_access
지시문은 순서에 매우 민감합니다. http_access
지시문은 위에서부터 아래로 순차적으로 처리되며, 첫 번째로 일치하는 규칙에 따라 접근 허용 여부가 결정됩니다. 따라서 순서가 바뀌면 접근 제어의 결과가 완전히 달라질 수 있습니다.
allow가 먼저 올 때:
http_access allow kait
http_access deny all
위의 경우, 먼저 kait
에 해당하는 네트워크 대역의 접근을 허용하고, 그 다음에 모든 다른 접근을 거부합니다. 이 설정은 kait
네트워크 대역 내에서의 접근만을 허가하고, 그 외는 모두 거부하는 것으로, 제시된 조건에 부합합니다.
deny가 먼저 올 때:
http_access deny all
http_access allow kait
이 경우에는, 첫 번째 줄에서 이미 모든 접근을 거부하도록 설정했기 때문에, 그 아래에 있는 allow
지시문은 절대 실행되지 않습니다. 즉, kait
네트워크 대역 조차도 접근이 허용되지 않는 결과를 초래합니다.
결론적으로, allow
와 deny
의 순서를 바꾸면 설정이 의도한 대로 작동하지 않게 되며, 이는 보안 정책에 심각한 구멍을 낼 수 있습니다. 보통은 더 구체적인 규칙을 먼저 배치하고, 더 일반적인 규칙을 나중에 배치하는 것이 좋은 규칙입니다.
다음은 사용자의 디스크 쿼터(Disk Quota)를 설정하는 과정이다. ( 괄호 ) 안에알맞은내용을 적으시오.
가. 사용자에게 설정된 유예 기간(grace period)을 변경한다. # ( ① ) ( ② )
나. ihduser에 설정된 쿼터 용량을 kaituser에 동일하게 적용시킨다. # ( ① ) ( ③ )
다. kaituser에 적용된 디스크 쿼터 정보를 확인한다. # ( ④ ) kaituser
■ 조건
[root@localhost dhcp]# compgen -c | grep quota
quota
quotasync
smbcquotas
xfs_quota
convertquota
edquota
quotacheck
quotaoff
quotaon
quotastats
repquota
rpc.rquotad
setquota
quota
quotasync
smbcquotas
xfs_quota
convertquota
edquota
quotacheck
quotaoff
quotaon
quotastats
repquota
rpc.rquotad
setquota
여기서 quota를 편집할 것 같은 명령어는 edquota밖에 없는데, man 페이지에서 이를 확인하면서 문제를 풀 수 있습니다.
그러나, 3번 보기에서 막히는데, man 페이지의 -p 옵션은 protoname를 인자로 받는다는 설명때문입니다. 그러나 지금 문제에서 이걸 어떻게 써야하는지 설명이 없으므로 그냥 유저 이름 적으면 되겠습니다. -u 옵션으로 사용자를 지정하는 것도 필요합니다.
-p, --prototype=protoname
Duplicate the quotas of the prototypical user specified for each user spec‐
ified. This is the normal mechanism used to initialize quotas for groups
of users.
다음은 시스템 보안 강화를 위해 커널 매개 변수(parameter)를 제어하는 과정이다. 작업사항에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. ping 명령어에 응답하지 않도록 커널 매개 변수를 변경한다. # ( ① ) ( ② )
나. ‘가’ 항의 작업이 재부팅 시에도 적용되도록 관련 파일에 등록한다. # vi ( ③ )
■ 조건
DESCRIPTION
sysctl is used to modify kernel parameters at runtime. The parameters available
are those listed under /proc/sys/. Procfs is required for sysctl support in
Linux. You can use sysctl to both read and write sysctl data.
[root@localhost sys]# cd /proc/sys
[root@localhost sys]# ls -R | grep icmp
icmp_echo_ignore_all
icmp_echo_ignore_broadcasts
icmp_errors_use_inbound_ifaddr
icmp_ignore_bogus_error_responses
icmp_msgs_burst
icmp_msgs_per_sec
icmp_ratelimit
icmp_ratemask
icmp
./net/ipv6/icmp:
nf_conntrack_icmp_timeout
nf_conntrack_icmpv6_timeout
[root@localhost ipv4]# cat icmp_echo_ignore_all
0
다음은 iptables를 이용해서 방화벽을 설정하는 과정이다. 작업 사항에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.
가. 기본 테이블인 filter의 INPUT 사슬에 설정한 두 번째 정책이 IP 주소 오류로 인해수정하려고 한다.
# iptables ( ① ) -s 192.168.12.22 -j DROP
나. 기본 테이블인 filter의 INPUT 사슬에 설정한 다섯 번째 정책을 삭제한다.
# iptables ( ② )
다. 기본 테이블인 filter의 INPUT 사슬에 설정한 두 번째 정책 이후와 연관된 로그를 기록하도록 설정한다.
# iptables ( ③ ) -j LOG
■ 조건
다음은 운영 중인 sshd 서버로 접근하는 root 계정에 대한 거부 설정을 하는 과정이다.
조건 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
# vi ( ① )
( ② )
■ 조건
① /etc/ssh/sshd_config
② PermitRootLogin no
다음은 아파치 웹 사용자 인증 및 점검하는 과정이다. 조건에 맞게 ( 괄호 ) 안에알맞은내용을 적으시오.
가. ihduser라는 웹 사용자를 생성하는데, 관련 파일은 /usr/local/apache/conf/password로
생성한다.
# ( ① ) ( ② )
나. 아파치 환경 설정 파일의 문법적 오류가 있는지 여부를 점검한다.
# ( ③ )
다. 아파치 웹 서버를 재시작하지 않고, 변경된 환경 설정 파일 정보만을 다시 읽어들인다.
# ( ④ )
■ 조건
① htpasswd
② -c /usr/local/apache/conf/password ihduser
③ httpd -t 또는 service httpd configtest (httpd 대신에 apachectl 가능)
④ httpd -k graceful 또는 service httpd graceful (httpd 대신에 apachectl 가능)
[root@localhost bin]# find / | grep apache
[root@localhost bin]# cd /usr/local/apache/
-k start|restart|graceful|stop|graceful-stop
Signals httpd to start, restart, or stop. See Stopping Apache httpd for more information.
다음은 NIS 도메인명을 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은내용을적으시오.
가. 관련 명령어를 사용해서 NIS 도메인명을 ihd.or.kr로 지정한다.
# ( ① ) ihd.or.kr
나. 재부팅 시에도 관련 NIS 도메인명이 적용시키기 위해 관련 파일에 등록한다.
# vi ( ② )
( ③ )
■ 조건
① nisdomainname
② /etc/sysconfig/network
③ NISDOMAIN=ihd.or.kr
다음은 vsftpd 서버를 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. ihduser 와 kaituser의 FTP 서버 접근을 거부하도록 설정한다.
# vi ( ① )
ihduser kaituser
나. 접속한 사용자의 홈 디렉터리를 최상위 디렉터리로 지정한다.
# vi ( ② )
( ③ )
■ 조건
① /etc/vsftpd/ftpusers 또는 /etc/vsftpd/user_list
② /etc/vsftpd/vsftpd.conf
③ chroot_local_user=YES
[root@localhost /]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd]# cat user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
[root@localhost vsftpd]#
다음은 DHCP 서버 운영을 위해 환경 설정 파일에 주요 설정을 진행하는 과정이다.
작업 사항에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 할당할 IP 주소 대역을 192.168.5.1부터 192.168.5.253로 지정하고, DHCP 클라이언트 뿐만아니라 BOOTP 클라이언트도 함께 할당한다.
( ① )
나. 할당할 도메인명은 ihd.or.kr로 지정한다.
( ② )
다. 할당할 게이트웨이 주소를 192.168.5.254로 지정한다.
( ③ )
라. 할당할 브로드캐스트 주소는 192.168.5.255로 지정한다.
( ④ )
■ 조건
① range dynamic-bootp 192.168.5.1 192.168.5.253;
② option domain-name “ihd.or.kr”;
③ option routers 192.168.5.254;
④ option broadcast-address 192.168.5.255;
다음 조건에 맞게 사용자 정보를 변경하려고 할 때 ( 괄호 ) 안에 알맞은 내용을 적으시오.
# ( ① ) ( ② ) ( ③ ) ( ④ ) ihduser
■ 조건
① usermod
② -l kaituser
③ -d /home/kaituser
④ -m (②∼④는순서무관, ①번명령어를틀렸을경우옵션채점제외)
다음은 rpm으로 설치된 특정 패키지 제거 및 이후에 발생된 문제점을 찾는 과정이다.
조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. rpm 패키지로 설치된 mysql를 제거하는데, 의존성은 무시한다.
# rpm ( ① ) mysql
나. mysql 패키지를 제거했더니, postfix가 정상적으로 동작하지 않는다.
postfix의 실행 명령어의 위치 정보를 출력하는 명령을 적는다.
# ( ② ) postfix
다. postfix가 참고하는 동적 라이브러리 정보를 확인하는 명령을 기재한다.
# ( ③ ) ( ④ )
■ 조건
① -e --nodeps
② which 또는 whereis
③ ldd
④ /usr/sbin/postfix
ldd
명령어는 리눅스 시스템에서 실행 가능한 파일들, 특히 실행 파일이나 공유 라이브러리 파일들이 동적으로 연결된(shared object dependencies) 라이브러리들을 확인하는 데 사용됩니다. 이 명령어를 통해 특정 프로그램이 실행될 때 필요한 공유 라이브러리의 목록과 그 위치, 그리고 버전 등의 정보를 알 수 있습니다.
ldd
명령어의 기본적인 사용 방법은 다음과 같습니다:
ldd [옵션] 실행파일명
여기서 [옵션]
에는 다양한 옵션이 들어갈 수 있으며, 실행파일명
에는 대상이 되는 실행 파일의 경로를 넣어줍니다.
예를 들어, /usr/bin/ls
명령어가 어떤 공유 라이브러리에 의존하는지 확인하려면 다음과 같이 입력합니다:
ldd /usr/bin/ls
출력 예시는 다음과 같을 수 있습니다:
linux-vdso.so.1 => (0x00007ffeecbfe000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f0927dd7000)
libc.so.6 => /lib64/libc.so.6 (0x00007f0927a09000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f09277a7000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f09275a3000)
/lib64/ld-linux-x86-64.so.2 (0x00007f092800b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0927387000)
이 출력은 ls
명령어가 실행될 때, 위에 표시된 공유 라이브러리들이 필요하다는 것을 의미하며, 각 라이브러리의 경로와 메모리 상에서의 위치 정보를 보여줍니다.
ldd
는 디버깅이나 시스템 유지보수, 패키지 관리 등에 유용하게 쓰이는 명령어입니다. 다만, 안전하지 않은 경로에서 가져온 실행 파일에 대해서는 사용을 피해야 합니다. 악의적으로 조작된 파일을 ldd
로 확인할 경우, 시스템에 보안상의 위험이 발생할 수 있습니다.
다음은 NIS 클라이언트에서 명령어를 사용해서 다양한 정보를 조회하고 변경하는 과정이다.
조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 지정된 NIS 서버이름을 출력한다.
# ( ① )
나. NIS 서버의 맵 파일을 출력한다.
# ( ① ) ( ② )
다. NIS 서버의 사용자 관련 정보를 출력한다.
# ( ③ ) passwd.byname
라. NIS 서버에 등록된 lin 사용자의 패스워드를 변경한다.
# ( ④ ) lin
■ 조건
① ypwhich
② -m
③ ypcat
④ yppasswd
[root@localhost bin]# ls -l | grep yp
-rwxr-xr-x. 1 root root 65080 6월 10 2014 dvd+rw-booktype
-rwxr-xr-x. 1 root root 16000 6월 10 2014 gst-typefind
-rwxr-xr-x. 1 root root 15728 6월 10 2014 gst-typefind-0.10
-rwxr-xr-x. 1 root root 15752 8월 3 2017 gst-typefind-1.0
lrwxrwxrwx. 1 root root 6 10월 15 16:25 mtype -> mtools
-rwxr-xr-x. 1 root root 15864 8월 4 2017 ypcat
-rwxr-xr-x. 3 root root 24296 8월 4 2017 ypchfn
-rwxr-xr-x. 3 root root 24296 8월 4 2017 ypchsh
lrwxrwxrwx. 1 root root 8 10월 15 16:25 ypdomainname -> hostname
-rwxr-xr-x. 1 root root 24496 8월 4 2017 ypmatch
-rwxr-xr-x. 3 root root 24296 8월 4 2017 yppasswd
-rwxr-xr-x. 1 root root 16008 8월 4 2017 ypwhich
다음은 삼바 서버를 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 윈도우 운영체제에서 이름으로 접근할 때의 명칭은 ihd_com으로 지정한다.
( ① )
나. 공유 그룹명은 IHD로 지정한다.
( ② )
다. 서버에 대한 설명은 IHD server로 지정한다.
( ③ )
라. 접근할 수 있는 호스트는 192.168.5.0 네트워크에 대역에 속한 모든 호스트들과
로컬시스템으로 제한한다.
( ④ )
■ 조건
① netbios name = ihd_com
② workgroup = IHD
③ server string = IHD server
④ hosts allow= 127. 192.168.5. (분리자콤마가능등)
다음은 TCP Wrapper를 이용해 외부의 호스트들의 접근을 제어하는 과정이다. 현재관련파일 설정을 통해 모든 호스트에 대한 접근이 거부된 상태일 경우 작업 사항에맞게( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 특정 호스트들에 대한 허가 관련 설정을 위해 관련 파일을 편집기로 작업한다.
# vi ( ① )
나. 모든 서비스에 대해 로컬호스트와 ihd.or.kr 도메인을 사용하는 호스트들은 모두
허가한다.
( ② )
다. 텔넷 서비스는 192.168.5.13번 호스트만 허가한다.
( ③ )
라. ssh는 192.168.5.0 네트워크 대역에 속한 모든 호스트를 허가한다.
( ④ )
■ 조건
① /etc/hosts.allow
② ALL: localhost, .ihd.or.kr (분리자 공백 가능 등)
③ in.telnetd: 192.168.5.13
④ sshd: 192.168.5. 또는 sshd: 192.168.5.0/255.255.255.0
ALL : ALL은 오답.
localhost를 지원합니다.
'모든 도메인'을 표현하고 싶을 때에는,
sshd: 192.168.5.0/24는 오답
다음은 리눅스 시스템에 백업한 정보가 담겨 있는 USB 메모리를 장착하여 인식 여부및장치 파일명을 확인하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 명령어를 이용해서 관련 정보를 확인한다.
# ( ① )
나. 관련 정보가 담겨 있는 파일로 확인한다.
# cat ( ② )
■ 조건
① fdisk -l 또는 dmesg 또는 blkid
② /proc/partitions 또는 /etc/blkid/blkid.tab
가. USB 메모리를 리눅스 시스템에 장착한 후 인식 여부를 확인하고 장치 파일명을 확인하려면 dmesg
명령어를 사용하면 됩니다. dmesg
는 시스템 부팅이나 장치를 장착했을 때의 메시지를 출력합니다. 여기서 가장 최근의 메시지를 보기 위해 tail
명령어와 함께 사용할 수 있습니다.
# ( dmesg | tail )
나. 관련 정보가 담겨 있는 파일로는 /var/log/syslog
파일을 확인할 수 있지만, USB 장치와 관련된 파일을 직접적으로 확인하려면 /proc/partitions
파일을 확인하면 됩니다. 이 파일에는 현재 시스템에 인식된 모든 파티션이 목록화되어 있습니다.
# cat ( /proc/partitions )
위의 명령어들을 통해 리눅스 시스템에 USB 메모리가 제대로 인식되었는지 그리고 장치 파일명이 무엇인지를 알 수 있습니다.
[root@localhost proc]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009fdc6
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@localhost proc]# cd /proc
[root@localhost proc]# ls
1 1426 2 2504 272 290 31 3242 3384 3488 3532 3664 3810 3988 407 51 624 710 748 984 diskstats kcore mounts swaps
10 1428 20 2505 2720 2947 3178 3247 3389 3497 3538 3665 3830 399 408 519 626 711 749 987 dma key-users mtrr sys
103 1430 21 2513 273 3 3179 3250 3400 3500 3539 3670 384 4 409 52 627 713 750 acpi driver keys net sysrq-trigger
11 1433 22 2599 274 30 3193 3281 3402 3503 3551 3694 3840 400 410 522 631 730 768 asound execdomains kmsg pagetypeinfo sysvipc
1138 1437 23 26 2769 3020 3194 3293 3413 3510 36 37 385 401 4290 53 66 732 773 buddyinfo fb kpagecount partitions timer_list
1140 1438 24 2600 28 3029 3201 3347 3421 3512 3615 3723 3885 402 4311 543 680 733 782 bus filesystems kpageflags sched_debug timer_stats
12 15 2490 268 282 3051 3203 3351 3426 3513 3621 374 39 403 47 565 682 736 786 cgroups fs loadavg schedstat tty
13 16 2492 269 2863 3060 3206 3355 3436 3524 3640 3744 3915 404 48 6 684 737 796 cmdline interrupts locks scsi uptime
14 163 2493 27 2865 3061 3207 3358 3442 3527 3643 375 3943 405 49 613 686 738 8 consoles iomem mdstat self version
1420 17 25 270 288 3090 322 3367 3478 3529 3648 3754 3961 4051 5 616 687 739 805 cpuinfo ioports meminfo slabinfo vmallocinfo
1422 1768 2502 2705 2880 3094 3223 3372 3480 3530 3651 3784 3969 406 50 618 7 741 9 crypto irq misc softirqs vmstat
1425 19 2503 271 29 3099 323 3378 3482 3531 3658 38 3970 4060 501 620 709 743 969 devices kallsyms modules stat zoneinfo
[root@localhost proc]# cat partitions
major minor #blocks name
8 0 20971520 sda
8 1 1048576 sda1
8 2 19921920 sda2
11 0 52244 sr0
253 0 17821696 dm-0
253 1 2097152 dm-1
[root@localhost proc]#
다음은 명령어를 이용해서 로그를 확인하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. ihduser가 시스템에 로그인한 정보를 확인한다.
# grep ihduser ( ① )
나. sendmail 데몬 시작 시간을 확인한다.
# grep sendmail ( ② )
■ 조건
① /var/log/secure
② /var/log/maillog
다음 문제는 로그인한 파일의 절대경로를 적는 것이므로 /var/log/wtmp를 정답으로 제출하기 쉽다. 그러나 이 파일을 절대경로로 입력했을 때 단순 grep으로 확인하는 것은 문자가 깨지기 때문에 /var/log/secure로 확인하는 것이 올바르다.
/var/log/secure와 /var/log/messages 중에 어떤 것을 적어내야할 지 고민이 된다. 왜냐하면 둘 다 로그인 정보가 기록되기 때문이다. 또한 /var/log/dmesg, /var/log/maillog 도 헷갈린다. 각각의 차이점을 명확하게 인지하고 정답을 작성해야한다.
/var/log/secure
:
/var/log/messages
:
/var/log/maillog
:
/var/log/dmesg
:
dmesg
는 시스템 부팅 시 커널에 의해 생성된 메시지들을 담고 있습니다. 이 파일에는 하드웨어와 드라이버들에 관련된 정보, 커널 감지 문제 등이 기록됩니다.다음은 명령어를 이용해서 로그를 확인하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 부팅 시 동작하는 데몬 들의 동작 성공 여부를 확인한다.
# cat ( ① )
나. dovecot 데몬 시작 시간을 확인한다.
# grep dovecot ( ② )
■ 조건
① /var/log/boot.log
② /var/log/maillog
다음은 로컬 시스템에 열려진 포트를 확인하고, 실행 명령어를 찾는 과정이다. 조건에맞게( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 로컬 시스템의 포트번호 0번부터 65535번까지 스캔하여 열려진 포트를 확인한다.
# ( ① ) ( ② ) localhost
나. ‘가’항의 명령 실행 시 ‘55176/tcp open unknown'이라는 결과를 확인하였다.
포트번호 55176을 사용 중인 프로세스의 PID를 확인하는 명령을 작성한다.
# ( ③ )
다. ‘나’항의 명령으로 확인된 PID가 1531번인 경우 해당 프로세스를 실행시킨 명령어의 절대경로를 확인하는 방법을 작성한다.
# ( ④ )
■ 조건
① nmap
② -p 0-65535
③ netstat -ap | grep 55176 또는 lsof |grep 55176 등
④ ls -l /proc/1531/exe
다음은 iptables를 이용해서 방화벽을 설정하는 과정이다. 작업 사항에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.
가. 현재 INPUT 사슬에 설정되어 있는 모든 정책을 삭제하여 초기화한다.
# iptables ( ① ) INPUT
나. 외부로 들어오는 패킷을 모두 거부하고, IP 주소가 192.168.12.22번인 호스트
로부터 들어오는 패킷에 대해서만 허가하는 정책을 설정한다.
# iptables ( ② ) INPUT ( ③ )
# iptables ( ④ ) INPUT -s 192.168.12.22 ( ⑤ )
■ 조건
① (-t filter) -F 또는 --flush
② (-t filter) -P
③ DROP
④ (-t filter) -A
(①, ②, ④ 번의 -t filter는 생략 가능)
⑤ -j ACCEPT
다음 조건에 따라 아파치 웹 서버 환경 설정을 진행하려고 한다. 관련 환경 설정파일의항목과 값을 적으시오.
가. /usr/local/apache/error 디렉터리를 /error 디렉터리로 경로를 단축하는 설정을 한다.
( ① ) ( ② ) ( ③ )
나. 하나의 IP 주소를 가지고 있는 시스템에서 2개의 도메인 설정이 가능하도록
지정한다. IP 주소는 192.168.5.13이고, 포트 번호는 기본 웹 서버 포트인 80번을
사용한다.
( ④ ) ( ⑤ )
■ 조건
① Alias
② /error/
③ "/usr/local/apache/error/"
④ NameVirtualHost
⑤ 192.168.5.13:80