美文网首页
CentOs web服务器安全防范经验总结

CentOs web服务器安全防范经验总结

作者: 麦兜叮叮当 | 来源:发表于2021-03-17 14:44 被阅读0次

    系统层面(CentOs)

    1.禁用ROOT权限登录。(重要)
    2.安全组收缩不使用的端口,建议除443/80以及ssh登录等必要端口外全部关闭。
    3.防火墙收缩不使用的端口,建议除443/80以及ssh登录端口外全部关闭。
    4.更改ssh默认端口22
    5.除登录USER,禁止其他用户su到root进程,并且ssh开启秘钥及密码双层验证登录。(重要)
    6.限制除登录USER外的其他用户登录。
    7.安装DenyHosts,防止ddos攻击。
    8.禁止系统响应任何从外部/内部来的ping请求。
    9.保持每天自动检测更新。
    10.禁止除root之外的用户进程安装软件及服务,如有需要则root安装,chown给到用户。
    11.定时给服务器做快照。
    12.更改下列文件权限:

     chattr +i /etc/passwd chattr +i /etc/shadow chattr +i /etc/group chattr +i /etc/gshadow
    

    13.限制普通用户使用特殊命令,比如wget,curl等命令更改使用权限,一般的挖矿程序主要使用这几种命令操作。

    NGINX层面

    1.nginx进程运行在最小权限的子用户中,禁止使用root用户启动nginx。(重要)
    2.配置nginx.conf,防范常见漏洞:

    #目录穿越漏洞
    location /files/ {
        alias /home/;
    }
    
    #隐藏版本号
    server_tokens off;
    
    #最小权限启动
    user  nobody;
    
    #只允许get/post请求
     if ($request_method !~ ^(GET|HEAD|POST)$) {
            return 403;
    }
    
    #拒绝User-Agent访问
    if ($http_user_agent ~* LWP::Simple|BBBike|wget|curl) {
     return 444;
    }
    
    #去掉file路径的php执行
    location ~ /file/.*\.(php|php5)?$ {
      deny all;
    }
    
    if ($http_user_agent ~* "java|python|perl|ruby|curl|bash|echo|uname|base64|decode|md5sum|select|concat|httprequest|httpclient|nmap|scan" ) {
          return 403;
    }
    
     #强制网站使用域名访问
    if ( $host !~* 'www.xxx.club' ) {
         return 403;
    }
    
    #封杀特定的url
    location ~* \.(bak|save|sh|sql|mdb|svn|git|old)$ {
        rewrite ^/(.*)$  $host  permanent;
    }
    
    #过滤文件请求
    location ~ ^/file/ {
       if ($request_filename ~* ^.*?\.(txt|doc|pdf|apk)$){
         add_header Content-Disposition: 'attachment';
         add_header  Content-Type application/octet-stream;
        }
        root /home/loversign;
    }
    

    Apache层面

    1.禁止root权限启动apache服务!禁止root权限启动apache服务!禁止root权限启动apache服务!重要的事情说三遍!因为这个问题被搞了两次。
    2.改掉默认端口。
    3.清空webapps下除自己服务外的其他文件,删除用户管理文件,防止给木马留下后门。
    4.限制apache启动进程su到root进程以及ssh登录,限制启动进程访问除/home/xx自身目录外的其他文件。
    5.限制apache启动进程操作删除以及编辑文件,一般a+x即可。

    数据库层面(MySql)

    1.关闭外网连接,与java/php服务使用内网连接。
    2.在满足java/php服务的基础上,新建最小权限USER给到服务使用,禁止USER权限访问其他项目的库。
    3.root密码不要与普通USER相同。
    4.建议使用云库,云库具备实时备份,动态扩容,数据回退等功能,减少操作风险。

    Redis层面

    1.关闭外网连接,只允许内网交互,基本这个做了之后就已经稳了。
    2.禁止root权限启动,运行在普通用户进程里。
    3.更改默认端口。
    4.添加登录密码。

    以上是自己做的防范手段,不成熟见解,有一些方案待验证,不定时更新,欢迎大佬补充!

    相关文章

      网友评论

          本文标题:CentOs web服务器安全防范经验总结

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