大佬教程收集整理的这篇文章主要介绍了nginx – 出于安全原因拒绝除index.php之外的所有* .php请求,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
os:CentOS 7
Nginx:1.6.2
httpd:apache 2.4.6
cms:Drupal 7
在我的服务器遭到入侵后,我从服务器中删除了所有内容,重新安装了操作系统和软件,并从备份恢复了数据
现在,我以最大的安全风格配置所有服务.
在详细研究访问日志之后 – 我决定拒绝任何对php文件的请求,除了index.php之外,它位于站点文档根目录中以提高安全性.
Nginx访问日志内容很多记录如:
azenv2.php
az.php
和
/*/wp-login.php
/administrator/index.php
/MyAdmin/index.php
第一类 – 后门(其中一个入侵了我的网站,有人从我的服务器发送了大量垃圾邮件).
第二 – 有人想找到流行的cms和实用程序,并尝试登录@密码,如admin @ 123456
我通过拒绝对php文件的请求来阻止这两个类别的原因是:
>即使有人上传php-sHell,也无法使用它.
>所有这些请求都是’不好’的小修道院 – 并且通过Nginx拒绝它们将保护drupal(httpd php MysqL)工作和消耗能力.
我对一个虚拟主机的当前配置:
server {
listen Nginx_access.log main;
}
}
Nginx.conf – 安装后未更改.
updatE
最后我为deny创建了这个配置:
LOCATIOn ~ \.php${
access_log /path/to/log/Nginx_deny.log name_log;
deny all;
}
这个配置代理:
LOCATIOn =/index.php {
proxy_pass http://127.0.0.1: php {
proxy_pass http://127.0.0.1:
1).因此,有关攻击尝试的完整信息将收集在日志中.
2).服务器不会为错误的请求做额外的工作.
3). Drupal cron可以工作.
与您在配置文件中的内容完全直接集成,您可能希望简单地包含以下部分;
LOCATIOn ~ \.php${
try_files index.php @error;
fastcgi_pass ...;
fastcgi_param SCRIPT_FILename /path/to$fastcgi_script_name;
...
}
LOCATIOn @error {
[config of however you want to handle errors]
}
在允许其访问/执行之前,将检查所请求文件的存在.
除此之外,我个人建议使用fail2ban,如果配置正确,将为您提供更全面的安全性;您可以将其配置为实时监控访问日志,并通过自动创建新的iptables规则来禁止IP访问您的服务器,并指定禁止时间.
就个人而言,我的服务器配置为根据this article使用带有Nginx的fail2ban(或者至少基于此 – 您可以根据需要更改它).
以上是大佬教程为你收集整理的nginx – 出于安全原因拒绝除index.php之外的所有* .php请求全部内容,希望文章能够帮你解决nginx – 出于安全原因拒绝除index.php之外的所有* .php请求所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。