iptables+NAT+端口映射

运维 系统运维
iptables 是与最新的 2.6.x 版本Linux 内核集成的 IP 信息包过滤系统。本文给大家总的讲下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服务器!

通过文章,我们知道了iptables的NAT+端口映射方法。希望对你们有用!

【编辑推荐】

  1. 如何查看iptables关于nat的日志
  2. RedHat 9上用iptables做NAT网和记录日志
  3. iptables下开放ftp连接
  4. Linux iptables将nat中内网多台ftp服务器映射出去
  5. Linux Iptables 内核添加time模块
  6. Linux防火墙Iptables入门笔记

 

 

责任编辑:赵鹏 来源: 网络转载
相关推荐

2011-03-16 13:09:10

iptables 端口

2011-03-16 13:29:33

iptables 端口

2011-03-16 10:43:36

2011-03-16 12:55:00

iptables 端口

2009-09-16 08:49:29

linux端口映射linux端口linux

2011-03-17 09:35:35

iptables 映射Linux内核

2019-07-25 15:15:54

端口映射服务器

2009-11-30 17:49:30

阿尔法路由器端口映射

2010-09-02 14:47:56

2020-11-19 10:35:19

LinuxWindows端口映射

2011-08-25 14:35:04

Nth端口映射ftp服务器

2021-08-17 00:02:11

LinuxWindows服务器

2011-03-17 09:06:58

iptables映射端口

2009-12-15 16:15:56

2013-06-07 17:25:46

路由技术路由器

2009-12-15 16:36:12

路由器端口映射

2009-12-02 18:51:11

2009-12-15 16:09:54

水星MR804端口映射

2010-08-05 10:39:32

路由端口

2009-12-15 15:50:22

路由器端口映射
点赞
收藏

51CTO技术栈公众号