Skip to content

조회 수 8792 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
pam_abl 을 통한 SSH 무작위 공격 방어

- 출처 : http://www.sulinux.net/bbs/board.php?bo_table=success&wr_id=35&page=, su linux 사이트

1. 소개

  대부분의 유닉스, 리눅스서버를 관리하기 위해서 SSH 서비스를 사용하여 안전하게 원격지에서 서버로 접속을 합니다. 불행하게도, 악의적인 사용자가 무작위 SSH접속을 시도하여 비밀번호 획득을 시도합니다. 만약 쉬운 비밀번호 ( 예. 123456, aaaa, 계정과 같은 비밀번호)를 사용할 경우 공격자는 비밀번호를 획득하게 되고, 획득된 비밀번호로 서버에 접속하여 시스템을 파괴시키고는 합니다.

  이런 공격을 막기 위해서, 특정 계정만 ssh 접속 가능하게 하고, 특정 IP로 ssh 접속을 제한하는 등의 보안 조치를 하게 됩니다.
  하지만, 호스팅서버등에서는 불특정 가변 IP의 접속을 허용하여야 하기 때문에 불가능 한 일입니다. 호스팅사용자가 쉬운 비밀번호를 사용하는 경우가 허다하기 때문에 서버는 위험에 처할 수 밖에 없습니다.
 
  서버를 많이 운영하다 보면, 메시지로그(/var/log/messages)에 공격의 흔적을 목격하는 경우가 많을 것입니다. 그럼 이를 효과적으로 막을 수 있는 방법에 대해 알아보도록 하겠습니다.


  SSH 무작위 공격을 효과적으로 방어할 수 있는 pam_abl을 소개합니다. pam_abl은 동일한 원격지(IP)에서 여러번 인증에 실패(비밀번호오류)한 경우 또는 동일 한 사용자가 여러번 접속실패(비밀번호오류)한 경우에 아이피 및 사용자를 차단하여 더이상의 공격으로 부터 보호하는 역할을 합니다.
  pam_abl은 PAM(pluggable authentication modules)을 이용하여 연동됩니다.


*특징
 1. 무작위 접근 시도하는 IP를 차단
 2. 무작위 접근 시도하는 사용자를 차단
 3. SSH뿐만 아니라 다른 프로그램에도 연결
 4. 통계프로그램(pam_abl)을 제공


!!경고!!
  본 강좌는 ssh-서버의 pam 을 수정하여 무작위 접근을 막는 방법입니다.
 조금의 실수는 ssh 접속 불능의 상태가 되니, 리눅스 기본 명령어 및 편집기(nano,vi등)을 능숙히 다루며, sshd, pam 등의 이해를 필요합니다.
 원격지에서 작업해야 한다면, telnet 등의 다른 접속통로를 만들어 놓고 작업 하시기 바랍니다.




2. 설치
  소스파일을 다운로드 받아서 설치 합니다.

0) 사전준비
 -  소스를 받아서 설치하기 때문에 기본적인 컴파일러(gcc), 라이브러리 등이 필요합니다.
 -   Berkeley DB를 사용하기 때문에 이미 Berkeley DB가 설치되어 있어야 합니다.
     (SULinux 1.5에는 설치되어 있지만, 헤더파일이 없어 db.h 파일을 찾을 수 없다며 에러가 발생하며,  db4-devel 패키지를 추가로 설치하면 정상 설치 진행할 수 있습니다.)


1) 다운로드
   http://sourceforge.net/project/showfiles.php?group_id=148927
   위 URL에서 다운로드 받습니다.


2) 압축해제/컴파일 설치
    tar xvfpz pam_abl-0.2.3.tar.gz
    cd pam_abl
    make install
   (이 부분에서 db.h 파일을 찾을 수 없다고 나온다면, db4-devel 패키지를 설치하세요)


3) 설정파일을 특정 디렉토리에 복사
    cp conf/pam_abl.conf /etc/security


4) /etc/pam.d/sshd 파일의 아래에 다음 내용을 추가

  auth     required     /lib/security/pam_env.so
  auth     required     /lib/security/pam_abl.so config=/etc/security/pam_abl.conf
  auth     sufficient     /lib/security/pam_unix.so likeauth nullok
  auth     required     /lib/security/pam_deny.so




5) sshd 재 시작
  service sshd restart




3. 운영
  위와같이 설치하였다면, 특별히 해 줄일은 없습니다.
 기본적으로 시간당 10회, 하루 30회 비밀번호가 틀리게 되면, 접속이 차단됩니다. 이런 설정을 변경하려면, 아래의 설정파일 부분을 참조하여 설정파일을 수정하며, sshd 를 재시작합니다.


 1) 현재 상태 확인 (차단된 사용자, 아이피 확인)
    pam_abl


 2) 현재 상태 자세한 확인( 차단된 사용자, 아이피 등 차단된 시간정보등)
    pam_abl -rv


 3) 실패한 기록 삭제 (설정에 따라 2일이 지나면 자동 삭제)
    * 실패한 기록을 삭제하는 것이지, 차단된 아이피, 사용자를 해제하는 것은 아님.
    pam_abl -p
    

 4) 차단된 사용자 풀어줌.
    pam_abl --okuser=사용자


 5) 차단된 host(IP,도메인) 풀어줌
    pam_abl --okhost=호스트




