利用Devil-Linux打造安全SOHO服务器


对于SOHO一族来说,该采取怎样的措施来确保自己的小型办公网、服务器的安全无忧呢?采用免费的Linux操作系统来构造一套完整的办公网络无疑是一个很好的选择。可是,没有任何一个系统是绝对安全的,任何接入互联网的系统和服务器都会受到探测并可能遭到***。正是因为Linux操作系统被公认为是比较安全,运行比较稳定的操作系统,所以许多IT Administrators安装Linux后,由于粗心大意或者能力有限的原因并没有能很好的保护它们。
SOHO一族正是面对着这样一个矛盾:即需要高效稳定安全的Linux操作系统构造SOHO办公网络,对内对外提供各种服务,但是却又无力去配置和管理好安装有Linux操作系统的服务器。我们今天就来帮大家解决这个问题!


综合特点
Devil-Linux最初的设计用途是作为专业的Linux防火墙/路由,Devil-Linux官方网站也宣称Devil-Linux是市场上最好的Linux防火墙。实际上,Devil-Linux目前的使用者大多数为SOHO一族和IT Administrators。它具有非常多值得关注的优点:

1. Devil-Linux完全由光盘启动,整个系统除了配置文件之外,全部制作在一张光盘里面。无需硬盘的光盘启动模式的Linux意味着很高程度上的安全,因为一些Linux下的***程序如“ROOTKIT”将无法在这个系统中安装。
2. Devil-Linux也可以由USB移动存储设备启动。在没有安装CDROM的计算机里,只要接入USB移动存储设备亦可启动Devil-Linux。
3. Devil-Linux所有的配置文件保存在软盘或者USB存储介质中,不需要保存在硬盘,容易备份配置文件,不同的管理员可以拥有不同的系统配置,机动性也很高。整个Devil-Linux系统引导、配置后没有任何改动,提高了系统及服务的安全性。
4. Devil-Linux对硬盘的依赖性不大。对于Devil-Linux来说,计算机硬盘是可有可无的。如果系统管理员使用Devil-Linux作为Mail服务器或者文件服务器,那么Devil-Linux也能通过自身的Logical Volume Manager(逻辑卷标管理器)来对磁盘进行管理,无论计算机的硬盘是1G还是1T的容量,都可以分配管理。Devil-Linux还提供了软件RAID功能,可以把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据冗余。数据冗余的功能是在用户数据一旦发生损坏后,利用冗余信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。这对提供数据服务的网站来说是很实用的一项功能。
5. Devil-Linux对计算机硬件系统要求很低,从486的低端计算机到高级的专业服务器都能使用。SOHO一族可以将那些不再使用的低级计算机安装Devil-Linux来作为防火墙或者路由器也是足够的,节省了买专业服务器的资金。Devil-Linux的最小运行配置如下:
处理器 PC 486 DX2/66-class 或更高
内存 32MB RAM
其他 可启动的ATAPI、SCSI CD-ROM drive 或 USB Device
1.44" 软驱或 USB 设备
任何网络接口, 10/100MBps 网卡, 外置的ISDN-Modem

6. Devil-Linux支持IPTables/Netfilter。各种流行的Linux版本都提供了一个非常优秀的防火墙工具—Netfilter/iptables。它完全免费、功能强大、使用灵活、可以对流入和流出的信息进行细化控制,且可以在一台低配置机器上很好地运行。

小知识:Netfilter/iptabels应用程序被认为是Linux中实现包过滤功能的第四代应用程序。Netfilter/iptables包含在2.4以后的内核中,它可以实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。Netfilter工作在内核内部,而Iptables则是让用户定义规则集的表结构。Netfilter/iptables从Ipchains和Ipwadfm(IP防火墙管理)演化而来,功能更加强大。

