Iptables番外篇-构建网络防火墙
前言
成都创新互联服务项目包括新郑网站建设、新郑网站制作、新郑网页制作以及新郑网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,新郑网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到新郑省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
本文旨在复习iptables FORWARD表的相关知识,构建简易实验环境,实现通过iptables构建网络防火墙。
iptables实现的防火墙功能:
主机防火墙:服务范围为当前主机
网络防火墙:服务范围为局域网络
1. 实验拓扑
2. 主机规划
主机名 | 角色 | 网卡 | IP地址 |
node1 | 内网主机 | vmnet2:eno16777736 | 192.168.11.2/24 |
node2 | 网关主机 | vmnet2:eno16777736 桥接:eno33554984 | 192.168.11.1/24 172.16.52.52/16 |
node3 | 外网主机 | 桥接:eno16777736 | 172.16.52.53/16 |
说明:
node1 添加一条默认网关指向192.168.11.1
route add default gw 192.168.11.1
node2 要开启ip_forward功能
sysctl -w net.ipv4.ip_forward=1
内网要与外网通讯node3还要添加一条指向192.168.11.0/24网络路由
route add -net 192.168.11.0/24 gw 172.16.52.52
3.测试实验环境
node1:开启httpd服务,测试node3能否访问
[root@node3 ~]# ping 192.168.11.2 PING 192.168.11.2 (192.168.11.2) 56(84) bytes ofdata. 64 bytes from 192.168.11.2: icmp_seq=1 ttl=63 time=0.467 ms 64 bytes from 192.168.11.2: icmp_seq=2 ttl=63 time=0.502 ms
[root@node3 ~]# curl 192.168.11.2node1 apache sit
4. 构建iptables网络防火墙
4.1 拒绝所有请求
[root@node2 ~]# iptables -A FORWARD -j DROP4.2 开放所有ESTABLISED,RELATED的请求
[root@node2 ~]# iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT4.3 开放从内网到外网所有为NEW的请求
[root@node2 ~]# iptables -I FORWARD 2 -s192.168.11.0/24 -m state --state NEW -j ACCEPT[root@node2 ~]# iptables -vnL Chain INPUT (policy ACCEPT 113 packets, 9316 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 37 3108 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 3 236 ACCEPT all -- * * 192.168.11.0/24 0.0.0.0/0 state NEW 696 58080 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 44 packets, 4040 bytes) pkts bytes target prot opt in out source destination现在内网是可以访问外网的,但是外网进来的所有请求都被拒绝
4.4 开放从外到内的21端口,22端口,23端口,80端口,状态为NEW的请求
[root@node2 ~]# iptables -I FORWARD 3 -d 192.168.11.2 -p tcp -m multiport --dports 21:23,80 -m state --state NEW -j ACCEPTnode3:ftp测试访问:
[root@node3 ~]# lftp 192.168.11.2 lftp 192.168.11.2:~> ls `ls' at 0 [Making data connection...]RELATED状态已经追踪,21号端口已经开放,为什么还是不能访问?因为nf_conntrack_ftp 模块没有加载
加载nf_conntrack_ftp 模块:
[root@node2 ~]# modprobe nf_conntrack_ftp[root@node3 ~]# lftp 192.168.11.2 lftp 192.168.11.2:~> ls drwxr-xr-x 2 0 0 6 Nov 20 2015 pub
总结:网关防火墙iptables策略做的是白名单,默认拒绝所有,只有开放的服务,外网才能访问。内网访问外网没有特殊情况一般为允许。
文章名称:Iptables番外篇-构建网络防火墙
地址分享:http://ybzwz.com/article/pohgds.html