当前位置:   article > 正文

iptables(NAT)_iptables nat

iptables nat

nat: 网络地址转换
DNAT: 目标地址转换,一般用于对外发布服务
SNAT: 源地址转换,一般用于实现内网机器上网 --- 静态
MASQUERADE: 地址伪装 ---动态的SNAT
REDIRECT: 重定向 ---改变的是端口

SNAT:实现内网的主机上网

相当于内网访问公网。

配置方法 :

 

内网机器:

内网机器网关GATEWAY为192.168.10.11

防火墙:

对内网卡IP为192.168.10.11

对外网卡IP为180.15.16.17

在防火墙中打开路由转发功能:

echo 1 >  /proc/sys/net/ipv4/ip_forward(临时,重启网卡失效)

永久配置

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p #重新加载配置文件

设置SNAT

iptables -t nat -A POSTROUTING  -s 192.168.10.0/24 -j SNAT --to 180.15.16.17
如果访问外网ip不是一直固定的,则可以使用下面的配置
iptables -t nat -A POSTROUTING  -s 192.168.10.0/24 -j  MASQUERADE

DNAT对外发布服务:

服务器在内网中,访问的是网关对外的ip

 配置方法:

web服务器GATEWAY配置为192.168.10.11

防火墙对内IP192.168.10.11

对外IP180.15.16.17

打开路由转换功能

DNAT配置

iptables -t nat -A PREROUTING  -p tcp --dport 80 -j DNAT --to 192.168.10.11

将web服务器改为8080,要求客户端通过80端口仍能正常访问:

iptables -t nat -A PREROUTING  -p tcp --dport 80 -j DNAT --to 192.168.10.11:8080

DNAT + Filter:

需求:对外发布ftp服务 

分析:

1.对外发布ftp服务:

管理连接和数据连接

管理连接是21号端口(DNAT)

数据连接分为主动连接和被动连接

被动连接是客户端去连接服务器(DNAT)

主动连接是服务器通过20号端口主动向客户端建立连接(SNAT)

被动连接:客户端通过21号端口与服务器建立管理连接,通过管理连接向服务器发送pasv指令告诉服务器采用被动连接方式,此时服务器开放一个随机端口响应客户端。

由于客户端不能访问内网中的真实的ftp服务器,只能访问到防火墙,需把服务响应给防火墙上的公网ip客户端才能正常访问。

在ftp服务器上配置 pasv_address=180.15.16.17(防火墙公网ip)

还需配置响应端口的范围。

pasv_min_port=8001

pasv_max_port=9000

主动连接:客户端通过21号端口与服务器建立管理连接,向服务器发送port指令,服务器通过20号端口向客户端建立连接。

配置:

ftp服务器:GATEWAY设置为192.168.10.11

防火墙:

对内IP为192.168.10.11  对外IP为180.15.16.17

打开路由转发

被动模式配置:iptables -t nat -A PREROUTING -p tcp -m multiport --dports 21,8001:9000 -j DNAT --to 192.168.10.13

主动模式配置:iptables -t nat -A POSTROUTING -p tcp --sport 20 -j SNAT --to 180.15.16,17

需求:仅管理机(180.15.10.10)通过2221端口SSH连接到ftp服务器

iptabls -t nat -A PREROUTING -s 180.15.10.10 -p tcp --dport 2221 -j DNAT --to 192.168.10.13:22(端口映射)

防火墙本机仅允许管理机(180.15.10.10)连接,. 所有客户都能正常访问业务。

iptables -A INPUT -s 192.168.10.1 -j ACCEPT  (放行自己连接)

iptables -A OUTPUT -p tcp -m state --state ESTABLISHED -j ACCEPT

iptables -t filter -A INPUT -j DROP

iptables -t filter -A OUTPUT -j DROP

iptables -t filter -A FORWARD -j DROP 

iptables -I INPUT -s 180.15.10.10 -p tcp --dport 22 -j ACCEPT  (放行管理机访问防火墙)

iptables -t filter -I FORWARD -s 180.15.10.10 -p tcp --dport 22 -j ACCEPT

iptables -t filter -I FORWARD -p tcp -m state --state ESTABLISHED -j ACCEPT

iptables -t filter -I FORWARD -p tcp -m multiport --dport 21,8001:9000 -j ACCEPT(被动)

iptables -t filter -I FORWARD 3 -p tcp -m tcp --sport 20 -j ACCEPT (主动)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/816497
推荐阅读
  

闽ICP备14008679号