Linux/서버 보안(CentOS)

[테스트3] IPS(fail2ban) 설정

D4tai1 2018. 12. 24.

※ IPS에 관한 것은 사전에 다루지는 않았지만 이 글에서 테스트하려고 한다.


1. IPS(fail2ban) 설정

1) fail2ban 설치

  ▶ [yum install fail2ban -y] 명령어로 fail2ban이라는 IPS를 설치한다.


2) 메일서버 설치

  ▶ [yum install mail -y] 명령어로 메일서버를 설치한다.

  ▶ 메일서버를 설치하는 이유는 fail2ban이라는 IPS로 차단 후 차단한 내용을 메일로 자동으로 보고받기 위해서이다.


3) SSH 설정

  ▶ [vi /etc/fail2ban/jail.local]

  ▶ /*

[ssh-iptables]    //jail명

enabled = true //jail의 사용여부
filter = sshd    //필터명
action = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest="수신 메일주소", sender="송신 메일주소"]
logpath = /var/log/secure    //감시할 로그파일
maxretry = 5    //최대 시도횟수

  ▶ */ 위 내용은 ssh의 jail을 설정하는 것이다. (jail은 감옥을 의미한다.) 

  ▶ 즉 5회이상 인증에 실패하면 해당IP를 차단하고 메일로 보고하는 것을 말한다.

  ▶ ssh의 jail은 [ssh-iptables] 이지만 이 외에도 다른 jail이 존재한다.

  ▶ [proftpd-iptables], [vsftpd-iptables], [apache-badbots] 등이 있다.


4) 웹 설정

  ▶ [vi /etc/fail2ban/jail.local]

  ▶ /*

[apache-noscript]    //jail명

enabled = true //jail의 사용여부

port = http, https

filter = apache-noscript    //필터명
logpath = /var/log/httpd/error_log    //감시할 로그파일
maxretry = 5    //최대 시도횟수

  ▶ */ 위 내용은 웹 서버 jail을 설정하는 것이다.

  ▶ [apache-noscript]는 실제로 없는 사이트에 접속을 시도할 경우에 체크된다.

  ▶ 예를 들어 사용자가 index.jsp에서 admin.jsp나 board.jsp 등으로 강제URL접근을 시도할 경우를 말한다.


5) fail2ban 서비스 시작

  ▶ [service fail2ban start] 명령어로 fail2ban 서비스를 시작한다.


6) ssh로 접속

  ▶ 비밀번호를 틀리게 접속을 시도한다.


7) fail2ban 확인

  ▶ [fail2ban-client status] 명령어로 jail 리스트를 확인한다.

  ▶ 여기서는 ssh의 jail 설정만 했고 웹 서버 jail은 저장하지 않았기 때문에 ssh의 jail리스트만 출력된다.

  ▶ [fail2ban-client status ssh-iptables] 명령어로 ssh의 jail에서 필터링 된 것과 차단된 IP 등을 확인할 수 있다.


8) 메일확인

  ▶ 실제로 메일에 접속해서 확인해보니 Fail2Ban에서 보낸 메일이 있다.

  ▶ ossec66으로부터 172.16.10.18의 ssh접속을 차단했다는 내용이 담겨있다.



댓글