详解iptables防火墙SNAT、DNAT地址转换工作原理及使用

NAT简介

NAT是将私有IP地址通过边界路由转换成外网IP地址,在边界路由的NAT地址转换表中记录下这个转换,当数据返回时,路由使用NAT技术查询NAT转换表,再将目标地址替换成内网用户IP地址。

SNAT策略

局域网主机共享单个公网IP地址接入Internet(内网的地址改成公网)

DNAT策略

目标地址转换

SNAT、DNAT工作原理

SNAT

局域网PC封装源、目ip(源地址:192.168.100.77,目的地址:172.16.16.101),到达网关路由器,SNAT将源地址转换成唯一的一个公网ip,此时源地址变成了公网ip172.16.16.254(eth0),再把数据包重新封装。当外网服务器收到,进行数据回复的时候。源目对调,源地址是web服务器地址,目标地址是网关地址,找到网关路由之后,在网关路由中会有一个状态记录(局域网内或许不止一台主机访问外网),转发回去。

DNAT

外网客户机发送http请求,请求的是公网IP地址(eth0),数据到达网关服务器时,查看访问是80端口,将目的地址172.16.16.254(公网IP只有一个)改为192.168.100.77。内网服务器收到以后返回数据,使用的是SNAT(通过SNAT原理来解释)

实验环境

  • 系统环境:CentOS6.5
  • 内网IP:192.168.100.77/24
  • 公网IP:172.16.16.101/24
  • 网关防火墙:
    公网网网卡:eth0:172.16.16.254
    内网网卡:eth1:192.168.100.254

搭建步骤:

一、准备工作

1、清空防火墙规则、关闭Selinux

[[email protected] ~]# vim /etc/sysconfig/selinux

[[email protected] ~]# reboot #重启

[[email protected] ~]# /etc/init.d/iptables stop #清空防火墙规则

2、查看网卡信息

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 #查看网关防火墙公网网卡信息

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1 #查看网关防火墙内网网卡信息

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 #查看公网网卡信息

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 #查看内网网卡信息

3、开启网关防火墙路由功能

[[email protected] ~]# vim /etc/sysctl.conf #配置一些系统信息以及内核参数

[root[email protected] ~]# sysctl -p #重新加载配置文件

4、测试互联互通

[[email protected] ~]# ping -c 3 172.16.16.254 #公网服务器ping公网网关
[[email protected] ~]# ping -c 3 192.168.100.254 #公网服务器ping内网网关

二、构建SNAT地址转换

1、网关防火墙设置SNAT规则

