星期六, 三月 03, 2007

用CDlinux做防火墙和上网共享(z)

用CDlinux做防火墙和上网共享

为什么要选用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一样,功能远不止这些,你还可以在其上安装各种代理软件,将其建成功能强大的集防火墙、透明代理为一身的系统。它还会常常被用来维护系统。至于你用它来作什么,全由你决定。

没有评论: