第十二章 Linux防火墙(2)
一、SNAT策略及应用
1、SNAT策略概述
通过地址转换实现内网IP访问外网IP,类似于路由器的多路复用功能。
2、SNAT策略应用
(1)开启网关的路由转发功能
①修改/etc/sysctl.conf文件net.ipv4.ip_forward=1
②读取配置:sysctl -p
(2)设置SNAT策略
①iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.168.11.158
②iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o-eth0 -j MASQUERADE:动态地址转换
(3)检查FORWARD中的filter是否允许相关数据及端口通过
①iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
②iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
二、DNAT策略及应用
1、DNAT策略概述
通过地址转换实现内网端口映射
2、DNAT策略应用
(1)开启网关的路由转发功能
(2)设置DNAT策略
①iptables -t nat -A PREROUTING -d 192.168.11.158 -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.157:80
(3)检查FROWARD的filter是否允许相关数据通过
三、规则的导出导入
1、iptables-save:打印当前iptables规则
(1)iptables-save > /opt/iptables.txt
2、iptables-restore:加载文件中的iptables规则
(1)iptables-restore < /opt/iptables.txt
3、/etc/sysconfig/iptables:记录默认iptables规则(可修改默认规则)
(1)service iptables save:保存当前规则到默认配置
四、防火墙脚本
1、定义基本变量:内外网接口及IP、内网网段、iptables命令、modprode命令、sysctl命令等
2、加载内核模块
3、调整/porc参数
4、清空原有规则
5、配置规则
五、firewalld防火墙
1、区域的概念
(1)firewall可根据数据包的源IP或传入的网络接口欧条件等,将流量传入相应区域,每个区域定义了自己打开或关闭的端口和服务列表
2、字符管理工具
3、实例(SNAT/DNAT)
(1)将两个网络接口分别制定到两个区域
①firewall-cmd --add-interface=ens33 --zone=dmz
②firewall-cmd --add-interface=ens34 --zone=work
(2)为dmz及work添加http及dns服务
①firewall-cmd --add-service=http --zone=dmz --permanent
②firewall-cmd --add-service=dns --zone=dmz --permanent
③firewall-cmd --add-service=http --zone=work --permanent
④firewall-cmd --add-service=dns --zone=work --permanent
(3)为dmz开启伪装(SNAT)
①firewall-cmd --add-masquerade --zone=dmz --permanent
(4)为dmz设置端口转发
①firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.157 --zone=dmz --permanent
(5)重新加载防火墙
①firewall-cmd --reload
4、直接规则
(1)firewalld提供了‘direct interface” (直接接口), 它允许管理员手动编写的iptables. ip6tables 和ebtables规则插入firewalld管理的区域中,适用于应用程序,而不是用户。直接端口通过firewall-cmd 命令中的--direct选项实现。除非将直接规则显式插入firewalld管理的区域,否则将首先解析直接规则,然后解析其他firewalld规则。
(2)--direct --add/remove/list-rule ip类型 表 链 条件 控制
(3)示例
①firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s 192.168.1.0 -p tcp --dport 80 -j ACCEPT
5、富规则示例
(1)firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" port protocol="tcp" port="8080" accept"
(2)firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
(3)firewall-cmd --add-rich-rule="rule family=ipv4 source address=192.168.1.100 masquerade" --permanent
(4)firewall-cmd --add-rich-rule='rule family=ipv4 destination address=192.168.11.156 forward-port port=80 protocol=tcp to-port=80 to-addr=192.168.1.157' --permanent