Need help? Chat now!

Hostwinds 教程

寻找结果为:


目录


什么是iptables?
如何安装IPTables?
如何使用IPTables?
按规范列出规则
按特定链列出规则
将规则列出为表格
使用规范删除规则
冲洗规则
封锁IP位址
允许所有传入的SSH连接
允许来自显式IP的所有传入SSH连接
允许传出SSH连接
允许所有传入的HTTP和HTTPS连接
阻止传出SMTP
允许传入的SMTP连接

管理IPTable规则

标签: Firewall,  Linux,  CentOS Web Panel 

什么是iptables?
如何安装IPTables?
如何使用IPTables?
按规范列出规则
按特定链列出规则
将规则列出为表格
使用规范删除规则
冲洗规则
封锁IP位址
允许所有传入的SSH连接
允许来自显式IP的所有传入SSH连接
允许传出SSH连接
允许所有传入的HTTP和HTTPS连接
阻止传出SMTP
允许传入的SMTP连接

什么是iptables?

iptables是一个非常灵活的基于命令行的防火墙实用程序,专为Linux Distras而构建。iptables使用策略链来允许或阻止流量。在您的服务器上建立连接时,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?

本节将介绍一些基本的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

封锁IP位址

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连接

要允许默认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

允许来自显式IP的所有传入SSH连接

您还可以限制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连接。您可以在默认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

允许所有传入的HTTP和HTTPS连接

缺省情况下,端口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

阻止传出SMTP

iptables允许您阻止特定端口,例如默认的SMTP端口(25)。 例如,您可能不想在您的服务器上允许传出邮件。 要使用iptablay停止此操作,您可以发出以下命令:

iptables -A OUTPUT -p tcp --dport 25 -j REJECT

这将配置iptables以拒绝端口25上的所有传出流量。如果您想拒绝不同端口上的流量,则可以将"25"替换为相关端口号。

允许传入的SMTP连接

您可以通过运行以下命令来允许服务器响应端口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