什么是中间件
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)]