当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux下PHP+Apache的26个必知的安全设置(7)

    栏目:Linux/apache问题 时间:2020-01-14 17:15

    下面是另一个示例,阻止apache用户的所有出站连接(通向我们自己的smtp服务器的出站连接除外),以及垃圾邮件验证API服务:

    # ..../sbin/iptables --new-chain apache_user/sbin/iptables --append OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT/sbin/iptables --append OUTPUT -m owner --uid-owner apache -j apache_user# allow apache user to connec to our smtp server/sbin/iptables --append apache_user -p tcp --syn -d 192.168.1.100 --dport 25 -j RETURN# Allow apache user to connec to api server for spam validation/sbin/iptables --append apache_user -p tcp --syn -d 66.135.58.62 --dport 80 -j RETURN/sbin/iptables --append apache_user -p tcp --syn -d 66.135.58.61 --dport 80 -j RETURN/sbin/iptables --append apache_user -p tcp --syn -d 72.233.69.89 --dport 80 -j RETURN/sbin/iptables --append apache_user -p tcp --syn -d 72.233.69.88 --dport 80 -j RETURN########################### Addmorerules here ############################ No editing below# Drop everything for apache outgoing connection
    
    # /sbin/iptables --append apache_user -jreject

    第24个设置项:关注日志和审查

    检查apache日志文件:

    #tail-f /var/log/httpd/error_log
    # grep 'login.php' /var/log/httpd/error_log
    #egrep-i "denied|error|warn" /var/log/httpd/error_log

    检查php日志文件:

    # tail -f /var/log/httpd/php_scripts_error.log
    # grep "...etc/passwd" /var/log/httpd/php_scripts_error.log

    日志文件让你对于服务器遭到什么攻击有所了解,并让你可以检查必要的安全级别有没有落实到位。提供了用于系统审查的auditd服务。启用该服务,就可以审查SELinux事件、验证事件、文件修改和帐户修改等。我还建议使用标准的Linux系统监测工具(http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html),用于监测你的Web服务器。

    第25个设置项:按照系统或虚拟机实例来运行服务

    对于安装的大型系统来说,建议你借助不同的服务器运行数据库、静态内容和动态内容。

    图1:在不同的服务器上运行服务

    在不同的服务器或虚拟机实例上运行不同的网络服务。这限制了可能受到危及的其他服务的数量。比如说,如果攻击者成功地利用了Apache flow等软件的漏洞,就能访问整个服务器,包括在同一台服务器上运行的其他服务(比如MySQL和电子邮件服务等)。但是在上述例子中,按以下方式提供不同内容:

    static.lan.cyberciti.biz:使用lighttpd或nginx服务器,用于提供js/css/images等静态资产。

    phpcgi1.lan.cyberciti.biz和phpcgi2.lan.cyberciti.biz:Apache web服务器,php用于生成动态内容。

    mysql1.lan.cyberciti.biz:MySQL数据库服务器。

    mcache1.lan.cyberciti.biz:Memcached服务器是用于MySQL的速度非常快的缓存系统。它使用libevent或epoll(Linux运行时环境),可以扩展至任何数量的打开的连接,并使用非阻塞的网络输入/输出。

    LB01:放在Apache Web服务器前面的nginx Web服务器和反向代理服务器。 从互联网进入到其中一台Web服务器的所有连接均通过nginx代理服务器来传送,该代理服务器可以本身处理请求,也可以将请求全部或部分传送到主Web服务器。LB01提供了简单的负载均衡机制。

    第26个设置项:其他工具

    来自PHPIDS项目网页(https://phpids.org/):