ufw 방화벽을 활성화하고 최소한의 포트만 허용sudo ufw default deny incoming로 인바운드 트래픽 차단/etc/ssh/sshd_config에서 PasswordAuthentication no, PermitRootLogin no 설정/var/log/auth.log/var/log/wtmp(성공) → who, last로 확인/var/log/btmp(실패) → lastb로 확인lastb로 로그인 기록을 확인해보면, 정말 수많은 알 수 없는 IP가 접속하려고 시도한 흔적이 보인다...ps aux, top으로 수상한 프로세스 확인ss -tulpn로 설정하지 않은 포트가 열려있는지 확인/etc/passwd, /etc/sudoers 확인crontab -l으로 확인https://github.com/fail2ban/fail2ban
*.conf 파일은 수정하지 않음*.local 파일을 새로 생성해 필요한 설정 추가 및 재정의https://github.com/fail2ban/fail2ban/blob/master/config/jail.conf
| 변수명 | 변수 의미 |
|---|---|
| bantime | 차단된 IP가 얼마나 차단될지 지정 |
| findtime | 실패 시도 감시 기간 |
| maxretry | 감시 기간 동안 허용되는 최대 실패 횟수 |
| ignoreip | fail2ban이 차단하지 않을 신뢰 IP 목록 |
| enabled | 해당 jail의 활성화 여부 |
| port | 보호 대상 서비스의 포트 또는 서비스명 |
| filter | 적용할 로그 분석 패턴(주로 jail 명칭과 동일) |
| logpath | 감시할 로그 파일 경로 |
sshd는 기본적으로 활성화되어있음/etc/fail2ban/jail.d/defaults-debian.conf에서 확인 가능[DEFAULT]
bantime = 1d
bantime.increment = true
findtime = 5m
[postfix]
enabled = true
[sshd]
bantime = 31d
maxretry = 2
[dovecot]
enabled = true
[recidive]
enabled = true
sudo fail2ban-server reload로 설정을 적용Status
|- Number of jail: 4
`- Jail list: dovecot, postfix, recidive, sshd
sudo fail2ban-client status를 통해 설정이 제대로 적용되었는지 확인Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 2
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
sudo fail2ban-client status sshd와 같이 입력해 개별 필터의 상태만 따로 상세하게 확인 가능