系统安全加固(三) 应用服务器加固


中间件加固过程和常用命令Web系统的广泛应用,其本身面临各种各样的安全威胁,中间件作为操作系统与应用系统之间的管道,如果配置和管理不当会给应用系统带来很大的安全隐患。中间件的加固主要是从账号管理,权限管理和参数安全性配置方面来进行,及时修复软件的漏洞,修改操作中间件的用户权限,修改口令配置参数,启用日志审核等

Tomcat 安全加固

  1. 账号管理
    • 按照用户分配帐号
    • 删除或锁定与设备运行、维护等工作无关的帐号
    • 使用密码复杂度高的口令

      修改账号管理配置文件tomcat/conf/tomcat-users.xml
      <user username=“tomcat” password=“Tomcat!234” roles=“tomcat”></user>
      不需要要的用户可以直接删除或注释对应行

  2. 权限配置
    • 服务降权
    • 不使用 root 用户启动 Tomcat,使用用普通用户启动Tomcat
    • 根据用户的业务需要,配置其所需的最小权限

      修改账号管理配置文件tomcat/conf/tomcat-users.xml,此处使用的是Tomcat8.5.47
      <user username=“tomcat” password=“Tomcat!234” roles=“tomcat”></user>
      roles的值代表用户权限
      role1:            具有读权限
      tomcat:         具有读和运行权限
      manager-gui:具有远程管理权限,需要自己定义该权限

    • 目录列表访问限制

      禁止tomcat列表显示文件,修改tomcat/conf/web.xml配置文件
      <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
      </init-param>

  3. 日志配置
    • 配置日志功能,对用户登录进行记录

      修改配置文件 tomcat\conf\server.xml,此处使用的是Tomcat8.5.47
      <Valve className=“org.apache.catalina.valves.AccessLogValve” directory=“logs”
                        prefix=“localhost_access_log” suffix=“.txt”
                        pattern=“%h %l %u %t “%r” %s %b” ></Valve>
      directory:日志存放目录
      prefix:日志名称格式

      一些pattern参数:
      %b 发送信息的字节数,不包括http头,如果字节数为0的话,显示为-
      %h 服务器的名称
      %s http的响应状态码
      %t 请求时间
      %l 记录浏览者进行身份验证时提供的名字
      %u 得到了验证的访问者,否则就是"-"

  4. 其他配置
    • 删除默认文档和实例程序
      • 打开tomcat_home/webapps文件夹,删除默认存在docs和examples文件夹
    • 隐藏Tomcat版本信息
      • 使用解压软件打开 Tomcat目录下的lib\catalina.jar
        在这里插入图片描述

      • 打开catalina.jar中 org\apache\catalina\util 下的 ServerInfo.properties 文件
        在这里插入图片描述

      • 打开该文件,将server.info参数值更改为NO VERSION,重启Tomcat即可生效
        在这里插入图片描述

    • 修改默认端口8080

      修改配置文件 tomcat\conf\server.xml
      <Connector port=“8080” protocol=“HTTP/1.1”
               connectionTimeout=“20000”
               redirectPort=“8443” ></Connector>
      port:                         为tomcat服务端口
      redirectPort:            当用户使用http请求设置了必须要https方式访问的资源,此时会自动重定向到该端口
      connectionTimeout: 超时时间,默认为20000毫秒

