iptables之SNAT源地址修改及DNAT目标地址修改和PNAT端口修改

iptables之nat功能

一台网关主机用上net的主要目的是要隐藏网关内网中的主机。如果一个网关设备不开启net功能,仅仅只能将报文实现网络转发,而不会修改报文的任何源ip和目标ip。此时内网中的客户端和互联网外的主机通信时,一个怀有恶意的外网主机会得到内网客户端的地址,然后用扫描工具扫描客户端主机的各种端口服务,找到有薄弱项的服务发起远程攻击,此时很容易攻克这台主机,并用这台主机当作跳板,继续从内网去渗透内部其他的重要的主机。当网关主机上开启了net功能后,网关在转发报文到互联网或者从互联网转发报文到内网服务器的时候,把报文中的内网主机地址统统改成网关的外网地址,外部的主机只能看到网关的地址,这样就做到安全保护内网中主机的操作。

网关开启net后,请求报文和相应报文是通过内存中的连接追踪表来进行地址转换的。内网中的客户端通过网关的地址转换访问外网的服务器主机叫做SNAT,外网主机访问经过网关地址转换的内网中提供各种服务的主机叫做DNAT,httpd只开放8080端口,把8080端口映射到80,能正常以80访问叫做PNAT。

环境拓扑:
网关
内网接口:192.168.10.10
外网接口:192.168.2.6

内网主机:192.168.10.11
外网主机:192.168.2.201

配置网关主机:

[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward
0
#查看网关的核心转发是否开启,默认为0是关闭状态

[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
#开启核心转发

配置外网主机路由信息:

[root@localhost ~]# route add -net 192.168.10.0/24 gw 192.168.2.6
#添加192.168.10.0/24网络的下一条为192.168.2.6

iptables之SNAT源地址修改

SNAT:只能用在POSTROUTING和INPUT上,跨主机很少用INPUT
ser-defined dhains:自定义链,只能被上面的两个链调用
--to-source [ipaddr[-ipaddr]][:port[-port]]:修改源地址,也可以是轮询的地址范围
--random:请求时随机访问多个地址
--persistent:随机访问到一个地址后,之后始终用固定的地址访问
MASQUERADE:是动态分配ip的网关外网时进行地址转换

我们现在模拟内网客户端向外网服务器发送请求来做SNAT地址转换,这是隐藏内网客户端地址的应用。

添加规则

[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 192.168.2.6
#开放从内向外SNAT的192.168.10.0/24转换为192.168.2.6

查看网关net规则

[root@localhost ~]# iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 SNAT       all  --  *      *       192.168.10.0/24      0.0.0.0/0            to:192.168.2.6

对外网主机80端口抓包,此时内网主机访问外网web时,成功隐藏了内网主机的ip,而用网关外网ip来做访问报文的源地址和响应报文的目标地址。


图片.png

对网关内网接口抓包,是直接内网ip发包给外网ip


图片.png

在对网关外网接口抓包,这次内网ip地址给自动转换成了网关外网ip


图片.png

iptables之DNAT目标地址修改

DNAT:只能用在PREROUTING、OUTPUT和自定义的链上
--to-destination [ipaddr[-ipaddr]][:port[-port]] 轮询访问
--random 随机访问
--persistent 固定访问

做DNAT只开放有限协议的有限端口,这是与SNAT不同的地方,对于服务器来讲要隐藏所有的东西,仅留一个需要开放给互联网访问的端口,而且SNAT和DNAT不建议在同一台主机使用。

现在模拟外网客户端向内网web服务器发送请求来做DNAT地址转换,这是隐藏内网服务器地址的应用。

清空之前的net规则:

[root@localhost ~]# iptables -t nat -F

添加规则:

[root@localhost ~]# iptables -t nat -A PREROUTING -d 192.168.2.6 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.11
#开放从外向内DNAT的目标ip192.168.2.6:80转换为192.168.10.11:80

外网主机访问内网web服务器正常


图片.png

内网web主机网卡抓包:


图片.png

网关主机内网接口抓包:
图片.png

网关主机外网接口抓包:


图片.png

把内网httpd服务器80端口改为8080端口:

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
Listen 8080

[root@localhost ~]# systemctl restart httpd

修改规则:

[root@localhost ~]# iptables -t nat -R PREROUTING 1 -d 192.168.2.6 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.11:8080

访问192.168.2.6:80被转发到192.168.10.11:8080


图片.png

iptables之PNAT端口修改

REDIRECT:在PREROUTING和OUTPUT上和用户自定义的链上
--to-ports port[-port] 端口映射
--random 随机访问

用户访问web网站时,默认是访问80端口,但是httpd把80改为了8080端口,此时做端口映射,访问80端口时自动在内核中访问8080端口。这个解决了普通用户启动的进程只能监听1024以上的端口,而不能监听80端口,在内核中把来自80的访问映射到8080去访问。

这个是在内网httpd服务器上的iptables添加规则:

[root@localhost ~]# iptables -A PREROUTING -t nat -d 192.168.10.11 -p tcp --dport 80 -j REDIRECT --to-ports 8080
#把来自80的访问映射到8080

虽然httpd只开放了8080端口,但是访问80会自动映射到8080


图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 1 前言 防火墙(Firewall),就是一个隔离工具,工作于主机或者网络的边缘,对于进出本主机或本网络的报文,根...
    魏镇坪阅读 6,943评论 1 23
  • 防火墙的概念iptables的简介iptables命令网络防火墙NATfirewalld服务 一、防火墙的概念 (...
    哈喽别样阅读 1,812评论 0 1
  • iptables俗称防火墙,或许我们已经不在陌生,但是作为openstack基础,这里还是对其做一些补充,了解更多...
    ximitc阅读 1,788评论 0 8
  • 本文部分观点图片采用于:http://chenx1242.blog.51cto.com 随着智能机的逐渐普及,大量...
    BossHuang阅读 3,120评论 0 16
  • 2018.1.13 我怎么如此幸运,魏先生昨晚过了12点才打烊,平时没办法一定要看到那么晚,可如今晚上没几个人看到...
    老姐嘛嘛阅读 137评论 0 0