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 (主动)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值