Action disabled: source

Fail2ban

무작위로 로그인을 시도할 경우 해당 IP 를 커널 방화벽에 등록하여 원천적으로 차단해준다. SSH(Secure Shell) 를 공용으로 열어야 하는 경우 보안 강화를 위해 꼭 설치하는 것을 권장함.

설치

  sudo apt install fail2ban

설정

fail2ban 의 기본 설정은 /etc/fail2ban/jail.conf 에 있지만 설정을 수정할 필요가 있을 경우 기본 설정 파일은 놔두고 개인화 설정 파일인 /etc/fail2ban/jail.local 을 사용하는 것이 좋다.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

설정 파일 복사

ignoreip

ignoreip 에 설정된 IP 는 로그인을 실패해도 차단하지 않으며 기본 설정은 localhost 임. IP를 추가할 경우 jail.local 파일 의 [DEFAULT] 항목에 기술해 주면 되며 여러개를 기술할 경우 공백이나 , 로 구분해 주면 되며 아래는 로컬호스트와 192.168.0.x 대역은 차단하지 않는 설정임.

ignoreip = 127.0.0.1/8 192.168.0.0/24

bantime

bantime 은 지정된 조건(아래에서 설명할 findtime, maxretry)에 따라 인증에 실패한 클라이언트를 차단할 시간을 초 단위로 지정하며 기본 설정은 600초(10분)임.

더 길게 해주는 것이 좋다.

findtime/maxretry

findtime 과 maxretry 는 클라이언트를 차단하기 위한 조건을 지정하며 findtime 에 지정한 시간(초 단위)내에 maxretry 에 설정한 횟수만큼 인증을 실패하면 차단하게 된다.

즉 위 설정은 600초(10분) 내에 5번을 인증 실패할 경우 bantime 만큼 차단함.

재시작

 sudo service fail2ban restart

확인

차단된 정보는 다음 명령어로 확인한다.

sudo fail2ban-client status sshd
sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 8
|  |- Total failed:     148
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 4
   |- Total banned:     20
   `- Banned IP list:   190.129.69.146 23.30.117.166 131.0.8.49 119.4.40.105

벌써 차단된 IP 가 있다.

로그

동작 로그는 /var/log/fail2ban.log 에 기록

역링크