输出示例:
-rw-r--r-- 1 root root 925 Jan 3 00:50 error4xx.html
-rw-r--r-- 1 root root 52 Jan 3 10:00 error5xx.html
-rw-r--r-- 1 root root 134 Jan 3 00:52 index.html
另外,你必须删除由vi或其它文本编辑器创建的不必要的备份文件:
# find /nginx -name '.?*' -not -name .ht* -or -name '*~' -or -name '*.bak*' -or -name '*.old*'
# find /usr/local/nginx/html/ -name '.?*' -not -name .ht* -or -name '*~'
-or -name '*.bak*' -or -name '*.old*'
给find命令传递-delete参数,它就会自动删除这些文件。
20、限制出站Nginx连接
攻击者可能要在你的Web服务器上使用如wget等工具下载文件,使用iptables阻止来自Nginx用户的出站连接,ipt_owner模块可以匹配各种包创建者的特征,只有在OUTPUT链中的才有效,在这里,允许vivek用户使用80端口连接外部资源(对RHN访问或通过仓库抓取CentOS更新特别有用)。
/sbin/iptables -A OUTPUT -o eth0 -m owner --uid-owner vivek -p tcp
--dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
将上述规则添加到你的iptables基础shell脚本中,不允许nginx Web服务器用户连接外部资源。
附送技巧:观察日志和审核
检查日志文件,可以从中找到攻击者的一些行踪和攻击手段。
# grep "/login.php??" /usr/local/nginx/logs/access_log
# grep "...etc/passwd" /usr/local/nginx/logs/access_log
# egrep -i "denied|error|warn" /usr/local/nginx/logs/error_log
Auditd服务提供了系统审核功能,启动SELinux事件,认证事件,文件修改,帐户修改等的审核服务,象往常一样首先关闭所有服务,然后打开我在“Linux服务器加固”(http://www.cyberciti.biz/tips/linux-security.html)一文中指出的服务。
总结
通过这些设置,你的Nginx服务器就可以对外提供服务了,但你应该根据应用程序安全需要进一步查看另外的资源。例如,WordPress或其它第三方程序都有其自身的安全要求。
您看到此篇文章时的感受是: