fail2ban

무차별 비밀번호 대입을 통해 로그인을 시도하는 프로그램 및 해커들로부터 서버를 보호해준다.

똑같은 IP로 n번 로그인 실패를 했을 경우 정해진 시간동안 접속이 불가능하게 설정도 가능하다.

 

보통 SSH에 많이 적용하고 클라우드 상에서 fail2ban을 사용해서 접속을 막는 방법도 많이 사용한다.

 

왜 사용할까?

journalctl -f

해당 명령어를 통해 우리의 서버에 침투중인 상황을 실시간으로 볼 수 있다. 계속 로그가 올라오는게 침입 시도이다.

ctrl + c를 활용하여 빠져나올 수 있다.

 

설치 방법

sudo apt install fail2ban

설치와 동시에 시작되어 방어를 해준다.

 

설정 방법

sudo vi /etc/fail2ban/jail.local

이란 파일을 만든 뒤 내용을 작성하여 적용해 줘야한다.

 

형식 

[DEFAULT]

ignoreip=192.168.0.0/24

bantime=100000

maxretry=3

findtime=100000

 

[sshd]

enabled = true

port=22

filter=sshd

logpath=/var/log/auth.log

 

# (선택) 메일 알림 기능

destemail = 사용자 이메일 ex) user@naver.com

sender = fail2ban@my-server.com

mta = sendmail

action = %(action_mwl)s

 

[DEFAULT] : fail2ban에 지정할 모든 서비스에 대한 설정

ignoreip : 설정을 적용하지 않을 IP 리스트. 보통 내부에서의 접속들은 적용하지 않는다.

bantime : 이상 접속을 감지한 경우 접속을 불가능하게 할 초 단위.

maxretry : 허용 접속 가능한 횟수.

findtime : 이상 접속의 횟수를 총괄 낼 초 단위 시간

[sshd] : ssh 접속 서비스에 대한 설정.

enable : 동작 여부를 나타낸다

port : 감지할 포트. 여러 포트를 사용할 경우 ex) port=22,23,24

filter : 이상 동작이라고 판단할 문자열. 정규식 사용 가능.

logpath : 필터링 할 전체 문자열 파일.

 

형식 전체 해석 : logpath에서 filter 항목을 찾아 findtime 시간 동안 maxretry 횟수 만큼 접속을 시도한 IP를 batime 만큼 차단한다.

 

작성 끝난 후 service fail2ban restart

 

현재 차단 현황 보는 방법과 풀어주기

현황보기 : sudo fail2ban-client status sshd

 

차단 풀어주기 : sudo fail2ban-client set sshd unbanip ip주소

+ Recent posts