을 사용하려고합니다 fail2ban
.
감옥의 구성은 다음과 같습니다 /etc/fail2ban/jail.conf
.
[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
enabled = true
port = ssh
maxretry = 3
logpath = %(sshd_log)s
backend = %(sshd_backend)s
banaction = iptables-multiport[name=sshd, port=ssh, protocol=tcp]
내 서버에서 3번의 SSH 로그인 시도 실패를 시도하면 내 IP(익명)가 블랙리스트에 등록된 것을 볼 수 있습니다.
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 3
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 1
`- Banned IP list: X.X.X.X
iptables
구성된 규칙은 다음과 같습니다 fail2ban
.
iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N f2b-sshd
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A f2b-sshd -s X.X.X.X/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -j RETURN
다시 로그인을 시도하면 다음 메시지가 나타납니다.ssh: connect to host <hostname_anonymised> port 22: Connection refused
icmp port unreachable
그런데 문제는 위와 같은 메시지를 받고 싶지 않다는 것입니다 . 이는 보안 문제입니다.
나는 (icmp REJECT를 사용하는 대신) Fail2ban이 자동으로 DROP되기를 원합니다. 내가 원하는 것을 지정하기 위해 감옥의 구성을 변경하려고 시도했지만 대신 banaction
Jail2ban을 알려주는 올바른 매개변수를 찾을 수 없습니다 .DROP silently
REJECT with icmp
어떻게 구성하나요 fail2ban
?
답변1
모든 iptables
작업이 가능합니다blocktype
범위, 재정의될 수 있습니다:
- 지구 내
action.d/iptables.conf
:
[Definition]
blocktype = DROP
(최신 Fail2ban 버전의 기본 업스트림 구성과 마찬가지로 이전 및 유지 관리 릴리스에는 금지로 사용하는 작업에 대한 포함 내용이 다를 수 있습니다)
- 또는
jail.local
기본 또는 감옥 섹션에서:
[DEFAULT]
banaction = iptables-multiport[blocktype=DROP]
banaction_allports = iptables-allports[blocktype=DROP]
그 후에는 Fail2ban을 다시 시작하는 것을 잊지 마십시오.
또한 참고하시기 바랍니다https://github.com/fail2ban/fail2ban/issues/2217#issuecomment-423248516REJECT 및 DROP에 대한 추가 정보.
답변2
ICMP 메시지 거부(REJECT)를 사용하는 대신 자동 차단(DROP)을 수행하도록 fall2ban을 구성하려면 다음 단계를 수행할 수 있습니다.
/etc/fail2ban/jail.local
텍스트 편집기에서 파일을 엽니다.
원하는 차단 작업을 지정하려면 [sshd] 섹션에서 다음 줄을 추가하거나 수정하세요.
banaction = iptables-multiport[name=sshd, port=ssh, protocol=tcp, action=drop]
이 구성은 fail2ban
SSH 연결을 차단할 때 기본 거부 작업 대신 삭제 작업이 사용됨을 나타냅니다.
jail.local 파일에 변경 사항을 저장합니다.
새 구성을 적용하려면 pass2ban 서비스를 다시 시작하세요.
sudo service fail2ban restart
이 구성을 사용하면 fall2ban은 SSH 감옥에서 IP 주소를 차단할 때 ICMP 메시지 거부 작업 대신 삭제 작업을 사용합니다.
이는 ICMP 거부 메시지를 보내지 않고 자동 차단을 제공합니다.