公司通过DDN专线上网有一个公网IP段218.198.88.0/24,有三台服务器对外分别提供WWW、FTP、EMail服务。
WWW服务器:218.198.88.80
FTP服务器:218.198.88.21
EMail服务器:218.198.88.25
员工分配剩余IP地址。以上的IP地址都是Internet上的公有IP,故无需进行IP伪装

          ⒉实现包过滤防火墙增强内部网络安全的linux主机有两块网卡:
            eth0: 218.198.88.254  连接内网    
            eth1: 218.198.32.254  连接外网

          3.拓扑图
   linux包过滤防火墙配置_第1张图片



以下的脚步建立了一个相对完整的防火墙。只对外开放了有限的几个端口,同时提供了本地客户对Internet的无缝访问,并且对syn-flood***、广播风暴***、DOS拒绝服务***、ip碎片***、icmp的ping of death提供了有效的防护手段



#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/tcp_synack_retries
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

WWW=218.198.88.80
FTP=218.198.88.21
EMAIL=218.198.88.25

iptables –F    #清空防火墙规则
iptables -P FORWARD DROP    #设置防火墙FORWARD链的默认策略为DROP,即首先禁止转发任何包,再一步步添加规则来允许符合条件的包通过防火墙

iptables -N DOS     #新增一条名为DOS的新链用来防范DOS***
iptables -A DOS -m limit --limit 100/s -j ACCEPT    #接受最大平均流量为每秒100个包
iptables -A DOS -m limit --limit 300/s -j DROP      #拒绝最大平均流量为每秒300个包
iptables -A DOS -m limit --limit 310/s -j LOG --log-prefix "DOS" --log-level 3  #将最大平均流量为每秒310个包记录日志,日志名为DOS,日志级别为3

iptables -A FORWARD -i eth1 -p tcp --dport 80 -m state --state NEW --syn -d $WWW -j DOS #目的为WWW服务器,目的端口80,状态为NEW,由网卡eth1进入的包交给DOS链处理
iptables -A FORWARD -i eth1 -p tcp --dport 21 -m state --state NEW --syn  -d $FTP -j DOS    #目的为FTP服务器,目的端口21,状态为NEW,由网卡eth1进入的包交给DOS链处理
iptables -A FORWARD -i eth1 -p tcp --dport 25 -m state --state NEW --syn  -d $EMAIL -j DOS  #目的为Email服务器,目的端口25,状态为NEW,由网卡eth1进入的包交给DOS链处理
iptables -A FORWARD -i eth1 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT   #接受状态为ESTABLISHED和RELATED的包
iptables -A FORWARD  -i eth1 -p tcp  --sport 20 -s 0/0   -d 218.198.88.0/24  -j ACCEPT  #允许内网用户采用消极模式访问Internet的FTP服务器
iptables -A FORWARD  -i eth1 -p tcp  ! --syn  -d 218.198.88.0/24  -j ACCEPT     #接受来自Internet的非连接请求的tcp包
iptables -A FORWARD  -i eth1 -p udp   -d 218.198.88.0/24  -j ACCEPT     #接受所有来自Iternet的udp包
iptables -A FORWARD  -f  -m limit --limit 100/s --limit-burst 100 -j ACCEPT #接受所有的ip碎片,但采用limit匹配扩展对其单位时间可以通过的ip碎片数量进行限制,以防止ip碎片***,此例为每秒允许通过的ip碎片100个,触发阈值为100个ip碎片
iptables -A FORWARD  -p icmp -m limit --limit 6/m  --limit-burst 10  -j ACCEPT  #对不管来自哪里的icmp包都进行限制,允许每分钟通过6个包,该限制触发阈值是10个包,可防止ping of death***
iptables -A FORWARD  -i eth0 -s 218.198.88.0/24 -j ACCEPT   #对来自内网的数据包都接受
service iptables save