4. 설정파일 (/etc/security/pam_abl.conf)
1) 기본 설정파일 설명
#debug
host_db=/var/lib/abl/hosts.db   ## 인증 실패한 IP를 보관할 DB파일
host_purge=2d                 ## 인증 실패한 IP를 초기화할 시간 (2일)
host_rule=*:10/1h,30/1d  ## 시간당 10회, 하루 30회 인증실패한 IP 차단
user_db=/var/lib/abl/users.db ## 인증 실패한 사용자를 보관할 DB파일
user_purge=2d        ## 인증 실패한 사용자를 초기화할 시간 (2일)
user_rule=!root:10/1h,30/1d  ## 시간당 10회, 하루 30회 인증실패한 사용자 차단

** 참고 : 실패 기록을 제거하는 것이지, 차단된 host, user를 풀어주지는 않는다.!!
날짜에 사용되는 형식은 다음과 같습니다.
  s : 초,  m:분, h:시간,  d:일


2) 참고사항
  *:10/1h : 모든 host또는 user에대해 10회/시간
  root|dba|admin:10/1h :  root, dba, admin 상요자에대해 10회/시간
  root/sshd|dba/*:3/1d : sshd 데몬에 sshd, dba는 모든 데몬에 해대 3회/일
  root:10/1h,20/1d : root사용자에 대해 10회/시간, 20회/하루
  *:10/1h root:5/1h,10/1d : 모든사용자는 10회/시간,    root는 5회/시간,10회/일
  !root:20/1d : root사용자외에 20회/일



5. 마치며
 본 강좌가 ssh 공격으로 부터 힘들어하는 사용자들에게 조금이라도 도움이 되었으면 좋겠습니다. 이 훌륭한 프로그램을 만들어주신 제작자에게 감사하는 마음으로 본 강좌를 마무리 합니다. 



* 참고 사이트
  자세한 설명 : http://www.hexten.net/assets/pam_abl_doc/index.html
  공식 사이트 : http://www.hexten.net/pam_abl/
 
* 테스트 환경 : SULinux 1.5 Server
 

  1. SQL Injection tools 15종

    Date2009.09.25 ByADMINPLAY Views12327
    Read More
  2. SYN Flooding공격에 대한 대비

    Date2009.09.24 ByADMINPLAY Views13008
    Read More
  3. rootkit 검색 프로그램 rkhunter-1.3.4.tar.gz

    Date2009.09.22 ByADMINPLAY Views9483
    Read More
  4. rootkit 검색 프로그램 rkhunter-1.2.9.tar.gz

    Date2009.09.22 ByADMINPLAY Views9236
    Read More
  5. apache 웹방화벽 modsecurity용 웹설정 툴, Remo

    Date2009.09.09 ByADMINPLAY Views9498
    Read More
  6. 스위칭 허브 상에서의 sniffing 툴

    Date2009.09.08 ByADMINPLAY Views9637
    Read More
  7. 시스템 로그를 메일로 - logcheck

    Date2009.09.08 ByADMINPLAY Views8828
    Read More
  8. 리눅스서버에서 ping(ICMP) 열기/닫기

    Date2009.08.18 ByADMINPLAY Views14876
    Read More
  9. find 명령어 활용(보안관련)

    Date2009.08.08 ByADMINPLAY Views9638
    Read More
  10. Apache 에 ModSecurity 모듈 설치하기

    Date2009.08.03 ByADMINPLAY Views10597
    Read More
  11. 64bit 시스템에 ssl 설치 후 실행 시 X509_free 오류

    Date2009.07.19 ByADMINPLAY Views9743
    Read More
  12. SSL 인증서문제

    Date2009.07.19 ByADMINPLAY Views9528
    Read More
  13. Linux Security

    Date2009.07.18 ByADMINPLAY Views9990
    Read More
  14. 리눅스용 각종 보안도구 사이트모음

    Date2009.07.12 ByADMINPLAY Views34046
    Read More
  15. Tcpdump 사용법

    Date2009.06.06 ByADMINPLAY Views11208
    Read More
  16. 리눅스용 백신 AVG

    Date2009.06.04 ByADMINPLAY Views9142
    Read More
  17. mod_security 설치 2.X

    Date2009.06.04 ByADMINPLAY Views9449
    Read More
  18. pam_abl 을 통한 SSH 무작위 공격 방어

    Date2009.06.04 ByADMINPLAY Views8792
    Read More
  19. iptables 포트 포워딩

    Date2009.06.04 ByADMINPLAY Views12093
    Read More
  20. iptables-connlimit & geoip 설치설정

    Date2009.05.28 ByADMINPLAY Views10397
    Read More
Board Pagination Prev 1 2 3 4 5 Next
/ 5

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234