리눅스 fail2ban
From IT Wiki
Revision as of 09:58, 6 January 2022 by 175.194.72.123 (talk)
- 리눅스에서 특정 시스템에 일정 횟수 이상 로그인을 실패하면 일정 시간동안 차단하는 시스템
설정파일
/etc/fail2ban/jail.conf
설정
- jail.conf를 직접 수정하지 않고 jail.local 파일을 생성하여 수정한다.
- jail.conf는 업데이트 과정 등에서 덮어씌워질 수 있다.
$ cp ./jail.conf ./jail.local 또는 $ cp ./jail.conf ./jail.d/custom.local 등
- 차단 옵션을 추가한다. 기본적으로 아무것도 차단하지 않도록 설정되어 있을 수 있다.
[DEFAULT] ## 차단하지 않을 IP ignoreip = 127.0.0.1/8 192.168.10.0/24 # 3시간 차단 bantime = 10800 # 아래 시간동안 maxretry 만큼 실패시 차단 findtime = 300 # 최대 허용 횟수 maxretry = 5 # 메일 수신자, 다중 수신자는 지원 안 함 destemail = [email protected] # 메일 보낸 사람 sender = [email protected] # 메일 전송 프로그램 mta = sendmail # 차단시 whois 정보와 관련 로그를 첨부하여 메일 전송 action = %(action_mwl)s # sshd 서비스 차단 [sshd] enabled = true port = ssh, 10022
- 설정을 마쳤으면 서비스를 재시작하여 변경 사항을 반영한다.
$ sudo systemctl restart fail2ban
- 차단 정보를 확인한다.
$ sudo fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 8 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd `- Actions |- Currently banned: 0 |- Total banned: 2 `- Banned IP list:
트러블 슈팅
ban이 이루어지지 않는 경우
- 감지: 로그인 시 아래와 같은 수많은 실패 기록이 보인다.
Last failed login: Sat Apr 4 13:25:31 KST 2020 from 11.11.11.11 on ssh:notty There were 121259 failed login attempts since the last successful login
- 확인: fail2ban의 차단이 동작하고 있는지 확인한다.
- 아래와 같이 나오면 sshd에 대한 ban 옵션이 꺼져 있는 것이다.
# fail2ban-client status Status |- Number of jail: 0 `- Jail list:
- 조치: jail 설정 파일에서 sshd에 대한 차단 옵션을 활성화시켜 준다.
- 설정파일은 일반적으로 /etc/fail2ban/jail.local 또는 /etc/fail2ban/jail.conf 에 있다.
- 아래와 같은 라인이 주석 처리 되어 있다면 주석 처리를 해제한다.
[sshd] enabled = true
- 재기동
- systemctl restart fail2ban.service
- 재확인: fail2ban의 차단이 동작하고 있는지 확인한다.
- 아래와 같이 나오면 sshd에 대한 ban 옵션이 동작하고 있는 것이다.
# fail2ban-client status Status |- Number of jail: 1 `- Jail list: sshd