包过滤防火墙配置举例
1、网络说明:为了将内部网段192.168.0.0/24和internet隔离,在内部网络和internet之间使用包过滤防火墙,防火墙的内网接口是eth1(192.168.0.254)外网接口是(192.168.1.254)。内网有3台服务器对外提供服务 WWW 服务器:IP地址为192.168.0.251 FTP服务器:IP地址为192.168.0.252 E-MAIL服务器为:IP地址为192.168.0.253 |
2、建立包过滤防火墙 // 首先在/etc/rc.d/目录下生成空的脚本文件,并添加可执行权限 # touch /etc/rc.d/filter-firewall # chmod u+x /etc/rc.d/filter-firewall //编辑/etc/rc.d/rc.local文件,使脚本能在系统启动时自动运行 # echo “/etc/rc.d/filter-firewall” >>/etc/rc.d/rc.local 编辑filter-firewall //插入下面的内容 # !/bin/bash # 在屏幕上显示信息 Echo “Starting iptables rules…..” # 开启内核转发功能 Echo “ 1” >/proc/sys/net/ipv4/ip_forward # 定义变量 IPT=/sbin/iptables WWW-SERVER=192.168.0.251 FTP-SERVER=192.168.0.252 EMAIL-SERVER=192.168.0.253 IP_RANGE=192.168.0.0/24 # 刷新所有链的规则 $IPT –F # 首先禁止所有转发的包,然后再进一步设置允许通过的包 # 首先设置防火墙FORWARD的策略为DROP $IPT –P FORWARD DROP # 设置服务器规则 1、# 针对来自internet数据包的过滤规则 # WWW服务端口80采用tcp或udp协议 $IPT –A FORWARD –p tcp –d $WWW-SERVER --dport www –i eth0 –j ACCEPT # ftp服务,命令端口21,数据端口20 $IPT –A FORWARD –p tcp –d $FTP_SERVER --dport ftp –i eth0 –j ACCEPT #email服务 $IPT –A FORWARD –p tcp –d $MAIL-SERVER –dport smtp –i eth0 –j ACCEPT 2、针对intranet的规则 //允许intranet客户采用被动模式访问internet的FTP服务器 $IPT –A FORWARD –p tcp –s 0/0 –sport ftp-data –d $IP_RANGE –i eth0 –j ACCEPT # 接受来自internet的非连接请求tcp 包 $IPT –A FORWARD –p tcp –d $IP_RANGE ! –syn –i eth0 –j ACCEPT # 接收所有UDP包 $IPT –A FORWARD –p udp –d $IP_RANGE –i eth0 –j ACCEPT 3、接收来自整个intranet的数据包过滤 $IPT –A FORWARD –s $IP_RANGE –i eth1 –j ACCEPT # 处理ip碎片 $IPT –A FORWARD –f –m limit --limit 100/s --limit-burst 100 –j ACCEPT # 设置ICMP包过滤 $IPT –A FORWARD –p icmp –m limit --limit 1/s --limit-burst 10 –j ACCEPT
|