丢弃访问
拒绝访问
允许或阻止特定的连接在配置完基本的规则链之后,你就可以配置iptables来允许或者阻止特定的IP地址或者端口。 注意:在这些例子中,我们使用iptables -A将额外的规则添加到现存的链中。Iptables在执行匹配的时候,会从列表的顶端开始搜索。你可以使用iptables -I [chain] [number]将新的规则插入到列表的指定位置。 来自同一IP地址的连接 下面这个例子展示了如何阻止来自IP地址为10.10.10.10的所有连接。 | iptables -A INPUT -s 10.10.10.10 -j DROP |
来自一组IP地址的连接 下面这个例子展示了如何阻止来自子网10.10.10.0/24内的任意IP地址的连接。你可以使用子网掩码或者标准的/符号来标示一个子网: | iptables -A INPUT -s 10.10.10.0/24 -j DROP |
或 | iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP |
特定端口的连接 这个例子展示了如何阻止来自10.10.10.10的SSH连接。 | iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP |
你可以将“ssh”替换成其它任何协议或者端口号。上述命令中的-p tcp告诉iptables连接使用的是何种协议。 下面这个例子展示了如何阻止来自任意IP地址的SSH连接。 | iptables -A INPUT -p tcp --dport ssh -j DROP |
连接状态我们之前提到过,许多协议均需要双向通信。例如,如果你打算允许SSH连接,你必须同时配置输入和输出链。但是,如果你只想允许来自外部的SSH请求,那该怎么做? 下面这个例子展示了如何允许源IP地址为10.10.10.10同时阻止目的地址为10.10.10.10的SSH连接: | iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT |
保存更改上述方法对iptables规则作出的改变是临时的。如果你想永久保存这些更改,你需要运行额外的命令(不同Linux发行版下的保存命令也不相同): Ubuntu: Red Hat / CentOS: | /sbin/service iptables save |
或者 | /etc/init.d/iptables save |
其它命令列出iptables的当前配置: 使用-v选项将显示数据包和字节信息;使用-n选项将以数字形式列出信息,即不将IP地址解析为域名。 换句话讲,主机名,协议和网络都以数字的形式列出。 清除当前所有的配置规则:
原文链接: Korbin Brown 翻译: 极客范 - 小道空空
译文链接: http://www.geekfan.net/6921/ |