欢迎光临
我们一直在努力

局域网通过LINUX主机上网手记-网管专栏,防火墙和路由

建站超值云服务器,限时71元/月

    前两天接到一项任务,要把一个局域网的机器通过一台机器上internet,这样的事情做过不少,无非是选一台好点的机器装上sygate什么的就行了,但是这次不同,人家非要求用linux,说什么稳定。——本人对此并无异议,只好放弃最熟悉的win,开始试这把牛刀,linux其实很早就玩过,不过只是玩玩而已。
***
    首先配置网络,把局域网的机器全部使用私有ip(192.168.0.*,其中dns和代理用44,别人不愿意用这个嘛),如果大家有兴趣还可以试试dhcp,反正我是干完就好也无所谓了,这里不说。
操作系统这次选择的是turbolinux,这版本自己带了不少东西,不管那么多,反正有squid可以做代理应该就可以拉,安装过程还算顺利(就算有麻烦也不会在这里说)。
***
    设置域名服务dns,其实简单的设个缓存能够找到你的isp就可以(当然你要架站另当别论,不过只能指向真实ip,如果你有足够多的ip,速度够快还可以搞托管赚钱)
设置dns要修改这些文件:
/etc/host.conf
/etc/resolv.conf
/etc/named.boot # bind4
/etc/named.conf # bind8
# 以下路径以及文件名在named.boot和named.conf中设定
具体的设置请大家翻书吧,最经典的是《dns 与 bind》o’reilly的
/var/named/named.cache # 寻找根dns
/var/named/named.local # 设置本地主机
/var/named/named.host # 设置域名——》ip解析
/var/named/named.rev # 设置ip——》域名解析
以上的还可以用turbolinux的 turbonetcfg来设置。完成后记得把named进程重启动一把:
/etc/rc.d/init.d/named restart(可以用的参数start|stop|start)
然后用nslookup测试,看能不能解析成功,还可以用 any、ns 等参数
***
然后开始设置squid。
turbolinux所带的squid配置文件在/etc/squid/squid.conf(别的系统我可不敢说)
改如下的几行够用就行:
http_port 3128
# 默认代理服务器的端口
cache_mem 24 mb
# 在内存中开辟出缓冲区
cache_dir /var/spool/squid 2048 16 256
# 开辟硬盘缓冲区
# 各种log文件(可以只要access.log)
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/run/squid.pid # 也可以不要这个进程文件
#自己的dns服务器
dns_nameservers 192.168.0.44
# 这些都是系统缺省的,核对就行了。如果要设置其他可以看注释,很简单的
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl allowed_hosts src 192.168.0.0/255.255.255.0
acl ssl_ports port 443 563
acl safe_ports port 80 21 443 563 70 210 1025-65535
acl connect method connect
http_access allow manager localhost
http_access deny manager
http_access deny !safe_ports
http_access deny connect !ssl_ports
http_access allow localhost
http_access deny all # 改为 http_access allow all 允许所有机器存取
icp_access allow all
miss_access allow all
设置好以后记得启动squid让设置生效
/etc/rc.d/init.d/squid start # 可以用的参数 start|stop|restart
这时候去局域网的win98上设置dns、网关,在ie里设置代理服务器的ip和端口号
我用的是192.168.0.44:3128,你需要reboot你的win98,然后试试看,应该可以访问web了。
成功了吗?如果你只要访问网页这就可以,不过如果你想用oicq和outlook还得望下看。
****
最后该设置ipchains:(一定要内核支持ip转发才好,不然还得重连内核)
turbilinux的配置在这里/usr/src/linux/configs/kernel-2.2.13-i686.config
如果不是这套系统可不一定在哦。或许会在/usr/src/linux/.config 自己找吧
该文件中如果有这些就不必重连内核了否则自己想办法
config_ip_firewall=y
config_ip_masquerade=y
config_ip_masquerade_icmp=y
config_ip_masquerade_mod=y
config_ip_masquerade_ipautofw=m
config_ip_masquerade_ipportfw=m
config_ip_masquerade_mfw=m
否则要连内核或者换一套linux(最简单)
如果不是y是m,表示是模块支持,得加模块
启动ip转发功能:
原先什么也没有长度是0,重起机后也是0
echo 1 > /proc/sys/net/ipv4/ip_forward
相应的模块在/lib/modules/2.2.13/ipv4目录中,装入它们:
depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_portfw
/sbin/modprobe ip_masq_user
/sbin/modprobe ip_masq_autofw
/sbin/modprobe ip_masq_quake
/sbin/modprobe ip_masq_vdolive
/sbin/modprobe ip_masq_cuseeme
/sbin/modprobe ip_masq_mfw
/sbin/modprobe ip_masq_raudio
以上的可要手工输入的最好制作一个脚本:ipchains.start
不然每次手工敲还不累死你
现在测试一下ipchains:
# ipchains -l
chain input (policy accept):
chain forward (policy accept):
chain output (policy accept):
好了,我们运行:
# ipchains -p forward deny
然后看 ipchains -l,变成了
chain input (policy accept):
chain forward (policy deny):
chain output (policy accept):
继续下去:
# ipchains -a forward -s 192.168.0.0/255.255.255.0 -j masq
再看 ipchains -l:
chain input (policy accept):
chain forward (policy deny):
target prot opt source destination ports
masq all —— 192.168.0.0/24 anywhere n/a
chain output (policy accept):
这样就好了。测试吧。记得把最后的两行也加入脚本ipchains.start
# ip masq
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_portfw
/sbin/modprobe ip_masq_user
/sbin/modprobe ip_masq_autofw
/sbin/modprobe ip_masq_quake
/sbin/modprobe ip_masq_ vdolive
/sbin/modprobe ip_masq_cuseeme
/sbin/modprobe ip_masq_mfw
/sbin/modprobe ip_masq_raudio
/sbin/ipchains -p forward deny
/sbin/ipchains -a forward -s 192.168.0.0/255.255.255.0 -j masq
chmod 777 ipchains.start
以后每次reboot后要这样启动squid和ipchains
/etc/rc.d/init.d/squid start
/etc/ipchains.start # 看你把这个脚本放哪里了
当然,如果要省事,最好把这两行放进系统初始化的文件里,让每次reboot的时候能够自动调用。
我的初始化文件在/etc/rc.d/rc.sysinit(你的是不是我就不管了)在该文件的最后加入如下:
/etc/rc.d/init.d/squid start
/etc/ipchains.start
好了,这样你局域网里的机器就不仅可以上网浏览,还可以用oicq和outlook等软件了。如果有问题,可以发mail和我交流 sandj@china.com

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 局域网通过LINUX主机上网手记-网管专栏,防火墙和路由
分享到: 更多 (0)