Chinaunix

标题: (转)Linux下apache和resin的安全配置 [打印本页]

作者: soonow    时间: 2008-11-06 17:14
标题: (转)Linux下apache和resin的安全配置

              Linux下apache和resin的安全配置



resin的安全配置
1.端口修改
    由于resin和apache是整合的,所以resin的端口号可以改成譬如89657等,这样至少可以在一定程度上让人猜解到,当然最好就是做下防火墙的配置,不允许访问该端口就更好了。
2.目录列表禁止
    就算不能访问resin的端口,我们也还是要把resin的目录列表功能给禁止掉。这里以为resin3.0.22说明,修改resin.conf文件,查找到行DirectoryServlet,然后将该行注释掉即可!
3.错误屏蔽
    使用错误页面如屏蔽系统的错误信息(如500错误),这样就不会将系统的错误信息(如堆栈信息)暴露给客户了,而且在一定程度上还可以美化页面呢,呵呵。
    apache的安全配置
1.目录列表禁止
    由于apache是独立的一个WEB服务器,所以和resin整合后,即使resin配置了,但是apache没有配置也是可以看到列表的,所以我们也需要禁止apache的目录列表功能。这里主要修改apache的配置文件httpd.conf文件中的Directory段。比如你的WEB系统的目录是如下配置:
    Options Indexes FollowSymLinks
    那么只要去掉Options中的Indexes即可。
2.错误屏蔽
    和resin一样,使用错误页面来屏蔽系统的错误信息(如500错误和404错误等)。同样也是修改你的WEB系统的目录配置,如下:
    Options Indexes FollowSymLinks
    ErrorDocument 404 http://www.myweb.com/error/404.html
    ErrorDocument 403 http://www.myweb.com/error/403.html
    ErrorDocument 500 http://www.myweb.com/error/500.html
    这样就为你的系统配置了三个错误处理页面了。注意这里最好是使用域名,既你的系统的访问地址。
3.隐藏apache的版本信息和响应头
    当我们没有配置错误页面时,我们访问一个不存在的地址时,apache就会打印一个自己的错误页面,然后把apache的版本信息和resin的版本信息都打印在页面的底部。为了不给别有用心之能留下任何漏洞,我们当然要屏蔽这些版本信息了。修改httpd.conf文件如下(以为apache2.X为例子):
    找到行ServerSignature On 该成Off
    找到行ServerTokens Full 该成Prod

    这两行修改的意思就是关闭服务器的版本信息和修改apache的请求响应头。
4.对重要目录的密码访问控制
    对于WEB系统中的重要目录,比如保存数据库密码的属性文件或程序的源代码目录等。这些都是需要保密的信息,而且这样重要的目录通过禁止文件列表显然也不能完全解决。比较好的方式就是访问这些目录的时候需要密码校验,apache自带的安全特性就能满足这一要求。按如下要求做即可达到目录的密码访问控制:
4.1)修改你的Directory段中的AllowOverride None为AllowOverride Aall
   
        AllowOverride All
   
4.2)建立密码校验文件
    比如我们要将密码本存放在网络访问不到的目录,比如/home/mypassword/passwords文件中。那么执行如下命令(注意#表示Linux下的命令提示符):
#mkdir /home/mypassword
#touch /home/mypassword/passwords
    然后使用apache自带的工具htpasswd来创建一个帐号,假设你的apache安装在/usr/local/apache,命令操作如下:
#/usr/local/apache/bin/htpasswd -c /home/mypassword/passwords hello
    然后它会提示你输入密码(两次),确认成功后,这样就建立了一个hello用户的密码本。
4.3)建立访问控制文件
    在你需要进行密码控制的目录下建立文件.htaccess,比如要保护conf目录,那么就需要在conf目录下建立.htaccess文件,命令操作如下:
#cd /webapp/web1/conf
#touch .htaccess
    然后用VI打开该文件,并输入如下内容:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /home/mypassword/passwords
Require user hello
    意思是:第一行表示是采用基本密码访问控制;第二行是你的认证名称,可以随意取;第三行就是你的密码本的存放路径了,就是我们在第2步建立的文件;第四行就是访问该目录需要的用户名,当然了这里的用户名在我们的密码本中是要存在的,否则是校验不成功的。
    保存该文件后,重新启动apache,然后再访问conf目录的时候就需要输入用户名和密码了。这样也就达到了目录的保护功能。
    以上只是简单的apache和resin的安全控制,更多和更深入的安全配置就需要以后慢慢去了解了


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/73562/showart_1384873.html




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2