QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2577|回复: 8

如何用 MagicLinux 2.0 做主机共享上网?

[复制链接]
发表于 2006-9-25 15:21:39 | 显示全部楼层 |阅读模式
RT,双网卡共享上网

ML做服务器,eth0为固定IP 61.185.x.x /255.255.255.252
eth1 192.168.1.254/255.255.255.0

客户机IP192.168.1.xx 子网255.255.255.0 网关填 192.168.1.254上网

问题。。
1 ML是不是自带IPTAB?
2 做NAT具体怎样修改IPTAB的CFG文件?
3 只用IPTAB打开NAT就OK吗?其他诸如squid一类的代理软件有没有必要装?
4 如何端口映射?需要什么软件?

谢过先~。。在线等
 楼主| 发表于 2006-9-25 22:32:33 | 显示全部楼层
心里那个凉阿~~....   

么人鸟偶......

找了好多资料,直接COPY了某大大的iptab配置文件,只是修改了IP。。。。好心人指点下吧。。。

[code:1]
# mangle 段
*mangle
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
#

#
# nat 段
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#
# 为使用 SQUID 作“透明代理”而设定!
#
# 没有指定 网卡、地址:
#[0:0] -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#
# 指定 网卡、地址:
#[0:0] -A PREROUTING -s 192.168.20.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#[0:0] -A PREROUTING -s 192.168.20.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3128
# 将 对于 80、443 端口的访问 重定向到 3128 端口。
#
#
# 这些机器可以走这个机器做网关上 Internet 网。
# 需要在 /etc/sysctl.conf 文件里面修改成 net.ipv4.ip_forward = 1
# 或者 echo 1 > /proc/sys/net/ipv4/ip_forward
# 由于利用 SQUID 实现了“透明代理”,Masq 取消相应的客户地址。
# 这里,只剩下几个需要利用“IP伪装”来上网的机器(可以上 QQ、雅虎通、msn 之类的):
#
#[0:0] -A POSTROUTING -s 192.168.20.3 -j MASQUERADE
#[0:0] -A POSTROUTING -s 192.168.20.10 -j MASQUERADE
#[0:0] -A POSTROUTING -s 192.168.20.32/255.255.255.240 -j MASQUERADE
# 若你的 公网的 IP 地址是固定的,使用这个语句似乎更好些:
[0:0] -A POSTROUTING -s 192.168.1.0/255.255.255.0 -j SNAT --to 61.185.218.x
COMMIT
#

#
# filter 段
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

#
# 屏蔽 来自 microsoft 的站点:
[0:0] -A INPUT -s 207.46.0.0/255.255.0.0 -j DROP
[0:0] -A INPUT -d 207.46.0.0/255.255.0.0 -j DROP
#

