기본 콘텐츠로 건너뛰기

리눅스 간단한 보안조치 요령


<div style="margin: 0px; padding: 0px;">간단한 리눅스 필수 보안 조치법 입니다.</div><div style="margin: 0px; padding: 0px;">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</div><div style="margin: 0px; padding: 0px;">2. 파티션별 디스크사용량 점검    df -h3. 파일무결성 점검.    http://www.tripwire.org --> 참고 및 설치4. 백도어 설치여부 점검.(/dev 체크 및 rootkit 점검)    find /dev -type f -exec ls -l {} \; ./chkrootkit</div><div style="margin: 0px; padding: 0px;">5. 현재 열려진 포트 및 응답가능한 포트 점검.    netstat -atp | grep LISTEN (사용 프로토콜 : TCP인가? 또는 UDP인가?)    lsof | grep LISTEN 6. 실행중인 프로세스 및 데몬점검.(프로세스의 생성관계)    pstree7. 시스템 운용상황 점검.   top -d28. 백업점검.   /home2/backup/nexfor/   /home2/backup/websea/9. 스팸메일 점검.(메일큐 디렉토리 점검)  /var/spool/mqueue    (동일한 날짜, 동일한 사이즈를 가진 다수파일구분)10. Core 점검 서버내에 긴급한 이상이 발생하였을 경우나 시스템의 정확한 분석을 위해 서버의 메모리 상태를 순간적으로 dump 받는 경우의 파일  find / -name core -exec ls -l {} \;11. 파일용량 점검 repquota -av -ag df -h12. 최근 서버 접속자 점검.  vi /var/log/secure  last -n 10  최근 10번째까지의 접속기록을 확인.13. 계정별 최후접속기록 점검.  lastlog는 현재 /etc/passwd에 존재하는 모든 계정을 대상으로 하여 언제 마지막으로 서버에 접속을 했는가를 확인.14. 현재 서버접속자 보기   w (telnet)   ftpwho(ftp)   skill -kill 계정명 (수상한 계정 죽이기)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:018. 서버내에 중요한 디렉토리 점검           /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 -d221. 중요 관리자용명령어 점검. 아래의 명령어들을 퍼미션을 100으로 설정한다. 변경 후 퍼미션 변경여부를 확인.chmod 100 /usr/bin/topchmod 100 /usr/bin/pstreechmod 100 /usr/bin/wchmod 100 /bin/pschmod 100 /usr/bin/whochmod 100 /usr/bin/findchmod 100 /bin/dfchmod 100 /bin/netstatchmod 100 /sbin/ifconfigchmod 100 /usr/sbin/lsofchmod 100 /usr/bin/makechmod 100 /usr/bin/gccchmod 100 /usr/bin/g++chmod 100 /usr/bin/c++22. su 명령어를 이용한 root권한 사용자 점검.    cat /var/log/messages | grep root23. 최근 n 일전 변경된 파일 점검. (단위는 일)    find / -ctime -1 -print | more24. 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 {} \; .SetUID SetGID 체크하기           find / -type f \( -perm -004000 -o -perm -002000 \) -exec ls -lg {} \;  ./dev 체크           find /dev -type f -exec ls -l {} \;  .소유자없는 파일 및 디렉토리 찾기           find / -nouser -o -nogroup 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/tmp28. 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/bin32. 특정 그룹만의 su 사용권한 허용하기           vi /etc/group  (wheel그룹에 su 사용권한을 가질 유저 추가하기)          wheel:x:10:root,cream           vi /etc/pam.d/su (두줄 추가하기)           auth            sufficient            33. chmod 400 /etc/shadow34. 시스템 기본로그파일.           /var/log/messages           /var/log/secure           /var/log/wtmp           /var/run/utmp           /var/log/lastlog35. utmp, wtmp, lastlog 파일           utmp파일 : 현재시스템에 접속해 있는 사용자의 정보를 가지고 있음.           strings utmp | more36. 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_broadcasts37. Nmap를 이용 포트스켄 하여 해킹가능성 체크.          nmap -sS -p80 211.42.48.110 -O -v           nmap -sS -O -v </div>

댓글

이 블로그의 인기 게시물

파이썬으로 Homomorphic Filtering 하기

파이썬으로 2D FFT/iFFT 하기: numpy 버전