目次
- ミドルウェアとは
- Apache の強化
- Nginxの強化
- トムキャットの補強
- ジェイボスの強化
- ウェブロジックの強化
- ウェブスフィアの補強
- ジェンキンスの補強
- IISの強化
-
- ディレクトリの実行権限を制限する
- ログ監査を有効にする
- 404エラーページを定義する
- .mdb データベース ファイルがダウンロードされないようにする
- アクセス元IP制限
- WebDAVをオフにする
- ディレクトリの参照を閉じる
- FTP匿名アクセスをオフにする
- IIS の短いファイル名の脆弱性を解決する
- 不要なスクリプトマッピングを拒否する
- 最大同時実行数を設定する
- 独立したサイトの匿名アカウント
- 役割機能の確認と不要なコンポーネントの削除
- アクセス元IP制限
- WebDAVをオフにする
- ディレクトリの参照を閉じる
- FTP匿名アクセスをオフにする
- IIS の短いファイル名の脆弱性を解決する
- 不要なスクリプトマッピングを拒否する
- 最大同時実行数を設定する
- 独立したサイトの匿名アカウント
- 役割機能の確認と不要なコンポーネントの削除
ミドルウェアとは
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模块。
ディレクトリリストを無効にする
Web サイトのディレクトリ外のファイルへのアクセスを防止する
修改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
トレース機能をオフにする
トレースメソッドが悪用されて情報が漏洩することを防止する
编辑httpd.conf文件
vim /etc/httpd/conf/httpd.conf
# 修改信息如下
TraceEnable Off
CGI 機能を無効にする
CGIプログラムを使用しないときは、CGI機能を必ずOFFにしてください。
编辑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-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
ジェイボスの強化
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 コンソールに認証を追加した後にログインします
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サービスコンソール認証ログイン
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
クローズステータス
情報漏洩を防ぐためにステータス機能を無効にする
修改文件
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" />
ウェブロジックの強化
ウェブロジックを構築する
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 (管理)→構成|一般情報
送信サーバーヘッダーを無効にする
環境→サーバー→AdminServer (管理)→プロトコル|HTTP
X-Powered-By ヘッダーを無効にする
ベースドメイン→設定|Webアプリケーション
アプリケーションサーバーのソケット数を制限する
環境→サーバー→AdminServer (管理)→構成|最適化
バックグラウンドのデフォルトパスを変更する
ベースドメイン→設定|一般情報
ウェブスフィアの補強
ログインインターフェース
アカウントのセキュリティ
ユーザーとグループ→ユーザーの管理→管理者
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"
構成およびプロパティディレクトリのアクセス許可を制限する
# 多用tab补
cd /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/
chown -R root config
chmod -R 750 config
chown -R root properties
chmod -R 750 properties
ジェンキンスの補強
ジェンキンスのデプロイ
# 安装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
推奨プラグインをインストールする
ユーザーパスワードの変更
ユーザーリスト→ユーザー名→設定(下にスクロールして、パスワードを見つけてパスワードを変更します)→保存
ローカル以外のテスト環境ではセキュリティ オプションがオンになっていることを確認してください
新しいバージョンはデフォルトで有効になります
マネージャー Jenkins→グローバル セキュリティの設定
複数のユーザーに権限を割り当てる
まずプラグインをインストールしてください
プラグインのインストール
Jenkinsマネージャー→プラグインマネージャー→オプションのプラグイン(役割)
イネーブル機能
マネージャー Jenkins→グローバル セキュリティの構成→承認戦略 (ロールベースの戦略)→保存
新しいユーザーを作成する
マネージャー Jenkins→ユーザーの管理→新規ユーザー
複数のユーザーに権限を割り当てる
マネージャー Jenkins→役割の管理と割り当て→(管理役割 | 役割の割り当て):実際のニーズに応じて権限を割り当てます。
管理の役割
役割の割り当て
ログ監査
マネージャー Jenkins→システム ログ
古いバージョンではjmdns 機能をオフにする必要があります
クロスサイトリクエスト偽造
マネージャー Jenkins→グローバル セキュリティの構成→
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 を実行してローカル アカウントを開き、新しいユーザーを作成します
新しいユーザーのプロパティで、所属を設定し、ユーザー グループを削除し、ゲスト グループを追加します。
匿名アカウントを設定する
役割機能の確認と不要なコンポーネントの削除
サーバーマネージャーを開き、不要なロールを削除します
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)]
新しいユーザーのプロパティで、所属を設定し、ユーザー グループを削除し、ゲスト グループを追加します。
[外部リンク画像は転送中です...(img-26nKnSdh-1685885572487)]
匿名アカウントを設定する
[外部リンク画像を転送中...(img-LKA6paPg-1685885572487)]
[外部リンク画像を転送中...(img-taXKH0Pc-1685885572487)]
役割機能の確認と不要なコンポーネントの削除
サーバーマネージャーを開き、不要なロールを削除します
[外部リンクの画像は転送中です...(img-OFOocNAP-1685885572488)]