常用中间件安全加固基线。

admin 2024年10月29日18:09:15评论96 views字数 8271阅读27分34秒阅读模式

中间件安全基线配置手册

1概述

1.1.目的

本文档规定了中间件服务器应当遵循的安全性设置标准,本文档旨在指导系统管理人员或安全检查人员进行中间件的安全合规性检查和配置。

1.2.适用范围

  • 本配置标准的使用者包括:服务器系统管理员、应用管理员。
  • 本配置标准适用的范围包括:中间件服务器。

2 Nginx基线配置

2.1 版本说明

使用Nginx官方稳定版本,当前提供下列版本:

  • Nginx 1.22.1
  • Nginx 1.24.0

2.2 安装目录

  1. /opt/nginx-{version}

2.3 用户创建

操作系统中新建nginx用户,用以启动Nginx Worker。

  1. nginx.conf:
  2. user nginx;

2.4 二进制文件权限

  1. /opt/nginx-{version}/sbin/nginx二进制文件权限为755

2.5 关闭服务器标记

关闭服务器标记,避免显示服务器版本信息。
编辑nginx.conf,在http模块中添加:

  1. server_tokens off;

2.5 设置timeout

设置timeout配置可防御DOS攻击。
编辑nginx.conf,在http模块中添加:

  1. client_body_timeout 10;
  2. client_header_timeout 30;
  3. keepalive_timeout 3030;
  4. send_timeout 10;

2.6 设置NGINX缓冲区

防止缓冲区溢出攻击
编辑nginx.conf,在server模块中添加:

  1. client_body_buffer_size 1K;
  2. client_header_buffer_size 1k;
  3. client_max_body_size 1k;
  4. large_client_header_buffers 21k;

2.7 日志配置

统一使用规定好的日志格式.
编辑nginx.conf,在http模块中添加:

  1. log_format  main  '$remote_addr - $remote_user [$time_local] "$request" "$http_host" '
  2. '$status $body_bytes_sent "$http_referer" '
  3. '"$http_user_agent" "$http_x_forwarded_for" "$request_time" "$upstream_response_time" "$request_body"';

2.8 日志切割

切割nginx日志,避免日志文件过大
新建日志切割脚本 如下:

  1. #!/bin/bash
  2. #设置日志文件存放目录
  3. logspath="/usr/local/nginx/logs/"
  4. #设置pid文件
  5. pidpath="/usr/local/nginx/nginx.pid"
  6. #重命名日志文件
  7. mv ${logspath}access.log ${logspath}access$(date -d "yesterday"+"%Y%m%d").log
  8. #向nginx主进程发信号重新打开日志
  9. kill -USR1 `cat ${pidpath}`

配置定时任务每日凌晨执行脚本

2.9 限制访问IP

限制访问IP,仅允许指定ip访问指定资源
编辑nginx.conf,在server模块中添加:

  1. deny 192.168.1.1;
  2. allow 192.168.1.0/24;
  3. allow 10.1.1.0/16;
  4. allow 2001:0db8::/32;
  5. deny all;

2.10 限制仅允许域名访问

限制仅允许域名访问,跳过ip扫描
编辑nginx.conf,在server模块中添加:

  1. server {
  2. listen 80default;
  3. server_name _;
  4. return403;
  5. }

2.11 错误页面重定向

nginx默认错误页面包含服务器版本信息,使用自定义错误页面避免版本信息泄露
新建错误页面,放到静态目录中,编辑nginx.conf,在http模块中添加:

  1. fastcgi_intercept_errors on;
  2. errorpage 401/401.html;
  3. errorpage 402/402.html;
  4. errorpage 403/403.html;
  5. errorpage 404/404.html;
  6. errorpage 405/405.html;
  7. errorpage 500/500.html

2.12 限制并发和速度

限制用户连接数及速度来预防DOS攻击
编辑nginx.conf,在http模块中添加

  1. limit_zone one $binary_remote_addr 60m;

在server模块的location中,需要限制的location中添加如下参数:

  1. limit_conn one 50;
  2. limit_rate 100k;

2.13 安装官方补丁更新

防止攻击者利用nginx漏洞进行攻击,定期更新Nginx版本。
查看当前nginx版本

  1. nginx -v

官网下载最新的安全补丁https://nginx.org/en/download.html

