FreeBSD下构建安全的Web服务器(1)

2008-02-23 08:21:02来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

序言

在我们跑Web服务器的时候,大家可能都会一致认为使用Linux+Mysql+Apache+PHP整个开源的系统是比较好的选择,但是我个人认为这是不合理的,首先要根据您的应用来觉得您使用什么服务。假如您需要跑Oracle等大型应用的话,而且Oracle在Linux下是支持的比较好的,那么使用Linux是个好的选择,因为在FreeBSD下安装Oracle是个很麻烦的事情。那么假如是跑普通的网站应用的话,我觉得使用FreeBSD+Mysql+Apache+PHP是个好的选择,因为对于一个网站来讲,稳定安全是第一位的,否则您的网站什么时候被人修改了都不知道怎么回事,或被黑客入侵,把数据修改或删除,那就糟糕了,毕竟现在什么红客、黑客的一堆,不能不防。当然,不是说Linux不安全,但是在Linux下整合了很多不安全的程式,导致了他的不安全,但假如配置的好,Linux相同能够很安全。在中国网络应急响应中央(http://www.cert.org.cn)这几个月的数据来看,每个月被入侵成功最高的是Linux系统,占百分之六十多,然后过来是Windows系统,占百分之三十多,而FreeBSD的入侵比例是百分之几。

任何系统都能够很安全,也能够很不安全,关键是管理员怎么做的,世界上没有最安全的系统,只有更安全的系统。下面的文章就是
在FreeBSD平台上构建一个比较安全的Web服务器,希望对网管和网络安全爱好者能有一些启发,权当抛砖引玉,希望能够有更好阐述的文章。

一、系统和服务程式的安装

1、系统安装

为了确保系统的安全,我们系统准备采用最新的FreeBSD版本,首先是安全,系统兼容性也比较好,这个主要是个人习惯和需求,为了简单起见,这里我们选用了最新的FreeBSd5.3版本进行安装。整个安装过程我就不讲了,假如不清楚的朋友能够参考FreeBSD中文手册(http://www.freebsd.org.cn),整个过程不是很复杂,虽然没有Windows/Linux的系统安全简单,但是比起有些Unix的安装来讲是人性许多的。安装中必须把基本包和内核源代码都装上,为了以后编译内核方便,假如另外,假如喜欢使用ports安装软件的话,还要把ports装上,但是尽量一些没有必要的程式不要装。假如要安装Webmin等,还要把perl等包装上。系统文档拷贝完以后,会需要配置一些配置,比如把IP地址、名字服务器等设好,不要打开IPv6,无需DHCP等服务,不要系统默认的FTP服务,配置 /etc/inetd.conf 时把SSH服务打开,方便我们进行远程管理,假如不想使用inetd这个终极服务来管理的话,能够关闭他,在/etc/rc.conf中添加inetd_enable="NO",然后配置sshd_enable="YES"相同能够打开SSH服务,后面我们会周详谈到SSH的配置。

系统装完后,在 /etc/inetd.conf 中把除了ssh之外的服务全部关闭,特别是telnet和rlogin等服务,一定要慎重,否则很可能每几天系统就被入侵了。安装完系统后,建议对系统进行升级,比如使用 make world 或 cvsup 把系统内核和ports进行升级。这个步骤和Windows装完后打补丁差不多。

2、服务程式安装

系统装完以后,就开始安装我们的应用软件,我们的方针还是最新的软件是最安全的,比如能够防止一些老版本中的溢出等等。我们基本就是要让我们的系统有数据库,同时能够处理Web服务,同时能够远程对网站进行文档管理的FTP服务。我们基本选择的程式都是比较通常的程式。另外,为了有个可视化的管理工具,我们同时也能够安装一个基于浏览器的管理工具Webmin,方便没有ssh客户端等等的时候进行管理。

首先我们选用的Web服务是Apache httpd 2.0.53,这是现在的最新版本,当然您也能够考虑1.3的版本,主要是看个人习惯。我们网站是PHP程式编写,所以要安装PHP,版本是4.3.11,也是最新的版本,假如您的网站程式需要PHP5的支持,那么能够下载php5.0.4。数据库还是最快速的Mysql,选择的版本是最新的 4.0.23,假如您需要外键、事务、子查询、存储过程等的支持,那么您能够考虑4.1和5.0的版本。最后我们的FTP选择最安全的vsFTPd,因为他是最安全快速的,我在局域网中测试他的最高创数速率能够达到10MB/S,proFTPd只有8MB/S,vsFTPd针对小型FTP服务器支持很好,毕竟我用户不多,几个更新网站而已,当然,假如您喜欢简单方便,也能够考虑使用FreeBSD自带的FTPd,功能和易用性也是不错的。假如您用户比较多,并且功能需要比较高,建议使用proFTPd、pure-FTPd、wu-FTPd等,但有些FTPd不是很安全,选择时候一定要慎重考虑。

服务器程式列表:

Apache 2.0.53 下载地址:http://httpd.apache.org

PHP 4.3.11 下载地址:http://www.php.net

Mysql 4.0.23 下载地址:http://dev.mysql.com

vsFTPd 2.0.2 下载地址:http://vsftpd.beasts.org

反正最少的服务 最少的端口 安全的配置 = 最大的安全,尽量能够无需使用的服务就不要安装,比如telnetd、rlogind等,那么相反会对服务器安全构成威胁。

安装以上程式您能够采用手工编译安装,也能够采用FreeBSD的ports 来进行安装,这看个人爱好,我个人比较喜欢使用手工安装,假如不明白具体安装的朋友能够参考我的Blog上关于安装Apache PHP Mysql的方法。

二、系统安全配置

1、用户控制

尽量少的用户,我们的FTP帐户是和系统帐户绑定在一起的,所以我们添加用户的时候先建立一个目录,然后把新建的用户主目录指向到该目录下。假设我需要一个用户能够管理我的网站,而我网站的目录是在 /usr/www 目录下,那么我们新建立的用户 www_user 的主目录就指向 /usr/www 目录,同时他的shell是没有的:/usr/sbin/nologin ,主要是为了防止他通过ssh登陆到系统。同时FTP的密码也要配置的很复杂,防止黑客通过暴力破解获得FTP权限。另外还要说道我们的root用户的密码,我想最少应该不要少于10位的数字+字母+字符的密码(我的密码是18位),否则是很不安全的,假如密码简单,那么黑客通过短时间的暴力破解SSH中的root帐户,不用几天,系统就可能被攻破了,同时也建议最少一个月更改一次root用户的密码。(强烈建议一般帐户不要有登陆系统的权限,就是把shell设为/usr/sbin/nologin)
一般假如要使用root权限建议建立一个属于wheel组的小用户,然后登陆后通过su命令提升为root用户进行管理,假如黑客通过破解了我们普通用户的权限后登陆系统,也不能直接通过root权限进行管理,这是一种安全防范的简单方法。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 评价网站服务器软件的几个方面

下一篇: Apache服务器二级域名的完美实现