시스템 보안 점검 명령어들
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 6,529 조회
- 0 추천
- 목록
본문
보안점검명령어들을 설명드리기 전에 먼저 말씀드릴 것이 있습니다. 서버설치후에는 즉시 반드시 tripwire등의 파일무결성 검사툴등을 설치하여 주기적으로 시스템에 변경된 내용들(파일)이 있나 없나를 체크하셔야 한다는 것입니다. 이 작업은 최소한 자기가 변경하지 않은 파일들이 어떤 것들이 있나를 확인하기위한 최소한의 장치가 될 수 있습니다.
다음의 명령어는 시스템에 특정한 퍼미션이나 특정한 이름을 가진 파일들을 찾는 find명령어에 관한 것입니다. 일반적으로 이런 명령어들은 보안사이트에 그 방법들이 많이 나열되어 있습니다. 여기에 소개해 드리는 명령어들은 보안담당자가 주로 사용하는 특정파일이름이나 퍼미션을 점검하여 찾는 대표적이면서도 자주 사용하는 명령어들입니다.
1. .exec 파일 찾기 #find / -name '.exec' -exec cat {} ; -print
2. .forward 파일체크 #find / -name '.forward' -exec cat {} ; -print 이 명령어는 .forward파일을 찾는 것으로 .forward파일은 메일포워딩을 해주는 파일입니다. 즉, 특정한 주소에 도착한 메일을 이 파일에 지정된 메일주소로 자동으로 전송(포워딩)해주는 역할을 하는 것입니다. 주로 시스템관리자나 몇 개이상의 메일주소를 가진 사람들이 사용하는 것입니다. 시스템관리자의 경우에는 많은 메일주소를 하나의 메일로 받아보기위해 사용하는 경우도 있지만, 시스템에서 생성되는 로그파일이나 cron의 결과등을 자동으로 메일로 받아보기 위해 사용하는 경우도 많습니다. 헌데, 이 파일은 한번 설정해 두고 나면 좀체 점검하는 일이 드문 경우가 많기 때문에 주기적으로 점검을 해보아야합니다 . 또한 해킹을 당했을 경우에는 특정 ID(특히 관리자 ID)의 메일을 다른곳으로 포워딩해 놓는 경우가 많습니다. 이 파일을 위와 같은 방법으로 주기적으로 점검하여 만들지 않았던 .forward파일이 생성되어 있지 않나를 점검해 보셔야합니다. 다음의 사용예를 보시기 바랍니다. [root@superuser .log]# find / -name '.forward' -exec cat {} ; -print king@kingkong.net /home/six/.forward king@kingkong.net /home/sspark/.forward king@kingkong.net /home/soho/.forward king@kingkong.net /home/abc/.forward king@kingkong.net
3. /tmp파일의 퍼미션과오너 수정하기 #/bin/chown root /tmp #/bin/chgrp 0 /tmp #/bin/chmod 1777 /tmp /tmp 디렉토리는 임시파일을 저장하는 디렉토리로서 일반사용자들이 자기의 소유로된 파일을 저장하고 자기가 만든 파일은 root와 자기자신만이 삭제할 수 있도록 설정되어야할 디렉토리입니다. 그렇게 하기위해서는 이 디렉토리에 sticky-bit가 설정되어 있어야하며 소유권은 root가 가져야하고 group또한 root로 되어있어야합니다. 위의 명령어는 이들을 설정하는 것입니다. 아래의 예는 /tmp 디렉토리의 설정예입니다. drwxrwxrwt 6 root root 2048 Oct 27 04:02 tmp/
4. write퍼미션이 있는 파일(디렉토리)찾기 #find / -type f ( -perm -2 -o -perm -20 ) -exec ls -lg {} ; 사실, 이 명령어를 실행시키면 결과가 너무 많아 실행예는 생략합니다.
#find / -type d ( -perm -2 -o -perm -20 ) -exec ls -ldg {} ; 사실, 이 명령어를 실행시키면 결과가 너무 많아 실행예는 생략합니다.
5. SetUID SetGID 체크하기 [root@www /root]# find / -type f ( -perm -004000 -o -perm -002000 ) -exec ls -lg {} ; find: /proc/7176/fd/4: No such file or directory -rwsr-xr-x 1 root root 14628 Oct 8 1999 /bin/su -rwsr-xr-x 1 root root 53652 Jan 19 2000 /bin/mount -rwsr-xr-x 1 root root 26732 Jan 19 2000 /bin/umount -rwsr-xr-x 1 root root 14900 Oct 8 1999 /bin/ping -rwxr-sr-x 1 root root 3860 Mar 7 16:52 /sbin/netreport -r-sr-xr-x 1 root root 16088 Jan 19 2000 /sbin/pwdb_chkpwd -rwsr-xr-x 1 root root 11604 Mar 6 11:40 /sbin/cardctl -rws--x--x 1 root root 6260 Mar 9 23:17 /usr/X11R6/bin/Xwrapper -rwsr-xr-x 1 root root 5089 Jan 19 2000 /usr/bin/disable-paste -rwsr-xr-x 1 root root 21816 Oct 8 1999 /usr/bin/crontab -rwsr-xr-x 1 root root 35168 Jan 19 2000 /usr/bin/chage -rwsr-xr-x 1 root root 36756 Jan 19 2000 /usr/bin/gpasswd -rwsr-x--- 1 root floppy 17428 Aug 23 1999 /usr/bin/fdmount -rwxr-sr-x 1 root mail 11127 Jul 8 11:14 /usr/bin/mutt_dotlock -rws--x--x 1 root root 14056 Jan 19 2000 /usr/bin/chfn -rws--x--x 1 root root 13800 Jan 19 2000 /usr/bin/chsh -rws--x--x 1 root root 5640 Jan 19 2000 /usr/bin/newgrp -rwxr-sr-x 1 root tty 8328 Jan 19 2000 /usr/bin/write -r-sr-sr-x 1 root lp 15816 Jan 19 2000 /usr/bin/lpq -r-sr-sr-x 1 root lp 15768 Jan 19 2000 /usr/bin/lpr -r-sr-sr-x 1 root lp 16216 Jan 19 2000 /usr/bin/lprm -rwxr-sr-x 1 root man 34688 Oct 8 1999 /usr/bin/man -rwsr-xr-x 1 root root 203432 Feb 14 2000 /usr/bin/ssh -r-sr-xr-x 1 root root 22376 Jan 19 2000 /usr/bin/passwd -rws--x--x 2 root root 531612 Oct 8 1999 /usr/bin/suidperl -rws--x--x 2 root root 531612 Oct 8 1999 /usr/bin/sperl5.00503 -rwsr-xr-x 1 root root 247176 Feb 10 2000 /usr/bin/smbmount -rwsr-xr-x 1 root root 239656 Feb 10 2000 /usr/bin/smbumount -rwxr-sr-x 1 root slocate 24616 Jan 19 2000 /usr/bin/slocate ---s--x--x 1 root root 454760 Feb 3 2000 /usr/bin/sudo -r-xr-sr-x 1 root tty 6788 Oct 8 1999 /usr/bin/wall -rwsr-xr-x 1 root root 5896 Mar 7 16:52 /usr/sbin/usernetctl -rwsr-xr-x 1 root root 8608 Jan 19 2000 /usr/sbin/utempter -rwxr-sr-x 1 root lp 24136 Jan 19 2000 /usr/sbin/lpc -rwsr-sr-x 1 root root 323108 Mar 9 14:42 /usr/sbin/sendmail -rwsr-xr-x 1 root bin 16456 Oct 8 1999 /usr/sbin/traceroute -rwsr-xr-x 1 root root 364444 Feb 18 2000 /usr/kde/bin/kppp -rwxr-sr-x 1 root root 74276 Jan 31 2000 /usr/kde/bin/kdesud -r-sr-xr-x 1 root root 59972 Mar 25 15:35 /usr/kde/bin/kpwcfg -rwsr-xr-x 1 root root 37896 Jan 20 2000 /usr/kde/bin/zzplayer [root@www /root]#
6. /dev 체크 [root@www /root]# find /dev -type f -exec ls -l {} ;
7. 주인없는 파일 및 디렉토리 찾기 주인이 없거나 그룹에 소속되어 있지 않은 파일들은 한번쯤 점검을 해봐야할 것입니다.
8. 원격리모트 접속허용 파일(.rhosts) [root@www /root]# find /home -name .rhosts -print
9. 최근에 변경된 파일들 찾아보기 find 명령어의 ctime n옵션을 사용합니다. [root@kebia_1 sspark]# find / -ctime -20 -type f 10. 현재 서버에서 열려진 포트들 확인하기 [root@kebia_1 sspark]# netstat -an | grep LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 위와 같이 열려진 포트가 있음을 확인한 후에 다음과 같이 이 포트들과 연결되어 있는 실행데몬(daemon)들을 확인합니다.
11. 포트들과 연결된 실행데몬(daemon)확인하기 [root@kebia_1 sspark]# lsof | grep LISTEN named 500 root 21u IPv4 92449 TCP kebia_1:domain (LISTEN) [root@kebia_1 sspark]# |
관련자료
-
이전
-
다음