2.14 配置正向代理模块

由于项目需要使用到https正向代理,而nginx官方模块仅支持做http正向代理,ngx_http_proxy_connect_module模块可以实现隧道SSL请求的代理服务器
模块下载地址:http://www.github.com/chobits/ngx_http_proxy_connect_module
编译nginx中添加该模块即可

  1. --add-module=/root/ngx_http_proxy_connect_module

创建配置文件即可使用

  1. server{
  2. resolver 114.114.114.114;
  3. resolver_timeout 30s;
  4. listen 80;
  5. proxy_connect;#启用 CONNECT HTTP方法
  6. proxy_connect_allow 44380;#指定代理CONNECT方法可以连接的端口号或范围的列表
  7. proxy_connect_connect_timeout 20s;#定义客户端与代理服务器建立连接的超时时间
  8. proxy_connect_read_timeout 20s;#定义客户端从代理服务器读取响应的超时时间
  9. proxy_connect_send_timeout 20s;#设置客户端将请求传输到代理服务器的超时时间
  10. location /{
  11. proxy_pass $scheme://$http_host$request_uri;
  12. }
  13. }

2.15 防止目录遍历

(1)修改文件nginx.conf
在 http 模块下添加或则修改为 autoindex off;
(2)重新启动 Nginx 服务。

2.16 服务监控

为了保证nginx服务正常,采用zabbix 监控nginx_status模块监控nginx服务

nginx配置nginx_status ip白名单

  1. location /nginx_status {
  2. stub_status;
  3. allow 192.168.0.0/16;
  4. allow 127.0.0.1;
  5. deny all;
  6. }

3 TOMCAT基线配置

编号 验收项目 检查及加固方法
1  账号管理及认证授权要求 账号安全要求

参考配置操作

修改tomcat/conf/tomcat-users.xml配置文件,修改、添加、删除账号,更改默认账号密码。<user username=”tomcat” password=” Tomcat!234” roles=”admin”>

检测操作

访问http://ip:8080/manager/html管理页面,进行Tomcat服务器管理 ,默认账号密码不能登录。

2 口令安全要求设置的账号口令必须符合大小写字母,数字,特殊字符、长度8位等复杂度要求。
3 授权安全要求在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。

Tomcat版本用户角色分为:role1,tomcat,admin,manager四种。

role1:具有读权限;
tomcat:具有读和运行权限;
admin:具有读、运行和写权限;
manager:具有远程管理权限。
修改tomcat/conf/tomcat-users.xml配置文件给予用户合理权限

4 日志安全要求 日志记录配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功,登录时间,以及远程登录时,用户使用的IP地址。

参考配置操作
编辑

编辑server.xml配置文件,在<HOST>标签中增加记录日志功能
将以下内容的注释标记< ! --    -- >取消
<valve classname=”org.apache.catalina.valves.AccessLogValve”
Directory=”logs” prefix=”localhost_access_log.” Suffix=”.txt”
Pattern=”common” resloveHosts=”false”/>

5 IP协议安全要求 使用https方式访问

应尽量使用https方式访问,                                                         判定条件
使用https方式登陆tomcat服务器页面,登陆成功

使用https方式登陆tomcat服务器页面,登陆成功

6 设备其他安全要求 配置登录超时参考配置操作
编辑tomcat/conf/server.xml配置文件,修改为30秒
<Connector
port="8080"  maxHttpHeaderSize="8192" maxThreads="150"
minSpareThreads="25" maxSpareThreads="75"、
enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="300" disableUploadTimeout="true" />

重启tomcat服务

7 更改tomcat服务器默认端口参考配置操作
(1)修改tomcat/conf/server.xml配置文件,更改默认管理端口到8800
<Connector
port="8800"  maxHttpHeaderSize="8192" maxThreads="150"
minSpareThreads="25" maxSpareThreads="75"、
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="300" disableUploadTimeout="true" />
(2)重启tomcat服务
8 Tomcat错误页面重定向

参考配置操作
配置tomcat/conf/web.xml文件

配置tomcat/conf/web.xml文件

9 禁止tomcat目录浏览

编辑tomcat/conf/web.xml配置文件,
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
把true改成false
(2)重新启动tomcat服务

