控制iptables的nat转发端口的实现

【第一、需求描述】
     员工通过办公网络的网关服务器(linux)192.168.1.250的snat访问另外一个局域网:安全中心(10.1.1.0/24),但是为了提高安全性,只允许访问安全中心的指定端口。

【第二、方案实施】

#cat /etc/sysconfig/iptables #只允许nat转发的指定的端口22,80

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [1:92]
:OUTPUT ACCEPT [1:92]
#从192.192.191.1这个ip出去,SNAT
-A POSTROUTING -d 10.1.1.0/24 -j SNAT --to 192.192.191.1
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]#默认转发是关闭的
:OUTPUT ACCEPT [0:0]
-A FORWARD -d 10.1.1.0/24 -p tcp --dport 22 -j ACCEPT#允许访问10.1.1.0/24的22端口
-A FORWARD -d 10.1.1.0/24 -p tcp --dport 80 -j ACCEPT#允许访问10.1.1.0/24的80端口
-A FORWARD -d 10.1.1.0/24 -p icmp -j ACCEPT#允许ping 10.1.1.0/24
COMMIT

【第三、技术详解】

POSTROUTING链的输入来源是INPUT及FORWARD,即

INPUT->POSTROUTING

FORWARD->POSTROUTING

这里SNAT都是从FORWARD过来的,所以可以通过控制FORWARD链控制SNAT的端口的白名单

时间: 2024-08-08 02:55:54

控制iptables的nat转发端口的实现的相关文章

Linux服务--iptables之nat转发和构建简单的DMZ防火墙

iptables之nat转发和构建简单的DMZ防火墙 一.NAT iptables 中的nat表: nat:Network Address Translation:NAT不仅完美地解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机. nat有三种实现方式:SNAT,DNAT和端口多路复用OverLoad 在了解Nat工作原理之前先了解一下私网IP和公网IP.私网IP地址是指局域网内部网络或主机的IP地址,公网地址是指在因特尔网上全球唯一的IP地址. 私有

iptables之nat转发

主要分为路由前转发PREROUTING,和路由后转发POSTROUTING. 何为路由前?也就是从外部传入数据,在到达主机网卡,还未进入网卡的瞬间. 何为路由后?也就是从外部传入数据,进入并经过主机某个网卡后,向外传出数据的瞬间. 一个简单的模型如下: 外部数据------>主机网卡(如eth0.eth1等)------>目的地 路由前                           路由后 首先把转发策略打开 [[email protected]~]# vi /etc/sysctl.co

使用iptables nat进行端口转发

1.将发向HostA:PortA的请求转发到HostB:PortB iptables -t nat -A PREROUTING -p tcp -i eth0 -d HostA --dport PortA -j DNAT --to HostB:PortB iptables -t nat -A POSTROUTING -j MASQUERADE echo 1 > echo 1 > /proc/sys/net/ipv4/ip_forward

iptables nat及端口映射

发布: 2010-6-11 15:05 | 作者: admin | 来源: SF NetWork 门户网站 iptables 应用初探(nat+三层访问控制) iptables是一个Linux下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个灵活强劲的防火墙+nat系统,小有心得,看了网上也有很多这方面的文章,但是似乎要么说的比较少,要么就是比较偏,内容不全,容易误导,我研究了一段时间的iptables同时也用了很久,有点滴经验,写来供大家参考,同时也备日后自己翻阅. 首先要

Iptables Nat转发

Iptables Nat iptables子命令: 规则: -A:添加 -I:插入 -D:删除 -R:修改 链: -N:新建一条自定义的链 -X:删除一条自定义的空链 -F:清空链中的规则 -Z:清空链中的计数器 -E:重命名自定连的名称 -P:修改链的默认规则 显示: -L: -n,-v,--line-numbers -S: 规则定义:iptables -t table -A|-I|-R chain 匹配条件 -j target 匹配条件: 通用匹配:-s,-d,-i,-o,-p 扩展匹配:

iptables的nat网络转发

今天搞了个网络转发,将服务器中的一个虚拟机通过网络转发的方式让其他网络的主机访问虚拟机. iptables传输数据包过程: 1.首先进入PREROUTING链,内核根据数据包目的ip判断是否转出. 2.数据包如果是本机数据包,则进入INPUT链,此时本机任何进程都可以收到数据包.同时,本机上的程序都可以发送数据包,并进入OUTPUT链,最后进入POSTROUTING链输出. 3.若是非本机数据包,并且内核判断允许转出,则进入FORWARD链,最后进入POSTROUTING链输出. iptable

关于LINUX NAT和端口转发的配置

一.背景: linux (ubuntu) 双网卡服务器作WEB.路由.DHCP服务器. eth2对外:10.1.1.244/254 eth3对内:192.178.1.254/20 内网说明:192.178.0.1/20  gw:192.178.1.254 XEN-SERVER:192.178.1.100/20  管理端口443,建立虚拟机,网络模式为桥接. 二.网络配置方案: 内网通过NAT方式访问外网,XEN-SERVER通过10.1.1.244:8443管理. 三.配置说明: 1.244机器

【20180202】使用iptables做MySQL的端口转发

导读:将一个实例上面的MySQL请求转向另外一个MySQL实例上面. 源服务:172.16.3.6:3306 主库 目标服务:172.16.3.7:3306 从库 访问账户: [email protected] 新旧实例以及搭建主从 在源服务上面开启端口转发服务: shell>> sudo vim /etc/sysctl.conf vim>> net.ipv4.ip_forward=1 ##在文件中修改这个选项为1 shell>> sudo sysctl -p shel

iptables和firewall-cmd实现nat转发配置

环境如下: A机器两块网卡eth0(192.168.0.173).eth1(192.168.100.1),eth0可以上外网,eth1仅仅是内部网络,B机器只有eth1(192.168.100.3),和A机器eth1可以通信互联.需求让B机器可以连接外网,端口转发,通过A:1122连接B:22 iptables实现:注意:如果不能成功需要清空iptables规则,重新添加命令: iptables -F A机: ifconfig eth1 192.168.100.1/24 #临时设置IP echo