Linux防火墙------iptables(SNAT与DNAT)

Posted 下雨天的放羊娃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux防火墙------iptables(SNAT与DNAT)相关的知识,希望对你有一定的参考价值。

一.SNAT原理与应用

1.SNAT应用环境

局域网主机共享单个公网IP地址接入Internet(私有IP不能在Internet中正常路由)

2.SNAT原理

修改数据包的源地址

3.SNAT转换前提条件

1,局域网个主机已正确设置IP地址,子网掩码,默认网关地址
2,Linux网关开启IP路由转发

临时打开
echo 1 > /proc/sys/net/ipv4/ip_forward
或
sysctl  -w net.ipv4.ip_forward=1
永久打开
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1   				将此行写入配置文件
sysctl  -p  							读取修改后的配置

4.实验配置

4.1 局域网个主机正确设置IP地址,子网掩码,默认网关地址

在这里插入图片描述

1.客户端配置
在这里插入图片描述
在这里插入图片描述
2.网关服务器配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.web服务器

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.2 Linux网关开启IP路由转发

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二.DNAT原理与应用

1.DNAT应用环境

在Internet中发布位于局域网内的服务器

2.DNAT原理

修改数据包的目的地址

3.DNAT转换前提条件

1.局域网的服务器能够访问Internet
2.网关的外网地址由正确的DNS解析记录
3.Linux网关开启IP路由转发

vim /etc/sysctl.conf
net. ipv4.ip_ forward = 1
sysctl -P
DNAT转换1: 发布内网的Web服务
#把从ens33进来的要访问web服务的数据包目的地址转换为192.168.80.11
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -P tcp --dport 80 -j DNAT --to 192.168.80.11
或
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -P tcp --dport 80 -j DNAT --to-destination 192.168.80.11
入站外网网卡外网IP
内网服务器IP
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80 -j DNAT --to 192.168.80.11-192.168.80.20

小知识扩展:
主机型防火墙主要使用INPUT、OUTPUT链,设置规则时一般要详细的指定到端口
网络型防火墙主要使用FORWARD链,设置规则时很少去指定到端口,一般指定到IP地址或者到网段即可

三.防火墙规则的备份和还原

导出(备份)所有表的规则
iptables-save > /opt/ipt.txt

导入(还原)规则
iptables-restore < /opt/ipt.txt

将iptables规则文件保存在/etc/sysconfig/iptables 中,iptables服务启动时会自动还原规则
iptables-save > /etc/ sysconfig/iptables
systemctl stop iptables				停止iptables服务会清空掉所有表的规则
systemctl start iptables			启动iptables服务会自动还原/etc/sysconfig/iptables中的规则

四.通过命令保存文件,使用抓包工具进行分析

tcpdump tcp -i ens33 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1)tcp:ipicmparprarp和tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i ens33 :只抓经过接口ens33的包
(3)-t :不显示时间戳
(4)-s 0 :抓取数据包时默认抓取长度为68字节。加上-s 0后可以抓到完整的数据包
(5)-c 100 :只抓取100个数据包
(6)dstport!22:不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 :数据包的源网络地址为192.168.1.0/24
(8)-W ./target.cap :保存成cap文件,方便用ethereal (即wireshark)分析

以上是关于Linux防火墙------iptables(SNAT与DNAT)的主要内容,如果未能解决你的问题,请参考以下文章

Linux之Iptables

Linux防火墙iptables详解

linux 防火墙iptables

iptables 简单介绍及应用 Linux防火墙

linux怎么关闭iptables linux如何关闭防火墙

Linux防火墙--iptables学习