首页 > 开发 > 综合 > 正文

局域网通过LINUX主机上网手记

2024-07-21 02:37:45
字体:
来源:转载
供稿:网友

  前两天接到一项任务,要把一个局域网的机器通过一台机器上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(可以用的参数startstopstart)
  然后用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 # 可以用的参数 startstoprestart
  这时候去局域网的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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表