赞
踩
SSL Medium Strength Cipher Suites Supported (SWEET32)
&& TLS Version 1.0 Protocol Detection
以traefik.toml为例
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
minVersion = "VersionTLS12"
cipherSuites = [
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
"TLS_RSA_WITH_AES_256_GCM_SHA384"
]
HSTS Missing From HTTPS Server (RFC 6797)
HTTP 严格传输安全(HSTS)是一种安全功能,web 服务器通过它来告诉浏览器仅用 HTTPS 来与之通讯,而不是使用 HTTP
- 如果一个 web 服务器支持 HTTP 访问,并将其重定向到 HTTPS 访问的话,那么访问者在重定向前的初始会话是非加密的。举个例子,比如访问者输入 http://www.foo.com/ 或直接输入 foo.com 时。
- 这就给了中间人攻击的一个机会,重定向可能会被破坏,从而定向到一个恶意站点而不是应该访问的加密页面。
- HTTP 严格传输安全(HSTS)功能使 Web 服务器告知浏览器绝不使用 HTTP 访问,在浏览器端自动将所有到该站点的 HTTP 访问替换为 HTTPS 访问。
当你通过一个无线路由器的免费 WiFi 访问你的网银时,很不幸的,这个免费 WiFi 也许就是由黑客的笔记本所提供的,他们会劫持你的原始请求,并将其重定向到克隆的网银站点,然后,你的所有的隐私数据都曝光在黑客眼下。
严格传输安全可以解决这个问题。如果你之前使用 HTTPS 访问过你的网银,而且网银的站点支持 HSTS,那么你的浏览器就知道应该只使用 HTTPS,无论你是否输入了 HTTPS。这样就防范了中间人劫持攻击。
- 注意,如果你之前没有使用 HTTPS 访问过该站点,那么 HSTS 是不奏效的。网站需要通过 HTTPS 协议告诉你的浏览器它支持 HSTS。
- 服务器开启 HSTS 的方法是,当客户端通过HTTPS发出请求时,在服务器返回的 HTTP 响应头中包含 Strict-Transport-Security 字段。非加密传输时设置的HSTS字段无效。
2.1、以traefik.toml为例需要去除http访问,redirect也不可以,只能使用https
[entryPoints]
#[entryPoints.http]
#address = ":80"
# [entryPoints.http.redirect]
# entryPoint = "https"
#permanent = true
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
minVersion = "VersionTLS12"
cipherSuites = [
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
"TLS_RSA_WITH_AES_256_GCM_SHA384"
]
2.2、以APACHE httpd为例:
/etc/httpd/conf/httpd.conf
1、支持修改响应头。
在 httpd.conf 文件的 mod_headers 模块中取消注释以下装入模块伪指令。
LoadModule headers_module modules/mod_headers.so
<VirtualHost *:80>
Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"
</VirtualHost>
SSH Weak Key Exchange Algorithms Enabled
&& SSH Server CBC Mode Ciphers Enabled
3.1、打开ssh配置文件:
vim /etc/ssh/sshd_config
最后添加以下三行加密方式
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,arcfour
Macs hmac-sha1,hmac-ripemd160
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
3.2、重启sshd
systemctl restart sshd
3.3、如果报错Directive 'Ciphers' is not allowed within a Match blo
如果配置了如下两行,那就把需要添加的放到这个上面即可
Subsystem sftp internal-sftp
Match Group sftp
3.4、ssh验证(可跳过)
[root@localhost ~]# ssh -vv -oCiphers=aes128-cbc,3des-cbc,blowfish-cbc 目标IP
[root@localhost ~]# ssh -vv -oMACs=hmac-md5 目标IP
3.5、nmap验证(可跳过)
nmap --script ssh2-enum-algos -sV -p 22 目标IP
……
Unable to negotiate with 127.0.0.1 port 22: no matching cipher found. Their offer: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,arcfour
……
# :这个命令创建了一个密码策略模块文件,其中指定了一组密码和MAC算法,并禁用了SSH中的一些特定配置,以防止利用CVE-2023-48795漏洞。
cat <<EOF > /etc/crypto-policies/policies/modules/CVE-2023-48795.pmod
cipher@SSH = -CHACHA20-POLY1305 -*-CBC
mac@ssh = -HMAC-SHA1
ssh_etm = 0
EOF
# :这个命令将新创建的密码策略模块应用到系统中,确保系统遵循所定义的密码策略。
update-crypto-policies --set $(update-crypto-policies --show):CVE-2023-48795
# 这两个命令分别将新的SSH密码配置写入sshd和ssh客户端的配置文件中,以禁用特定的SSH密码算法,以防止利用CVE-2023-48795漏洞
echo 'Ciphers -chacha20-poly1305@openssh.com' > /etc/ssh/sshd_config.d/anti-terrapin-attack.conf
echo 'Ciphers -chacha20-poly1305@openssh.com' > /etc/ssh/ssh_config.d/anti-terrapin-attack.conf
验证cbc密码策略是否已经禁用
ssh -c aes256-cbc root@ip
查看对应的策略
# server端
sshd -T | grep kex
# 客户端
ssh -Q kex
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。