LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1876|回复: 17

iptables怎么配置?

[复制链接]
发表于 2004-12-20 20:40:26 | 显示全部楼层 |阅读模式
Fedora3系统,用ADSL上网,自己的机器可以上网,怎么配置iptables上局域网内的另一台机器(Windows XP)可以共享上网?

配置:单网卡,虚拟了一个,连接内网的是eth1,IP是192.168.0.2,连接ADSL的是ppp0,动态IP,两台机器都设置网关为192.168.0.2

从Red Hat Linux宝典中抄了一段配置iptables的代码,但那代码中的对外IP是静态IP(123.45.67.89),怎么改成动态IP?这段代码适合我用吗?

# (1) Policies (default)
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# (2) User-defined chain for ACCEPTed TCP packets
#iptables -N okay
#iptables -A okay -p TCP --syn -j ACCEPT
#iptables -A okay -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A okay -p TCP -j DROP

# (3) INPUT chain rules
iptables -A INPUT -p ALL -i eth0 -s 192.168.0.2/8 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s 192.168.0.2 - ACCEPT
iptables -A INPUT -p ALL -i lo -s 123.45.67.89 -j ACCEPT
iptables -A INPUT -p ALL -i eth0 -d 192.168.0.255 -j ACCEPT

# Rules for incoming packets from the Internet
iptables -A INPUT -p ALL -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# TCP rules
#iptables -A INPUT -p TCP -i ppp0 -s 0/0 --destination-port 21 -j okay
#iptables -A INPUT -p TCP -i ppp0 -s 0/0 --destination-port 80 -j okay
#iptables -A INPUT -p TCP -i ppp0 -s 0/0 --destination-port 113 -j okay

# UDP rules
#iptables -A INPUT -p UDP -i ppp0 -s 0/0 --destination-port 53 -j ACCEPT
#iptables -A INPUT -p UDP -i ppp0 -s 0/0 --destination-port 2074 -j ACCEPT
#iptables -A INPUT -p UDP -i ppp0 -s 0/0 --destination-port 4000 -j ACCEPT

# ICMP rules
iptables -A INPUT -p ICMP -i ppp0 -s 0/0 --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP -i ppp0 -s 0/0 --icmp-type 11 -j ACCEPT

# (4) FORWARD chain rules
# Accept the packets we want to forward
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# (5) OUTPUT chain rules
# Only output packets with local addresses (no spoofing)
iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -p ALL -s 192.168.0.2 -j ACCEPT
iptables -A OUTPUT -p ALL -s 123.45.67.89 -j ACCEPT

# (6) POSTROUTING chain rules
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE --to-source 124.45.67.89
 楼主| 发表于 2004-12-21 17:13:49 | 显示全部楼层
放到网络版还是没人回答???
发表于 2004-12-21 21:48:49 | 显示全部楼层
linux我也是来这里学习,我不会
单网卡搞不懂,要是双网卡的共享上网
我想跟win的应该是一样的吧?
监听一下,xp那台机子给他发送共享请求的时候是用什么port
把那个port的数据(该网段内的)接收了。然后把xp的网关和dns设置
成该linux的内网ip就可以了吧?

我没做过,也是刚学着用这个系统
是我想当然的,如果不对,请原谅冒失了
发表于 2004-12-21 22:45:43 | 显示全部楼层
你让XP上网,让LINUX来连不就更简单嘛?
发表于 2004-12-21 23:18:40 | 显示全部楼层
单网卡我不明白物理上怎么连接,你如果连接了ADSL,就不能再连到局域网了,目前用的是双网卡,简单的做到了让其他机子上网
如果是ADSL接交换机,单网卡也接交换机,我是新手,没有这样做过
 楼主| 发表于 2004-12-22 07:22:11 | 显示全部楼层
1、目前我玩linux主要是出于学习的目的,其实我大部份的时候是在用windows,而不是为了用linux上网,呵呵
2、宿舍里有两台机,我这台用linux,另一台用XP,都是单网卡,直接连到HUB,再通过HUB连接ADSL。做主机的虚拟一个网卡。既然windows可以这样共享上网,我想linux应该也是可以的。
         Linux       WindowsXP
           |_____________|
                  |
                 HUB
                  |
                 ADSL
                  |
               Internet
3、想再问一下,192.168.0.2/8表示的是什么?是不是表示192.168.0.2 - 192.168.0.8这个网段的IP?

我是新手,什么也不懂,见笑了:P
发表于 2004-12-22 13:11:03 | 显示全部楼层
192.168.0.2/8
表示此ip的子网掩码有8各1
即255.255.0.0
发表于 2004-12-22 13:27:13 | 显示全部楼层
Post by wangpeter
192.168.0.2/8
表示此ip的子网掩码有8各1
即255.255.0.0

255.255.0.0是8个1吗?
发表于 2004-12-22 13:34:26 | 显示全部楼层
配置的最后部分是关键:
# (6) POSTROUTING chain rules
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp+ -j MASQUERADE

表示所有来自192.168.0.0这个c类网段的、需转发到ppp接口的数据包做ip伪装,也就是网络地址转换(nat)。

还有,拨号后看缺省路由是不是ppp0,如果不是,nat将不工作。
 楼主| 发表于 2004-12-25 00:15:45 | 显示全部楼层
按memory的说法试了一下,客户机(XP)可以ping到外部IP,说明已经可以连到internet了。但是无法解析到域名。但XP已经设置了DNS,并且可以ping通DNS的IP。是不是还有哪个地方没设对?或者漏了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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