设为首页收藏本站language 语言切换
查看: 1630|回复: 0
收起左侧

[分享] 利用端口转发由内部网对外提供网络服务

[复制链接]
发表于 2012-6-1 11:28:23 | 显示全部楼层 |阅读模式
1. 图例如下:

                          INTERNET
                              | (194.160.1.1)
                         linux box (firewall)
                              | (192.168.11.5)
                +--------------------------+ internal ethernet
                | (192.168.11.2)               | (192.168.11.3)
           linux box 1(WWW)                linux box 2 (POP3)

2.什么是转口转发(port forwarding)?

当外部一拨号用户拨到当地ISP后,在浏览器中指定地址如
www.yourcompanydomain.com
(194.160.1.1)时或者在outlook express中指定POP3服务器为pop.yourcompandomain.com
(194.160.1.1)时,你的防火墙(图中的linux box)然后转发这个包到内部服务器WWW
或POP3,当内部服务器生成回复包朝外发出经过防火墙时,包被重写。具体过程如下:

在防火墙上,我们设置端口转发规则,指定所有到防火墙外部地址194.160.1.1的TCP连接,
且目的端口为80的所有连接,重定向到内部机器192.168.11.2的端口80。假定任意一外部
连接进来的主机IP为 163.158.1.2。

则源和目的地址及端口号分别为
Source: 163.158.1.2/7890  Dest: 194.160.1.1/80

被转发到内部主机,重写目的地址部分
Source: 163.158.1.2/7890  Dest: 192.168.11.2/80

由内部主机回复后的包为:
Source: 192.168.11.2/80       Dest: 163.158.1.2/7890

再经过防火墙时源地址被重写
Source 194.160.1.1/80      Dest: 163.158.1.2/7890

3.如何在Linux 2.2.x中使用端口转发?

a.如果你用最近的redhat 内核,已经有一个端口转发模块提供了。
为了用它,运行 #modprobe ip_masq_portfw
 如果你用最新的不是redhat提供的内核RPM包,则需要在编译内核时
启动下面的项目:

CONFIG_EXPERIMENTAL
CONFIG_IP_MASQUERADE
CONFIG_IP_MASQUERADE_IPPORTFW

b.然后下载ipmasqadm RPM包。
ftp://ftp.redhat.com/pub/contrib/libc6/i386/ipmasqadm-0.4.2-3.i386.rpm

c.启动下面的IP转发和中转链设置:
#ipchains -P forward DENY
#echo 1 > /proc/sys/net/ipv4/ip_forward
 
d. 如果是专线上网,则用下面的命令设置IP伪装规则
#ipchains -A forward -j MASQ -s 192.168.11.2/32
#ipchains -A forward -j MASQ -s 192.168.11.3/32
   如果是拨号上网,则用
#ipchains -A forward -i ppp0 -j MASQ

e.最后启动端口转发规则
#ipmasqadm portfw -a -P tcp -L 194.160.1.1 80 -R 192.168.11.2 80
#ipmasqadm portfw -a -P tcp -L 192.160.1.1 110 -R 192.168.11.3 110

4.应注意的问题:
 a. 对于pop3,telnet等协议设置端口转发时,注意检查
 /etc/hosts.allow and /etc/hosts.deny文件允许外部世界的任意地址都可连接进来
 
 b. 内部机器的网关必须设成防火墙机器的内部那块网卡的地址
 
5.端口转发的优势
a.在IP层内核一级处理包重写,更加稳定可靠,速度更快
b.你可以在防火墙外部地址上使用IP别名处理更多的端口转发请求,若内部机器有不止一台WWW服务器
可以这样做,对不同的别名IP转发到不同的内部主机
c.减少防火墙上在用户空间运行的应用程序
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-2 20:53 , Processed in 0.052221 second(s), 14 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表