7. Devil-Linux支持多用户配置。不同的用户可以根据自己的需求对Devil-Linux进行定制。只需更换不同的配置软盘,Devil-Linux就能实现不同的功能。例如SOHO中熟悉网络安全的管理员可以将Devil-Linux配置成专业的Linux防火墙,而管理网站的管理员可以将Devil-Linux配置成WEB,EMAIL服务器,这些配置分开存放,也能保证Devil-Linux系统的安全,这是和一般的Linux版本不同之处。
8. Devil-Linux不支持图形化桌面。例如一般流行版本所提供的X-Server等图形化桌面Devil-Linux都没有提供,原因很简单,一个是安全性问题,二是要提高系统工作效率,三是Devil-Linux主要提供的是各种服务,配置简单,修改几个参数即可,有VI这个编辑工具足够,无需占用空间巨大的图形化桌面。
9. Devil-Linux内置GUI防火墙编译器。配置防火墙是Devil-Linux提供的最重要的组成部分,Devil-Linux内置GUI防火墙编译器能使得管理员直观得、方便的编写出防火墙规则,减轻了使用者手工编写防火墙规则的工作量。
10. Devil-Linux对系统及应用程序的二进制编译进行了安全保护处理,提高了Devil-Linux整体安全性能。Devil-Linux中除了一小部分例外,绝大部分系统及应用程序的二进制编译都采取了GCC Stack Smashing Protector。这种基于堆栈加强保护的GCC编辑技术使整个系统增强了对缓冲区冲溢出***抗击能力。
11. Devil-Linux通过GRSecurity改进和提高了内核的安全性。对于Linux操作系统来说,内核决定了整个Linux系统的安全性。

小知识:ACL(Access Control List,访问控制列表)系统是一种软件,它能够为你的计算机提供更好的访问控制。GRSecurity是众多Linux ACL系统中比较典型和成熟的一种。GRSecurity是一种内核安全补丁,使用GRSecurity,系统管理员可以赋予进程尽可能小的权限,从而使***者即使获得了Root权限也无法控制整个系统。

Devil-Linux利用GRSecurity对其内核进行了多项安全性和稳定性方面的改进,相对一些普通版本的Linux来说,Devil-Linux对基于进程的访问控制;基于进程的资源限制;IP访问控制;阻止进程暴力***的限制;完全智能的学习模型;可读的配置文件等方面均有较大程度的提高。

12. Devil-Linux中对为了进一步提高系统安全性,对Chroot“监牢”机制也进行了改进,管理员对Chroot“监牢”机制的使用变得更为简单。

小提示:一般来说,Linux内核都引入了Chroot机制。Chroot是内核中的一个系统调用,软件可以通过调用库函数chRoot,来更改某个进程所能见到的根目录。比如,Apache软件安装在/usr/local/httpd/目录下,以Root用户(或具有相同权限的其它账号)启动Apache,这个Root权限的父进程会派生数个以Nobody权限运行的子进程,具体情况取决于个人设置。父进程监听请求自80端口的TCP数据流,然后根据内部算法将这个请求分配给某个子进程来处理。这时Apache子进程所处的目录继承自父进程,即/usr/local/httpd/。但是一旦目录权限设定失误,被***的Apache子进程可以访问/usr/local、/usr、/tmp,甚至整个文件系统,因为Apache进程所处的根目录仍是整个文件系统的根。如果能够利用chRoot将Apache限制在/usr/local/httpd/,那么,Apache所能存取的文件都是/usr/local/httpd/下的文件或其子目录下的文件。创建chRoot“监牢”的作用就是将进程权限限制在文件系统目录树中的某一子树中。

13. Devil-Linux除了提供能将计算机作为专业防火墙/路由器之外,还提供了如下服务,基本能满足SOHO一族和中小型网站的业务需求。
1) Proxy Server
2) DNS Server
3) Mail Server with TLS support and Spam and Virus filtering
4) HTTP Server
5) FTP Server
6) File Server
7) ×××s with X.509 support
8) DHCP Server
9) NTP Server
10) IDS Node


