中间件加固

目录

什么是中间件

请添加图片描述

Apache加固

防止webshell越权使用

修改程序启动账号和用户组

vim /etc/httpd/conf/httpd.conf 
# 检查程序启动账号和用户组,账号和用户组为apache或者nobody
User apache
Group apache


一般情况下默认用户符合安全要求

非超级用户权限禁止修改apache主目录

1.在httpd.conf文件中查找主目录位置
grep "ServerRoot" /etc/httpd/conf/httpd.conf


2.修改权限
chmod修改权限主目录权限
chmod -R 700  /etc/httpd/
chmod 644 /var/log/httpd/*.log

修改日志级别,记录格式

修改httpd.conf文件
vim /etc/httpd/conf/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" common   #(可根据磁盘规划更改)




# 访问日志格式注释
%a: 远程IP地址
%A: 本地IP地址
%B: 已发送的字节数,不包含HTTP头
%b: CLF格式的已发送字节数量,不包含HTTP头。例如当没有发送数据时,写入‘-’而不是0。
%{FOOBAR}e: 环境变量FOOBAR的内容
%f: 文件名字
%h: 远程主机
%H:请求的协议
%{Foobar}i: Foobar的内容,发送给服务器的请求的标头行。
%l: 远程登录名字
%m:请求的方法
%{Foobar}n: 来自另外一个模块的注解“Foobar”的内容
%{Foobar}o: Foobar的内容,应答的标头行
%p: 服务器响应请求时使用的端口
%P: 响应请求的子进程ID。
%q:查询字符串(如果存在查询字符串,则包含“?”后面的部分;否则,它是一个空字符串。)
%r: 请求的第一行
%s: 状态。对于进行内部重定向的请求,这是指*原来*请求 的状态。如果用%...>s,则是指后来的请求。
%t: 以公共日志时间格式表示的时间(或称为标准英文格式)
%{format}t: 时间
%T: 为响应请求而耗费的时间,以秒计
%u: 远程用户(根据验证信息而来,如果返回status(%s)是401则可能是伪造的)
%U: 用户所请求的URL路径
%v: 响应请求的服务器的ServerName
%V: 依照UseCanonicalName设置得到的服务器名字
%X:请求完成时的连接状态:
						X=	连接在应答完成前中断。
						+=	应答传送完后继续保持连接。
						-=	应答传送完后关闭连接。
(在1.3以后的版本中,这个指令是%c,但这样就和过去的SSL语法:%{var}c冲突了)

%I:接收的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。
%O:发送的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。

禁止列出目录

防止访问网站目录以外的文件

修改httpd.conf文件
vim /etc/httpd/conf/httpd.conf 

# 检查关键语法
<Directory />
    AllowOverride none
    Require all denied
</Directory>

# 检查关键语法
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

防止使用web直接浏览目录内容

编辑httpd.conf文件
vim /etc/httpd/conf/httpd.conf
# 去掉Options中的 Indexes  参数
# Indexes:无法在当前目录下找到首页文件,就显示目录内容

<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

错误页面重定向

防止通过默认错误回馈泄露敏感信息

修改httpd.conf文件
vim /etc/httpd/conf/httpd.conf

# 编辑错误页面配置
# 错误页面再站点根目录下创建,也可以在子目录中
# 错误信息还可以使用“直接输出提示”
ErrorDocument 400 /error/400.html
ErrorDocument 401 /error/401.html
ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/400.html
ErrorDocument 405 /error/405.html
ErrorDocument 500 /error/500.html

拒绝服务防范

合理设置会话时间,防止拒绝服务

编辑httpd.conf文件
vim /etc/httpd/conf/httpd.conf

# 修改内容
Timeout 10
KeepAlive On
KeepAliveTimeout 15    
# 此处的连接间隔和session保持时间单位都是秒,一定要根据实际情况,分析后再设定。


# 参数详解
Timeout 10:定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。
KeepAlive On:定义是否启用保持连接,默认关闭状态。
KeepAliveTimeout 15:一次保持连接的最长时间(秒)。

隐藏程序版本号

避免被针对漏洞

修改httpd.conf文件
vim /etc/httpd/conf/httpd.conf 

# 修改如下信息
ServerSignature Off
ServerTokens Prod

关闭TRACE功能

防止trace方法被恶意利用泄露信息

编辑httpd.conf文件
vim /etc/httpd/conf/httpd.conf

# 修改信息如下
TraceEnable Off

禁用CGI功能

确保不适用cgi程序的情况下,关闭cgi功能

编辑httpd.conf文件
vim /etc/httpd/conf/httpd.conf
# 注释信息如下
# ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# <Directory "/var/www/cgi-bin">
#    AllowOverride None
#    Options None
#    Require all granted
# </Directory>


编辑01-cgi.conf文件,cgi模块在/etc/httpd/conf.modules.d/01-cgi.conf下
vim /etc/httpd/conf.modules.d/01-cgi.conf
# 注释信息如下
# LoadModule cgi_module modules/mod_cgi.so

绑定监听地址

服务器多个IP时,绑定业务接口IP

编辑httpd.conf文件
vim /etc/httpd/conf/httpd.conf

# 添加监听IP,如果页面为私有页面,还可以更改默认端口值
Listen xx.xx.xx.xx.:80

禁用非法HTTP方法

禁用put、delete等危险的http方法

编辑httpd.conf文件
vim /etc/httpd/conf/httpd.conf

# 加入信息如下
<Location />
    <LimitExcept GET POST CONNECT OPTIONS>
        AllowOverride None
        Require all granted
    </LimitExcept>
</Location>

防止apache解析漏洞

防止非法文件绕过合法性检查

编辑httpd.conf文件
vim /etc/httpd/conf/httpd.conf

# 添加配置信息
<FileMatch \.php$>
    SetHandler application/x-httpd-php
</FileMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

防止sql注入

禁止PHP页面对sql注入给予反馈

修改php.ini文件
vim /etc/php.ini

# 加入或修改信息如下
magic_quotes_gpc=On

限制请求消息长度

防止溢出漏洞

编辑httpd.conf文件
vim /etc/httpd/conf/httpd.conf

# 添加信息
LimitRequestBody  102400

Nginx加固

隐藏版本信息

避免被针对版本直接使用漏洞

编辑nginx.conf文件

# 在http模块中添加如下信息
server_tokens off;

限制目录权限

某些目录为运维页面,不要公开访问

编辑nginx.conf


server {
        listen       80;
        root         /usr/share/nginx/html;
        location ~ /test/.*\.html$ {
        	deny all;
        }
}



# 在server标签内添加如下内容
location ~/attachments/.*\.(php|php5)?$ {
	deny all;
}

location ~/(attachments|upload)/.*\.(php|php5)?$ {
	deny all;
}

限制IP地址访问

敏感目录使用白名单访问

修改nginx.conf文件

# 在server中添加
location /upload {
	allow 10.0.1.0/24;
	allow 192.168.1.1/32;
	deny all;
}


# allow:允许
# deny:拒绝

禁止浏览目录内容

编辑nginx.conf文件

# 在http模块下添加一行内容
autoindex off;

错误页面重定向

制作重定向,防止默认页面存在安全隐患

编辑nginx.conf

# 在server模块下加入
error_page 404 /404.html
	location = /404.html {
		root /usr/local/nginx/html;
	}

日志配置

修改日志格式,便于审计

编辑nginx.conf文件

1.在http模块内启用标签main的log_format格式
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';


2.在server标签内调用
access_log  logs/host.access.log  main;

限制http请求方法

只允许常用的get和post方法,减少漏洞

编辑nginx.conf文件

# 在server模块中加入判断信息
if ($request_method !~* GET|POST) {
	return 403;
}

限制并发和速度

减缓被ddos攻击时资源消耗速度

编辑nginx.conf文件

1.在http模块中声明
# 开启请求限制模块
limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;

2.添加在server的location中
# 参考1
location / {
	limit_req zone=allips burst=5 nodelay;
	limit_rate 20k;
}
# 参考2
location /download {
	limit_rate_after 10m;
	limit_rate 128k;
}


# 参数注释
limit_req:请求限制设置指令
burst :相当于一个缓冲容器,该容器内可容纳 burst 所设置的数量的请求,没有 nodelay 参数时,将匀速向 Nginx 释放需要处理的请求。
nodelay:不延迟处理,立即处理。
limit_rate_after:允许在传输了一部分数据之后再进行限速。
limit_rate:控制发送至客户端的数据传输速度的。

控制超时时间

缓解ddos造成的影响

编辑nginx.conf文件

# 在http模块中设置
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 30;
send_timeout 10;


# 参数注释
client_body_timeout:设置客户端向服务器发送请求体的超时时间,单位为秒。
client_header_timeout:设置客户端向服务器发送请求头的超时时间,单位为秒。
keepalive_timeout:设置服务器与客户端之间保持连接的超时时间,单位为秒。
send_timeout:设置服务器向客户端发送响应的超时时间,单位为秒。

proxy_connect_timeout:设置代理服务器与后端服务器建立连接的超时时间,单位为秒。
proxy_read_timeout:设置代理服务器从后端服务器读取数据的超时时间,单位为秒。
proxy_send_timeout:设置代理服务器向后端服务器发送数据的超时时间,单位为秒。

防盗链

防止通过其他途径使用本站资源

location ~* \.(jpg|jpeg|png|gif|bmp|swf|rar|zip|doc|xls|pdf|gz|bz2|mp3|mp4|flv)$ {
	valid_referers none blocked 192.168.0.1 *.baidu.com;
	if ($invalid_referer) {
		rewrite ^/ https://site.com/403.jpg;
		# return 403;
	}
	root /usr/share/nginx/img;
}

nginx降权

防止高权限运行nginx进程

编辑nginx.conf

# 在http模块下修改
user nobody;

解析漏洞

防止非法后缀被服务器识别

(1)将php.int文件中的cgi.fix_pathinfo的值设为0
(2)将/etc/php5/fpm/pool.d/www.conf中security.limit_ectensions后面的值设为.php

tomcat加固

tomcat控制台用户配置

如果不需要控制台管理,请更改控制台用户文件,注销账号信息,如果需要控制台,请更改账户信息。

编辑tomcat-user.xml文件
vim conf/tomcat-users.xml

# 注释或修改(是否打开控制台信息)
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>

请添加图片描述

开启tomcat的访问日志

开启日志功能,增加审计环节

修改conf/server.xml文件

vim conf/server.xml 
# 去掉如下行的注释符
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="common" resolveHosts="false"/>

自定义404错误页面

避免泄露敏感信息

1.在网站根目录下新建noFile.html文件
vim /opt/tomcat/webapps/ROOT/noFile.html
# 错误页面随便写
<h1> Error Package </h1>


2.查看并启用tomcat的 /conf/web.xml文件中的下列代码
<error-page>
<error-code>404</error-code>
<location>/noFile.html</location>
</error-page>

3.重启tomcat
/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh d


4.随机访问不存在的页面,报错页面显示Error Package
http://10.0.1.110:8080/aaaaa
页面显示:
Error Package

关闭目录浏览

防止浏览器查看目录内容

编辑tomcat/conf/web.xml配置文件

vim conf/web.xml
# 把true改成false
<init-param>
		<param-name>listings</param-name>
		<param-value>false</param-value>
</init-param>

使用安全的http请求

禁用不安全的http请求方式

编辑tomcat/conf/web.xml配置

vim conf/web.xml
# 添加或修改如下信息
<security-constraint>
	<web-resource-collection>
		<url-pattern>/*</url-pattern>
		<http-method>PUT</http-method>
		<http-method>DELETE</http-method>
		<http-method>HEAD</http-method>
		<http-method>OPTIONS</http-method>
		<http-method>TRACE</http-method>
	</web-resource-collection>
	<auth-constraint>
	</auth-constraint>
</security-constraint>
<login-config>
	<auth-method>BASIC</auth-method>
</login-config>

限制IP访问

访问来源白名单

编辑tomcat/conf/server.xml,# 添加如下

vim conf/server.xml 

# 只允许192.168.1.2和192.168.2.3
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.2|192.168.2.3" deny=""/> 

# 拒绝192.168.1.2和192.168.2.3 
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="" deny="192.168.1.2|192.168.2.3"/> 

登录超时退出

缓解dos攻击带来的过度资源占用

编辑 tomcat/conf/server.xml文件

vim conf/server.xml 
# 将连接超时时间改小为300
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="300"
               redirectPort="8443" />

tomcat5.5以下版本位置如下
在这里插入图片描述

更改默认端口

降低被扫描的几率

编辑tomcat/conf/server.xml文件

vim conf/server.xml
# 可以更改默认端口,prot=“xx”
<Connector port="8080" protocol="HTTP/1.1"
		connectionTimeout="20000"
		redirectPort="8443" />

tomcat5.5以下版本位置如下

在这里插入图片描述

启用https加密访问

防止传输信息被截获解读

1.使用jdk的keytools生成密钥对
keytool -genkey -alias tomcat -keyalg RSA -keystore /root/keystore



2.修改tomcat的server.xml文件取消注释信息后添加密钥路径和访问密码
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" keystoreFile="/root/keystore"
         keystorePass="123123" sslPortocol="TLS"  />


3.重启apache
systemctl restart httpd

在这里插入图片描述

随时更新补丁

修补最新的漏洞

访问 http://httpd.tomcat.org 下载最新稳定版补丁
地址:http://httpd.tomcat.org

jboss加固

jboss6部署

!!!需要图形化界面

# 删除jdk1.8
yum remove java-1.8.0-openjdk* -y

1.安装jdk1.7.0,jboss6只能支持jdk1.7
yum install java-1.7.0-openjdk* -y


2.解压jboss6到 /opt 目录
unzip jboss-as-distribution-6.1.0.Final.zip
mv jboss-6.1.0.Final /opt/jboss6

3.启动jboss6
/opt/jboss6//bin/run.sh


4.页面访问jboss
http://localhost:8080/

在这里插入图片描述

jboss7部署

!!! 需要图形化界面

1.解压jboss7
unzip jboss-as-7.1.1.Final.zip

# 移动到 /opt 目录下
mv jboss-as-7.1.1.Final /opt/jboss7

2.解压jboss模块
unzip jboss-modules-1.1.5.ga.jar.zip 
# 替换jboss7目录下的jboss-modules.jar 
cp jboss-modules-1.1.5.ga.jar /opt/jboss7/jboss-modules.jar 


3.为jboss7添加管理员用户
[root@bogon jboss]# /opt/jboss7/bin/add-user.sh 

What type of user do you wish to add? 
 a) Management User (mgmt-users.properties) 
 b) Application User (application-users.properties)
(a):    !!!

Enter the details of the new user to add.
Realm (ManagementRealm) :    !!!
Username : test   !!!
Password :    !!!
Re-enter Password :    !!!
About to add user 'test' for realm 'ManagementRealm'
Is this correct yes/no? yes   !!!
Added user 'test' to file '/opt/jboss7/standalone/configuration/mgmt-users.properties'
Added user 'test' to file '/opt/jboss7/domain/configuration/mgmt-users.properties'

4.启动jboss7
/opt/jboss7/bin/standalone.sh


5.页面访问jboss7
http://localhost:8080/

开启日志功能

打开链接日志,记录链接信息

1.修改配置文件
vim /opt/jboss6/server/default/deploy/jbossweb.sar/server.xml 

# 找到链接日志,去掉注释符号
<Valve className="org.apache.catalina.valves.AccessLogValve"
                prefix="localhost_access_log." suffix=".log"
                pattern="common" directory="${jboss.server.log.dir}" 
                resolveHosts="false" />


2.日志位置在
/opt/jboss6/server/default/log/

jboss7默认没用开启access_log

jboss7

修改配置文件
vim /opt/jboss7/standalone/configuration/standalone.xml 

# 在源配置中添加新内容
 <virtual-server name="default-host" enable-welcome-root="true">
            <alias name="localhost"/>
            <alias name="example.com"/>
# 添加三行内容
<access-log pattern="%t %a %m %U %s %D" prefix="access_log." rotate="true">
<directory path="." relative-to="jboss.server.log.dir"/>
                </access-log>
</virtual-server>

重定向错误页面

指定常见错误页面,防止泄露敏感信息

1.写入错误页面
vim /opt/jboss6/server/default/deploy/ROOT.war/404.html
<h1> Error Package </h1>

2.添加配置
vim /opt/jboss6/server/default/deploy/jbossweb.sar/web.xml
# 在 </web-app> 之上加入信息
<error-page>
        <error-code>404</error-code>
        <location>/404.html</location>
</error-page>

控制台认证

JMX-console添加认证后登录

1.修改文件
vim /opt/jboss6/common/deploy/jmx-console.war/WEB-INF/jboss-web.xml 
# 将注释信息启用
<security-domain>java:/jaas/jmx-console</security-domain>


2.修改文件
vim /opt/jboss6/common/deploy/jmx-console.war/WEB-INF/web.xml 
# 将注释信息启用
<security-constraint>
     <web-resource-collection>
       <web-resource-name>HtmlAdaptor</web-resource-name>
       <description>An example security config that only allows users with the
         role JBossAdmin to access the HTML JMX console web application
       </description>
       <url-pattern>/*</url-pattern>
     </web-resource-collection>
     <auth-constraint>
       <role-name>JBossAdmin</role-name>
     </auth-constraint>
</security-constraint>


3.认证文件用户名和密码,默认不用改
vim /opt/jboss6/server/default/conf/props/jmx-console-users.properties
admin=admin
用户名=密码

4.用户名所属角色,默认不用改
vim /opt/jboss6/server/default/conf/props/jmx-console-roles.properties 
admin=JBossAdmin,HttpInvoker


5.重启jboss6
/opt/jboss6//bin/run.sh


5.访问控制台,用户认证后登录
http://localhost:8080

在这里插入图片描述

JBoss Web Service Console认证登录

1.修改文件
vim /opt/jboss6/common/deploy/jbossws-console.war/WEB-INF/jboss-web.xml
# 将注释信息启用
<security-domain>java:/jaas/JBossWS</security-domain>

2.修改文件
vim /opt/jboss6/common/deploy/jbossws-console.war/WEB-INF/web.xml 
将注释信息启用
<security-constraint>
   <web-resource-collection>
       <web-resource-name>ContextServlet</web-resource-name>
       <description>An example security config that only allows users with the
         role 'friend' to access the JBossWS console web application
       </description>
       <url-pattern>/*</url-pattern>
   </web-resource-collection>
   <auth-constraint>
       <role-name>friend</role-name>
   </auth-constraint>
</security-constraint>


3.认证文件用户名和密码
vim /opt/jboss6/server/default/conf/props/jbossws-users.properties
kermit=thefrog
# 添加测试用户名和密码
zhangsan=123123


4.用户所属角色
vim /opt/jboss6/server/default/conf/props/jbossws-roles.properties
kermit=friend
# 添加测试用户的所属角色
zhangsan=friend


5.访问控制台,用户名认证后登录
http://localhost:8080

在这里插入图片描述

关闭status

禁用status功能,防止信息泄露

修改文件
vim /opt/jboss6/server/default/deploy/ROOT.war/WEB-INF/web.xml 

# 去掉注释符
<servlet>
    <servlet-name>Status Servlet</servlet-name>
    <servlet-class>org.jboss.web.tomcat.service.StatusServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Status Servlet</servlet-name>
    <url-pattern>/status</url-pattern>
</servlet-mapping>

移走默认文件

在测试环境完毕后,移走控制台默认文件

移动或备份后删除
/opt/jboss6/server/default/deploy/ROOT.war/

mv /opt/jboss6/server/default/deploy/ROOT.war/ /tmp/console_bak

禁止列出目录

修改文件
vim /opt/jboss6/server/default/deploy/jbossweb.sar/web.xml

# 确保<param-value>的值为false
      <init-param>
         <param-name>listings</param-name>
         <param-value>false</param-value>
      </init-param>

超时设置

修改文件
vim /opt/jboss6/server/default/deploy/jbossweb.sar/server.xml

# 找到Connector标签,加入connectionTimeout="1800(超时设置)
<Connector protocol="HTTP/1.1" port="${jboss.web.http.port}" address="${jboss.bind.address}" 
         redirectPort="${jboss.web.https.port}" connectionTimeout="1800" />

修改默认端口

修改java访问端口号为8808

修改文件
vim /opt/jboss6/server/default/deploy/jbossweb.sar/server.xml

# 找到Connector标签,修改port为8808
<Connector protocol="HTTP/1.1" port="8808" address="${jboss.bind.address}" 
         redirectPort="${jboss.web.https.port}" connectionTimeout="1800" />

weblogic加固

搭建weblogic

1.导入weblogic镜像
docker load -i weblogic12c\(weblogic\&welcome1\).tar


2.启动容器
docker run -itd --name weblogic12c -p 7002:7002 -p 7001:7001 -p 5555:5555 docker.io/ismaleiva90/weblogic12 


3.页面访问
http://localhost:7001/console/

账号:weblogic
密码:welcome1

用户密码修改

安全领域→myrealm→用户和组|用户→weblogic→口令

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

账户锁定策略

安全领域→myrealm→配置|用户封锁

在这里插入图片描述
在这里插入图片描述

账户密码策略

安全领域→myrealm→提供程序|口令验证→SystemPasswordValidator→提供程序特定

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

密码锁定策略

安全领域→myrealm→提供程序|口令验证→SystemPasswordValidator→提供程序特定

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

日志配置

环境→服务器→AdminServer (管理)→日志记录|HTTP

在这里插入图片描述

在这里插入图片描述

日志存放位置

# 进入容器
docker exec -it weblogic12c /bin/bash

# 切换到根目录
cd /

# 切换到日志目录
cd u01/oracle/weblogic/user_projects/domains/base_domain/servers/AdminServer/logs/

# 查看目录
[oracle@37bdb30b0fa7 logs]$ ls
AdminServer.log  access.log  base_domain.log  diagnostic_images  jmsServers

更改默认监听端口

环境→服务器→AdminServer (管理)→配置|一般信息

在这里插入图片描述

在这里插入图片描述

禁用 send server header

环境→服务器→AdminServer (管理)→协议|HTTP

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

禁用X-Powered-By header

base_domain→配置|Web应用程序

在这里插入图片描述

在这里插入图片描述

限制应用服务器Socket数量

环境→服务器→AdminServer (管理)→配置|优化

在这里插入图片描述

在这里插入图片描述

修改后台默认路径

base_domain→配置|一般信息

在这里插入图片描述
在这里插入图片描述

websphere加固

登录界面

在这里插入图片描述

账户安全

用户和组→管理用户→admin

在这里插入图片描述

在这里插入图片描述

启用JAVA2安全性

安全性→全局安全性

在这里插入图片描述

确保启用LTPA认证

安全性→全局安全性

在这里插入图片描述

限制主机访问更改控制台端口

# 多用tab补
vim /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/bogonNode01Cell/nodes/bogonNode01/serverindex.xml 
# 更改端口
<endPoint xmi:id="EndPoint_1183122129649" host="*" port="9043"/>

启用安全审计

安全性→安全性审计

在这里插入图片描述

单点登录,防止xss攻击

安全性→安全性审计→Web和Jsp安全性→单点登录

在这里插入图片描述

在这里插入图片描述

防止通过浏览器查看目录

修改app配置文件

# 多用tab补
vim /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/bogonNode01Cell/applications/DefaultApplication.ear/deployments/DefaultApplication/DefaultWebApplication.war/WEB-INF/ibm-web-ext.xmi 

# directoryBrowsingEnabled参数是false,就是关闭的
directoryBrowsingEnabled="false"

限制config和properties目录权限

# 多用tab补
cd /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/

chown -R root config
chmod -R 750 config
chown -R root properties
chmod -R 750 properties

Jenkins加固

部署jenkins

# 安装jdk1.8
yum install -y java-1.8.0-openjdk*

# 安装jenkins
rpm -ivh jenkins-2.356-1.1.noarch.rpm 

# 启动jenkins
systemctl start jenkins.service


# 访问页面
http://localhost:8080

# 查看管理员密码,并输入页面中
cat /var/lib/jenkins/secrets/initialAdminPassword 

安装推荐的插件

在这里插入图片描述

在这里插入图片描述

用户密码修改

用户列表→username→设置(往下翻:找到Password,修改密码)→保存

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

确保非本地测试环境开启安全选项

新版本默认开启

Manager Jenkins→Configure Global Security

在这里插入图片描述

在这里插入图片描述

为多用户分配权限

先安装插件

安装插件

Manager Jenkins→Plugin Manager→可选插件(role)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

开启功能

Manager Jenkins→Configure Global Security→授权策略(Role-Based Strategy)→保存

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

新建用户

Manager Jenkins→Manage User→新建用户
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

为多用户分配权限

Manager Jenkins→Manage and Assign Roles→(管理角色|分配角色):根据实际需要分配权限
在这里插入图片描述

在这里插入图片描述

管理角色

在这里插入图片描述

在这里插入图片描述

分配角色

在这里插入图片描述

在这里插入图片描述

日志审计

Manager Jenkins→System Log

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

老版本的需要关掉jmdns功能

在这里插入图片描述

跨站请求伪造

Manager Jenkins→Configure Global Security→

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1.编辑jenkins.service文件
[root@node1 ~]# vim /usr/lib/systemd/system/jenkins.service 

# 修改如下配置
Environment="JAVA_OPTS=-Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"


2.重启jenkins
systemctl daemon-reload 
systemctl restart jenkins


3.再次查看网页跨站请求伪造保护位置,就会发现有
“跨站请求伪造保护
This configuration is unavailable because the System property hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION is set to true.That option should be considered unsupported and its use should be limited to working around compatibility problems until they are resolved.”
字样的内容提示。

在这里插入图片描述

修改默认端口

1.编辑jenkins文件
vim /etc/sysconfig/jenkins
JENKINS_PORT="8080"


2.重启jenkins
systemctl restart jenkins

IIS加固

限制目录执行权限

在这里插入图片描述

在这里插入图片描述

开启日志审计

在这里插入图片描述
在这里插入图片描述

定义404错误页

在这里插入图片描述

在这里插入图片描述

防止.mdb数据库文件被下载

C:\Windows\System32\inetsrv\config\applicationHost.config

在这里插入图片描述

# 将这两行的allowed后面的值改为false
<add fileExtension=".mdb" allowed="false" />
<add fileExtension=".mdf" allowed="false" />

在这里插入图片描述

访问源IP限制

在这里插入图片描述
在这里插入图片描述

关闭WebDAV

在这里插入图片描述

在这里插入图片描述

关闭目录浏览

在这里插入图片描述

在这里插入图片描述

关闭FTP匿名访问

在这里插入图片描述

在这里插入图片描述

解决IIS短文件名漏洞

在这里插入图片描述

在这里插入图片描述

拒绝不必要的脚本映射

在这里插入图片描述

包括:.asa .cer .cdx .idq .htw .ida .shtml .stm .idc .htr .printer等

删除的原则:只保留需要的脚本映射

在这里插入图片描述

设置最大并发量

在这里插入图片描述

独立站点匿名账户

运行lusrmgr.msc打开本地账户,新建用户
在这里插入图片描述

在新建用户的属性中,设置隶属于,删除users组添加guests组
在这里插入图片描述

设置匿名账户

在这里插入图片描述

在这里插入图片描述

确认角色功能,删除不必要组件

打开服务器管理器,删除不必要的角色

在这里插入图片描述

ndows\System32\inetsrv\config\applicationHost.config

[外链图片转存中…(img-2XKSRdOI-1685885572481)]

# 将这两行的allowed后面的值改为false
<add fileExtension=".mdb" allowed="false" />
<add fileExtension=".mdf" allowed="false" />

[外链图片转存中…(img-cycj7rDV-1685885572481)]

访问源IP限制

[外链图片转存中…(img-uoTSHo2r-1685885572482)]

[外链图片转存中…(img-btW5zK46-1685885572482)]

关闭WebDAV

[外链图片转存中…(img-0s4RQmTj-1685885572482)]

[外链图片转存中…(img-YDXYTIKb-1685885572482)]

关闭目录浏览

[外链图片转存中…(img-Dae1yeL7-1685885572483)]

[外链图片转存中…(img-QdvtCRzn-1685885572483)]

关闭FTP匿名访问

[外链图片转存中…(img-Is6SGwJZ-1685885572483)]

[外链图片转存中…(img-XUNUzfCG-1685885572484)]

解决IIS短文件名漏洞

[外链图片转存中…(img-6r4x3Tgs-1685885572485)]

[外链图片转存中…(img-2k4KMS03-1685885572485)]

拒绝不必要的脚本映射

[外链图片转存中…(img-qhK0BvC3-1685885572485)]

包括:.asa .cer .cdx .idq .htw .ida .shtml .stm .idc .htr .printer等

删除的原则:只保留需要的脚本映射

[外链图片转存中…(img-zg14Hob0-1685885572486)]

设置最大并发量

[外链图片转存中…(img-zBDGM2di-1685885572486)]

独立站点匿名账户

运行lusrmgr.msc打开本地账户,新建用户

[外链图片转存中…(img-rkaMds93-1685885572486)]

在新建用户的属性中,设置隶属于,删除users组添加guests组

[外链图片转存中…(img-26nKnSdh-1685885572487)]

设置匿名账户

[外链图片转存中…(img-LKA6paPg-1685885572487)]

[外链图片转存中…(img-taXKH0Pc-1685885572487)]

确认角色功能,删除不必要组件

打开服务器管理器,删除不必要的角色

[外链图片转存中…(img-OFOocNAP-1685885572488)]

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值