如何自動永久禁止 IP 地址?
目前我一直在執行 Asterisk 的新 Debian 伺服器上使用 iptables。
每天我都在檢查 auth.log 的 IP 地址並手動執行
iptables -A INPUT -s IPA.DRE.SS.0/24 -j DROP
我最初只使用 IP 地址,但許多點擊來自類似的 IP 地址,因此 /24 效果更好,我使用 /16 幾次。
我已經有數百個 iptables 條目,這已經失控了!我知道必須有一種更簡單的方法來做到這一點。
向我推薦了fail2ban,但似乎它只是在嘗試一定次數後才暫時阻止IP。
我看到的兩個主要入侵嘗試是使用虛假使用者名和隨機埠。
如果嘗試使用我目前未使用的任何使用者名登錄,是否可以自動永久阻止 IP 地址?與未使用的埠相同嗎?
我也看到很多這樣的:
Did not receive identification string from (malicious IP) port 48334
我也想禁止這些IP。
我不會自動阻止不正確的登錄嘗試,就好像我用粗手指可能會鎖定我的密碼一樣。但也許在 3 次嘗試後永久禁止 IP 就足夠了。
我可以用 iptables 做到這一點嗎?我還沒有找到任何關於像這樣工作的“永久禁令”的東西,似乎它現在更有效。
我或多或少喜歡手動完成我一直在做的事情;在一次錯誤的使用者名登錄、一次錯誤的埠連接或 3 次錯誤的登錄嘗試(使用正確的使用者名)後永久阻止 IP 範圍。我希望這可以防止 auth.log 收到垃圾郵件。
fail2ban
可以通過設置為永久禁止bantine
配置-1
在
jail.conf
bantime = -1
這些將在重新啟動時失去,但這不一定是一件壞事,因為在殭屍網路中的 pwned 家用機器上會有如此多的嘗試是短暫的……
如果您想要持久性,那麼https://arno0x0x.wordpress.com/2015/12/30/fail2ban-permanent-persistent-bans/可能會提供一些指導。
本質上是修改
fail2ban
配置以創建所有被禁止 IP 的持久配置文件,並讓 iptables 在重新啟動時載入此列表…因此,如果您檢查您的預設設置
jail.conf
,您可能會發現預設操作是iptables-multiport
. 這個對應配置文件/etc/fail2ban/ction.d/iptables-multiport.conf
我們可以添加以下條目:
[Definition] # Option: actionstart # Notes.: command executed once at the start of Fail2Ban. # Values: CMD # actionstart = iptables -N fail2ban-<name> iptables -A fail2ban-<name> -j RETURN iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name> cat /etc/fail2ban/persistent.bans | awk '/^fail2ban-<name>/ {print $2}' \ | while read IP; do iptables -I fail2ban-<name> 1 -s $IP -j <blocktype>; done # Option: actionstop # Notes.: command executed once at the end of Fail2Ban # Values: CMD # actionstop = iptables -D <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name> iptables -F fail2ban-<name> iptables -X fail2ban-<name> # Option: actioncheck # Notes.: command executed once before each actionban command # Values: CMD # actioncheck = iptables -n -L <chain> | grep -q 'fail2ban-<name>[ \t]' # Option: actionban # Notes.: command executed when banning an IP. Take care that the # command is executed with Fail2Ban user rights. # Tags: See jail.conf(5) man page # Values: CMD # actionban = iptables -I fail2ban-<name> 1 -s <ip> -j <blocktype> echo "fail2ban-<name> <ip>" >> /etc/fail2ban/persistent.bans
現在,當
fail2ban
標記一個條目時,它將添加一行/etc/fail2ban/persistent.bans
(通過actionban
配置)。fail2ban
啟動時,它呼叫讀取actionstart
此文件並建構iptables
必要的規則。當然,
fail2ban
更改任何配置文件後都需要重新啟動。這個食譜的所有功勞歸功於“arno0x0x”和他的wordpress網站。