欢迎您访问我爱IT技术网,今天小编为你分享的电脑教程是网络协议方面的经验知识教程:利用端口转发由内部网对外提供网络服务,下面是详细的分享!
利用端口转发由内部网对外提供网络服务
文章作者:吴阿亭 [中国Linux论坛应用版版主]
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.减少防火墙上在用户空间运行的应用程序
以上就是关于利用端口转发由内部网对外提供网络服务的网络协议知识分享,更多电脑教程请移步到>>电脑教程。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
