CenterOS-7升级低版本的OpenSSH到9.3p2的高版本,解决远程代码执行漏洞(CVE-2023-38408)漏洞

遇到的一些报错解决办法:(这些按照上面的主教程应该不会出现,这是按照其他教程才会出现,但是是有效的解决办法也一并记录)

1.报错内容:
	Operating system: x86_64-whatever-linux2
  	You need Perl 5
  	解决教程:https://blog.csdn.net/qq_44534541/article/details/124667091
2.报错内容:
    crypto/comp/c_zlib.c:35:19: fatal error: zlib.h: No such file or directory
    执行:sudo yum install zlib-devel
3.报错内容:
    Use which C compiler? [cc]  
    ./trygcc:行10: cc: 未找到命令
    Uh-oh, the C compiler 'cc' doesn't seem to be working.
    ./trygcc:行25: gcc: 未找到命令
    ./checkcc:行10: cc: 未找到命令
  	解决方法:yum install gcc
4.报错内容:
	“configure: error: *** working libcrypto not found, check config.log”
    解决方法:https://www.cnblogs.com/wholj/p/10944407.html

额外记录:因为要用到yum,有时候yum是不好使的

更新yum 
1. 备份当前的YUM源配置文件
sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
3. 下载新的YUM源配置文件(以阿里云YUM源为例)
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
4. 清理YUM缓存并生成新的缓存
sudo yum clean all
sudo yum makecache

快捷复制

# 安装vim
yum install vim  
# 查看ssh版本
ssh -V
openssl version

二、安装完后因为SELinux安全策略问题可能导致无法连接(安装完成后记得先重新打开一个窗口连接成功在关闭当前,否则可能再也连不上了):

1. 临时解决(不推荐长期使用)
# 可以将 SELinux 设置为 permissive 模式,这样在系统运行期间 SELinux 不会强制执行策略
sudo setenforce 0
# 再次确认是否是 SELinux阻止SSH 相关操作
# 临时允许所有与 SSH 服务相关的操作,以确定是否是 SELinux 策略限制导致的问题。
sudo semanage permissive -a sshd_t
# 移除允许模式
sudo semanage permissive -d sshd_t
2.永久解决

1.创建策略模块文件

vi sshd_custom_refined.te
# 使用文本编辑器创建一个名为 sshd_custom_refined.te 的文件,并添加以下内容:
module sshd_custom_refined 1.0;

require {
    type sshd_t;
    type shadow_t;
    class file { read getattr open };
}

allow sshd_t shadow_t:file { read getattr open };

2.创建策略模块文件

# 如果执行下面出现 -bash: checkmodule: 未找到命令
sudo yum install policycoreutils-python

# 编译策略模块(此命令会对 sshd_custom_refined.te 文件进行语法检查并生成一个中间模块文件)
checkmodule -M -m -o sshd_custom_refined.mod sshd_custom_refined.te

# 打包策略模块(该命令会将中间模块文件打包成最终可加载的策略模块文件 sshd_custom_refined.pp)
semodule_package -o sshd_custom_refined.pp -m sshd_custom_refined.mod
# 加载策略模块
sudo semodule -i sshd_custom_refined.pp

"""下边不是必做步骤""
# 验证策略效果(记得改回强制模式,前面的 临时允许所有与 SSH 服务相关的操作 也关闭掉)
sudo setenforce 1
sudo semanage permissive -d sshd_t

# 移除旧的策略模块(如果已安装)
sudo semodule -r sshd_custom_refined
# 安装新的策略模块
sudo semodule -i sshd_custom_refined.pp
# 确认模块是否已安装(如果执行该命令后没有任何输出,那就说明 sshd_custom_refined 策略模块确实没有安装)
sudo semodule -l | grep sshd_custom_refined

二、升级完成后root会无法登录的解决办法

# 打开 sshd 配置文件
vi /etc/ssh/sshd_config
# 在最后添加如下内容

# 允许 root 用户通过 SSH 远程登录
PermitRootLogin yes
# 启用 SSH 公钥认证方式
PubkeyAuthentication yes
# 启用 SSH 密码认证方式
PasswordAuthentication yes

# 或者添加新的普通用户(myUsername替换成用户名,myPassword替换成密码)
sudo useradd myUsername
sudo passwd myPassword

三、安装openssl头库文件不一致的问题

# 当执行openssl version 提示(正常不应该显示Library)
OpenSSL 1.1.1u  30 May 2023 (Library: OpenSSL 1.1.1o  3 May 2022)
#解决办法
#修改 /etc/profile 文件(针对所有用户)
#  1. 打开 /etc/profile 文件
sudo vim /etc/profile
#  2. 在文件末尾添加以下两行:
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/openssl/bin:$PATH
#  3. 配置立即生效,执行以下命令
source /etc/profile

三、后续又升级到了9.8p1,只需要下载的地址换成9.8p1就行了

wget  https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz