[정보보안학원/보안/해킹] 시스템 재설치 및 서비스 제한
[정보보안학원/보안/해킹] 시스템 재설치 및 서비스 제한
실시간으로 해킹이 발견되거나 의심스러울때 가능하다면 랜선를 제거하고 그 다음에 설치 되어 있는 해킹툴을 찾거나 제거 하도록 합니다. 의심이되는 프로세스는 죽이고 ( #kill -9 PID ) 종료시키거나 하면 시스템 설정을 바꿔 놓았을 경우 재부팅이 안될수 도 있으므로 #/etc/rc.d/rc.sysinit 권한을 755를 주고 재부팅을 하는것이 좋습니다. 또 부팅 디스켓을 이용해서 싱글모드로 부팅해서 처리하는 것도 한 방법 입니다.
1. 침입자가 슈퍼유저 권한을 획득한 흔적이 있거나 의심스럽다면 했었다면 시스템을 재설치하는 것이 가장 확실한 방법 입니다. 리눅스 뿐만 아니라 유닉스 계열에서 슈퍼유저 권한은 절대적인 지위에 있으므로, 일단 (백도어를 통해서) 루트권한만 획득하면 어떠한 작업이라도 가능 하기 때문입니다.
2. 기존의 패스워드는 해커에게 모두 알려졌으므로 사용했던 패스워드는 전부 바꿉니다.시스템을 재설치해서 안전한 상태 이전에 패스워드 변경은 스니퍼프로그램등이 깔려 있는경우 바로 유출 될 수도 있습니다.
2. /home 의 자료 , /etc 의 설정파일들 백업받고 나머지는 다시 설치하는 것이 가장 안전합니다. 다시 /etc에서 text로 된 설정화일 들만 복구 합니다. 의심되는 파일 - 스크립트 , binary File이 혹시 숨어있나 살펴보고 철저히 제거 해야 합니다. 그리고 다시 깔지 않은 /home 디렉토리나 뿐만아니아 서버 전체에서 set uid준 프로그램들을 체크 합니다.
3. 해외에서 들어온 경우 /etc/hosts.deny 화일을 이용해서 해킹이 들어온 IP대의 C-CLASS IP 전부를 막아 놓습니다. /etc/services 화일에서, 요즘 쓰지도 않는 것과 약간의 보안성에 의문이 가는 것들과 괜히 해커에게 정보만 주는 명령어들은 모조리 막는것이 좋습니다. gopher, rlogin, exec, talk, ntalk, dtalk, imap , tftp, bootps, finger, cfinger, netstat, systat등입니다.
3-1) chkconfig 사용 - 부팅시 수행되는 서비스(데몬) 켜고 끄기
#chkconfig --list (/sbin 밑에 위치)
#chkconfig --help (참고)
#chkconfig --level 3 sendmail off (사용방법예 : 런레벨 3 에서 sendmail off 시킴)
자기의 환경에 맞추어서 필요한 서비스들(런레벨 3에서 keytable,inet, network,random,kudzu,sendmail,syslog, crond,proftpd 등 ) 빼고 모두 끕니다.
4. 보안성 버그 발견된 프로그램들 (bind,imap 등) 은 최신판으로 업데이트하고, 커널도 버젼이 낮으면 안정버젼으로 업데이이트 합니다.
5. Anonymous FTP는 사용하지 않는것이 좋습니다. (리눅스 처음 설치시 열려 있습니다. ) 또한 Telnet 도 지정된 IP 이외에는 접속을 금지하거나, ssh(Secure Shell)을 설치해서 운영 합니다.
1-1) anonymous ftp 막기
#vi /etc/proftpd.conf
아래 부분을 주석처리 해준다.
UserAlias anonymous ftp
특정 user가 ftp 접속후 본인의 Directory 외에 다른 유저의 Directory를 접근 못하게 한다.
DefaultRoot ~ member
데몬 재시동
shell-prompt>/etc/rc.d/init.d/proftpd restart
1-2) anonymous 접속거부의 다른방법
/etc/ftpusers 화일에
anonymous
한줄 추가해준다. 이곳에 있는계정으로는 ftp 접속이 거부된다.
저장하고 나와서 ftp 데몬 재가동 해준다.
2) telnet 사용막기
현재 텔넷이 막힌 경우에는 해킹의 위험이 줄어듭니다. 다음을 이용해서 Telnet 접속 IP를 제한 할 수 있습니다.
2-1) ip 거부 및 허용 이용
#vi /etc/hosts.deny
in.telnetd:ALL
wq (저장후 종료)
#vi /etc/hosts.allow
ALL:(IP 추가) <--- 텔넷으로 들어올 아이피만 적는다.
wq (저장후 종료)
저장후 다음과 같이
#/etc/rc.d/init.d/xinet restart
2-2) 서버에 등록된 사용자가 많은 경우 last 명령을 사용하여 자주 telnet으로 접속하는 사용자는 history를 자주 살펴보도록 합니다.
#last | grep pts
2-3) telnet, ftp에 사용시 group을 같게 해주고 각 계정의 root Directory를 퍼미션을 705로 처리해 주면 다른 유저가 다른 사용자의 계정에 들어 갈수가 없다. 만약 755로 한다면 다른 유저에게도 읽을 권한이 생겨서 connect 스크립트를 읽을 수 있어 db접속 아이디/passwd를 얻을수 있다.
2-4) 사용자들의 등록된 user의 passwd를 자주 갱신하게 만든다.
#vi /etc/login.defs
이중 아래의 스크립트를 일정기간 설정해서 사용자들의 passwd를 바꾸게 만든다.
PASS_MAX_DAYS 99999 <-- 일정기간으로 잡아준다.
2-5) shell이 필요없는 경우 (예:메일계정으로만 사용하는 경우) shell을 주지 않도록 합니다.
shell-prompt>vipw
khsheen:x:500:502::/home/gdm:/bin/false ( /bin/false 없는 디렉토리 )
3) ping 막기 : 외부에서 들어오는 Ping 에 응답을 안하도록 합니다.
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all //ping 막기
#echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all //ping 열기
해킹 신고 사이트
http://www.certcc.or.kr/
보안 렌퍼런스 링크 : http://www.certcc.or.kr/tools/Security_Reference.html
출처 : http://www.it-bank.or.kr/boan/boan.htm