Fail2ban 설치하기

작은 서버지만, 가끔 엄청난 로그인 시도가 있을 때가 있다.
기본적인 보안 유지를 위해 로그인 실패시 해당 IP를 차단 해 주는 프로그램을 설치 해 본다.

설치방법
명령어 한 줄이면 충분하다.

sudo apt-get install fail2ban

이후 부팅시마다 자동으로 시작하도록 하기 위해 시스템에 등록한다.

sudo systemctl enable fail2ban
sudo systemctl restart fail2ban

프로그램을 설치 했으니, 기본적인 설정을 해 주어야 한다.
기본 설정 파일은 /etc/fail2ban/jail.conf 이지만, 업데이트시 초기값으로 돌아갈 수 있으니 개인 설정 파일을 만들어서 적용하는 것을 권한다고 한다.
개인 설정 파일을 /etc/fail2ban/jail.local 로 만들도록 한다.

sudo vim /etc/fail2ban/jail.local

이후 편집기가 열리면 아래 설정 예시를 참고하여 원하는 대로 적는다.
ignoreip: 항상 접근이 가능하도록 허용해 주는 ip를 적는다. 대부분 127.0.0.1/8 으로 한다.
bantime: 접속차단시간. 초 단위이다.(60=1분, 600=10분, 3600=1시간, 43200=12시간이며, -1은 영원히.)
findtime: 로그인을 시도하는 시간. (초 단위)
maxretry: 로그인시도 허용 시도 횟수.

[DEFAULT]
ignoreip = 127.0.0.1/8 
bantime = 600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log

위 설정파일의 의미는 SSH를 통해 10분동안 5번의 로그인 시도를 실패하는 경우, 10분간 해당 IP 접근을 제한하겠다는 뜻이다.
로그파일은 /var/log/auth.log 에 저장된다.
(Tip: putty를 통해 위 내용을 복사 붙여넣기 할 때, putty 붙여넣기 단축키는 Shift + insert 이다.)

설정을 완료했으면, 설정 파일을 적용시키기 위해 서비스를 재시작한다.

sudo service fail2ban restart

서비스가 잘 시작되었고, 정상적으로 작동하는지 확인 해 본다.

sudo fail2ban-client status sshd

가끔, 제대로 등록된 사용자가 비밀번호를 계속 잘못 입력하다가 해당 IP가 차단되는 경우가 있을 수 있다.
이런 경우, 해당 IP 정보를 확인한 후 아래 명령어로 차단을 해제하면 된다.

sudo fail2ban-client set sshd unbanip x.x.x.x

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