Hostwinds 教程
寻找结果为:
目录
标签: CentOS Web Panel, Firewall, Linux
iptables是一个非常灵活的基于命令行的防火墙实用程序,专为Linux Distras而构建。iptables使用策略链来允许或阻止流量。在您的服务器上建立连接时,IPTables将在其列表中标识规则以确定需要采取的操作。如果连接没有规则,则它将诉诸为系统定义的默认操作。
通常,大多数Linux系统默认安装IPTables。 要更新或安装它,您可以通过发出以下命令来检索IPTables包:
注意: IPTables应该预先安装在CentOS 6上。
的Ubuntu
apt-get install iptables-persistent
CentOS的7
systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services
systemctl enable iptables
systemctl start iptables
现在将安装在系统上。让我们来看看如何使用iptables。
本节将介绍一些基本的IPTables特定命令和用途,例如列出当前的规则集并阻止IP地址建立连接。
要按规范列出当前活动的规则集,您会发出以下命令:
iptables -S
要显示当前应用于特定链的规则,可以使用以下命令。 此示例将显示UDP链的所有规则规范:
iptables -S UDP
通过使用以下调用-L选项的命令,可以列出表视图中所有当前的IPTables规则。 这将列出按链条类型排序的所有当前规则集。
iptables -L
您可以使用-d选项删除iptables中的规则。您可以以几种不同方式删除规则集。我们将通过规范覆盖删除规则。例如,如果要删除允许端口443上所有传入流量的规则,则使用以下命令:
iptables -D INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
使用IPTables,您可以刷新规则。 这可以通过冲洗一条链或冲洗所有链条来完成。 我们将在下面介绍这两种方法。
要刷新单链,可以使用-f选项,或等效的-flush选项,与链条的名称相结合,您可以刷新。例如,您可以通过使用以下命令删除输入链中的所有规则:
iptables -F INPUT
要刷新所有链,您再次使用-f或等效的-flush选项而无需任何其他参数。这将有效地删除当前在服务器上处于活动状态的所有防火墙规则。该命令如下:
iptables -F
iptables提供从特定IP地址阻止网络连接的能力。例如,要阻止10.10.10.10的所有传入连接,您将运行以下命令:
iptables -A INPUT -s 10.10.10.10 -j DROP
您还可以拒绝连接,这将响应"连接拒绝"错误。用拒绝替换滴。
iptables -A INPUT -s 10.10.10.10 -j REJECT
您还可以使用-i选项阻止从特定IP到特定IP的连接,例如eth1。
iptables -A INPUT -i eth1 -s 10.10.10.10 -j DROP
要允许默认SSH端口(22)上的所有传入SSH连接,请使用以下命令:
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
您还可以限制SSH连接只能从特定IP地址或子网允许。例如,如果您只想允许IP地址10.10.10.10通过SSH连接到服务器,则会使用以下命令:
iptables -A INPUT -p tcp -s 10.10.10.10 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
通过将子网添加到命令(例如,/ 27,如以下命令所示),也可以为整个子网完成此操作:
iptables -A INPUT -p tcp -s 10.10.10.10/27 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
您的防火墙可能没有输出策略设置为接受。如果是这种情况,如果您希望直接从服务器连接到外部服务器,则可能需要允许传出的SSH连接。您可以在默认SSH端口(22)上运行以下命令以在此实现此操作。如果您正在使用不同的SSH端口,请使用您使用的端口号更换以下示例中的"22":
iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
缺省情况下,端口80通常送到HTTP流量,并且通常在端口443上送出HTTPS流量。您可以使用以下命令允许到Web服务器到Web服务器两种类型的连接。
注意:如果您只想允许一个而不是另一个,请从与您想要允许的协议相关的命令中删除端口号。
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables允许您阻止特定端口,例如默认的SMTP端口(25)。 例如,您可能不想在您的服务器上允许传出邮件。 要使用iptablay停止此操作,您可以发出以下命令:
iptables -A OUTPUT -p tcp --dport 25 -j REJECT
这将配置iptables以拒绝端口25上的所有传出流量。如果您想拒绝不同端口上的流量,则可以将"25"替换为相关端口号。
您可以通过运行以下命令来允许服务器响应端口25上的所有SMTP连接:
iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCEPT
撰写者 Hostwinds Team / 十二月 13, 2016