Linux debian서버에서 보안 강화를 위해 무작위적인 접속 시도를 막을 수 있는 fail2ban 서비스를 설치하고 실행하고자 했다.
설치
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl restart fail2ban
sudo systemctl stop fail2ban
sudo systemctl disable fail2ban
커스텀 설정
[DEFAULT]
# ignoreip = 127.0.0.1/8 192.168.1.0/24 //관제하지 않을 ip
# findtime 초 동안 maxretry 번 이상 실패 시, bantime 초 동안 차단
findtime = 60
maxretry = 5
bantime = 10800 # -1 설정시 영구 차단
[sshd]
enabled = true
#기본 포트 22
port = 4242 # 다른 포트를 사용하는경우
위와 같은 설정후 실행한후
sudo systemctl status fail2ban
로 확인 했을 때
Active : failed가 뜨는 에러 발생
[2270]: ERROR Failed during configuration: Have not found any log file for sshd jail
[2270]: ERROR Async configuration of server failed
sshd log 파일을 확인할 수 없다는 에러이다.
먼저 sshd log가 어디에 저장되는지 설정 파일에서 확인해보았다
/etc/ssh/sshd_config 파일을 확인
아마 기본적으로 SyslogFacility AUTH가 주석 처리 되어있을 것이다.
이럴 경우 /var/log/auth.log에 로그가 기록되게 된다.
하지만 지금 /var/log/auth.log파일이 없어서 오류가 뜨는 것이였다.
단순히 해당 파일을 만들어 주면 문제가 해결된다.
fail2ban의 log파일과 sshd log파일을 헷갈려서 굉장히 많은 시간을 소비했다..😊
sshd log를 기록할 수 있는 auth.log파일을 생성해준다.
# 파일 생성
$ sudo touch /var/log/auth.log
# 재시작
$ sudo systemctl restart fail2ban.service
# 활성화
$ sudo systemctl enable fail2ban.service
# 상태확인
$ sudo systemctl status fail2ban.service
Active된 것을 확인 할 수 있었다.