FreeBSD下构建安全的Web服务器(1)(2)
2008-02-23 08:21:02来源:互联网 阅读 ()
2、文档访问控制
有时候被黑客入侵后拿到了小权限用户,比如传了一个WebShell到系统中,那么对方很可能会把 /etc/passwd 等内容直接读取出来,同时查看/etc/master.passwd中对加密后的root用户的密码hash进行破解,最后拿到密码进行登陆系统。那么我们就要控制部分文档只有root能够访问,其他用户无权访问。比如uname,gcc等,假如黑客拿到小权限用户后就会查看系统版本,然后找到该版本系统对应的溢出程式,使用gcc来进行编译,假如我们能够限制黑客访问uname和gcc等程式,能在一定程度上减缓黑客入侵的脚步。
使用chmod来改变某个文档的权限信息,比如我要 /etc/passwd 和 /etc/master.passwd 文档只能允许root访问:
使用八进制数字来配置
# chmod 700 /etc/passwd
# chmod 700 /etc/master.passwd
使用字符标记来进行配置
# chmod u w r x,go-w-r-x /etc/passwd
# chmod u w r x,go-w-r-x /etc/master.passwd
系统中有多个重要文档需要配置控制访问权限,一定要控制好,否则将会构成重要威胁。
3、系统服务和端口控制
端口开的越多就越给黑客多一个入侵的机会,服务越多,危险越大,因为您不知道那些服务是不是有潜在的漏洞或又发现了新的漏洞,所以尽量少的服务,比如sendmail默认是打开的,那么些建议您把sendmail关闭,关闭防范是在 /etc/rc.conf中加上:
sendmail_enable = "NONE",假如设为"NO"那么只能够关闭掉pop3服务,不能关闭smtp的服务,所以要配置为"NONE"。
系统中最好除了我们能够看到的Apache、Mysql、vsFTPd、SSH之外不要打开其他任何端口和服务。基本的方式是使用netstat -a 查看打开的端口,然后从对应的端口来找相关的服务,比如我们这里应该只允许开的端口有 21, 22, 80, 3306等,假如有其他端口,那么一定要仔细检查,很可能是黑客的后门或是会对系统安全构成威胁的服务。同时有些服务无需监听网络连接的话,只是需要本地的连接,比如Mysql,那么就能够关闭Socket监听,这个将在Mysql安全配置中讲解,另外,能够通过防火墙来控制部分端口访问和连接状况,比如Mysql的3306端口只允许192.168.0.1访问,那么我们就在ipfw里添加规则:
ipfw add 10001 allow tcp from 192.168.0.1 to 10.10.10.1 80 in
这样就能够防止黑客来访问服务器上的Mysql服务。具体防火墙的配置将在下面“防火墙配置”中周详讲解。
4、日志管理和控制
5、文档指纹检测
文档指纹就是我们文档的基本信息,比如文档权限、文档所属用户/组、文档最后修改日期、文档大小等等,这些都是重要信息,一般黑客入侵后都可能修改文档,那么文档指纹就不相同了。另外,文档的md5校验值也属于文档的指纹的一种。
为了防止黑客篡改系统中的部分核心文档,比如 /etc/passwd, /etc/shadow, /etc/inetd.conf 等等,那么我们就能够考虑把部分重要文档进行备份,同时做一份现在有的文档的一个指纹保留,比如把 /etc,/bin, /usr/bin 目录下的文档进行指纹保留:
# ls -l /etc > /var/back/etc.txt
# ls -l /bin > /var/back/bin.txt
# ls -l /bin > /var/back/usrbin.txt
当然,更有就是给每个重要的文档加上md5校验值,假如觉得不对劲的时候就进行匹配,确保文档的安全。
您能够给您觉得需要做指纹备份的目录进行备份,一般这是为了以后被黑客入侵后的系统检测和系统恢复。比如能够通过文档被修改的时间来确定是不是被入侵,比如能够对比看 /etc/inetc.conf文档和备份的文档有什么不同来确定是不是安装了服务型后门等。
6、系统指纹泄漏和防范
一般黑客为了入侵某个系统,一定会先进行扫描等工作,扫描包括目标系统的端口开放情况和服务器使用服务程式和操作系统情况。比如很简单的手工检测Web服务的指纹:
# telnet target.com 80
那么就很可能返回Apache和PHP的版本信息,那么同时也可能使用扫描工具对Mysql、vsFTPd、SSH等服务的端口进行扫描,获取这些服务的指纹。多暴露一份系统信息,那么系统就多一份危险。那么解决办法就是把服务器上服务程式的Banner全部修改掉,从而能够迷惑黑客。
下面简单的说一些修改那些服务Banner的方法。
* Apache
修改httpd.conf文档,配置以下选项:
ServerSignature Off
ServerTokens Prod
上面的适用apache1***, apache 2.0这些都是默认 , 但是还是有server=Apache字样, 若要完全去掉需重新編译。完全地去掉banner, 修改httpd.h:
Include/httpd.h Define SERVER_BASEVENDOR "Apache Group" Define SERVER_PRODUCTVENDOR "Apache" Define SERVER_BASEVERSION "1.3.27" |
后从新编译Apache就能够完全去掉了。
* PHP
在php.ini中配置 expose_php = Off ,那么将无法在 http头信息中看到php的版本信息。
* Mysql
* vsFTPd
vsFTPd基本上是无法获取到一些关于vsFTPd的banner信息的,但是因为vsFTPd默认的banner信息是"Welcome to FTP Server!"对于高手来说,还是能够猜测到一点,所以我们要完全改掉。修改vsFTPd的配置文档 vsftpd.conf 中的下面选项:
Ftpd_banner=xxxxx
把后面的xxxxx改为您想要的banner信息。
* SSH
好象FreeBSD下默认安装的SSH被telnet target.com 22 的时候会显示SSH和FreeBSD的信息,简直是个大祸害,什么都告诉别人了,但是现在为止我还不知道怎么修改,知道的高手请指点。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 评价网站服务器软件的几个方面
下一篇: Apache服务器二级域名的完美实现
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