Apache 安全加固

  1. 日志配置
    • 错误日志配置

      打开httpd.conf文件,确认错误日志开启,并设置好存放路径
      ErrorLog “logs/error.log”
      LogLevel warn        设置日志的级别

    • 访问日志配置

      打开httpd.conf文件,确认访问日志开启,并设置好日志格式、存放路径
      <IfModule log_config_module>
          LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” combined
          CustomLog “logs/access.log” combined
      </IfModule>
      日志参数
      %b 客户端响应的大小(以字节为单位)
      %h 远端主机
      %r 来自客户端的请求行
      %l 远端登录名
      %>s 是从服务器发送到客户端的状态代码(500,404等)
      Referer 是链接到此URL的页面

  2. 权限配置
    • 不要使用管理员账户运行Apache服务,以专门的用户帐号和用户组运行

      为 Apache 服务创建用户及用户组,并在配置文件http.conf中进行指定
      User apache      指定用户
      Group apache    指定用户组

    • 设置配置文件和日志文件的权限,防止未授权访问

      chmod 600 /etc/httpd/conf/httpd.conf     #设置配置文件为属主可读写,其他用户无读写权限
      chmod 644 /var/log/httpd/*.log     #设置日志文件为属主可读写,其他用户拥有只读权限

    • 禁止目录列出

      修改配置文件http.conf,找到指定目录进行如下设置
      <Directory “/web”>
          #Options Indexes FollowSymLinks     #删掉Indexes
          Options FollowSymLinks
      </Directory>

    • 忽略.htaccess 文件

      修改配置文件http.conf,找到指定目录进行如下设置
      <Directory “/web”>
          AllowOverride None
      </Directory>

    • 禁止访问外部文件

      修改配置文件http.conf,找到指定目录进行如下设置
      <Directory “/web”>
          Order Deny,Allow
          Deny from all
      </Directory>

    • 限制请求消息长度

      LimitRequestBody 5120000     #单位为byte

  3. 其他配置
    • 拒绝服务防范,进行超时设置

      查看httpd.conf配置文件,确保httpd-default.conf启用
      Include “conf/extra/httpd-default.conf”
      配置apache\conf\extra\httpd-default.conf
      Timeout 30     #客户端与服务器端建立连接前的时间间隔
      KeepAlive On     #开启可以提高性能,保持连接
      KeepAliveTimeout 15     #限制每个 session 的保持时间是 15 秒

    • 隐藏 Apache 的版本号及其它敏感信息

      在httpd.conf配置文件中添加
      ServerSignature Off
      ServerTokens Prod

IIS 安全加固

以下使用 IIS6.0 进行配置演示

  1. 日志配置
    ”开始->管理工具->Internet 信息服务(IIS)管理器“选择相应的站点,右键点击“属性->网站”,进行相应设置

    • 确保日志启用
      在这里插入图片描述

    • 根据需求配置日志
      在网站属性中点击“网站”,而后点击在日志记录下的属性,进行日志配置

    • 设置日志文件生成频率,日志存放路径等
      在这里插入图片描述

    • 设置扩展日志选项
      在这里插入图片描述

  2. 权限配置

    • 网站的主目录应不使用默认本地路径(c:\inetpub\wwwroot)
    • 主目录应设置好最小权限,网站上传目录和数据库目录一般需要分配“写入”权限,但一定不要分配执行权限,其他目录一般只分配“读取”和“记录访问”权限即可
    • ”开始->管理工具->Internet 信息服务(IIS)管理器“选择相应的站点,右键点击“属性”,进行相应设置
      在这里插入图片描述
  3. 服务扩展

    • 禁用不需要的 Web服务扩展
      在这里插入图片描述
  4. 其他配置

    • 删除IIS默认站点

      • 把IIS默认安装的站点删除或禁用掉
    • 防止信息泄露

      • 禁止向客户端发送详细的ASP错误信息
        在这里插入图片描述
    • 修改默认错误页面

Nginx 安全加固

  1. 权限配置
    • 禁止目录浏览

      编辑nginx.conf配置文件,在http模块下添加
      autoindex off;

    • 限制HTTP请求方法

      编辑nginx.conf配置文件,在http模块下添加
      if ($request_method !~ ^(GET|HEAD|POST)$ ) {
      return 444;
      }

    • 限制目录执行权限

      编辑nginx.conf配置文件,在server模块下添加
      location ~ /(attachments|upload)/.*.(php|php5)?$ {
      deny all;
      }
      #此处禁止在attachments与upload目录下执行php
      #此处配置代码需要放到 location ~ .php{…}上面

    • Nginx降权

      编辑nginx.conf配置文件,取消 “user nobody;”该行注释

  2. 日志配置
    开启日志,并设置日志格式

    编辑nginx.conf配置文件,在http模块下取消以下代码的注释
    设置日志格式
    log_format main '$remote_addr - $remote_user [$time_local] “$request” ’
                               '$status $body_bytes_sent “$http_referer” ’
                              ’ “$http_user_agent” “$http_x_forwarded_for” ';
    开启日志,并指定存放路径与日志格式
    access_log logs/access.log main;

    日志格式参数:
    $remote_addr与$http_x_forwarded_for          用以记录客户端的ip地址
    $remote_user                                                  用来记录客户端用户名称
    $time_local                                                      用来记录访问时间与时区
    $request                                                      用来记录请求的url与http协议
    $status                                                     用来记录请求状态;成功是200
    $body_bytes_s ent                                 记录发送给客户端文件主体内容大小
    $http_referer                                  用来记录从那个页面链接访问过来的
    $http_user_agent                                 记录客户毒啊浏览器的相关信息

  3. 其他配置
    • 隐藏版本信息

      编辑nginx.conf配置文件,在HTTP模块添加
      server_tokens off;

    • 补丁更新,根据nginx版本安装补丁或更新版本

      查看软件版本 nginx -v
      测试配置文件 nginx –t

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值