Ubuntu

如何在 ubuntu 上阻止 IP 地址?

  • May 17, 2015

我已將 Ubuntu 機器配置為路由器。NAT配置步驟 如下:

       #iptables -F
       #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
       #iptables-save > /etc/network/iptables

然後將此文件位置保存在 rc.local

#vi /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.  
#  
/sbin/iptables-restore < /etc/network/iptables 
# In order to enable or disable this script just change the execution  
# bits.  
#  
# By default this script does nothing.
exit 0

#reboot

它有效,現在我想阻止一個 IP 地址。為此,我執行了以下命令:

#iptables -A INPUT -s   69.171.229.11 -j DROP    
#iptables-save >  /etc/network/iptables    
#reboot

但它不起作用。

vi /etc/network/iptables現在看起來像這樣:

# Generated by iptables-save v1.4.4 on Tue Feb 14 11:21:16 2012
*nat
:PREROUTING ACCEPT [870:97719]
:POSTROUTING ACCEPT [283:23151]
:OUTPUT ACCEPT [461:28753]
-A POSTROUTING -o eth0 -j MASQUERADE   COMMIT
# Completed on Tue Feb 14 11:21:16 2012
# Generated by iptables-save v1.4.4 on Tue Feb 14 11:21:16 2012
*filter
:INPUT ACCEPT [4914:3254723]
:FORWARD ACCEPT [2382:1222521]
:OUTPUT ACCEPT [4010:410041]
-A INPUT -s 98.137.149.56/32 -j DROP 
COMMIT
# Completed on Tue Feb 14 11:21:16 2012

我缺少什麼來阻止 IP 地址?

如果您想阻止 IP 使用 MASQUERADE 規則,您需要將該規則放入FORWARD鏈中,而不是INPUT鏈中。

iptables -I FORWARD -s 69.171.229.11 -j DROP

我認為順序不正確。

您對 append 所做的是將其放在鏈的底部。IPtables 在第一次匹配後停止。因此,該規則可能在它達到阻止規則之前被匹配。確保阻止規則位於頂部。您可以使用 -I 選項將其插入鏈中的特定位置。

引用自:https://serverfault.com/questions/359877