devops

fail2ban 패키지 설치, 설정하여 SSH 서버 강화하기 본문

DevOps/OS

fail2ban 패키지 설치, 설정하여 SSH 서버 강화하기

vata500 2021. 8. 29. 00:01
반응형

fail2ban

원격 서버로 접속하기 위해서 SSH를 사용하는 사람들이 많다. 그러나 본인이 아닌 해커가 무작위 로그인을 시도하여 문제가 발생할 수 있는데, 무작위 로그인 공격에 대응하기 위해 사용하는 것이 fail2ban 패키지다. (파이썬으로 개발됨)

IP주소를 기준으로 커널 방화벽에 등록하여 무작위 로그인 공격을 차단시켜준다. SSH를 공용으로 사용한다면 설치하는 것을 추천한다.

설치방법(우분투 Ubuntu 기준)

$ sudo apt install fail2ban

서비스 시작, 재시작, 정지, 상태 확인

$ sudo systemctl enable fail2ban

$ sudo systemctl disable fail2ban

$ sudo systemctl restart fail2ban

$ sudo systemctl stauts fail2ban

sudo systemctl stauts fail2ban, 'active' 상태

설정

기본 설정은 /etc/fail2ban/jail.conf에서 수정할 수 있다. 개인화 설정은 /etc/fail2ban/jail.local 에서 가능하다.

주요 설정 값만 정리해보았다.

jail.conf

ignoreip : 무작위 로그인 차단을 적용하지 않을 IP 설정이다. 이 값은 디폴트기 때문에 직접 입력해준다.

bantime : 인증에 실패한 클라이언트를 차단하는 시간이다. 초 단위로 지정한다. 지정된 시간을 초과하면 다시 접속 시도를 할 수 있다.

findtime : 지정된 시간(초 단위)동안 지정된 횟수(maxretry)만큼 실패 시 차단하는 설정이다.

maxretry : 최대 인증가능 횟수 설정값이다.

fail2ban은 차단 정보를 메일로 전송해주는 기능도 있다. 위 값들을 이용하여 설정한다.

destmail : 차단 메일을 수신할 수신자 메일 주소

sender : 차단 메일을 보내는 발신자 메일 주소

$ sudo ipset --list 
설정된 ipset 정보 확인

 


추가 Tip, 

$ tail -F /var/log/auth.log
접속과 관련된 로그 내역을 확인

$ tail -f /var/log/fail2ban.log
fail2ban의 동작 로그는 /var/log/fail2ban.log에 기록된다. 위 명령어를 실행하면 로그를 확인할 수 있다.

반응형
Comments