QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1660|回复: 18

请教iptables 做端口映射

[复制链接]
发表于 2004-4-19 15:54:05 | 显示全部楼层 |阅读模式
拜托把你们的规则铁出来,让我学习借鉴一番,在网上搜了3天了,试过了
n多别人的规则,都没有成功。
我现在的情况是局域网里面的web,ftp服务器均不能让外面访问,我们外面
ip是202.114.a.b,在局域网里面以内部ip为192.168.0.2的机子上做了
一个web服务器和ftp服务器,规则中加入了下面的两条
/sbin/iptables -t nat -A PREROUTING -d 202.114.a.b  -p tcp --dport 80 -j DNA
T --to 192.168.0.2
/sbin/iptables -t nat -A POSTROUTING -d 192.168.0.2   -p tcp --dport 80 -j S
NAT --to 192.168.0.1
web服务器在内部局域网里面用202.114.a.b或者
192.168.0.2都能访问,如果没有上面的两条,只能在局域网里面
通过 192.168.0.2 访问web服务器!!
有两个问题要请教:第一,就是要想办法要让局域网外部的ip用202.114.a.b也能访问内
部的
web服务器;就是输入202.114.a.b,自动映射到192.168.0.2上去,内部和外部ip都能映
射!
第二,想办法让局域网外面的ip通过ftp://user:[email protected]
够访问内部的ftp服务器。

请大家不吝指教!!
bowing
谢谢先!!!!
btw:我在用windows2000做服务器时候,这两个问题很好解决,
用的是porttunel做了端口映射,但是由于感觉2k太不稳定了,
换了redhat9.0做了服务器。
再次谢谢各位!!!!!
发表于 2004-4-19 22:10:59 | 显示全部楼层
假设您的 eth1 的 ip 地址是: 202.114.0.1 ;eth0 的 ip 地址是: 192.168.0.1

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80

若单独上面一条不起作用,还加上一条:
iptables -t nat -A POSTROUTING -s 0.0.0.0 -d 192.168.0.2 -p tcp -m tcp --dport 80 -j SNAT --to-source 202.114.0.1
回复

使用道具 举报

 楼主| 发表于 2004-4-20 08:17:02 | 显示全部楼层
好感激这个版主,问了好多人,都没有答复,就这里答复最快了,要是版主在武汉,我想请你吃饭!可惜你在广东
回复

使用道具 举报

 楼主| 发表于 2004-4-20 08:46:40 | 显示全部楼层
:-(  :-(  :-(  :-( l老大,在不在阿?如果把我以前的两条规则去掉,写上您给我的规则,我的所以规则就是这样的,麻烦你看看



echo "Enable IP Forwarding..."
echo 1 >/proc/sys/net/ipv4/ip_forward
echo "Starting iptables rules..."
/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_h323
/sbin/modprobe ip_nat_h323

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
############################

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
/sbin/iptables -t nat -A POSTROUTING -s 0.0.0.0 -d 192.168.0.2 -p tcp -m tcp --dport 80 -j SNAT --to-source 202.114.12.21

###########################
/etc/rc.d/init.d/iptables restart

iptables -L


无论内部还是外部访问202.114.12.21,都不能映射到内部web服务上去.
回复

使用道具 举报

 楼主| 发表于 2004-4-20 08:52:13 | 显示全部楼层
如果是下面的规则:



/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_h323
/sbin/modprobe ip_nat_h323

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
############################
/sbin/iptables -t nat -A PREROUTING -d 202.114.12.21 -p tcp --dport 80 -j DNAT --to 192.168.0.2
/sbin/iptables -t nat -A POSTROUTING -d 192.168.0.2 -p tcp --dport 80 -j SNAT --to 192.168.0.1
/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
/sbin/iptables -t nat -A POSTROUTING -s 0.0.0.0 -d 192.168.0.2 -p tcp -m tcp --dport 80 -j SNAT --to-source 202.114.12.21

###########################
/etc/rc.d/init.d/iptables restart

iptables -L
那么就是内部可以通过202.114.12.21访问 局域网内部服务器.
感觉你给我的两条规则没有发挥作用!


外部还是不能阿,情老大帮我看看吧
回复

使用道具 举报

 楼主| 发表于 2004-4-20 08:54:53 | 显示全部楼层
上面的两条###############线之间是我修改的内容,其他部分都没有动过的
                
回复

使用道具 举报

 楼主| 发表于 2004-4-20 09:12:20 | 显示全部楼层
如果是下面的规则,还是只能内部ip访问202.114.12.21访问内部web服务器.

echo "Enable IP Forwarding..."
echo 1 >/proc/sys/net/ipv4/ip_forward
echo "Starting iptables rules..."
/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_h323
/sbin/modprobe ip_nat_h323

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
############################
/sbin/iptables -t nat -A PREROUTING -d 202.114.12.21 -p tcp --dport 80 -j DNAT --to 192.168.0.2
/sbin/iptables -t nat -A POSTROUTING -d 192.168.0.2 -p tcp --dport 80 -j SNAT --to 202.114.12.21




###########################
/etc/rc.d/init.d/iptables restart

iptables -L
回复

使用道具 举报

 楼主| 发表于 2004-4-20 09:34:57 | 显示全部楼层
gugong, ?再不在????
回复

使用道具 举报

发表于 2004-4-20 12:02:23 | 显示全部楼层
你写了这么多规则,你又 /etc/rc.d/init.d/iptables restart  ,那以前的就没有了嘛
回复

使用道具 举报

 楼主| 发表于 2004-4-20 15:02:57 | 显示全部楼层
不是吧,我restart了iptables,写进去的才起作用阿.
回复

使用道具 举报

发表于 2004-4-20 16:08:10 | 显示全部楼层
只用一个,要么是  /etc/sysconfig/iptables ,要么是你的这个 shell 脚本。
回复

使用道具 举报

发表于 2004-4-20 16:25:59 | 显示全部楼层
[quote:93e3e0b92b="gugong"]只用一个,要么是  /etc/sysconfig/iptables ,要么是你的这个 shell 脚本。[/quote]
没错,就是这样的!
回复

使用道具 举报

 楼主| 发表于 2004-4-20 19:58:26 | 显示全部楼层
感谢两位大哥指点,我有了写眉目了,明天再试试看,good luck!
回复

使用道具 举报

 楼主| 发表于 2004-4-22 08:12:33 | 显示全部楼层
这个方法还是不能。
回复

使用道具 举报

 楼主| 发表于 2004-4-22 09:55:09 | 显示全部楼层
看来不得不放弃了.
为什么别人能用的话东西,我就不能呢?
郁闷
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 11:45 , Processed in 0.045817 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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