如何用 MagicLinux 2.0 做主机共享上网?
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 如何端口映射?需要什么软件?
谢过先~。。在线等 心里那个凉阿~~.... :cry::cry:
么人鸟偶......
找了好多资料,直接COPY了某大大的iptab配置文件,只是修改了IP。。。。好心人指点下吧。。。
# 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
# ======================= 结束 =======================
因为已经有几十台机器在上网。。自己不敢乱试,网断的太久会有一群人满大街追我的 。。。 还是么人鸟.....继续自己顶....
折腾一天,脑袋都大了
别叫我自己google....网上看了N篇文章全是陈芝麻烂谷子的...对不上号
求好心人放上一个针对Magic的简单配置方法,具体要修改哪些文件。只需要MAGIC做个中小型局域网的外网服务器,让内网用户能通过magic上网,具体透明代理和防火墙路由什么的都暂时不做要求...
再次谢过了~ :cry: 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拨号加网卡测试成功。 还是不行。。。不过谢谢楼上的兄弟了
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中我是这么写的
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE
不知道写对了没。。
另外内核我更新到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. 顶一下。 用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(8) 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 基本上搞定了,把相关文件帖出来供后人参考..
ifconfig输出:
eth0 Link encap:EthernetHWaddr 00:0A:EB:2E:3A:8E
inet addr:192.168.1.254Bcast:192.168.1.255Mask:255.255.255.0
inet6 addr: fe80::20a:ebff:fe2e:3a8e/64 Scope:Link
UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
RX packets:262952835 errors:0 dropped:0 overruns:0 frame:0
TX packets:281489237 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3819346067 (3.5 GiB)TX bytes:1067214599 (1017.7 MiB)
Interrupt:18 Base address:0x4000
eth1 Link encap:EthernetHWaddr 00:E0:11:02:1E:85
inet addr:61.185.218.xxBcast:61.185.218.xxMask:255.255.255.252
inet6 addr: fe80::2e0:11ff:fe02:1e85/64 Scope:Link
UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
RX packets:288699399 errors:0 dropped:0 overruns:0 frame:0
TX packets:265399395 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1945558689 (1.8 GiB)TX bytes:4014676411 (3.7 GiB)
Interrupt:16 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNINGMTU:16436Metric:1
RX packets:2113 errors:0 dropped:0 overruns:0 frame:0
TX packets:2113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2277879 (2.1 MiB)TX bytes:2277879 (2.1 MiB)
/etc/rc.d/rc.local:
touch /var/lock/subsys/local
echo 1>/proc/sys/net/ipv4/ip_forward
/etc/sysctl.conf:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
ML默认似乎是关闭IPTABLES的,在konsole下输入/etc/init.d/iptables save后,会在/etc/sysconfig下生成iptables文件
iptables内容:
# Generated by iptables-save v1.3.5 on Fri Oct 13 12:04:47 2006
*mangle
:PREROUTING ACCEPT
:OUTPUT ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
#-A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADE
-A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 61.185.218.xx
# 端口映射
#-A PREROUTING -p tcp -d 61.185.218.xx --dport 8086 -j DNAT --to 192.168.1.215:8086
#-A PREROUTING -p tcp -d 61.185.218.xx --dport 21 -j DNAT --to 192.168.1.252:21
#-A PREROUTING -p tcp -d 61.185.218.xx --dport 20 -j DNAT --to 192.168.1.252:20
COMMIT
# Completed on Fri Oct 13 12:04:47 2006
# Generated by iptables-save v1.3.5 on Fri Oct 13 12:04:47 2006
*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
# 屏蔽 来自 microsoft 的站点:
-A INPUT -s 207.46.0.0/255.255.0.0 -j DROP
-A INPUT -d 207.46.0.0/255.255.0.0 -j DROP
# 防止arp欺骗:
-A INPUT -d 192.168.1.0/255.255.255.0 -i eth1 -j DROP
-A INPUT -s 192.168.1.0/255.255.255.0 -i eth1 -j DROP
-A OUTPUT -d 192.168.1.0/255.255.255.0 -o eth1 -j DROP
-A OUTPUT -s 192.168.1.0/255.255.255.0 -o eth1 -j DROP
# 防止广播包从IP代理服务器进入局域网:
-A INPUT -s 255.255.255.255 -i eth0 -j DROP
-A INPUT -s 224.0.0.0/224.0.0.0 -i eth0 -j DROP
-A INPUT -d 0.0.0.0 -i eth0 -j DROP
# 屏蔽 windows xp 的 5000 端口(vpn)
-A INPUT -p tcp -m tcp --sport 5000 -j DROP
-A INPUT -p udp -m udp --sport 5000 -j DROP
-A OUTPUT -p tcp -m tcp --dport 5000 -j DROP
-A OUTPUT -p udp -m udp --dport 5000 -j DROP
# 防止 Internet 网的用户访问 SAMBA 服务器:
-A INPUT -s 61.185.218.xx -i eth1 -p tcp -m tcp --dport 137:139 -j DROP
-A INPUT -s 61.185.218.xx -i eth1 -p udp -m udp --dport 137:139 -j DROP
-A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 137:139 -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p udp -m udp --dport 137:139 -j ACCEPT
-A INPUT -s 61.185.218.xx/255.255.255.252 -i eth1 -p tcp -m tcp --dport 137:139 -j ACCEPT
-A INPUT -s 61.185.218.xx/255.255.255.252 -i eth1 -p udp -m udp --dport 137:139 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 137:139 -j DROP
-A INPUT -p udp -m udp --dport 137:139 -j DROP
# 对于本局域网用户不拒绝访问:
-A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p tcp -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -p udp -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --dport 3 -j DROP
-A INPUT -i eth1 -p tcp -m tcp --dport 3 -j DROP
-A INPUT -i eth1 -p tcp -m tcp --dport 111 -j DROP
-A INPUT -i eth1 -p udp -m udp --dport 111 -j DROP
-A INPUT -i eth1 -p udp -m udp --dport 587 -j DROP
-A INPUT -i eth1 -p tcp -m tcp --dport 587 -j DROP
# 让人家 ping 不通我 !
# -A INPUT -i eth1 -s 192.168.1.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT
# -A INPUT -i eth1 -s 61.185.218.xx/28 -p icmp -m icmp --icmp-type 8 -j ACCEPT
# -A INPUT -i eth1 -p icmp -m icmp --icmp-type 8 -j DROP
COMMIT
# Completed on Fri Oct 13 12:04:47 2006
OK,测试了2天,没有发生过异常
另外请教一下关于端口映射,不知道偶的iptables文件中写对了没 :oops:
[ 本帖最后由 lockfan 于 2008-2-28 19:42 编辑 ] 好人
页:
[1]