Fail2Ban을 설정해 보겠습니다. 이 서비스를 사용하면 서비스의 폭주 및 비밀번호 추측으로부터 서버를 보호할 수 있습니다. 수천 개의 타사 서비스가 매일 서버에 액세스하며 그 중 일부는 악성입니다. Fail2Ban을 사용하면 인증 시도가 여러 번 실패한 후 IP 주소를 차단합니다.
이 가이드에서는 메일 서버 자체를 이미 구성했으며 비밀번호 추측 및 기타 원치 않는 네트워크 활동에 대한 보호 기능을 설치해야 한다고 가정합니다. 메일 서버 설정에 대한 자세한 내용은 여기에서 확인할 수 있습니다:
사전 구성된 운영 체제가 포함된 VPS를 주문하고 VPS 서버 가격으로 기성 기업 메일 서버를 얻을 수도 있습니다.
1. Fail2Ban 서비스 설치
apt install fail2ban
설정을 수정해보자
vi /etc/fail2ban/jail.d/defaults-debian.conf
[sshd]
enabled = true
[postfix]
enabled = true filter = postfix port = smtp,465,submission,imap,imaps,pop3,pop3s action = iptables[name=Postfix, port=smtp, protocol=tcp] logpath = /var/log/mail.log bantime = 120m maxretry = 3 findtime = 60m
이 구성에서는 인증 시도가 여러 번 실패할 경우 로그 파일을 처리하고 IP 주소를 차단하는 ssh 및 postfix 서비스에 대한 보호를 활성화했습니다.
일치하는 항목이 있는지 확인하려면 다음 명령을 사용하십시오
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf
우리는 기본적으로 기성 필터를 사용했고 우리의 경우에는 즉시 작동했습니다.
2. 서비스 시작
systemctl enable --now fail2ban
서비스를 시작하고 자동 시작에 추가했습니다.
이제 로그를 확인할 수 있습니다:
more /var/log/fail2ban.log
3. 서비스 관리
상태와 최신 활동을 보려면 다음 명령을 사용하십시오
fail2ban-client status - 모든 감옥과 그 상태가 표시됩니다.
fail2ban-client status postfix - 현재 차단된 IP 주소를 포함하여 감옥 활동이 표시됩니다.
IP 주소 차단을 해제하려면 다음 명령을 사용하십시오
fail2ban-client set postfix unbanip xxx.xxx.xxx.xxx
여기서: postfix는 감옥 이름이고 xxx.xxx.xxx.xxx는 목록의 IP 주소입니다 #fail2ban-client status postfix
4. Rouncube 인증을 위한 감옥 추가
파일에 추가
vi /etc/fail2ban/jail.d/defaults-debian.conf
[roundcube-auth]
enabled = true
filter = roundcube-authport = http,https
action = iptables[name=Roundcube-auth, port=http, protocol=tcp]logpath = /usr/share/nginx/html/webmail/logs/errors.log
bantime = 120mmaxretry = 3
findtime = 60m
웹메일 로그인 시도가 3회 실패할 경우 2시간 동안 접속을 차단합니다.
서비스를 다시 시작하자:
service fail2ban restart
필터 설정이 완료되었습니다.