Home SE Note

fail2ban 이용 ssh 공격 방어

0

  본 글은 CentOS 6.x 기본 방화벽인 IPTable 과 함께 추가적인 Fail2ban 을 사용하여 DDoS 나 Bruetfoce 공격과 같은 침해 시도를 방어하기 위한 보안 강화 방법에 대한 절차를 설명하고 있습니다. 아래 절차대로 수행을 한다면 어렵지 않게 기존 OS 에 보안 강화가 가능합니다.

fail2ban 설치를 위한 OS 준비

1) CentOS 6.10 (6.x 의 마지막 버전) 설치

2) iptables 수정

$ sudo iptables -I INPUT 5 -s 192.168.10.0/24 -j ACCEPT 
$ sudo iptables -P INPUT DROP

fail2ban 설치와 설정

1. fail2ban 설치

$ sudo yum update
$ sudo yum install epel-release
$ sudo yum install fail2ban

2. fail2ban 설정 변경
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

(예시) 설정한 내용

[DEFAULT]
ignoreip = 127.0.0.1/8, 192.168.10.91
bantime = 3600
findtime = 300
maxretry = 3
logencoding = "utf-8"
enabled = true
destemail = admin@boolsee.pe.kr
sender = fail2ban@centos.boolsee.pe.kr

(기타) ssh 등 사용하는 서비스 제외한 모든 서비스 설정에서 “enabled = false” 추가

3. fail2ban을 시스템 서비스로 등록

$ sudo chkconfig --add fail2ban
$ sudo chkconfig fail2ban on
$ sudo chkconfig --list fail2ban
fail2ban 0:off 1:off 2:on 3:on 4:on 5:on 6:off

4. fail2ban 서비스 실행 및 확인

$ sudo service fail2ban start
$ sudo service fail2ban status
fail2ban-server (pid 1926) is running...
Status
|- Number of jail: 5
`- Jail list: dropbear, postfix-rbl, selinux-ssh, sshd, sshd-ddos
$ sudo iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
f2b-postfix-rbl tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 25,465,587
f2b-selinux-ssh tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 22
f2b-dropbear tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 22
f2b-sshd-ddos tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 22
f2b-sshd tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 22
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

기존 규칙에 f2b-* 이름의 규칙들이 추가되었음을 확인

5. fail2ban 시험

해당 장비로 ssh 접속 후, 비밀번호 오류 3회 발생 후, iptable 내용 확인.
아래와 같이 REJECT 가 추가되었음을 알 수 있음.

$ sudo iptables -L -n
Chain f2b-sshd (1 references)
target prot opt source destination
REJECT all -- 192.168.10.5 0.0.0.0/0 reject-with icmp-port-unreachable
RETURN all -- 0.0.0.0/0 0.0.0.0/0

6. fail2ban 이 차단한 IP 의 차단 해제

$ sudo iptables -D f2b-SSH -s <banned_ip> -j DROP

또는

$ sudo fail2ban-client set sshd unbanip <banned_ip>

CentOS 6.x 가 아닌 버전은 “CentOS 7에서의 설치 방법” 글도 참고하도록 하십시오.

Exit mobile version