使用iptables配置网络安全
在这里,你会学习到如何用iptables替代FirewallD配置基础的防火墙配置。iptables是CentOS7以前的系统里面的默认配置工具。一些管理员可能更喜欢使用iptables,或者他们有一些相对老一些的系统在他们的数据中心,他们想在管理的时候越简单越好。
Getting ready
学习本篇,需要有一个联网的CentOS系统。同样,需要管理员权限登录。
How to do it...
The following steps will allow you to replace FirewallD with the iptables service:
接下俩,让我们看看iptables如何替代FirewallD的:
- 关闭FirewallD,并且禁止掉它:
systemctl stop firewalldsystemctl mask firewalld
- 安装iptables服务:
yum install iptables-services
- 启动iptables服务,并且设置成开机自启动:
systemctl start iptablessystemctl enable iptables
- 接下来,我们看看iptbales如何执行一些基础的配置:
- 使用-L参数打印当前配置。加入--line-numbers参数显示每条策略的id:
iptables -L --line-numbers
- 使用下面的命令配置tcp 80端口的流量穿过防火墙:
iptables -A INPUT -i enp0s3 --dport 80 -p tcp -j ACCEPT
- 清除tcp 80策略,执行iptables -L --line-numbers找到我们上一条添加的tcp 80流量的策略ID,使用下面的命令(将##替换成策略ID)进行删除:
iptables -D INPUT ##
- 重新加载iptables服务,让配置生效:
systemctl restart iptables
How it works...
为了使用iptables替代FirewallD来管理我们的网络防火墙,我们首先停止FirewallD服务,然后禁用它;我们不需要U盾讴歌防火墙管理进程,因为会产生冲突。FirewallD背后实际上也是使用iptables进行管理网络安全,所以iptables我们已经默认安装了的,但是iptables服务没有安装。因此,下一步,我们安装iptables服务:
yum install iptables-services
然后,我们看到了如何配置基础的配置,允许或者禁止流量同行。例如,上门我们做了一个配置,允许tcp 80 通过我们的防火墙:
iptables -A INPUT -i enp0s3 --dport 80 -p tcp -j ACCEPT
-A参数指的是我们是添加一个策略到我们的防火墙里面,然后跟着策略的类型。一般策略履行包括INPUT、OUTPUT、FORWARD,分别是允许进入流量,出流量以及路由流量。因此,此处的INPUT代表了允许80端口的入流量。
-i参数指定了网络接口,策略监控会在哪个接口上进行监控。在这个例子中,我们的策略应用在enp0s3接口。因此,--dport指定了流量的目的端口,在这里指的是80端口,-p指定了传输协议,tcp或者udp。
-j参数是最终做的动作,jump to。在iptables情况下,策略串在一起形成逻辑过滤链。想想,iptables使用我们制定的每条策略检查流量;如果第一条策略不匹配,然后检查下一条,然后再下一条,直到找到一条匹配的。当匹配的策略找到后,iptables停职检查并跳转到指定的状态。一般状态包括ACCEPT允许,REJECT代表直接明确拒绝,以及DROP代表默默地丢弃。
我们同样学习到使用-L看看我们一共有多少策略,再加上--line-numbers显示每条策略的编号:
iptables -L --line-numbers
![14eb78b3aaba89679258460328975f35.png](https://img-blog.csdnimg.cn/img_convert/14eb78b3aaba89679258460328975f35.png)
基于配置的策略,iptables允许或者禁止流量同行
知道一个策略的编号可以方便我们删掉它。通过使用-D参数,以及策略的类型(INPUT OUTPUT或者FORWARD),然后是编号,我们可以从策略链中删掉某条策略:
iptables -D INPUT 6
另外, 我们可以分别使用-A和-D来构建我们的策略链:
iptables -D INPUT -i enp0s3 --dport 80 -p tcp -j ACCEPT
See also
Refer to the following resources for more information on working with iptables:
- How to Migrate from FirewallD to iptables on CentOS 7 (https://www.digitalocean.com/community/tutorials/how-to-migrate-from-firewalld-to-iptables-on-centos-7)
- How to List and Delete iptables Firewall Rules (https://www.digitalocean.com/community/tutorials/how-to-list-and-delete-iptables-firewall-rules)
- 25 Most Frequently Used Linux iptables Rules (http://www.thegeekstuff.com/2011/06/iptables-rules-examples)
- Drop versus reject (http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject)
网络