정보&강의 CentOS7 fail2ban 셋팅
- 운영자
- 275
- 0
fail2ban 은 무작위 암호대입이나 ddos 공격에 대비하여 해당 아이피를 실시간으로 검색하고 차단하는 유용한 방어툴이다.
설치
# yum install fail2ban fail2ban-systemd
fail2ban 구조 이해
아래는 fail2ban를 설치하면 존재할 fail2ban 디렉토리들입니다.
* /etc/fail2ban/filter.d
접속 로그파일을 분석하여 비밀번호 실패기록을 근거로 ip 차단하는 원리이다. 접속 로그파일를 분석할때는 /etc/fail2ban/filter.d 에 있는 서비스 필터를 사용하게 된다. 예를 들면 sshd.conf 파일은 sshd 서비스 로그필터 파일이다. 이상 징후를 발견한 로그 패턴을 찾아서 필터로 만들어 주면 된다. 정규식을 이용하면 좋다.
* /etc/fail2ban/action.d
fail2ban이 사용할 수 있는 action 파일들이 존재한다. 예를 들어 방화벽으로 ip차단을 할 수 있는 firewallcmd-new.conf 파일도 여기에 있다.
기본 action 파일내용은 아래와 같습니다.
[Definition]
actionstart = fail2ban 시작시 실행할 명령
actionstop = fail2ban 중단시 실행할 명령
actioncheck = action 시작을 확인할 명령
actionban = 차단행위 발생시 실행할 차단 명령
actionunban = 차단시간 초과시 실행할 차단해제 명령
* /etc/fail2ban/jail.d
fail2ban 사용자 설정을 넣을 수 있는 디렉토리이다. fail2ban 은 실행시 jail.d 디렉토리있는 모든파일들에 있는 설정들을 적용하도록 되어있다.
/etc/fail2ban/jail.conf 파일은 기본설정 파일이며, 사용자 설정파일이 jail.d 디렉토리에 존재할 경우 그 사용자 설정이 기본설정보다 우선 적용된다.
그리고 관련 패키지를 설치할 경우 그 셋팅파일이 생성됩니다.
fail2ban-firewalld 패키지를 설치할 경우 - 00-firewalld.conf 파일 생성
fail2ban-systemd 패키지를 설치할 경우 - 00-systemd.conf 파일 생성
* /etc/fail2ban/fail2ban.conf
fail2ban 로그파일에 대한 설정을 할 수 있습니다. (loglevel, logtarget )
사용자설정 디렉토리 : fail2ban.d
실행
systemctl enable fail2ban
systemctl start fail2ban
이상 접속 확인방법
# cat /var/log/secure | grep 'Failed password'
Fer 8 12:41:12 htf sshd[5487]: Failed password for root from 108.61.157.25 port 23021 ssh2
Fer 8 12:41:15 htf sshd[1254]: Failed password for root from 108.61.157.25 port 15486 ssh2
Fer 8 12:41:16 htf sshd[1254]: Failed password for root from 108.61.157.25 port 24457 ssh2
Fer 8 12:41:18 htf sshd[1254]: Failed password for root from 108.61.157.25 port 24457 ssh2
차단된 아이피 확인
iptables -L -n
fail2ban 상태확인
# fail2ban-client status
Status
|- Number of jail: 2
`- Jail list: nginx-http-auth, sshd
차단된 아이피 해제
fail2ban-client set sshd unbanip IPADDRESS
허용 아이피 복수 설정
ignoreip = 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 8.8.8.8