Devil-Linux的安装和配置
Devil-Linux的安装十分简单,在装有IDE CDROM的计算机中按照如下3个步骤很快就能将Devil-Linux系统顺利的运行起来。
步骤1:下载Devil-Linux光盘镜像文件。
• http://www.devil-linux.org/downloads/index.php中下载devil-linux-<version>.tar.bz2
• 输入命令解包“tar xjf devil-linux-<version>.tar.bz2 ”到临时目录中。
• 阅读doc/CHANGES文档可以得到所以安装和配置帮助。
步骤2:在临时目录中找到bootcd.iso光盘镜像文件,将这个ISO刻录成光盘。这个ISO文件也可以拷贝到Windows操作系统中刻录。
步骤3:用Devil-Linux光盘启动计算机即可进行安装。安装过程如图1、2、3、4、5所示。

图1 Devil-Linux启动时界面

图2 如果你使用的是旧的配置文件,Devil-Linux会提示你更新或移植新的配置


图3 简单选择需要保留的文件


图4 熟悉的启动和登陆界面,需要输入用户名和密码

图5 Devil-Linux主菜单,用户可以在这里对Devil-Linux所有服务进行配置


Devil-Linux的总体配置和安全性配置
和大多数Linux版本一样,Devil-Linux在首次登录后,系统管理必须对Devil-Linux进行一个常规(General Configuration)的配置。在这个初始化配置中,通常包括如下内容,时钟时区配置、硬件参数配置、网络接口、网络参数配置、路由参数配置等,这些配置可以通过图5的主菜单配置来实现,也可以手动修改相应的配置文件实现。这些配置的修改和一般Linux版本无异。如果用户想在旧版本中升级新版本的Devil-Linux(当前最新的版本为V1.2.2),在Devil-Linux的安装使用文档中明确建议用户修改和升级如下文件来保证这个系统兼容性和安全:
• /etc/passwd
• /etc/shadow
• /etc/ipsec.*
• /etc/sshd/*
• /etc/sysconfig/nic/ifcfg-*
• /etc/init.d/rc.firewall
还需要注意的是,由于Devil-Linux是基于光盘运行的操作系统,所以任何修改的配置文件需要写入软盘或USB存储介质中,使用Save-Config命令可以实现配置文件在软盘的写入。修改和写入配置文件无需重新启动Devil-Linux。

下面举例说明在Devil-Linux配置路由方法:路由参数可以在网络接口配置文件中修改,格式为:“GATEWAY:NET/MASK”, 例如:“ROUTE="10.90.1.253:192.168.2.0/255.255.255.0"”。具体的路由配置清单如下:
### ROUTE="GATEWAY:NET/MASK"
#ROUTE="10.90.1.253:192.168.2.0/255.255.255.0"
### if you don't have a gateway use:
#ROUTE=":192.168.2.0/255.255.255.0"
### for more than one route use:
#ROUTE="$ROUTE 10.90.1.252:192.168.3.0/255.255.255.0" #
## if you have only a host:
#ROUTE="$ROUTE 10.90.1.251:172.16.3.14"

除了常规设置之外,对Devil-Linux所提供的各种服务,如WEB、EMAIL、防火墙等的设置也和路由设置一样,熟悉Linux各项服务设置的系统管理员都能很快将Devil-Linux架设成为一台完善的Linux服务器。
这里重点需要说明的是Devil-Linux的安全性配置的问题。前面提到的GRSecurity和Chroot Jails是Devil-Linux所拥有的两项安全模块,建议对这两项安全模块进行很好的配置。GRSecurity的配置文件路径为/etc/sysconfig/grsecurity.proc,通过修改这个文件提高内核的安全性,Linux ACL系统配置文件为/etc/sysconfig/config,Devil-Linux技术文档中建议系统管理员对这两个文件进行配置和测试,Devil-Linux光盘和http://www.grsecurity.net都提供了很详细的配置文档。限于篇幅则不再本文进行详细的解释。
Chroot Jails的配置文件位于/etc/sysconfig/jail目录,例如我们要对POSTFIX服务进行“Chroot” “监牢”,我们可以通过修改/etc/sysconfig/jail/POSTFIX文件实现。
光盘中给出了一个加强对Lotus Domino Chroot配置的清单,其它服务程序可以根据这个清单来进行修改。希望能让大家接触到更多优秀的系统,让网络安全队伍再壮大一些。