美文网首页聪少Harry笔记我用 Linux程序员
[LNMP]Linux的Web环境的安全配置

[LNMP]Linux的Web环境的安全配置

作者: tumg的LNMP_IOS小集 | 来源:发表于2016-02-22 22:29 被阅读655次

    安全问题是Web开发中非常重要的,本篇文章主要描述Web环境配置时候应该注意的安全问题,避免因web配置的不严谨导致危害进一步扩大(漏洞大部分是由应用程序导致)。

    基础环境

    centos 6.x
    php 5.3

    PHP安全配置


    /etc/php.ini
    <pre>
    display_errors = Off
    expose_php = Off
    enable_dl = Off
    disable_functions= eval,passthru,exec,system,chroot,scandir,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,ini_set,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru
    </pre>

    php-fpm 安全配置


    /etc/php-fpm.conf或/etc/php-fpm.d/www.conf
    <pre>
    php_flag[display_errors] = off
    </pre>

    Nginx 安全配置


    nginx.conf 里面的http域
    <pre>
    server_tokens off;
    </pre>

    Linux 运行用户安全建议


    每个服务都使用单独的linux 用户组/用户启动,千万不能使用root用户运行,每个服务对应的用户:

    • nginx:nginx
    • php-fpm:nobody
    • mysqld:mysqld
    • memcached:memcached

    检查/etc/passwd ,禁止web服务用户使用bash登陆

    监听端口配置


    如非必要,所有服务的监听ip限定为内网或localhost(若使用socket方式则忽略这一步骤),避免在公网上暴露服务端口。

    1. php-fpm服务:/etc/php-fpm.d/www.conf文件
      <pre>
      listen = 127.0.0.1:9000
      listen.allowed_clients = 127.0.0.1
      </pre>
    2. mysql:
      mysql的服务端口,在配置数据库用户时候设置,一般设置为内网ip
    3. memcached服务:
      memcached的服务端口,一般设置为内网ip

    应用程序文件和目录权限


    1. 根据访问和web读写,将程序目录分离开:源码目录(source)、数据目录(data)、静态文件目录(static)等,方便权限和访问控制;
    2. 使用非root用户上传和管理应用程序文件;
    3. 仅将需要web读写的目录和文件设置为 chown -R data/ nobody:nobody;
    4. 仅将需要shell执行的文件,设为指定的shell运行用户并设定为可执行(chmod u+x),举例:chown command.php webManager:webManager

    应用程序目录web访问限制


    1. 配置nginx.conf 对于上传(附件、数据)目录无执行权限,并且通过nginx禁止脚本的访问
      <pre>

    禁止upload、data、static目录 执行任何脚本

    location ~* /(upload|data|static)[/.]*/.*\.(php|php5|asp|aspx|jsp|sh){
    deny all;
    }
    </pre>

    1. 配置nginx.conf 对程序源码目录(无须直接访问源码的程序架构,通过./index.php 作为入口)无执行权限
      <pre>

    禁止源码目录被web访问

    location ~* /(protected|source)/{
    deny all;
    }
    </pre>

    整理于2014/05

    相关文章

      网友评论

        本文标题:[LNMP]Linux的Web环境的安全配置

        本文链接:https://www.haomeiwen.com/subject/jpebkttx.html