Home | Data Center | Contact US | Login

제목 Prevent-SSH Bruteforce(무차별 공격) 방어 툴
첨부파일 Prevent - SSH Bruteforce(무자별공격) 방어툴.pdf 작성일 2007-11-27 10:28:06
작성자 : 기술지원부 김 삼 수 kiss@nextline.net
 
Prevent
SSH Bruteforce(무차별 공격) 방어 툴
 
Prevent 이란?
/var/log/secure 로그를 살펴보면 일정한 ID를 이용해서 SSH 접속 시도를 하는 것을 볼 수 있으며 이런 공격은 SSH Bruteforce(무차별 공격)로서, 패스워드 사전 파일을 이용해서 미리 지정한 아이디와 대입하여, 접속 계정을 알아 내는 해킹 방법입니다. Prevent은 /var/log/secure 로그의 실시간 분석하여 특정 아이피에서 일정횟수 이상 접속 실패가 이루어지면 공격 아이피에 대한 clipping level을 지정해서 5 level이상 올라가면 아이피을 블록 시키는 툴입니다.
 
prevent 동작원리
/var/log/secure 파일을 분석하여 sshd에 대한 로그분석 후 특정 아이디, 패스워드의 불일치로 접속 실패한 아이피를 /var/log/prevent 디렉토리에 기록 후 카운팅을 합니다. 카운팅은 1~5까지 있는데 이것이 clipping level 이며 level 5 이상이 되었을 시 /etc/denyip 파일에 아이피를 등록하여 해당 아이피가 차단되도록 동작합니다. 단, level 5 이상이 되기전 한번이라도 로그인에 성공하면 해당 아이피에 대한 clipping level 기록이 삭제되며  /etc/denyip 파일에 등록되어 차단된 아이피는 /var/log/prevent 디렉토리의 기록에서 자동 삭제됩니다.
 
① SSH Bruteforce(무차별 공격) 탐지
 
[root@nextline log]# cat /var/log/secure



/var/log/secure 로그파일에 기록된 SSH Bruteforce 공격의 형태입니다.
 
② log rotation 설정
prevent 운영 시 /var/log/secure의 로그가 log rotation 되면 secure 로그를 분석하지 못하는 현상이 나타나므로 /etc/logrotate.d/syslog 파일을 아래와 같이 수정하시기 바랍니다.
[root@nextline ~]# cat /etc/logrotate.d/syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/sleep 1 # 1초간 대기한
        /root/bin/prevent stop  # prevent가 설치된 절대경로 입력
        /root/bin/prevent stop  # prevent가 설치된 절대경로 입력
        /root/bin/prevent start &  # prevent가 설치된 절대경로 입력
    endscript
}

 
③  다운로드
wget http://manpage.co.kr/zboard/data/down/prevent_0.7.2.tar.gz
wget http://manpage.co.kr/zboard/data/down/prevent2_64bit.tgz

 
④  압축해제
[root@ns ~]# tar zxf prevent_0.7.2.tar.gz

 
⑤ 퍼미션 변경
root 권한으로만 실행될 수 있도록 퍼미션을 변경합니다.
[root@ns ~]# chmod 700 prevent
[root@ns ~]# ll prevent
-rwx------  1 root root 376812  3월 22  2005 prevent

 
⑥ 경로변경
prevent이 위치할 적당한 경로로 파일을 이동합니다.
[root@ns ~]# mv prevent /root/bin/
[root@nextline ~]# ll /root/bin/prevent

 
⑦ /etc/hosts.deny 설정
prevent은 아이피 차단을 위해 /etc/hosts.deny 파일을 사용하므로 /etc/hosts.deny 파일에 아래와 같이 설정되어있어야 합니다.
[root@ns ~]# vi /etc/hosts.deny
 
 
/etc/denyip 파일에 등록된 아이피는 ssh 접근을 차단시키겠다는 설정이며 denyip 파일은 prevent 실행 시 자동 생성됩니다.
아래의 내용을 입력합니다.
sshd: . /etc/denyip
 
 
⑧ prevent 시작
실시간으로 /var/log/secure 파일을 분석할 수 있도록 백그라운로 prevent을 실행합니다.
[root@nextline ~]# /root/bin/prevent start &

 
백그라운드로 정상적으로 실행되고 있는지 확인합니다.
[root@nextline ~]# jobs

  
⑨ prevent 중지
[root@nextline ~]# /root/bin/prevent stop

  
⑩ denyip 파일생성 확인
[root@nextline ~]# ll /etc/denyip
denyip 파일의 퍼미션은 root만 읽고, 쓰기가 가능하도록 0600으로 설정되어 있습니다.

 
⑪ 아이피 차단테스트
prevent 실행시 자동생성되는 /var/log/prevent 디렉토리로 이동합니다.
[root@ns ~]# cd /var/log/prevent/
ssh 접속시 일치하지 않은 패스워드로 1~2차례 접속시도를 하면 아래와 같이 카운트가 시작되며 count 1은 clipping level 1을 의미합니다.
[root@ns prevent]# count 1
ssh 접속 실패한 아이피가 clipping level에 등록되면 해당 아이피가 /var/log/prevent 디렉토리에 아이피명으로 파일이 생성됩니다.
[root@ns prevent]# ls
xxx.xxx.xxx.xxx
해당 파일을 vi 에디터나 cat 명령어로 확인하며 해당 아이피에 대한 clipping level 을 확인 하실 수 있습니다.
[root@ns prevent]# cat xxx.xxx.xxx.xxx

 
지속적인 접속실패로 clipping level 5 이상이되면 /etc/denyip 파일에 등록되면서 해당 아이피가 차단되며 /var/log/prevent 디렉토리에는 해당 아이피에 대한 기록이 삭제됩니다.
/etc/denyip 파일에 아이피가 등록되면서 콘솔상에 뿌려주는 메시지 입니다.
 
 
차단 아이피확인
[root@ns prevent]# cat /etc/denyip
 
 
⑫ 접속테스트
Prevent에 의해 차단된 아이피로 ssh 접속을 시도하면 아래와 같은 에러메시지를 출력하며 접속이 이루어지지 않습니다.

 
 
 
 
 
  사이트가 느려질때 점검사항
  lshw 란?





회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도
회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도 회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도