首页 运维 正文
iptables+NAT+端口映射

 2022-10-23    366  

在学习iptables时,我们应该知道这两个NAT端口映射东西,现在我给大家讲解下!

  实现目标:

iptables+NAT+端口映射

  利用iptabels给局域网做NAT透明代理,比如网吧或公司企业的上网代理服务器!同时实现了内网WEB服务器的端口映射!并且解决了WEB服务器访问者IP都为代理服务器IP的问题!同时内外网皆可正常通过公网IP访问内网的WEB服务器!实现目标:

  利用iptabels给局域网做NAT透明代理,比如网吧或公司企业的上网代理服务器!同时实现了内网WEB服务器的端口映射!并且解决了WEB服务器访问者IP都为代理服务器IP的问题!同时内外网皆可正常通过公网IP访问内网的WEB服务器!(加了SQUID后还没有成功,努力中!)

  软硬件环境如下:

  操作系统为 RHEL 4 ,3COM网卡两张,eth0为外网网卡,IP为:221.222.111.10; eth1为内网网卡,IP为:192.168.0.1; 内网WEB服务器IP为:192.168.0.200 。网络环境为:中国电信10M光纤,固定IP!

  方法为如下:

  首先我注释掉了iptables文件原始的全部内容,然后在iptables文件中写入如下内容!

  ##################################### Nat段开始 #########################################

  *nat

  :PREROUTING ACCEPT [0:0]

  :OUTPUT ACCEPT [0:0]

  :POSTROUTING ACCEPT [0:0]

  #

  #—————————— Web Server 端口映射 ——————————

  # 192.168.0.200 端口80

  ######################

  # 用DNAT作端口映射!注意以下指令一定要在NAT透明代理的前面,否则无效!

  -A PREROUTING -i eth1 -p tcp -d 221.222.111.10 –dport 80 -j DNAT –to-destination 192.168.0.200:80

  -A PREROUTING -i eth0 -p tcp -d 221.222.111.10 –dport 80 -j DNAT –to-destination 192.168.0.200:80

  #

  #—————————— Iptables NAT 透明代理 ——————————

  #

  -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT –to 221.222.111.10

  #

  COMMIT

  ##################################### Nat段结束 #########################################

#p#

  ###################################### Filter段开始 #####################################

  #

  *filter

  :INPUT ACCEPT [0:0]

  :FORWARD ACCEPT [0:0]

  :OUTPUT ACCEPT [0:0]

  #

  #防止网络上其它计算机使用Ping命令探测本机:

  -A INPUT -p icmp –icmp-type echo-request -i eth0 -j DROP

  #

  # 防止广播包从IP代理服务器进入局域网:

  -A INPUT -s 255.255.255.255 -i eth0 -j DROP

  -A INPUT -s 224.0.0.0/224.0.0.0 -i eth0 -j DROP

  -A INPUT -d 0.0.0.0 -i eth0 -j DROP

  # 屏蔽掉以下的TCP和UDP端口:

  -A INPUT -i eth1 -p udp -m udp –dport 3 -j DROP

  -A INPUT -i eth1 -p tcp -m tcp –dport 3 -j DROP

  -A INPUT -i eth1 -p tcp -m tcp –dport 111 -j DROP

  -A INPUT -i eth1 -p udp -m udp –dport 111 -j DROP

  -A INPUT -i eth1 -p udp -m udp –dport 587 -j DROP

  -A INPUT -i eth1 -p tcp -m tcp –dport 587 -j DROP

  #

  COMMIT

  ###################################### Filter段结束 #####################################

  修改完以上的文件后,再将/etc/sysctl.conf 文件里面修改成 net.ipv4.ip_forward = 1 ,这个很重要,不然NAT代理不能生效的!

  然后用#: service iptables restart 这个指令重起iptables 服务!!OK,你再试试看代理服务和WEB能否则正常访问,我想一定可以的!

  附:

  Web Server 端口映射一定要在 Iptables NAT透明代理指令前面,否则内网用户将无法通过公网IP或域名访问内网的Web服务器!

原文链接:https://77isp.com/post/8110.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。