# 防止IP欺骗:
# 所谓的IP欺骗就是指在IP包中存在着不可能的IP源地址或目标地址。
# eth1是一个与外部Internet相连,而192.168.20.0则是内部网的网络号,
# 也就是说,如果有一个包从eth1进入主机,而说自己的源地址是属于
# 192.168.20.0网络,或者说它的目标地址是属于这个网络的,那么这显
# 然是一种IP欺骗,所以我们使用DROP将这个包丢弃。
[0:0] -A INPUT -d 192.168.1.0/255.255.255.0 -i eth1 -j DROP
[0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth1 -j DROP
#
# 同样的,如果有包要通过eth1向Internet,而且它的源地址或目标地址是属于
# 网络192.168.20.0,那么显然也是不可能的。我们仍然使用DROP将它丢弃。
[0:0] -A OUTPUT -d 192.168.1.0/255.255.255.0 -o eth1 -j DROP
[0:0] -A OUTPUT -s 192.168.1.0/255.255.255.0 -o eth1 -j DROP
#

# 防止广播包从IP代理服务器进入局域网:
[0:0] -A INPUT -s 255.255.255.255 -i eth0 -j DROP
[0:0] -A INPUT -s 224.0.0.0/224.0.0.0 -i eth0 -j DROP
[0:0] -A INPUT -d 0.0.0.0 -i eth0 -j DROP
# 当包的源地址是255.255.255.255或目标地址是0.0.0.0,则说明它是一个
# 广播包,当广播包想进入eth0时,我们就应该DENY,丢弃它。而240.0.0.0/3
# 则是国际标准的多目广播地址,当有一个源地址是属于多目广播地址的包,
# 我们将用DROP策略,丢弃它。

#
# 屏蔽 windows xp 的 5000 端口(这个端口是莫名其妙的 !)
[0:0] -A INPUT -p tcp -m tcp --sport 5000 -j DROP
[0:0] -A INPUT -p udp -m udp --sport 5000 -j DROP
[0:0] -A OUTPUT -p tcp -m tcp --dport 5000 -j DROP
[0:0] -A OUTPUT -p udp -m udp --dport 5000 -j DROP
# 原来是用来跑 vpn 的,呵呵,我误解了。
#

#
# 防止 Internet 网的用户访问 SAMBA 服务器:
[0:0] -A INPUT -s 61.185.218.x -i eth1 -p tcp -m tcp --dport 137:139 -j DROP
[0:0] -A INPUT -s 61.185.218.x -i eth1 -p udp -m udp --dport 137:139 -j DROP
[0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 137:139 -j ACCEPT
[0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p udp -m udp --dport 137:139 -j ACCEPT
[0:0] -A INPUT -s 61.185.218.x/255.255.255.252 -i eth1 -p tcp -m tcp --dport 137:139 -j ACCEPT
[0:0] -A INPUT -s 61.185.218.x/255.255.255.252 -i eth1 -p udp -m udp --dport 137:139 -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp --dport 137:139 -j DROP
[0:0] -A INPUT -p udp -m udp --dport 137:139 -j DROP
#

#
# 对于本局域网用户不拒绝访问:
#[0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p tcp -j ACCEPT
#[0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p udp -j ACCEPT
#

#
[0:0] -A INPUT -i eth1 -p udp -m udp --dport 3 -j DROP
[0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 3 -j DROP
[0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 111 -j DROP
[0:0] -A INPUT -i eth1 -p udp -m udp --dport 111 -j DROP
#

#
[0:0] -A INPUT -i eth1 -p udp -m udp --dport 587 -j DROP
[0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 587 -j DROP
#

# 防止 Internet 用户访问 SQUID 的 3128 端口:
#[0:0] -A INPUT -s 61.185.218.x -i eth1 -p tcp -m tcp --dport 3128 -j DROP
#[0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 3128 -j ACCEPT
#[0:0] -A INPUT -s 61.185.218.x/255.255.255.240 -i eth1 -p tcp -m tcp --dport 3128 -j ACCEPT
#[0:0] -A INPUT -p tcp -m tcp --dport 3128 -j DROP
#

# 让人家 ping 不通我 !
#[0:0] -A INPUT -i eth1 -s 192.168.30.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT
#[0:0] -A INPUT -i eth1 -s 61.185.218.x/28 -p icmp -m icmp --icmp-type 8 -j ACCEPT
#[0:0] -A INPUT -i eth1 -p icmp -m icmp --icmp-type 8 -j DROP
#

COMMIT
# ======================= 结束 =======================
[/code:1]

因为已经有几十台机器在上网。。自己不敢乱试,网断的太久会有一群人满大街追我的 。。。
回复

使用道具 举报

 楼主| 发表于 2006-9-26 14:30:42 | 显示全部楼层
还是么人鸟.....继续自己顶....
折腾一天,脑袋都大了
别叫我自己google....网上看了N篇文章全是陈芝麻烂谷子的...对不上号
求好心人放上一个针对Magic的简单配置方法,具体要修改哪些文件。只需要MAGIC做个中小型局域网的外网服务器,让内网用户能通过magic上网,具体透明代理和防火墙路由什么的都暂时不做要求...
再次谢过了~
回复

使用道具 举报

发表于 2006-9-26 15:48:43 | 显示全部楼层
LINUX网络设置:
内网IP:192.168.0.1
子网掩码:255.255.255.0
网关:空(自动获得)
DNS:根据各地的网络服务商不同.

WIN设置:
192.168.0.2
255.255.255.0
192.168.0.1
DNS和主机是一样的。

用KWRITE打开LINUX主机的/etc/rc.d/rc.local
在最后补上内容
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.1/24 -j MASQUERADE
运行一下rc.local
这样就OK里 。

我 的 是 ADSL拨号加网卡测试成功。
回复

使用道具 举报

 楼主| 发表于 2006-9-26 17:09:46 | 显示全部楼层
还是不行。。。不过谢谢楼上的兄弟了


eth0接外网,IP 61.185.218.X  / 255.255.255.252  网关61.185.218.XX
eth1连局域网, 192.168.1.254 / 255.255.255.0  网关空
其他客户机在192.168.1.X段,网关添192.168.1.254
rc.local中我是这么写的
[code:1]
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE
[/code:1]
不知道写对了没。。
另外内核我更新到2.6.17.9了,会不会影响到IPTAB?
直接在KONSOLE中输入上述代码,返回结果如下。。。

iptables v1.3.2: can't initialize iptables table `nat': iptables who? (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
回复

使用道具 举报

发表于 2006-10-10 21:07:28 | 显示全部楼层
顶一下。
回复

使用道具 举报

发表于 2006-10-12 12:45:16 | 显示全部楼层
用LINUX做局域网的服务器,重点是打开LINUX的IP转发功能,WIN里面是默认的,而LINUX是默认关闭的,qdzhh兄弟写的那个是我发在网络区的,但情况是,我的ML是ADSL上网,rc.local里面我曾经也和你一样设置,但失败了,最后就是写了

echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.1/24 -j MASQUERADE

其中echo "1" > /proc/sys/net/ipv4/ip_forward 用来打开LINUX的IP转发功能。最后一句是定义网段
另外,留意一下你的eth0和eth1有没有被激活,有时候不小心就忘了激活~~
另外,我的sysctl.conf内容:
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl( and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
#这里也需要打开~~
net.ipv4.ip_forward = 1

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# This value can be between 0 and 100. Close to 0 will mean that the kernel should empty some ram, and a higher value close to 100 will tell the kernel to use the swap memory more often.The default value is 60.
vm.swappiness = 40

# Enable normal users to use the hardware RTC timer
dev.rtc.max-user-freq = 1024
回复

使用道具 举报

 楼主| 发表于 2006-10-15 14:12:18 | 显示全部楼层
基本上搞定了,把相关文件帖出来供后人参考..
ifconfig输出:
  1. eth0      Link encap:Ethernet  HWaddr 00:0A:EB:2E:3A:8E
  2.           inet addr:192.168.1.254  Bcast:192.168.1.255  Mask:255.255.255.0
  3.           inet6 addr: fe80::20a:ebff:fe2e:3a8e/64 Scope:Link
  4.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  5.           RX packets:262952835 errors:0 dropped:0 overruns:0 frame:0
  6.           TX packets:281489237 errors:0 dropped:0 overruns:0 carrier:0
  7.           collisions:0 txqueuelen:1000
  8.           RX bytes:3819346067 (3.5 GiB)  TX bytes:1067214599 (1017.7 MiB)
  9.           Interrupt:18 Base address:0x4000

  10. eth1      Link encap:Ethernet  HWaddr 00:E0:11:02:1E:85
  11.           inet addr:61.185.218.xx  Bcast:61.185.218.xx  Mask:255.255.255.252
  12.           inet6 addr: fe80::2e0:11ff:fe02:1e85/64 Scope:Link
  13.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  14.           RX packets:288699399 errors:0 dropped:0 overruns:0 frame:0
  15.           TX packets:265399395 errors:0 dropped:0 overruns:0 carrier:0
  16.           collisions:0 txqueuelen:1000
  17.           RX bytes:1945558689 (1.8 GiB)  TX bytes:4014676411 (3.7 GiB)
  18.           Interrupt:16 Base address:0xc000

  19. lo        Link encap:Local Loopback
  20.           inet addr:127.0.0.1  Mask:255.0.0.0
  21.           inet6 addr: ::1/128 Scope:Host
  22.           UP LOOPBACK RUNNING  MTU:16436  Metric:1
  23.           RX packets:2113 errors:0 dropped:0 overruns:0 frame:0
  24.           TX packets:2113 errors:0 dropped:0 overruns:0 carrier:0
  25.           collisions:0 txqueuelen:0
  26.           RX bytes:2277879 (2.1 MiB)  TX bytes:2277879 (2.1 MiB)
复制代码

/etc/rc.d/rc.local:
  1. touch /var/lock/subsys/local
  2. echo 1>/proc/sys/net/ipv4/ip_forward
复制代码


/etc/sysctl.conf:
  1. net.ipv4.ip_forward = 1
  2. net.ipv4.conf.default.rp_filter = 1
  3. net.ipv4.conf.default.accept_source_route = 0
  4. kernel.sysrq = 0
复制代码


ML默认似乎是关闭IPTABLES的,在konsole下输入/etc/init.d/iptables save后,会在/etc/sysconfig下生成iptables文件
iptables内容:
  1. # Generated by iptables-save v1.3.5 on Fri Oct 13 12:04:47 2006
  2. *mangle
  3. :PREROUTING ACCEPT [0:0]
  4. :OUTPUT ACCEPT [0:0]
  5. COMMIT
  6. *nat
  7. :PREROUTING ACCEPT [0:0]
  8. :POSTROUTING ACCEPT [2:120]
  9. :OUTPUT ACCEPT [2:120]
  10. #-A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADE
  11. [0:0] -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 61.185.218.xx
  12. # 端口映射
  13. #-A PREROUTING -p tcp -d 61.185.218.xx --dport 8086 -j DNAT --to 192.168.1.215:8086
  14. #-A PREROUTING -p tcp -d 61.185.218.xx --dport 21 -j DNAT --to 192.168.1.252:21
  15. #-A PREROUTING -p tcp -d 61.185.218.xx --dport 20 -j DNAT --to 192.168.1.252:20
  16. COMMIT
  17. # Completed on Fri Oct 13 12:04:47 2006
  18. # Generated by iptables-save v1.3.5 on Fri Oct 13 12:04:47 2006
  19. *filter
  20. :INPUT ACCEPT [1750:1386908]
  21. :FORWARD ACCEPT [0:0]
  22. :OUTPUT ACCEPT [1754:1387068]
  23. # 屏蔽 来自 microsoft 的站点:
  24. [0:0] -A INPUT -s 207.46.0.0/255.255.0.0 -j DROP
  25. [0:0] -A INPUT -d 207.46.0.0/255.255.0.0 -j DROP
  26. # 防止arp欺骗:
  27. [0:0] -A INPUT -d 192.168.1.0/255.255.255.0 -i eth1 -j DROP
  28. [0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth1 -j DROP
  29. [0:0] -A OUTPUT -d 192.168.1.0/255.255.255.0 -o eth1 -j DROP
  30. [0:0] -A OUTPUT -s 192.168.1.0/255.255.255.0 -o eth1 -j DROP
  31. # 防止广播包从IP代理服务器进入局域网:
  32. [0:0] -A INPUT -s 255.255.255.255 -i eth0 -j DROP
  33. [0:0] -A INPUT -s 224.0.0.0/224.0.0.0 -i eth0 -j DROP
  34. [0:0] -A INPUT -d 0.0.0.0 -i eth0 -j DROP
  35. # 屏蔽 windows xp 的 5000 端口(vpn)
  36. [0:0] -A INPUT -p tcp -m tcp --sport 5000 -j DROP
  37. [0:0] -A INPUT -p udp -m udp --sport 5000 -j DROP
  38. [0:0] -A OUTPUT -p tcp -m tcp --dport 5000 -j DROP
  39. [0:0] -A OUTPUT -p udp -m udp --dport 5000 -j DROP
  40. # 防止 Internet 网的用户访问 SAMBA 服务器:
  41. [0:0] -A INPUT -s 61.185.218.xx -i eth1 -p tcp -m tcp --dport 137:139 -j DROP
  42. [0:0] -A INPUT -s 61.185.218.xx -i eth1 -p udp -m udp --dport 137:139 -j DROP
  43. [0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 137:139 -j ACCEPT
  44. [0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p udp -m udp --dport 137:139 -j ACCEPT
  45. [0:0] -A INPUT -s 61.185.218.xx/255.255.255.252 -i eth1 -p tcp -m tcp --dport 137:139 -j ACCEPT
  46. [0:0] -A INPUT -s 61.185.218.xx/255.255.255.252 -i eth1 -p udp -m udp --dport 137:139 -j ACCEPT
  47. [0:0] -A INPUT -p tcp -m tcp --dport 137:139 -j DROP
  48. [0:0] -A INPUT -p udp -m udp --dport 137:139 -j DROP
  49. # 对于本局域网用户不拒绝访问:
  50. [0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p tcp -j ACCEPT
  51. [0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p udp -j ACCEPT
  52. [0:0] -A INPUT -i eth1 -p udp -m udp --dport 3 -j DROP
  53. [0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 3 -j DROP
  54. [0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 111 -j DROP
  55. [0:0] -A INPUT -i eth1 -p udp -m udp --dport 111 -j DROP
  56. [0:0] -A INPUT -i eth1 -p udp -m udp --dport 587 -j DROP
  57. [0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 587 -j DROP
  58. # 让人家 ping 不通我 !
  59. #[0:0] -A INPUT -i eth1 -s 192.168.1.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT
  60. #[0:0] -A INPUT -i eth1 -s 61.185.218.xx/28 -p icmp -m icmp --icmp-type 8 -j ACCEPT
  61. #[0:0] -A INPUT -i eth1 -p icmp -m icmp --icmp-type 8 -j DROP
  62. COMMIT
  63. # Completed on Fri Oct 13 12:04:47 2006
复制代码


OK,测试了2天,没有发生过异常
另外请教一下关于端口映射,不知道偶的iptables文件中写对了没

[ 本帖最后由 lockfan 于 2008-2-28 19:42 编辑 ]
回复

使用道具 举报

发表于 2006-10-16 20:54:40 | 显示全部楼层
好人
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-4 12:14 , Processed in 0.078014 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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