SSH에 들어오는 공격을 차단하기 위해 fail2ban을 설치했다.
$ sudo apt install fail2ban
# fail2ban 실행
$ sudo systemctl enable fail2ban
$ sudo systemctl restart fail2ban
기본 설정 파일은 /etc/fail2ban/jail.conf이지만, 업데이트 시 덮어 씌일 가능성이 있으니 별도의 설정 파일을 생성하는 것이 좋다.
# 사용자 설정 파일 생성
$ sudo vim /etc/fail2ban/jail.d/custom.local
로그인에 실패해도 차단하지 않도록 예외 ip 설정한다. 로컬호스트와 공유기 대역대를 설정해두면 되겠다.
ignoreip = 127.0.0.1/8 192.168.10.0/24
findtime
, maxretry
조건에 따라 인증에 실패한 클라이언트를 차단할 시간을 설정한다. 기본 차단 시간은 600초.
findtime
동안 maxretry
번 이상 접속 실패 시 bantime
초 동안 접근을 차단한다. bantime
을 -1로 설정 시 영구 차단한다. 시간은 초 단위로 지정하며, 기본 차단 시간은 600초로 설정되어있다.
findtime = 60
maxretry = 3
bantime = 10800
차단할 서비스에 enabled = true를 추가해주어야 차단이 실행된다.
[sshd]
enabled = true
port = ssh, 22
[DEFAULT]
ignoreip = 127.0.0.1/8 192.168.10.0/24
# 60초동안 3회 실패 시 3시간 차단
findtime = 60
maxretry = 3
bantime = 10800
# sshd 차단 설정
[sshd]
enabled = true
port = ssh, 22
$ sudo systemctl restart fail2ban