서버 점검사항
2012. 2. 5. 18:48ㆍ개발/서버
1. SUID 점검하기.(root 소유의 SetUID및 SetGID 파일들 점검 find / -user root -perm -4000 -print (SetUID) find / -user root -perm -2000 -print (SetGID) find / -user root -perm -4000 -print -xdev 2. 파티션별 디스크사용량 점검 df -h 3. 파일무결성 점검. http://weblog.websea.co.kr/tripwire/tripwire 4. 백도어 설치여부 점검.(/dev 체크 및 rootkit 점검) find /dev -type f -exec ls -l {} \; ./chkrootkit 5. 현재 열려진 포트 및 응답가능한 포트 점검. netstat -atp | grep LISTEN (사용 프로토콜 : TCP인가? 또는 UDP인가? 사용중인 포트번호 서버와 연결된 IP 및 도메인명 생성 PID 서비스중인 프로세스명 현재 응답가능상태인가? lsof | grep LISTEN(현재 서비스 중인 프로세스명(데몬명) 현재 생성중인 PID번호. 현재 서비스중인 프로세스의 소유자 프로토콜 버전 : Ipv4 또는 Ipv6 TCP 또는 UDP의 여부 응답가능 상태인가? 6. 실생중인 프로세스 및 데몬점검.(프로세스의 생성관계) pstree 7. 시스템 운용상황 점검. top -d2 8. 백업점검. /home2/backup/nexfor/ /home2/backup/websea/ 9. 스팸메일 점검.(메일큐 디렉토리 점검) /var/spool/mqueue (동일한 날짜, 동일한 사이즈를 가진 다수 파일구분) 10. Core 점검. 서버내에 긴급한 이상이 발생하였을 경우나 시스템의 ㅘ??분석을 위해 서버의 메모리 상태를 순간적으로 dump 받는 경우의 파일 find / -name core -exec ls -l {} \; 11. 파일용량 점검 repquota -av -ag df -h 12. 최근 서버 접속자 점검. vi /var/log/secure last -n 10 최근 10번째까지의 접속기록을 확인. 13. 계정별 최후접속기록 점검. lastlog는 현재 /etc/passwd에 존재하는 모든 계정을 대상으로 하 여 언제 마지막으로 서버에 접속을 했는가를 확인. Mail, adm, bin 등의 계정들은 모두 "** Never logged in **" 이라 고 되어 있는것이 정상. lastlog 14. 현재 서버접속자 보기 w (telnet) ftpwho(ftp) 15. root명령어 사용기록 점검. vi /root/.bash_history (.set nu) cat /root/..bash_history | wc -l (1000라인 이상 되어야 정상) 16. 계정별 사용명령어파일 점검. find / -name .bash_history -exec ls -l {} \; (각 계정 별 .bash_history 파일의 존재여부) find / -name .bash_history -exec cat {} \; (파일의 내용까 지 모두 확인해 볼 수 있음) 17. root소유자 점검(UID와 GID가 0인 사용자 점검) cat /etc/passwd | grep 0:0 18. 서버내에 중요한 디렉토리 점검 /etc/xinetd.d/ (xinetd로 서비스되는 인터넷서비스 파일들이 존재하는 디렉토리) /etc/rc.d/ (부팅에 관계된 파일) (파일들을 복사 후 파일용량등을 비교하기) (커널패닉의원인) /etc/rc.d/init.d/ (부팅시에 특정 서비스나 데몬들을 시작시키는 스키립트 파일) 19. .rhosts 파일 점검 원격에서 패스워드등의 확인과정없이 바로 접속하기 위해서 사용되는 파일 find / -name .rhosts -exec ls -l {} \; find / -name .rhosts -exec cat {} \; 20. 메모리사용량 점검. free -m cat /proc/meminfo (free 와 top 는 이 파일을 참조하여 보여준다.) top -d2 21. 중요 관리자용명령어 점검. 아래의 명령어들을 퍼미션을 100으로 설정한다. 변경 후 퍼미션 변경여부를 확인. chmod 100 /usr/bin/top chmod 100 /usr/bin/pstree chmod 100 /usr/bin/w chmod 100 /bin/ps chmod 100 /usr/bin/who chmod 100 /usr/bin/find chmod 100 /bin/df chmod 100 /bin/netstat chmod 100 /sbin/ifconfig chmod 100 /usr/sbin/lsof chmod 100 /usr/bin/make chmod 100 /usr/bin/gcc chmod 100 /usr/bin/g++ chmod 100 /usr/bin/c++ 22. su 명령어를 이용한 root권한 사용자 점검. su 명령어의 사용내역을 확인할 수 있음. cat /var/log/messages | grep root 23. 최근 n 일전 변경된 파일 점검. (단위는 일) find / -ctime -1 -print | more 24. http://weblog.websea.co.kr/ 25. find 를 이용한 특정파일 점검하기. .exec 파일찾기 find / -name '.exec' -exec cat {} \; -print .forward 파일체크 find / -name '.forward' -exec cat {} \; -print write 퍼미션이 있는 파일(디렉토리)찾기 find / -type f \( -perm -2 -o -perm -20 \) -exec ls -lg {} \; find / -type d \( -perm -2 -o -perm -20 \) -exec ls -ldg {} \; SteUID SetGID 체크하기 find / -type f \( -perm -004000 -o -perm -002000 \) -exec ls - lg {} \; /dev 체크 find /dev -type f -exec ls -l {} \; 소유자없는 파일 및 디렉토리 찾기 find / -nouser -o -nogroup -print 원격리모트 접속허용 파일(.rhosts)찾기 find / -name .rhosts -print 최근 변경된 파일들 찾기.(파일or디렉토리) 단위는 일 find / -ctime -20 -type f or d 현재 서버에서 열려진 포트 및 접근저보 점검 netstat -an | grep LISTEN (포트들과 열결되어 있는 실행데몬들을 확인) lsof | grep LISTEN (좀 더 자세히 확인) 26. 관리자용 명령어 퍼미션 수정하기. chmod 100 /usr/bin/top chmod 100 /usrbin/pstree chmod 100 /usr/bin/w chmod 100 /bin/ps chmod 100 /usr/bin/who chmod 100 /usr/bin/find chmod 100 /bin/df chmod 100 /bin/netstat chmod 100 /sbin/ifconfig chmod 100 /usr/sbin/lsof chmod 100 /usr/bin/make chmod 100 /usr/bin/gcc chmod 100 /usr/bin/g++ chmod 100 /usr/bin/c++ 27. 중요한 파일퍼미션과 소유권 제한 및 점검. chmod 644 /etc/service chmod 600 /etc/xinetd chmod 644 /etc/mail/aliases chmod 600 /etc/httpd/conf/httpd.conf chmod 644 /var/log/wtmp chmod 644 /var/run/utmp chmod 644 /etc/motd chmod 644 /etc/mtab chmod 600 /etc/syslog.conf /etc, /usr/etc, /bin, /usr/bin, /sbin, /usr/sbin chmod 1777 /tmp chmod 1777 /var/tmp 28. umask 값 확인하기. root의 umask 값 확인하기. umask 022 -->파일은 644 디렉토리는 755로 생성됨. 027 -->파일은 640 디렉토리는 750로 생성됨. 29. /dev 에 device 파일 이외의 것이 존재하고 있는지 확인. find /dev -type f -exec ls -l {} \; 30. 일반사용자의 명령어 패스 /usr/local/bin:usr/local/mysql/bin:/home/hosting/bin/ 일반사용자가 사용가능한 명령어를 모두 이것에 둠. 31. 관리자의 명령어 패스 :/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin /X11:/usr/X11R6/bin:/usr/kerberos/bin:/root/bin 32. 특정 그룹만의 su 사용권한 허용하기 vi /etc/group (wheel구릅에 su 사용권한을 가질 유저 추가하기) wheel:x:10:root,cream vi /etc/pam.d/su (두줄 추가하기) auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_wheel.so allow group=wheel vi /var/log/message 에서 확인 33. chmod 400 /etc/shadow 34. 시스템 기본로그파일. /var/log/messages /var/log/secure /var/log/wtmp /var/run/utmp /var/log/lastlog 35. utmp, wtmp, lastlog 파일 utmp파일 : 현재시스템에 접속해 있는 사용자의 정보를 가지고 있음. strings utmp | more 정보 이용 명령어 login(1), who(1), init(8), last(8), lastcomm(8) wtmp파일 : 처음부터 접속했던 모든 사용자의 로그인정보와 로그아웃정보를 가지고 있음. strings wtmp | more 정보 이용 명령어 login(1), who(1), init(8), last(8), lastcomm(8) lastlog 파일 가장 최근에 로그인한 정보를 저장함. last 라는 명령어로 확인할 수 있음. 36. 패스워드 유출대처방안(웹) perl을 이용한 방법.AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Options Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI Options Indexes SymLinksIfOwnerMatch IncludesNoExec SSI의 exec 명령어를 이용하는 방법 # AddType text/html .shtml # AddHandler server-parsed .shtml 27. PortSentry를 이용한 실시간 해킹방어 구현.(잘못 사용할시 서버접속 안됨) tar -xvzf portsentry-1.1.tar.gz make linux make install /usr/local/psionic/portsentry/portsentry -tcp /usr/local/psionic/portsentry/portsentry -udp /usr/local/psionic/portsentry/portsentry -stcp /usr/local/psionic/portsentry/portsentry -atcp /usr/local/psionic/portsentry/portsentry -stdp vi /etc/hosts.deny 점검. 28. Chkrootkit 로 백도어 점검. tar -xvzf chkrootkit.tar.gz make sense ./chkrootkit (점검명령어) 29 ping 을 이용한 DOS 공격 막는 방법. vi /etc/sysctl.conf net.ipv4.icmp_echo_ignore_broadcasts = 1 sysctl -w /etc/rc.d/init.d/network restart sysctl -a | grep ignore_broadcasts 30. Nmap를 이용 포트스켄 하여 해킹가능성 체크. nmap -sS -p80 211.42.48.110 -O -v www.armian.net nmap -sS -O -v 211.42.48.114Order allow,deny Allow from all Order deny,allow Deny from all
'개발 > 서버' 카테고리의 다른 글
syslog 메시지 (0) | 2012.02.05 |
---|---|
기본 셋팅 (0) | 2012.02.05 |
rdist 스크립트 (0) | 2012.02.05 |
리눅스 TIP - 시스템 관리자를 위한 50가지 팁 (0) | 2012.02.05 |
inux SoftWare RAID 설정 복구 추가 등등 (0) | 2012.02.05 |