1.1 서비스별 보안특성 파악
01. Sendmail로 구축한 메일 서버 운영시 별도의 방화벽 정책이나 Relay 설정을 하지 않았다면
로컬 계정의 패스워드 취약점을 이용하여 스팸 메일 발송에 악용당하는 경우가 종종 발생한다.
어떤 IP에서 어떤 메일 계정에 접속하여 스팸을 발송하는지 확인 할 수 있는 방법을 작성하시오.
1. 메일 계정별 접속 횟수 통계로 확인
# zgrep "authid=" /var/log/maillog* | awk '{print $8}' | sort | uniq -c | grep authid | sort -r
2. IP별 접속 횟수 통계로 확인
# zgrep "authid=" /var/log/maillog* | awk '{print $7}' | sort | grep relay | uniq -c | sort -r
계정과 IP 확인.
해당 계정 정보 변경 및 IP 차단 진행.
02. 스팸 차단정책 중에 하나로 25번 포트를 587포트로 전환하는 사업을 국내에서도 시행하고 있다.
이는 25번 포트를 이용한 스팸사용이 증가하고 있기 때문인데, 587 포트로 전환만 해도 지금 스팸의 60%는 감소할 것이라고 내다보고 있다.
sendmail 사용시 smtp 포트를 587로 변경하는 방법에 대하여 작성하시오.
# cd /etc/mail
# vi sendmail.mc
DAEMON_OPTIONS(Port=submission, Name=MSA, M=Ea')dnl ##dnl주석해제
# m4 sendmail.mc > sendmail.cf
# /etc/init.d/sendmail restart
# netstat -antulp | grep LISTEN
03. 리눅스 시스템에서 Sendmail을 사용할 경우 RBL을 설정하여 스팸을 줄일 수 있다.
한국인터넷진흥원에서 운영하는 KISA RBL을 설정하는 방법을 작성하시오.
# cd /etc/mail
# vi sendmail.mc
FEATURE(dnsbl, 'spamlist.or.kr' , 'Rejected - see http://www.kisarbl.or.kr')dnl ##추가
# m4 sendmail.mc > sendmail.cf
# /etc/init.d/sendmail restart
04. 아파치 설정 파일(httpd.conf)에 아래와 같이 DirectoryIndex 가 설정되어 있다.
<IfModule dir_module
DirectoryIndex index.html index.htm index.php
</ifModule>
기본적인 파일 확장자를 이닉하여 웹에 나타나게 된다.
어떠한 경우에 디렉토리 리스팅 취약점이 나타나는지 원인과 대응방안에 대하여 기술하시오.
웹브라우저에서 디렉토리 리스트가 보이게 되는 경우는 아래와 같이 가상호스트 디렉토리의 Options 부분에
Indexes 설정이 되어 있는 경우로서 홈 디렉토리의 리스트가 출력되는 취약점이 있다.
<Directory "/home/*/public_html">
~
Options Indexes FollowSymLinks
~
</Directory>
Index 파일이 없을 때 디렉토리 리스트가 뜨지 않고 에러메세지를 출력하게 하려면
1. 위의 Indexes 문구 삭제
Options Indexes FollowSymLinks -> Options FollowSymLinks
2. # /etc/init.d/httpd restart
05. 리눅스 시스템에서 가상호스트란 하나의 IP를 가진 서버에서 여러개의 멀티 도메인을 운영하는 방법을 말한다.
다음에 주어진 예제를 보고 가상호스트 설정 작업을 작성하시오.
- IP : 192.168.100.10
- 도메인 : www.hee.com
- 관리자 메일주소 : hee@hee.com
- 홈디렉토리명 : hee
httpd.conf 파일에서 가상호스트 영역을 다음과 같이 편집
<VirtualHost 192.168.100.10>
ServerAdmin hee@hee.com
DocumentRoot /home/hee/public_html
ServerName hee.com
ServerAlias www.hee.com
ErrorLog logs/hee.com-error_log
CustomLog logs/boanin.com-access_log common
</VirtualHost>
# /etc/init.d/httpd restart
06. 리눅스 시스템에서 php 웹프로그래밍 사용하는 경우 php.ini의 disable_functions 지시자를 통해
공개된 게시판프로그램 등의 패치되지 않은 취약점을 이용하여 공격 시도하는 php function들을 시스템 전역변수(system global)로 제어할 수 있다.
다음 <보기>에 예시된 파일이 있다고 한다면 어떠한 방법으로 보안을 강화할 수 있는지 대응 방안을 작성하시오.
exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_sourc
phpinfo();를 통해서 php.ini 확인 후 아래와 같이 추가
# vi /etc/php.ini
disable_funcions = exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source
# /etc/init.d/httpd restart
07. 웹서버 로그가 많이 쌓일수록 서버 성능에 영향을 주게 된다.
아파치 웹서버를 사용할 경우 기본적인 웹로그에서 이미지 로그를 남기지 않도록 하는 방법을 작성하시오.
# vi /etc/http/httpd.conf
<IfModule log_config_module>
.
SetEnvlfNoCase Request_URL ".(bmp | gif | jpg | jpeg | png | css | swf)$"
not log
.
</IfModule>
# /etc/init.d/httpd restart
08. 아파치 웹서버를 사용할 때 보안상 특정 폴더에 암호를 걸어 사용할 필요가 있다. 다음은 특정 폴더에 암호를 설정하여 사용하는 방법을 순서대로 나열하였다.
1. httpd.conf 파일 수정
AllowOverride None -> All
2. .htaccess 파일 생성
AuthType Basic
Authname qpiss
AuthUserFile /home/boan/public_html/boanin/.htpasswd require valid-user
# chmod 777 .htaccess
3. .htpasswd 파일 생성
# /usr/local/apache/bin/htpasswd -c /home/boan/public_html/boanin
/.htpasswd boanpassword
4. 재시작
# killall httpd
# /usr/local/apache/bin/apachectl start
09. 리눅스 시스템에서 중-소형 서비스의 경우 데이터베이스는 주로 Mysql을 많이 사용한다.
Mysql 비밀번호 분실하였을 경우 대처 방안
1. # killall mysqld
2. # safe_mysqld --skip-grant &
3. # mysql -u root -p
4. > UPDATE user SET Password=PASSWORD('hihihi1!') WHERE user='root';
5. > flush privileges;
6. > quit
7. # killall mysqld
8. # mysqld_safe &
9. # mysql -u root -p hihihi1!
10. 네임서버 운영시 named.conf 파일에 recursion을 임의로 허용할 경우 무분별한 네임서버 질의로 인하여 서버 성능과 보안에 취약할 가능성이 있다.
다음 보기를 보고 설정하는 방법을 작성
1) 192.168.100.10, 192.168.100.10/24 에서만 질의가 필요할 때
2) recursion을 허용할 필요가 없을 때
1) # vi /etc/named.conf
Options {
allow-recursion {192.168.100.10; 192.168.100.10/24; };
};
2) # vi /etc/named.conf
Options {
allow-recursion {none;};
};
댓글