前言

一般情况下iptables只作为主机防火墙使用,但是在特殊情况下也可以使用iptables对整个网络进行流量控制和网络安全防护等功能,在本文中,我们使用iptables对三台服务器的安全进行安全防护

网络防火墙的优势

网络防火墙相比于主机防火墙而言,范围更大,不用对网络内的各主机各自设置防火墙规则就可以保证其安全性,但是必须在网络的进出口才能对出入数据包进行限制

实验拓扑图

下载.png

实验环境


主机IP地址功用
fire.anyisalin.com192.168.2.2,192.168.1.112控制整个网段的数据报文的流入流出及过滤
ns.anyisalin.com192.168.2.3提供DNS服务
ftp.anyisalin.com192.168.2.5提供FTP服务
www.anyisalin.com192.168.2.4提供web服务


除了fire主机,其他主机皆关闭SElinuxiptables

实验步骤

FTP,WEB,DNS服务器安装配置这里就不写了,有兴趣的看我以前的博客AnyISalIn的文章

防火墙未设置前对所有服务器的测试

以下操作在192.168.1.103进行

dns服务能够正常使用 

blob.png

ftp服务能够正常使用 
blob.png


web服务能够正常使用 

blob.png

针对不同服务器进行”非法”访问

我们对dns,web.ftp服务器分别进行ping,ssh等操作 

blob.png

blob.png

定义网络防火墙规则

大家应该够知道,服务器开放的端口越多就越危险,所以我们在网络防火墙对其进行规则定义

[root@fire ~]# iptables -P FORWARD DROP  #设置FORWARD链默认策略为DROP
[root@fire ~]# modprobe nf_conntrack_ftp  #装载追踪FTP被动连接模块
[root@fire ~]# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@fire ~]# iptables -A FORWARD -d 192.168.2.0/24 -p tcp -m multiport --dports 21,80 -m state --state NEW -j ACCEPT
[root@fire ~]# iptables -A FORWARD -d 192.168.2.3 -p udp --dport 53 -m state --state NEW -j ACCEPT

解释一下上面几条规则的作用 
第一条规则将
FORWARD链的默认策略设置为DROP,那么默认所有的数据包将不能通过FORWARD的转发 
第二条规则状态
nf_conntrack_ftp模块,使得iptables能够追踪FTP链接的状态,使数据连接得以建立 
第三条意思是状态使
ESTABLISHEDRELATED允许通过,指的是已建立链接或者追踪链接建立能够通过 
第四条意思是允许访问目标地址为
192.168.2.0网段,端口为21/TCP80/TCP状态为NEW能够通过,指的是新的链接能通过 
第五条是为
DNS查询而添加的规则,指的是允许访问目标地址为192.168.2.3的地址且目标端口为53/UDPNEW`状态能够通过,同指新的链接能够通过

再次针对不同服务器进行”非法”访问

大家看!现在已经不能对服务器进行非法访问了 

blob.png

测试服务器是否可访问

ftp服务能正常访问 

blob.png 

web服务能正常访问 
blob.png 

dns服务能正常访问 

blob.png

总结

本文只做了一些简单的限制,不过足以限制用户只能访问”该访问”的服务,这当然不能运用于生产环境中,毕竟设计简陋,大家笑笑就好 
作者:AnyISalIn 
感谢:MageEdu