【信息安全】安全加固

一、 软件安全

1.1、web组件安全

1.1.1、Nginx安全

  • 1.1.1.1、关闭列目录
    默认情况下需要关闭该功能,除非提供下载等;

    检查 autoindex 开关是否打开,nginx 配置文件中搜索 autoindex,确保 autoindex 配置为off;

  • 1.1.1.2、关闭版本号显示
    关闭版本号显示后,错误页面 http response server 字段将不会显示 Nginx 版本

    	server {
          
          
    		server_tokens off;
    	}
    
  • 1.1.1.3、访问控制

    • 1.1.1.3.1、资源访问控制
      针对限制访问的资源,可以使用 Nginx 做访问限制,location 可以指定路径

      location / {
              
              
      	allow 10.0.0.0/24;
      	allow 172.16.24.123;
      	deny all;
      }
      
      
    • 1.1.1.3.2、站点身份验证
      也可在直接使用身份验证功能对所有资源加以控制

      	server {
              
              
      	......
      	auth_basic "受限访问";
      	auth_basic_user_file conf/htpasswd; # 使用 htpasswd 命令生成的文件
      }
      
      
    • 1.1.1.3.3、防盗链
      通过 location 实现针对 referer头的验证

      	locaiton / {
              
              
      		valid_referers none blocked www.example.com example.com	;
      		if ($invalid_referer) {
              
              
      			return 403;
      		}
      	}
      
    • 1.1.1.3.4、敏感文件防泄漏
      通过location参数限制外部可以访问的敏感文件,不允许访问zip、rar、gz、bak等文件,避免因管理员问题导致文件泄露

      	location ~*.*\.(zip|rar|gz|bak)?$ {
              
              
      		deny all;
      	}
      	```
      

1.2、PHP 配置加固

1.2.1、关闭 PHP 版本信息

为了防止黑客获取服务器中 PHP 版本信息,如 X-Powered-By:PHP/5.3.7,最好关闭显示 PHP 版本信息,在配置文件中追加以下信息:

expose_php = off

1.2.2、关闭 PHP 错误提示信息

默认情况下,PHP错误信息会将程序出错的原因显示到浏览器上,容易造成敏感信息泄露。

# 关闭错误显示
display_errors = OFF
# 记录日志
log_errors = On
# 设置日志位置,便于开发排查原因(该文件web服务器用户必须可写)
error_log = /var/logs/php_error.log

1.2.3、设置 PHP 脚本能够访问的目录

使用open_basedir 选项能够控制 PHP 脚本只能访问指定的目录,这样能够避免 PHP 脚本访问不应该访问的文件,一定程序限制 PHPshell的危害访问:

open_basedir = /usr/www

1.2.4、关闭危险函数

禁止一些危险的系统命令函数,例如system()或者能够查看 PHP 信息的phpinfo()函数等:
以下只针对内置函数,无法限制用户自定义的函数

disable_functions = system, passthru, exec, shell_exec, popen, phpinfo, escapeshellarg, escapeshellcmd, proc_close, proc_open
# 禁止文件和目录操作的函数
disable_functions = chdir, chroot, dir, getcwd, opendir, readdir, scandir, fopen, unlink, delete, copy, mkdir, rmdir, rename, file, file_get_contents, fputs, fwrite, chgrp, chmod, chown

1.3、Tomcat 安全加固

Tomcat 加固可参考以下要求:

  • 修改 Tomcat 默认口令;
  • 升级到最新稳定版,不建议跨版本升级;
  • 使用普通用户启动服务;
  • 更改 Tomcat 的 AJP 管理端口,默认为8009,允许配置范围在8000 ~ 8999;
  • 更改 Tomcat 默认管理端口,默认为8005,允许配置的范围在8000 ~ 8999;
  • 将 Tomcat 应用根目录配置为 Tomcat安装目录以外的目录;
  • 隐藏 Tomcat 的版本信息;
  • 关闭 war 包自动部署功能。

1.4、Redis 安全加固

Redis 是一个完全免费开源的非关系型数据库,采用键值对的方式存储数据。出现最为严重的为未授权访问漏洞

  • 账号与认证

配置完成后,需要重启服务

vim /etc/redis/redis.conf # 编辑redis配置文件
requirepass xxx (添加连接密码)
  • 降权运行
# 创建用于运行redis的账号,禁用账号的登陆权限
useradd -M -s /sbin/nologin [username] 
  • 除以上加固外,建议使用iptables或外围防火墙设备限制可访问的IP,提高安全性,同时建议修改默认端口6379为其它端口。

1.5、Elasticsearch 安全加固

ES 是一个基于 Lucene 的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web接口,在互联网企业中也是应用十分广泛的一个系统。近年来出现的ES信息泄露事件都是由于ES配置不当所致。
原本ES认证需要启用X-pack功能,该功能需要认证。自6.8之后开始免费提供认证功能。

  • 1、启用安全模式,修改elasticsearch.yml文件,添加如下配置:

    	xpack.security.enabled: true
    	xpack.security.transport.ssl.enabled: true
    
  • 2、配置TLS/SSL

    执行命令bin/elasticsearch-certutil ca, 生成elastic-stack-ca.p12 文件
    执行命令 bin/elasticsearch-certutil cert--ca elastic-stack-ca.p12, 生成 elastic-certificates.p12elastic-stack-ca.p12 文件
    移动生成的文件到合适的地方,如: /home/es/es-xxx/config/certs

    elasticsearch.yml 中添加如下配置(注意配置路径为当前目录):

    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
    
  • 3、ES内置用户设置密码(ES 目录下执行)

    bin/elasticsearch-setup-passwords interactive
    
  • 4、重启服务

1.6、其它相关服务加固建议

1、配置身份验证,防止未授权访问
2、服务权限最小化原则
3、限制可访问 ip
4、及时更新补丁
5、日志单独存放,尽量发送到中央日志服务器留存
6、限制高危操作,禁止不带条件的读取、删除

二、系统安全

2.1、windows 系统安全

及时更新补丁,关闭不必要的账号与服务等。

2.1.1、账号检查

检查账号与账户组,确定管理员组内账号无异常,无共享、共有账号,禁用来宾账号。

2.1.2、密码及复杂度设置

修改组策略密码设置策略:
1、计算机配置–windows设置–安全设置–账户策略–密码策略–密码必须符合复杂性要求:已启用。
2、计算机配置–windows设置–安全设置–账户策略–密码策略–密码长度最小值:8个字符。
3、计算机配置–windows设置–安全设置–账户策略–密码策略–密码最长使用期限:90天。
4、计算机配置–windows设置–安全设置–账户策略–密码策略–强制密码历史:3个记住的密码。

密码策略

2.1.3、账户锁定策略

账户锁定策略,可以防止恶意攻击者对账号进行暴力破解,但是无法防止恶意攻击者故意DOS造成账号锁死。

账户锁定策略

2.1.4、审核策略配置

将除审核策略更改为“成功”外,其余均设置为“成功,失败”

审核策略

2.1.5、日志大小设置

将应用程序、安全、系统日志至少设置为32MB以上,设置当达到最大的日志尺寸时,按需要改写事件。

日志大小设置

2.1.6、其它设置

补丁、远程超时设置、默认共享、文件权限指派、系统服务、匿名权限限制、防火墙、防病毒软件、SNMP默认口令等,可以根据实际需要进行配置。

猜你喜欢

转载自blog.csdn.net/Nicky_Zheng/article/details/110483788