본 글은 CentOS 6.x 기본 방화벽인 IPTable 과 함께 추가적인 Fail2ban 을 사용하여 DDoS 나 Bruetfoce 공격과 같은 침해 시도를 방어하기 위한 보안 강화 방법에 대한 절차를 설명하고 있습니다. 아래 절차대로 수행을 한다면 어렵지 않게 기존 OS 에 보안 강화가 가능합니다.
fail2ban 설치를 위한 OS 준비
1) CentOS 6.10 (6.x 의 마지막 버전) 설치
AD
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에서의 설치 방법” 글도 참고하도록 하십시오.
AD