2011. 4. 7. 16:11

리눅스 fail2ban 설치 (Centos 5.5)

fail2ban 은 특정 서비스로 로그인을 몇회 이상 실패할 경우 일정기간 동안 차단하는 툴로 ssh 등에 무작위로 로그인하는 봇에 대응 하기 위한 모듈입니다.


1. fail2ban 을 받기 위해 사이트 http://www.fail2ban.org 로 가서 중간부분에 Downloads를 클


2. 여러가지 리눅스에 맞는 다운로드 링크가 나옵니다. 사용하시는 버젼에 맞게 클릭
   저는 Centos 5.5 를 사용하고 있으니 EPEL 이라고 된 곳을 클릭합니다.



3. 중간쯤에 What packags and Versions are available in EPEL? 부분을 보면 EPEL6,5,4 에 해당하는
   부분이 있는데 Centos 버젼과 똑같으니 Centos 5에 32bit를 사용하는 저는 EPEL5 i386에서 패키지를 찾으면
   되겠습니다.



4. 패키지들이 쭉 나오는데 윗쪽에 f 를 클릭하시면 f로 시작하는 패키지가 전부 나옵니다. 그중에 fail2ban을
   선택하도록 합니다.




5. 이제 fail2ban을 다운 받으면 되겠죠. 쉽게 하시려면 위에 처럼 다운로드 링크를 그냥 링크만 복사해
    설치하려는 리눅스에서 wget 을 통해 다운로드 하면 쉽게 다운이 받아집니다.



6. 다운받은 rpm을 설치하려고 보니 의존성 때문에 설치가 안되네요!!
   문구를 자세히 보면 shorewall 이 필요하다고 하니 설치하러 갑니다.!!



7. 아까 EPEL 에서 shorewall을 찾아서 다운로드 합시다!
   다만 주의 할것은 EPEL 페이지에 있는 rpm 을 받으면 부가적인 shorewall 패키지지를 먼저 설치하라고 나오니
   기왕이면 최신버젼을 받으러 홈페이지로 가보도록합니다.



8. shorewall.net 사이트에 방문해서 download -> standard download sites 에 가보시면 몇개의 미러사이트
    중에 마음에 드는 곳에서 다운받으시면 되겠습니다. 저는 소스포지에서 다운받겠네요.
   최신버젼은 4.4.16.1.tar.bz2 라고 친절하게 안내가 되있는데 소스설치는 귀찮으니깐 
   리스트에 나와있는 버젼을 클릭해서 rpm 파일을 다운받도록 합니다.



9. 다운받은 shorewall 을 설치하구요.


10. fail2ban도 설치하도록 합시다. 모르면 어려운데 알고 나면 참 쉽게 설치가 되네요.


11. fail2ban 파일들은 /etc/fail2ban 에 설치가 됩니다.


12. 설정파일인 jail.conf를 열어 bantime(차된 할 시간) 과 maxretry(실패한 횟수)를 적절하게 고쳐주고요.


13. 적용하려는 서비스를 찾아서 enabled = true로 고쳐주면 해당 서비스만 적용이 됩니다.
     저 같은 경우에는 ssh 와 vsftp 만 적용을 했습니다.

     섹션의 내용을 보시면 대충 이해하기 쉽게 되있네요.
     enabled 는 사용여부 
     filter 는 /etc/fail2ban/filter 에 보시면 로그를 읽을때 사용할 필터가 정의되있습니다.
     action 은 iptable로 차단 하고 메일을 발송하겠다는 내용이구요.
     logpath 는 읽어서 처리할 로그파일 위치
     maxretry 는 차단할 실패횟수
     bantime 은 차단시간입니다.



14. 그럼 이제 서비스를 시작하구요. 부팅 시에도 자동 시작되도록 ntsysv 명령으로 등록하면 작업이 완료됩니다.

이제부터는 중국 봇들이 얼씬도 못하겠네요 

퍼가실땐 출처를 반드시 밝혀주시구요. 출처를  밝히지 않으시는 경우는 어떤 경우에도 퍼가실 수 없습니다.