Linux防火墙之iptables建立规则和链

在RHEL 7.0中安装启动iptables:

yum install iptables-services                    #安装iptables
systemctl mask firewalld.service              #屏蔽firewalld服务
systemctl enable iptables.service            #设置开机启动
systemctl enable ip6tables.service          #设置开机启动
systemctl stop firewalld.service               #停止firewalld服务
systemctl start iptables.service                #开启iptables服务
systemctl start ip6tables.service              #开启ip6tables服务

一般情况下,iptables已经包含在Linux发行版中,可以运行“iptables --version”命令来查看系统是否安装了iptables。在RHEL 7.0中,iptables版本是iptables-1.4.21-13。如果系统确实没有安装iptables,那么可以从地址:http://www.netfilter.org/ 下载。

1. 查看规则集

虽然简单介绍了iptables的用法,但现实中可能需要知道更完整的信息。可以运行:

iptables --help

来查看快速帮助。要查看系统中现有的iptables规划集,可以执行如下命令:

sudo iptables --list

2. 增加规则

如例,示例中的规则将会阻止来自某一特定IP地址范围内的数据包,因为该IP地址范围被管理员怀疑有大量恶意的攻击者在活动。

iptables -t filter -A INPUT -s xxx.xxx.xxx.0/24 -j DROP

也可以很容易地阻止所有流向攻击者IP地址的数据包,该命令也只是稍有不同:

iptables -t filter -A OUTPUT -d xxx.xxx.xxx.0/24 -j DROP

3. 删除规则

网络上的恶意攻击者时刻在变化,因此也要不断地改变IP地址。假设一个网络攻击者转移到了新的IP地址,而其老的IP地址被分配给了一些清白的用户,那么这时这些用户的数据包将无法通过网络。在这种情况下,可以使用带 -D 选项的命令来删除现有的规则:

iptables -t filter -D OUTPUT -d xxx.xxx.xxx.0/24 -j DROP

4. 默认策略

创建一个具有很好灵活性并可以抵御各种意外事件的规则需要花费大量的时间。下面为每个链设置默认的规则。示例:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

选项 -P 用于设置链的策略,只有3个内建的链才有策略。示例中,这些策略可以使信息毫无限制地流出,但不允许信息流入。如果需要接收外部信息,则可使用以下命令,示例:

iptables -t filter -A INPUT -s 123.456.789.0/24 -j ACCEPT


这里只是简单的说说,难的我也没有搞过,做为开发人员,了解一下就好了!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。