分类: LINUX
2008-11-06 17:14:14
1.端口修改
由于resin和apache是整合的,所以resin的端口号可以改成譬如19657等,这样至少可以在一定程度上让人猜解到,当然最好就是做下防火墙的配置,不允许访问该端口就更好了。
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
ErrorDocument 403
ErrorDocument 500
这样就为你的系统配置了三个错误处理页面了。注意这里最好是使用域名,既你的系统的访问地址。
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的安全控制,更多和更深入的安全配置就需要以后慢慢去了解了