Apache和Nginx服务器的安全设置汇总

WebShell三剑客(ASPXSPY、PHPSPY、JSPSPY)

ASPSPY:http://www.rootkit.net.cn/article.asp?id=132< 已关闭>

下载:ASPXspy2

JSPSPY:http://www.forjj.com/?action=show&id=138 < 已关闭>

下载:jspspy

PHPSPY:http://www.4ngel.net/project/phpspy.htm

下载:phpspy

可以通过上面对应语言的WebShell进行部分安全测试

参考地址:
http://www.webshell.cc/4422.html
http://4ngel.net/project/phpspy.htm

Apache虚拟主机下PHP目录和文件操作权限的控制

open_basedir可将用户访问文件的活动范围限制在指定的区域,通常是其家目录的路径,也
可用符号”.”来代表当前目录。注意用open_basedir指定的限制实际上是前缀,而不是目录名。
举例来说: 若”open_basedir = /dir/user”, 那么目录 “/dir/user” 和 “/dir/user1″都是
可以访问的。所以如果要将访问限制在仅为指定的目录,请用斜线结束路径名。例如设置成: ”open_basedir = /dir/user/”

open_basedir也可以同时设置多个目录, 在Windows中用分号分隔目录,在任何其它系统中用
冒号分隔目录。当其作用于Apache模块时,父目录中的open_basedir路径自动被继承。

有三种方法可以在Apache中为指定的用户做独立的设置:

(a) 在Apache的httpd.conf中Directory的相应设置方法:

php_admin_value open_basedir /usr/local/apache/htdocs/
#设置多个目录可以参考如下:
php_admin_value open_basedir /usr/local/apache/htdocs/:/tmp/
(b) 在Apache的httpd.conf中VirtualHost的相应设置方法:
php_admin_value open_basedir /usr/local/apache/htdocs/
#设置多个目录可以参考如下:
php_admin_value open_basedir /var/www/html/:/var/tmp/

(c) 因为VirtualHost中设置了open_basedir之后, 这个虚拟用户就不会再自动继承php.ini
中的open_basedir设置值了,这就难以达到灵活的配置措施, 所以建议您不要在VirtualHost
中设置此项限制. 例如,可以在php.ini中设置open_basedir = .:/tmp/, 这个设置表示允许
访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录.

请注意: 若在php.ini所设置的上传文件临时目录为/tmp/, 那么设置open_basedir时就必须
包含/tmp/,否则会导致上传失败. 新版php则会提示”open_basedir restriction in effect”
警告信息, 但move_uploaded_file()函数仍然可以成功取出/tmp/目录下的上传文件,不知道
这是漏洞还是新功能.

示例:

    ServerAdmin webmaster@abc.com
    DocumentRoot /home/wwwroot/abc.com
    php_admin_value open_basedir /home/wwwroot/abc.com:/tmp      //指定PHP文件能访问的目录,不同目录间用冒号( : )分隔.
    DirectoryIndex index.php index.html index.htm
    ServerName abc.com
    ServerAlias www.abc.com *.abc.com
    ErrorLog /var/log/httpd/abc.com.error.log
    CustomLog /var/log/httpd/abc.com.log combined

设置完成后,记得找个PHP网马(如:phpspy)来玩一玩,测试一下有没有问题,不出意外,权限应该是控制得相当好的。

参考地址:
http://www.cnxos.com/?p=1265
http://www.itokit.com/2013/0124/74871.html
http://www.fishinfish.com/post/280.html

如何让Apache禁止列目录

1、打开apache配置文件httpd.conf
2、找到

	Options Indexes
	AllowOverride None
	Order allow,deny
	Allow from all

只需要修改Options Indexes为Options None即可,注:根据PHP运行环境安装包的不同,Options Indexes也有可能是Options Indexes FollowSymLinks,一并改为Options None即可。

3、保存httpd.conf,并重启Apache即可,此时再访问http://localhost时, 报apache http 403 禁止访问错误信息

Apache单个或多个目录禁止访问方法

这种方法通常用来禁止访问者访问后台管理目录或者程序目录,方法如下

1、打开apache配置文件httpd.conf
2、创建Directory块,比如禁止访问某个类库目录,可以这样实现

    Order Deny,Allow
    Deny from all

上述代码实现了禁止所有用户访问www.leapsoul.cn下inc目录的功能。如要实现禁止访问所有目录中inc目录的功能,只要将

<directory /var/www/www.leapsoul.cn/inc></directory>

更改为

<directory /var/www/www.leapsoul.cn/*/inc></directory>

即可。

3、重启Apache服务器。

只允许或禁止某个域名进行目录访问

    Order Deny,Allow
    Deny from abc.com
    Allow from apache.org

上述代码实现禁止abc.com域中主机访问inc目录,允许apache.org域中主机访问inc目录的功能。

只允许或禁止某个IP进行目录访问

    Order Deny,Allow
    Deny from 10.1.1.2
    Allow from 192.168.1.0/255.255.255.0

上述代码实现禁止IP10.1.1.2访问www.leapsoul.cn/inc目录,允许IP192.168.1子网中的主机访问www.leapsoul.cn/inc目录的功能。
注意:Allow from 192.168.1.0/255.255.255.0等同于Allow from 192.168.1或Allow from 192.168.1.0/24

参考地址:
http://blog.163.com/wangzhenbo85@126/blog/static/10136328220117244932318/?suggestedreading&wumii

发表评论?

0 条评论。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据