<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
把true改成false
(2)重新启动tomcat服务

4 Apache基线配置

1 账号安全要求 以专门的用户帐号和组运行Apache。
2 日志安全要求 编辑httpd.conf配置文件,设置日志记录文件、记录内容、记录格式。
LogLevel notice
ErrorLog logs/error_log
LogFormat "%h %l %u %t "%r" %>s %b "%{Accept}i" "%{Referer}i" "%{User-Agent}i"" combined
CustomLog logs/access_log combined
ErrorLog指令设置错误日志文件名和位置。
3 禁止Apache访问Web目录之外的任何文件 参考配置操作
编辑httpd.conf配置文件,
<Directory />
Order Deny,Allow
Deny from all
</Directory>
4 禁止Apache列表显示文件 参考配置操作
(1) 编辑httpd.conf配置文件,
<Directory "/web">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
将Options Indexes FollowSymLinks中的Indexes 去掉,就可以禁止 Apache 显示该目录结构。
重新启动Apache服务
5 自定义错误信息要求 参考配置操作
(1) 修改httpd.conf配置文件:
ErrorDocument 400 /custom400.html
ErrorDocument 401 /custom401.html
ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 405 /custom405.html
ErrorDocument 500 /custom500.html
Customxxx.html为要设置的错误页面。
(2)重新启动Apache服务
6 拒绝服务攻击防范 参考配置操作
(1) 编辑httpd.conf配置文件,
Timeout 10
KeepAlive On
KeepAliveTimeout 15
AcceptFilter http data
AcceptFilter https data
(2)重新启动Apache服务
7 隐藏Apache的版本号 参考配置操作
修改httpd.conf配置文件:
ServerSignature Off
ServerTokens Prod
8 关闭TRACE 参考配置操作
使用命令“vi /etc/httpd/conf/httpd.conf”修改配置文件,添加“TraceEnable Off”
注:适用于Apache 2.0以上版本
9 禁用CGI 1、 参考配置操作
(1)使用命令“vi /etc/httpd/conf/httpd.conf”修改配置文件,把cgi-bin目录的配置和模块都注释掉
#LoadModule cgi_module modules/mod_cgi.so
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#<Directory "/var/www/cgi-bin">
……
10 监听地址绑定 参考配置操作
使用命令“vi /etc/httpd/conf/httpd.conf”修改配置文件,修改
Listen  x.x.x.x:80
11 权限增强 参考配置操作:
使用命令“chmod 600 /etc/httpd/conf/httpd.conf”设置配置文件为属主可读写,其他用户无权限
使用命令“chmod 644 /var/log/httpd/*.log”设置日志文件为属主可读写,其他用户只读权限

结语:

引:“随着网络安全防护技术的复杂化,网络安全体系的构建仍是国内外的研究热点。归纳来讲,网络安全防护体系的建设不能简单依靠各种安全产品的叠加,而是需要结合不同网络架构及业务应用固有的特性,对多种安全机制进行有机融合,形成一套动态、有效、全面的整体防御体系。网络安全防护建设是一个长期、循序渐进的过程,随着网络技术的不断发展,必然会出现各种新的威胁。因此,信息安全防护建设也应随之不断完善和调整,才能构建一道保护网络信息安全的铜墙铁壁。”

现在的网络安全已经发展为精细化管理的阶段,基建部分单位都已经该买的都买了,在发达城市有效的结合甲乙双方安全人才和力量能够建立有效的安全防护体系,打造适合自己专有环境的网络安全运营体系。在三四线城市,几乎都是以合规和商业化安全产品办事处为主,首先合规和建设是两个维度,合规简单的来讲就是评价现有状态是否符合法律法规条例的标准,不具有技术量级,只是论证结果的合规性,而建设和运营是个系统性的工作,从设计、实施、运行、测试、优化、上线、消亡是个具备生命周期的工作,不是单次或者周期性的工作,是持续运营,动态闭环的过程。在这个过程当中涉及的知识储备和维度跨越远超于单一领域的专精,对大平台和多应用复杂场景的经验要求会更深。
“而乙方网络安全厂家的办事处的技术力量都是工厂产线批量培养,制式打造,方案都是套模版,话术都是几乎大同小异。”(某甲方客户原话),所以技术能力受自家产品的影响,主要技术力量围绕自家产线的产品,也有小老弟自嘲的话“调盒子”。受局限的影响,在点的层面上能够完善,而在面和整体层面的防护就比较薄弱,尤其跨系统、跨业务、跨区域、跨应用场景时,就捉襟见肘,导致用户体验差、产品口碑下降。所以好的安全厂家的产品,一定是要有好的交付和服务,交付和服务又需要全面的安全技术专家,而不是单一的理解为某个点,例如我渗透厉害、我网络好等等。
对于甲方安全而言,三期的基线分享有点感悟,就是安全工作是个系统工程学,对于甲方来讲,甲方安全不是完全过度依赖商业化产品,买买买,上盒子,通俗的讲“您不会把您家保险柜的钥匙,交给卖保险柜的或者修保险柜的”,甲方安全还是一句话“不积跬步无以至千里,基线工作完全可以自己利用自动化脚本,或者建立系统镜像模版,在管理层面就能解决初始安全性”,打造好的安全生态一定是甲方、乙方、合规(三方)各司其职,专业的事交给专业的人,用户安全体验差就是好多场景的跨维度跨职能作业,各放储备和经验及技术实力不足,导致未达到预期效果导致。
目前好多时候听到某某项目,烂尾了,交付不了,等等。也许是产品本身没有问题,也许是需求未能理解导致建设结果未达到预期,也许是销售买的是渔船吹的是航母,也许是交付人员技术能力不足导致无法交付,也许是产品本身的功能就不能满足客户预期效果,也许是项目管理过程中的纰漏等等等。。。这个社会本来就是一个大的草台班子,但是三沐奉劝各位网安爱好者,做有意义靠谱的事儿,认真学习,持续提升。只有自己足够强大,技术实力过硬,应用场景和多业务经验丰富,您才能给客户提供优质的服务,才能切身的为客户需求着想,不要动不动就买个啥,上个啥,有时候客户对您的信任和认可,就是从他需要你的时候,你有能力有经验且很完美的处理好他的问题。
以上观点,纯属个人观点,不认同的朋友也不必争执。很多行业、很多领域说真话并不讨好,因为假话符合底层的观念,符合上层的利益。没必要争执,本初都是鼓励网安人,求真务实,保持持续学习,做好网络安全工作,“为了网络更安全,为了世界更美好”(大的概念虽与我无关,我也想尽绵薄之力)。
后面不再更新“安全基线”相关的文章了,粉丝还需要哪方面的分享,方可后台留言,留言安全基线的那位朋友如果需要更多更详细的后台留言我分享给你,希望几期文章可以帮助到你。

常用中间件安全加固基线。

免费!网络设备安全基线配置指南
免费!开箱即用,自动化Windows 安全主机加固基线
欢迎关注“三沐数安”,请分享给更多的网安爱好者,大家一起研究网络安全技术。您的关注就是对三沐最大的支持。
三沐数安是一家在人工智能、工业控制安全、网络安全、云计算、大数据等新技术被广泛应用的“新时代”背景下应运而生的技术领先的“新安全”创业公司。为内外部客户提供云安全、数据安全、信息安全等各类安全产品和服务。三沐数安以用户需求为出发点,以有效解决用户的问题为目标,“致力于网络空间信息安全守护者”为企业愿景,定位信息安全守护者,重点围绕国家关键基础设施(通信、交通、电力、石油、能源等);重要信息系统(金融、党政、财税等);重要公众服务(互联网+政务、互联网+医疗、互联网+民生等);为服务对象,秉承务实、正直、进取、创新的态度,为客户提供专业的信息安全一体化服务,与用户共创并享受安全、和谐、美好的网络空间。三沐数安紧跟互联网技术的发展潮流,以安全科技为核心、创新为导向,基于多年的网站安全、服务器安全维护经验,拥有技术精湛、专业的网络安全工程师,从业互联网安全行业10余年,打造了最年轻、最高效、最专业的服务器安全服务团队,竭尽全力为您提供及时、高效、安全、稳定的网络安全服务。公司具备一线互联网公司的甲方安全架构经验。

原文始发于微信公众号(三沐数安):免费!常用中间件安全加固基线。

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月29日18:09:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   常用中间件安全加固基线。https://cn-sec.com/archives/3329119.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息