Skip to content
Eternal Center

Eternal Center

  • Single-Node (单节点)
    • System (系统)
    • Service (服务)
    • Database (数据库)
    • Container (容器)
    • Virtualization (虚拟化)
  • Multi-Node (多节点)
    • Cluster (集群)
    • Big Data (大数据)
    • Cloud Computing (云计算)
    • Batch Processing (批量处理)
  • Approach (方式方法)
    • Languages (语言)
    • Ideas (思路)
    • Programing (编程)
    • Project (项目)
  • Eternity (永恒)
    • News (消息)
    • Creations (创作)
    • Classics (经典)
    • Legends (传说)
    • Chronicle (编年史)
    • FNIOS (宇宙公民开源学院)
Posted on August 29, 2022June 7, 2024 by Mingyu Zhu

[步骤] Linux SSH 加密方式 (cipher) 、信息验证代码 (message authentication code) 和算法 (algorithm) 的设置 (Ciphers、MACs 和 KexAlgorithms 参数的设置) (不使用来自 crypto policies 的系统全局设置) (RHEL 8 版)

  • 注意:
  • 正文:
    • 步骤一:启用 SSH 配置文件里加密方式 (cipher) 、信息验证代码 (message authentication code)和算法 (algorithm) 的设置
      • 1.1 备份 /etc/sysconfig/sshd 配置文件
      • 1.2 修改 /etc/sysconfig/sshd 配置文件
    • 步骤二:在 /etc/ssh/sshd_config 配置文件中设置要使用的 Ciphers、MACs 和 KexAlgorithm 参数
      • 2.1 备份 /etc/ssh/sshd_config 配置文件
      • 2.2 在 /etc/ssh/sshd_config 配置文件中添加要使用的 Ciphers、MACs 和 KexAlgorithms 参数
      • 2.3 让在 /etc/ssh/sshd_config 配置文件中添加要使用的 Ciphers、MACs 和 KexAlgorithms 参数生效
    • 步骤三:测试 SSH 加密方式 (cipher)和算法 (algorithm)
      • 3.1 测试 SSH Ciphers 参数
        • 3.1.1 测试某个 SSH 加密方式 (ciphers)
        • 3.1.2 测试多个 SSH 加密方式 (ciphers)
      • 3.2 测试 SSH MACs 参数
        • 3.2.1 测试某个 SSH ciphers 加密算法
        • 3.2.2 测试多个 SSH ciphers 加密算法
      • 3.3 显示所有在使用的 SSH 加密方式 (cipher)和算法 (algorithm)
        • 3.3.1 使用 sshd 命令显示所有在使用的 SSH 加密方式 (cipher)和信息验证代码 (message authentication code)
        • 3.3.2 使用 nmap 命令显示所有在使用的 SSH 加密方式 (cipher)和算法 (algorithm)
  • 参考文献:

注意:

RHEL 8 的 SSH 加密算法默认会使用来自 crypto policies 系统的全局 SSH 加密算法,而此方法将让 SSH 使用单独设置的 SSH 加密算法。

正文:

步骤一:启用 SSH 配置文件里加密方式 (cipher) 、信息验证代码 (message authentication code)和算法 (algorithm) 的设置

1.1 备份 /etc/sysconfig/sshd 配置文件

# cp /etc/sysconfig/sshd /etc/sysconfig/sshd_backup

1.2 修改 /etc/sysconfig/sshd 配置文件

# vim /etc/sysconfig/sshd

将以下内容:

# CRYPTO_POLICY=

修改为:

......
CRYPTO_POLICY=
......

步骤二:在 /etc/ssh/sshd_config 配置文件中设置要使用的 Ciphers、MACs 和 KexAlgorithm 参数

2.1 备份 /etc/ssh/sshd_config 配置文件

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup

2.2 在 /etc/ssh/sshd_config 配置文件中添加要使用的 Ciphers、MACs 和 KexAlgorithms 参数

# vim /etc/ssh/sshd_config

添加以下内容:

......
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512,hmac-sha2-256
KexAlgorithms ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256

(
补充:这里以使用:
1) aes256-ctr、aes192-ctr 和 aes128-ctr SSH 加密方式 (cipher)
2) hmac-sha2-512 和 hmac-sha2-256 SSH 信息验证代码 (message authentication code)
3) ecdh-sha2-nistp521、ecdh-sha2-nistp384、ecdh-sha2-nistp256 和 diffie-hellman-group-exchange-sha256 SSH 算法 (algorithm)
为例
)

2.3 让在 /etc/ssh/sshd_config 配置文件中添加要使用的 Ciphers、MACs 和 KexAlgorithms 参数生效

# systemctl restart sshd

步骤三:测试 SSH 加密方式 (cipher)和算法 (algorithm)

3.1 测试 SSH Ciphers 参数

3.1.1 测试某个 SSH 加密方式 (ciphers)
# ssh -vv -oCiphers=3des-cbc -oPort=22 192.168.0.1

(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 3des-cbc SSH 加密方式 (cipher) 为例)

3.1.2 测试多个 SSH 加密方式 (ciphers)
# ssh -vv -oCiphers=3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc -oPort=22 192.168.0.1

(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 3des-cbc、aes128-cbc、aes192-cbc 和 aes256-cbc SSH 加密方式 (cipher) 为例)

3.2 测试 SSH MACs 参数

3.2.1 测试某个 SSH ciphers 加密算法
# ssh -vv -oMACs=hmac-md5 -oPort=22 192.168.0.1

(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 hmac-md5 SSH 信息验证代码 (message authentication code) 为例)

3.2.2 测试多个 SSH ciphers 加密算法
# ssh -vv -oMACs=hmac-md5,hmac-md5-96,hmac-sha1,hmac-sha1-96,hmac-md5-etm@openssh.com,hmac-md5-96-etm@openssh.com -oPort=22 192.168.0.1

(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 hmac-md5、hmac-md5-96、hmac-sha1、hmac-sha1-96、hmac-md5-etm@openssh.com 和 hmac-md5-96-etm@openssh.com SSH 信息验证代码 (message authentication code) 为例)

3.3 显示所有在使用的 SSH 加密方式 (cipher)和算法 (algorithm)

3.3.1 使用 sshd 命令显示所有在使用的 SSH 加密方式 (cipher)和信息验证代码 (message authentication code)
# sshd -T | egrep -i "ciphers|macs"
3.3.2 使用 nmap 命令显示所有在使用的 SSH 加密方式 (cipher)和算法 (algorithm)
# nmap --script ssh2-enum-algos -sV -p 22 127.0.0.1

(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22 为例)

参考文献:

https://access.redhat.com/solutions/4410591
https://access.redhat.com/solutions/4278651

CategoriesChinese Post (中文帖子), System (系统), System Login Security (系统登录安全), System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志), System Port Security (系统端口安全), System Security (系统安全)

Post navigation

Previous PostPrevious [内容] nftables 防火墙策略文件的常用规则
Next PostNext [排错] 解决 Linux 执行 Shell 脚本时报错 “[: ……: unary operator expected”

Aspiration (愿景):

Everyone can achieve self-achievement and self-happiness fairly

每个人都能公平地实现自我成就和自我幸福

Logo (徽标):

Additional Information (其他信息):

About     Manual     Clone     Contact
Disclaimer     Friendly Links     Donation

关于     手册     克隆     联系
免责声明     友情链接     捐赠

Search Inside Website (站内搜索)

Search Outside Website (站外搜索):

Google         Wikipedia         Bing

Eternal URL (永恒网址):

https://eternity.eternalcenter.com Will be last access method / 将是最后的访问方式

Proudly powered by LNMP Proudly powered by WordPress