[[email protected] ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j SNAT --to-source 172.16.16.254 #将内网192.168.100.0/24网段的IP转换成公网网关IP172.16.16.254

-t:指定规则表是nat(修改源目IP或端口)
-A:追加规则链是POSTROUTING(路由后)
-s:指定源地址
-o:指定出站网卡
-j:指定控制类型
--to-source:指定转换的源地址

[[email protected] ~]# iptables -L -t nat -v #查看防火墙规则

2、设置公网服务器

[[email protected] ~]# yum -y install httpd #安装web服务
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf #修改配置文件
ServerName www.bt.com:80 #开启完整主机名
Listen 172.16.16.101:80 #开启监听地址

[[email protected] ~]# /etc/init.d/httpd start #启动web服务器

[[email protected] ~]# tail -f /var/log/httpd/access_log #监视access_log日志文件的尾部内容

3、内网客户机访问公网Web服务器

[[email protected] ~]# yum -y install elinks #安装基于文本的浏览器工具
[[email protected] ~]# elinks 172.16.16.101 #访问外网Web服务器

4、查看公网访问日志信息

三、构建DNAT地址转换

1、网关防火墙设置SNAT规则

[[email protected] ~]# iptables -t nat -A PREROUTING -i eth0 -d 172.16.16.254 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.77 #将公网客户机IP 172.16.16.254/24转换成192.168.100.77/24内网IP

[[email protected] ~]# iptables -L -t nat -v #查看防火墙规则

2、设置内网服务器

[[email protected] ~]# yum -y install httpd #安装web服务
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf #修改配置文件

#修改以下参数
ServerName www.test.com:80 #开启完整主机名
Listen 192.168.100.77:80 #开启监听地址

[[email protected] ~]# /etc/init.d/httpd start #启动web服务器

[[email protected] ~]# tail -f /var/log/httpd/access_log #监视access_log日志文件的尾部内容

3、公网客户机访问内网Web服务器

[[email protected] ~]# elinks 172.16.16.254 #注意访问的是公网网关IP,通公网网关才可以将地址进行转换,之前规则也已经写清楚了

4、查看内网访问日志信息

四、公网客户机通过访问内网ssh服务实现修改端口

1、网关防火墙设置端口规则

[[email protected] ~]# iptables -t nat -A PREROUTING -i eth0 -d 172.16.16.254 -p tcp --dport 999 -j DNAT --to-destination 192.168.100.77:22 #注意这里将ssh服务端口改为999

[[email protected] ~]# iptables -L -t nat -v #查看防火墙规则

2、公网客户端访问内网ssh服务实现远程连接

[[email protected] ~]# ssh [email protected] -p 999

原文地址:http://blog.51cto.com/11905606/2155909

时间: 2024-10-27 02:13:14

详解iptables防火墙SNAT、DNAT地址转换工作原理及使用的相关文章

详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

简介 postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件.postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试.在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件.这真是一个让人吃惊的数字.Postfix试图更快.更容易管理.更安全,同时还与sendmail保持足够的兼容性. 工作原理 客户端通过Outlook软件,向邮件

纯干货详解iptables工作原理以及使用方法

简介 网络中的防火墙,是一种将内部和外部网络分开的方法,是一种隔离技术.防火墙在内网与外网通信时进行访问控制,依据所设置的规则对数据包作出判断,最大限度地阻止网络中不法分子破坏企业网络,从而加强了企业网络安全. 防火墙的分类 硬件防火墙,如思科的ASA防火墙,H3C的Secpath防火墙等软件防火墙,如iptables.firewalld等 Linux包过滤防火墙简介 1.Linux操作系统中默认内置一个软件防火墙,即iptables防火墙2.netfilter位于Linux内核中的包过滤功能体

Android官方架构组件:Lifecycle详解&迪士尼彩乐园网站架设原理分析

我们先将重要的这些类挑选出来: LifecycleObserver接口( Lifecycle观察者):实现该接口的类,通过注解的方式,可以通过被LifecycleOwner类的addObserver(LifecycleObserver o)方法注册,被注册后,LifecycleObserver便可以观察到LifecycleOwner的生命周期事件. LifecycleOwner接口(Lifecycle持有者):实现该接口的类持有生命周期(Lifecycle对象),该接口的生命周期(Lifecyc

【PPT详解】曹欢欢:今日头条算法原理

[PPT详解]曹欢欢:今日头条算法原理 悟空智能科技 4月8日 公众号后台回复:"区块链",获取区块链报告 公众号后台回复:"sq",进入区块链分享社群 热文推荐: 1000位专家推荐,20本区块链必读书籍(附PDF) 中国首个区块链标准<区块链参考架构>发布 今天,算法分发已经是信息平台.搜索引擎.浏览器.社交软件等几乎所有软件的标配,但同时,算法也开始面临质疑.挑战和误解.今日头条的推荐算法,从2012年9月第一版开发运行至今,已经经过四次大的调整和

iptables的SNAT和DNAT地址转换配置实例

首先介绍一下实验环境,一共打开三台虚拟机,win7客户机作为内部局域网的终端设备:中间的Linux-2作为内部局域网的网关以及连接外网的设备:Linux-1作为外网的web服务器设备. (其实这个实验是接着上次的实验继续做的) 查看Linux-2的网卡属性需要配置两块网卡(不知怎么添加的看上一篇博客),一块作为外网连接,一块作为内部的网卡.IP地址配置如下. 两块网卡配置完成,测试一下跟另外两台PC机是否能够互联互通. 此时开启Linux-1的web服务,关闭SELinux策略,清空防火墙条目.

网关服务器iptables的SNAT与DNAT地址转换

SNAT(Source Network Address Translation 源地址转换)是Linux防火墙的一种地址转换操作,也是iptables命令中的一种数据包控制类型,其作用是根据指定条件修改数据包的源IP地址.DNAT(Destination Network Address Translation 目标地址转换)是Linux防火墙的另一种地址转换操作,同样也是iptables命令中的一种数据包控制类型,其作用是可以根据指定条件修改数据包的目标IP地址和目标端口. 实验描述 需求分析:

linux下IPTABLES配置详解 (防火墙命令)

linux下IPTABLES配置详解 -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 24000 -j ACCEPT-A RH-Firewall-1-INPUT -s 121.10.120.24 -p tcp -m tcp --dport 18612 -j ACCEPT 如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的

【linux】iptables防火墙SNAT和DNAT的简单演示

首先说明SNAT和DNAT都大致相当于网络中的NAT和PAT协议,本实验是通过用一台linxu虚拟机来模拟内网网关,并且利用linux上的iptables防火墙策略,达到地址转换和端口映射的目的. SNAT 实验结构: 真机----------------(v1)网关服务器s1(v2)--------------(v2)外网服务器s2 开2台虚拟机linux,分别模拟s1和s2. 其中,s1上另增加一块网卡,使用vmnet1与真机相连. 使用vmnet2与外网服务器的s2的vmnet2相连. I

详解iptables

Firewalls(防火墙):         工作在网络边缘(主机边缘),对进出网络数据包基于一定的规则检查,并在匹配某规则时由规则定义的处理进行处理的一组功能的组件. 防火墙类型:根据工作的层次的不同来划分,常见的防火墙工作在OSI第三层,即网络层防火墙,工作在OSI第七层的称为应用层防火墙,或者代理服务器(代理网关). 网络层防火墙又称包过滤防火墙,在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,目的地址,所用端口