用CDlinux做防火墙和上网共享

发表于:2007-07-04来源:作者:点击数: 标签:
为什么要选用linux? 因为linux稳定, 安全 ,对计算机硬件要求低。 何为CDlinux? CDlinux为在linux基础上制作的,针对光盘运行的linux,但其还可以安装到硬盘、优盘上。详见 http://cdlinux.berlios.de/ 为什么要选用CDlinux? 因为CDlinux体积小(仅需20M

  为什么要选用linux?
  因为linux稳定,安全,对计算机硬件要求低。
  
  何为CDlinux?
  CDlinux为在linux基础上制作的,针对光盘运行的linux,但其还可以安装到硬盘、优盘上。详见http://cdlinux.berlios.de/
  
  为什么要选用CDlinux?
  因为CDlinux体积小(仅需20M硬盘空间),易定制(软件包采用标准tgz包),又基本具备完整linux的所有功能,理论上你可以安装任何linux版本的软件,而且内核更新很快(0.4.7版内核为2.4.23,0.4.8版内核为2.4.25),用其做防火墙完全可以满足需要。
  
  硬件配置586,24M内存,40M硬盘两块网卡。
  
  1、先从http://cdlinux.berlios.de/下载cdlinux。然后按其帮助文档将其安装到硬盘上。
  
  2、建立/etc/rc.d/rc.local脚本
  
  内容如下:
  #!/bin/sh
  /etc/rc.d/netshare
  #执行网卡配置
  /etc/rc.d/firewall
  #执行防火墙脚本
  
  3、建立/etc/rc.d/netshare脚本
  
  内容如下:
  #!/bin/sh
  if [ -f \"/etc/dhcpc/dhcpcd-eth0.pid\" ] ; then
  rm /etc/dhcpc/dhcpcd-eth0.pid -rf
  fi
  #eth0为对外网卡,我们的上网方式是动态ip,如果你的不是那得改成......
  #判断是否已经运行过dhcpcd,如果是,删除生成的dhcpcd-eth0.pid文件,重新获得ip地址
  dhcpcd eth0
  ifconfig eth1 192.168.0.254
  #192.168.0.254是对内网关地址,eth1为对内网卡
  if [ -f \"/etc/dhcpc/dhcpcd-eth0.pid\" ] ; then
  rm /etc/dhcpc/dhcpcd-eth0.pid -rf
  fi
  dhcpcd eth0
  
  #我的系统,第一次获得ip好像有些不正常,所以又执行了一次,你看情况吧
  
  4、建立/etc/rc.d/firewall防火墙脚本
  
  防火墙脚本,iptables的功能十分强大,就不给出内容了,你可以参考别人的脚本建立。
  
  
  5、删除系统默认用户ok,并修改root口令,这一步很重要哦,否则........
  
  6、如果为0.4.7版,请将dhcpcd-1.3.22-pl4-cdl.tgz(在586cpu上运行有问题),iptables-1.2.9-cdl.tgz包替换为0.4.8版中的对应包(我没有具体试过,我是在0.4.7基础上修改包的,如果有问题干脆直接用0.4.8版)。
  
  删除用不到的包(必须,因为机子的内存才24M,否则不正常可别怪我没有告诉你),保留以下包:
  
  cce-0.50-20031205-cdl.md(如果希望显示和输入汉字)
  dcron-2.3.3-cdl.tgz(如果想根据时间来控制防火墙,应保留)
  dhcpcd-1.3.22-pl4-cdl.tgz(必须)
  iptables-1.2.9-cdl.tgz(必须)
  kernel-modules-2.4.23-cdl.md(必须)
  smbmount-samba-2.2.8a-cdl.tgz(与网内机子沟通方便,但不利于安全。防火墙配置好后,建议去掉)
  ssh-1.2.33-cdl.tgz(可以进行远程管理)
  system-extra-cdl.tgz(必须)
  
  7、以上的配置完成了,为了以后管理方便,请制作以下脚本:
  
  #!/bin/sh
  chmod +x /etc/rc.d/netshare /etc/rc.d/firewall /etc/rc.d/rc.local /root/NetShareConfig
  
  if [ -f \"/mnt/CDlinux/cdlinux/extra/rc.local-cdl.tgz\" ] ; then
  rm /mnt/CDlinux/cdlinux/extra/rc.local-cdl.tgz
  fi
  #删除原来的包rc.local-cdl.tgz
  
  if [ -f \"/mnt/CDlinux/cdlinux/extra/netshare-cdl.tgz\" ] ; then
  rm /mnt/CDlinux/cdlinux/extra/netshare-cdl.tgz
  fi
  #
  
  if [ -f \"/mnt/CDlinux/cdlinux/extra/root-cdl.tgz\" ] ; then
  rm /mnt/CDlinux/cdlinux/extra/root-cdl.tgz
  fi
  
  #
  
  tar czPfc /mnt/CDlinux/cdlinux/extra/rc.local-cdl.tgz /etc/rc.d/rc.local
  #生成新的包rc.local-cdl.tgz
  tar czPfc /mnt/CDlinux/cdlinux/extra/netshare-cdl.tgz /etc/rc.d/netshare /etc/rc.d/firewall /usr/local/lib
  
  #
  netshare为网卡初始化脚本,firewall为防火墙脚本,lib为库连接文件=>/usr/lib(为CDlinux0.4.7版本iptables的一个bug,在CDlinux0.4.8版本不需要)
  tar czPfc /mnt/CDlinux/cdlinux/extra/root-cdl.tgz /etc/passwd /etc/shadow /root/NetShareConfig
  
  #passwd,shadow为修改过用户后的口令相关文件(很重要),NetShareConfig为本文件自身(否则下次就不能使用了)
  
  将其保存为/root/NetShareConfig
  
  执行sh /root/NetShareConfig (执行后NetShareConfig就具备可执行属性,下次直接执行就可以了),程序会生成以下文件并放置于硬盘cdlinux\\extra目录下
  
  netshare-cdl.tgz
  rc.local-cdl.tgz
  root-cdl.tgz
  
  注意:修改任意配置文件,请保证测试正常后,一定执行本脚本,否则启动后配置文件会丢失。
  
  8、重新启动计算机,看是否一切都正常。
  
  当然,作为linux的CDlinux同标准linux一样,功能远不止这些,你还可以在其上安装各种代理软件,将其建成功能强大的集防火墙、透明代理为一身的系统。它还会常常被用来维护系统。至于你用它来作什么,全由你决定。

原文转自:http://www.ltesting.net