扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
用Linux+iptables做防火墙具有很高的灵活性和稳定性(老兄我的防火墙自从做了之后还一直没有重启过),但安装和设定起来比较麻烦,而且容易出错,本文旨在用为公司做防火墙的实例,让大家对Linux+iptables做防火墙的安装和配置有一个大致的了解,希望能起到抛砖引玉的作用。
系统环境与网络规化
先了解一下公司的环境,公司利用2M ADSL专线上网,电信分配公用IP为218.4.62.12/29,网关为218.4.62.13 ,公司有电脑五十多台,使用DHCP,IP是192.168.2.XXX,DHCP Server建在iptables Server上;另公司有一电脑培训中心,使用指定固定IP,IP为192.168.20.XXX,为了更加快速的浏览网页,我们架了一台Squid Server,所有电脑通过Squid Server浏览网页,公司还另有一台WEB Server+Mail Server+Ftp Server。其IP为218.4.62.18。以上电脑和服务器要求全架在防火墙内。我们规化如下:
Iptables Server上有三块网卡,eth0上加有二个IP,218.4.62.14和218.4.62.18。
其中218.4.62.14为共享上网,218.4.62.18为WEB Server专用,Eth1的IP为192……168.2.9;为了使培训中心PC与公司PC之间互不访问,所以直接从Iptables Server接到Switch-B,eth2接至Switch-A,连接培训中心PC和Squid Server, Web Server。
网络规化好了后,就开始装服务器了,Iptables Server 用的系统为Redhat Linux V7.3。在装服务器时要注意选上防火墙的安装包。
IPTABLES基础
Iptables语法:
Iptables [-t TABLE] ACTION [PATTERN] [-j TARGET]
TABLE:
有filter,nat,mangle;若无指定,预设为filter table.
ACTION(对Chains执行的动作):
ACTION 说明
-L Chain 显示Chain中的所有规则
-A Chain 对Chain新增一条规则
-D Chain 删除Chain中的一条规则
-I Chain 在Chain中插入一条规则
-R Chain 替换Chain中的某一条规则
-P Chain 对Chain设定的预设的Policy
-F Chain 清除Chain中的所有规则
-N Chain 自订一个Chain
-X 清除所有的自订Chain
CHAINS:
Iptables 有五条默认的Chains(规则链),如下表:
Chains 发生的时机
PREROUTING 数据包进入本机后,进入Route Table前
INPUT 数据包通过Route Table后,目地为本机
OUTPUT 由本机发出,进入Route Table前
FORWARD 通过Route Table后,目地不是本机时
POSTROUTING 通过Route Table后,送到网卡前
PATTERN(设定条件部份):
参数 内容 说明
-p Protocol 通讯协议,如tcp,udp,icmp,all等……
-s Address 指定的Source Address为Address
-d Address 指定的Destination Address为Address
-I Interface 指定数据包进入的网卡
-o Interface 指定数据包输出的网卡
-m Match 指定高级选项,如mac,state,multiport等……
TARGET(常用的动作):
TARGET 说明
ACCEPT 让这个数据包通过
DROP 丢弃数据包
RETURN 不作对比直接返回
QUEUE 传给User-Space的应用软件处理这个数据包
SNAT nat专用:转译来源地址
DNAT nat专用:转译目地地址
MASQUERADE nat专用:转译来源地址成为NIC的MAC
REDIRECT nat专用:转送到本机的某个PORT
用/etc/rc.d/init.d/iptables save可在/etc/sysconfig/中产生一iptables文件,大家可以看到,它有三个*号开始的行,其每一个以*号开始的行对应一个table,以COMMIT表示此table 的结束。可将要定的规则加入到对应的table中,如下:[root@jiaoyuang init.d]# ./iptables saveSaving current rules to /etc/sysconfig/iptables: |
ifconfig eth0 add 218.4.62.18 netmask 255.255.255.248 modprobe ip_conntrack_ftp modprobe ip_nat_ftp echo “1” > /proc/sys/net/ipv4/ip_forward |
-A PREROUTING -d 218.4.62.18 -j DNAT ——to-destination 192.168.20.254 -A POSTROUTING -s 192.168.2.254 -j SNAT ——to-source 218.4.62.18 |
-A POSTROUTING -s 192.168.0.0/16 -j SNAT ——to-source 218.4.62.14 |
-A INPUT -p icmp -m icmp ——icmp-type 8 -m limit ——limit 6/min ——limit-burst 2 -j ACCEPT -A INPUT -p icmp -m icmp ——icmp-type 8 -j REJECT ——reject-with icmp-port-unreachable |
-A INPUT –i eth0 –m state –state ESTABLISHED, |
-A FORWARD –s 192.168.2.0/29 –p udp –m multiport –port 53 –j ACCEPT -A FORWARD –s 192.168.2.0/29 –p tcp –m multiport –port 3128,110,25 –j ACCEPT -A FORWARD –s 192.168.20.253 –j ACCEPT |
-A FORWARD –m mac -–mac XX:XX:XX:XX:XX:XX –p udp –m multiport –port 53 –j ACCEPT -A FORWARD –m mac -–mac XX:XX:XX:XX:XX:XX –p tcp –m multiport –port 3128,110,25 –j ACCEPT |
subnet 192.168.2.0 netmask 255.255.255.0{ range 192.168.2.30 192.168.2.230; option broadcast-address 192.168.2.255; option routers 192.168.2.9; option domain-name-servers 212.132.16.163; host meeting-room { hardware ethernet 00:50:ba:c8:4b:3a; fixed-address 192.168.2.35; }} |
-A FORWARD –s 192.168.2.35 –m mac -–mac XX:XX:XX:XX:XX:XX –p udp –m multiport –port 53 –j ACCEPT -A FORWARD –s 192.168.2.35 –m mac -–mac XX:XX:XX:XX:XX:XX –p tcp –m multiport –port 3128,110,25 –j |
-A FORWARD –s 192.168.2.35 –m mac -–mac XX:XX:XX:XX:XX:XX –p udp –m multiport |
-A FORWARD –s 192.168.0.0/16 –j DROP |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
去集群 更超群——大容量网络演进之路
2019 IBM 中国论坛
H3C 2019 Navigate 领航者峰会
助推数据中心网络现代化转型 打造灵活可靠基础架构平台