邪恶八进制信息安全团队技术讨论组's Archiver

冰血封情 2005-5-5 21:42

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

  文章作者:吴阿亭 [中国Linux论坛应用版版主]
文章备注:我操 那个时候的斑竹真TMD NB

1. 图例如下:

[code]                  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)[/code]

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

当外部一拨号用户拨到当地ISP后,在浏览器中指定地址如[url]www.yourcompanydomain.com[/url]
(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包。
[url]ftp://ftp.redhat.com/pub/contrib/libc6/i386/ipmasqadm-0.4.2-3.i386.rpm[/url]

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.减少防火墙上在用户空间运行的应用程序

页: [1]
© 1999-2008 EvilOctal Security Team