4.防火墙脚本设计
问题
本案例要求熟悉防火墙脚本的典型构成,完成以下任务:
1)针对Linux网关编写脚本,提供SNAT共享上网策略、DNAT发布Web、FTP服务的策略
2)编写网络型、主机型防护规则
3)使用IP地址黑/白名单
方案
Linux防火墙脚本的典型构成:
1)定义基本环境变量
2)必要的内核模块和 /proc 参数调整
3)具体的防火墙策略设计,包括各链的默认规则,按表、链组织的规则
沿用练习三,采用三台RHEL6虚拟机svr5、gw1、pc120,如图-4所示。其中,虚拟机svr5作为局域网络的Web服务器,接入NAT网络(virbr0);虚拟机pc120作为Internet的测试机,接入隔离网络(virbr1);虚拟机gw1作为网关/路由器,配置eth0、eth1两块网卡,分别接入两个网络virbr0、virbr1。
图-4
编写网络型脚本时,在网关gw1上来做;
编写主机型脚本时,在内网机svr5上来做。
步骤
实现此案例需要按照如下步骤进行。
步骤一:编写典型的Linux网关防火墙脚本
1)编写脚本文件/opt/ipfw-gw.sh
[root@gw1 ~]# vim /opt/ipfw-gw.sh
#!/bin/bash
2015.05.20 TsengYia.
1. 定义方便移植的环境变量
INET_IF=“eth1”
INET_IP=“174.16.16.1”
LAN_NET=“192.168.4.0/24”
LAN_WWW_IP=“192.168.4.5”
IPT="/sbin/iptables"
2. 内核参数、相关模块调整
/sbin/modprobe nf_nat_ftp
/sbin/sysctl -w net.ipv4.ip_forward=1
/sbin/sysctl -w net.ipv4.ip_default_ttl=128
/sbin/sysctl -w net.ipv4.icmp_echo_ignore_all=1
/sbin/sysctl -w net.ipv4.icmp_echo_ignore_broadcasts
/sbin/sysctl -w net.ipv4.tcp_syncookies=1
/sbin/sysctl -w net.ipv4.tcp_syn_retries=3
/sbin/sysctl -w net.ipv4.tcp_synack_retries&