光之使者 发表于 2024-7-21 05:55:27

超具体-内网离线升级openssh7.4p1至9.3p2案例

一、操作前预备

 1、确定版本

        查看Linux体系版本
        输入命令:hostnamectl
https://img-blog.csdnimg.cn/direct/85c8e83961c74afcbb1b3232bf8855eb.png
        查看openssh的版本
        输入命令:ssh -V
https://img-blog.csdnimg.cn/direct/e0e2aacedcb847cd9b42939b08ff9907.png
2、预备好离线安装包及依赖

openssh-9.3p2.tar.gz、openssl-1.1.1t.tar.gz、zlib-1.2.13.tar.gz、及依赖包:
https://img-blog.csdnimg.cn/direct/44346b8cdea74459bf3066d621965385.png
Gcc依赖包:
https://img-blog.csdnimg.cn/direct/e0ea465a6c6c4c9ea68b7d65b7894380.png
Pam_依赖包:
https://img-blog.csdnimg.cn/direct/f8eea2d9c975425095053d8ae7d5ad0c.png
Pam-devel依赖包:
https://img-blog.csdnimg.cn/direct/4494bae51bfd448daf0cd82d6dfe8d90.png
Perl依赖包:
https://img-blog.csdnimg.cn/direct/380edb1d3bb047f6bbbf942192130c43.png
https://img-blog.csdnimg.cn/direct/27f14bc345154d2aaa78c5558f89b451.png
telnet-server依赖包:
https://img-blog.csdnimg.cn/direct/062b5e8632eb47d5aa5d6783ebd1f33a.png
Xinetd依赖包:
https://img-blog.csdnimg.cn/direct/2fce766f3ee7413cb742c873b869fe17.png
3、连接ssh服务器

        使用工具连接至ssh服务器,我这里使用的是xshell的工具,全程操作包管root权限下且必须保持一个SSH会话不掉线实行。因此最好是提前安装好telnet。
        3.1tmp目次创建data文件夹

        输入命令:cd /tmp
        输入命令:mkdir data
https://img-blog.csdnimg.cn/direct/6865bbf698f2428299b4f12d0dcc5aac.png
        上传全部安装包及依赖包到data文件,利用xshell中的xftp上传
        3.2关闭selinux

        查看selinux状态,输入命令:sestatus
https://img-blog.csdnimg.cn/direct/cabc88a44d1e462b820827ae639e5c1c.png
        临时关闭selinux,输入命令:setenforce 0
        永世关闭selinux,输入命令:vi /etc/selinux/config  进入编辑模式
https://img-blog.csdnimg.cn/direct/40be2430246d443b82610c6c4e8a665d.png
https://img-blog.csdnimg.cn/direct/a69cf4a40e714d8aa9f1407b0b055037.png

[*]安装telnet   
[*]安装rpm包


[*]切入到依赖包中telnet-server文件夹
输入命令:cd /tmp/data/yilai/telnet-server/
https://img-blog.csdnimg.cn/direct/b07b5e8c98ba4a508ad96e337331b5e9.png

[*]安装rpm包
输入命令:rpm -ivh telnet-server-0.17-66.el7.x86_64.rpm
https://img-blog.csdnimg.cn/direct/f05f1a72b27742f898a1f83b8bdbedfa.png

[*]切入到依赖包中xinetd文件夹
输入命令:cd /tmp/data/yilai/xinetd/

[*]安装rpm包
输入命令:rpm -ivh xinetd-2.3.15-14.el7.x86_64.rpm
https://img-blog.csdnimg.cn/direct/bf91563d1fa04ceabdabd32837e03dc2.png

[*]
[*]配置telnet(默认无telnet配置文件,初次需新增)

输入命令:vi /etc/xinetd.d/telnet
https://img-blog.csdnimg.cn/direct/114b61bac7b443debbd4e073de013bf6.png
写入一下内容:
service telnet
{
    disable = yes
    flags       = REUSE
    socket_type = stream      
    wait        = no
    user        = root
    server      = /usr/sbin/in.telnetd
    log_on_failure  += USERID
}
https://img-blog.csdnimg.cn/direct/1ebb8f2613a443edb50ac2e450f19726.png
添加完成后:wq生存退出

[*]
[*]配置telnet登录的终端范例,在/etc/securetty文件末端增长终端

输入命令:vi /etc/securetty
https://img-blog.csdnimg.cn/direct/b852aff8c7604ff28d8cc445306981ce.png
增长终端
pts/0
pts/1
pts/2
pts/3
https://img-blog.csdnimg.cn/direct/47527bac70ab4dc584a14a32704048ad.png

[*]
[*]启动telnet服务

输入命令:systemctl enable xinetd –now
输入命令:systemctl enable telnet.socket –now
https://img-blog.csdnimg.cn/direct/18cecbcff9bb43e3aa57fb4961e5664e.png

[*]
[*]查看telnet端口使用启用(telnet默认端口:23),若开启,一般没问题。

输入命令:ss -luntp | grep 23
https://img-blog.csdnimg.cn/direct/50e982118d144e1bbee66fc40f2ba997.png

[*]
[*]开通防火墙

输入命令:firewall-cmd --zone=public --add-port=23/tcp –permanent
https://img-blog.csdnimg.cn/direct/632166a877cb4e979e7e3d72c63c2491.png

[*]
[*]生效

输入命令:firewall-cmd –reload
https://img-blog.csdnimg.cn/direct/4a4c3b31824c41299d7b36f6a12de33f.png

[*]
[*]查看端口清单

输入命令:firewall-cmd --zone=public --list-ports
https://img-blog.csdnimg.cn/direct/7eddb5706aae4477aeb79217da62cd2a.png

[*]
[*]若e)的这一步可以看到23端口处于启动状态,则可在windows下 cmd 实行 telnet ip 验证是否可以连接,可连接则代表无问题,否则查看上述的步调是否有问题

输入命令:telnet ip 23(例:telnet 10.8.202.130 23)回车,输入账号暗码乐成登录
https://img-blog.csdnimg.cn/direct/f5689aef2efc462b93d735fd0d694232.png

[*]创建备份目次   
[*]存放原openssl备份文件的目次

                输入命令:mkdir -p /backup/openssl

[*]存放原openssh有关的备份文件
        mkdir /backup/openssh
https://img-blog.csdnimg.cn/direct/a7d53b513ae244e3a75196eaadc9416a.png

[*]安装依赖   
[*]安装pam-devel

切换到依赖包地点目次,并进入pam-devel文件夹
输入命令:cd /tmp/data/yilai/pam-devel/
实行安装命令:rpm -ivh pam-devel-1.1.8-23.el7.x86_64.rpm
https://img-blog.csdnimg.cn/direct/8e4672c7dfc542998cff12481d288fa9.png

[*]
[*]安装gcc

切换到依赖包地点目次,并进入gcc文件夹
输入命令:cd /tmp/data/yilai/gcc /
            实行安装命令:
                  rpm -ivh kernel-headers-3.10.0-1160.92.1.el7.x86_64.rpm
rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh glibc-* --replacefiles
rpm -ivh cpp-4.8.5-44.el7.x86_64.rpm
rpm -ivh gcc-4.8.5-44.el7.x86_64.rpm
从上到下依次实行
https://img-blog.csdnimg.cn/direct/55ab9964c6bd4fe58d897c3632118c4b.png
无报错为安装乐成,有报错处理惩罚报错问题

[*]
[*]安装perl

切换到依赖包地点目次,并进入perl文件夹
输入命令:cd /tmp/data/yilai/perl/
实行安装命令:rpm -ivh *
https://img-blog.csdnimg.cn/direct/dd782c2564884dc68babe763d7f72b30.png

[*]
[*]安装pam*

切换到依赖包地点目次,并进入pam_文件夹
输入命令:cd /tmp/data/yilai/pam_
实行安装命令:
      rpm -ivh boost-*
rpm -ivh boost-serialization-1.53.0-28.el7.x86_64.rpm
rpm -ivh snapper-*
rpm -ivh pcsc-lite-libs-1.8.8-8.el7.x86_64.rpm
rpm -ivh pam_krb5-2.4.8-6.el7.x86_64.rpm
rpm -ivh pam_pkcs11-0.6.2-30.el7.x86_64.rpm
rpm -ivh pam_snapper-0.2.8-4.el7.x86_64.rpm
rpm -ivh pam_ssh_agent_auth-0.10.3-2.22.el7_9.x86_64.rpm
rpm -ivh pam-devel-1.1.8-23.el7.x86_64.rpm
                  从上往下依次安装
https://img-blog.csdnimg.cn/direct/907472806ce74f1bb98e9bb1fa1e8449.png
https://img-blog.csdnimg.cn/direct/b501c8c8153d4c76b3c5ad766e11b0e5.png
无报错安装乐成,否则处理惩罚报错。

[*]安装SSL   
[*]备份openssl


[*]备份openssl依赖库
输入命令:
     cp /usr/lib64/libcrypto.so.10 /backup/openssl
cp /usr/lib64/libcrypto.so.1.0.2k /backup/openssl
cp /usr/lib64/libssl.so.10 /backup/openssl
cp /usr/lib64/libssl.so.1.0.2k /backup/openssl

[*]备份openssl可实行文件
输入命令:
mv /usr/bin/openssl /backup/openssl

[*]备份openssl依赖文件,如果没有openssl,就跳过。
输入命令:
mv /usr/include/openssl /backup/openssl/include_openssl

[*]备份配置文件
输入命令:
cp /etc/ld.so.conf /backup/openssl/etc_ld.so.conf
https://img-blog.csdnimg.cn/direct/8056d67c2e51414db83d23aeb0d1bf04.png

[*]
[*]编译安装

[*]删除原有的ssl目次
输入命令: rm -rf /etc/ssl

[*]解压openssl安装包
切换至data目次
输入命令:
cd /tmp/data
tar -xf openssl-1.1.1t.tar.gz
                     切换到openssl-1.1.1t文件夹中
                     输入命令:
                            cd openssl-1.1.1t
                            ./config shared --prefix=/usr/local/ssl
https://img-blog.csdnimg.cn/direct/15cd0350044d405d940d1a134ddb7450.png
若无报错则继承实行,否则处理惩罚报错问题

[*]编译ssl文件
输入命令:make && make install
这里需要等一会。等候编译完成后:
输入命令:echo $?   (返回0代表编译安装乐成)
https://img-blog.csdnimg.cn/direct/9ba60ec8f55548d581b820c926d7fada.png

[*]
[*]创建软连接及修改配置文件

输入命令:
echo "/usr/local/ssl/lib">>/etc/ld.so.conf
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -sf /usr/local/ssl/include/openssl /usr/include/openssl
echo "/usr/local/ssl/lib" >/etc/ld.so.conf.d/openssl.conf
ldconfig
从上到下依次实行
https://img-blog.csdnimg.cn/direct/789e16eb9c854ffe97572b40eb311e07.png

[*]
[*]查看版本(若以上都无问题则此时可以看到升级后的openssl版本)

输入命令:openssl version
https://img-blog.csdnimg.cn/direct/1374c26857e24c628dbb90fcf5c64b6c.png

[*]安装zlib   
[*]切换目次到data文件夹中

输入命令:
cd /tmp/data
tar -xf zlib-1.2.13.tar.gz
cd zlib-1.2.13/
./configure --prefix=/usr/local/zlib
make && make install (需要等带一段时间)
编译完成输入下面命令,返回0说明乐成
echo $?
https://img-blog.csdnimg.cn/direct/b04ec461fa9f4e7d93d26667032b3f13.png

[*]升级openssh   
[*]备份ssh配置文件目次

输入命令:mv /etc/ssh /backup/openssh
备份pam.d/sshd 文件
输入命令:mv /etc/pam.d/sshd /backup/openssh
https://img-blog.csdnimg.cn/direct/3472299ada0f4ede8d0970272633dc41.png

[*]
[*]卸载 openssh(提示:一定要先telnet连上服务器)

[*]查看是否存在历史版本
输入命令:rpm -qa | grep openssh

[*]卸载历史版本
输入命令:rpm -e --nodeps `rpm -qa | grep openssh`
https://img-blog.csdnimg.cn/direct/f22ec6fef143442f8a710c88abe65f94.png

[*]
[*]安装openssh

[*]在data目次下解压openssh
输入命令:
      cd /tmp/data/
tar -xzvf openssh-9.3p2.tar.gz

[*]进入解压目次实行编译安装
输入命令:cd openssh-9.3p2

[*]初始化变量
输入命令:./configure --prefix=/usr/local/ssh --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl --with-zlib=/usr/local/zlib --with-md5-passwords --with-pam

[*]编译安装文件
输入命令: make && make install
编译完成输入下面命令,返回0说明乐成
echo $?
https://img-blog.csdnimg.cn/direct/dc2a6829ee8d489393a4316e14059ff2.png

[*]
[*]配置openssh

[*]创建链接
输入命令:
ln -sf /usr/local/ssh/libexec /usr/libexec/openssh
ln -sf /usr/local/ssh/sbin/sshd /usr/sbin/sshd
ln -sf /usr/local/ssh/bin/scp /usr/bin/scp
ln -sf /usr/local/ssh/bin/ssh /usr/bin/ssh
ln -sf /usr/local/ssh/bin/ssh-add /usr/bin/ssh-add
ln -sf /usr/local/ssh/bin/ssh-agent /usr/bin/ssh-agent
ln -sf /usr/local/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
ln -sf /usr/local/ssh/bin/ssh-keyscan /usr/bin/ssh-keyscan

在openssh的解压文件下实行:
输入命令:
cd /tmp/data/openssh-9.3p2
cp contrib/redhat/sshd.init /etc/init.d/sshd
cp contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
cp contrib/ssh-copy-id /usr/bin/ssh-copy-id

[*]赋权ssh-copy-id
输入命令:chmod 755 /usr/bin/ssh-copy-id
https://img-blog.csdnimg.cn/direct/b360caf4d0d040d195abf7ce77352ca8.png

[*]
[*]还原备份文件

输入命令:
cp /backup/openssh/ssh/sshd_config /etc/ssh/
y
cp /backup/openssh/ssh/ssh_config /etc/ssh/
y
cp /backup/openssh/sshd /etc/pam.d




[*]追加到sshd_config
输入命令:
echo "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1" >> /etc/ssh/sshd_config
https://img-blog.csdnimg.cn/direct/7f85c934069a460b8d519bf0a94cb24c.png

[*]
[*]修改sshd_config

输入命令:vi /etc/ssh/sshd_config
# 取消PubkeyAuthentication yes 的解释
:PubkeyAuthentication yes
# 若UsePAM yes 默认被解释 则关闭解释
UsePAM yes
https://img-blog.csdnimg.cn/direct/95f199c2ff08461f8c5ae610fda7de53.png
https://img-blog.csdnimg.cn/direct/9d9303b0a7e74974a7c85728dfb4a6dc.png


[*]
[*]修改ssh_config

输入命令:vi /etc/ssh/ssh_config
# 将GSSAPIAuthentication yes解释掉
#GSSAPIAuthentication yes
# 生存并退出
https://img-blog.csdnimg.cn/direct/35aa62e0805b4ba1854441e4329c1beb.png

[*]
[*]还原依赖库

输入命令:
mv /backup/openssl/libcrypto.so.10 /usr/lib64/libcrypto.so.10
y
mv /backup/openssl/libssl.so.10 /usr/lib64/libssl.so.10
y
https://img-blog.csdnimg.cn/direct/a6d5f102983e449ebeed2e1fb46e3cc2.png



[*]
[*]设置开机自启

输入命令:chkconfig sshd on

[*]
[*]启动sshd(大概使用systemctl启动也可以)

输入命令:/etc/init.d/sshd start

[*]服务启动乐成后,查看当前版本
输入命令:ssh -V
https://img-blog.csdnimg.cn/direct/afbc06d5e3044f348c865d671d43c524.png

[*]
[*]验证连接

[*]验证是否可以连接,可连接则代表无问题,否则查看上述的步调是否有问题
[*]使用ssh工具远程连接已经升级openssh的服务器,若可连接则代表此功能正常,
[*]注意:需要使用普通用户验证连接,不能是root用户
https://img-blog.csdnimg.cn/direct/c9cb4972ac7b47f7b6b41fe24092e883.png



[*]
[*]关闭telnet

[*]关闭telnet
输入命令:
systemctl disable xinetd --now
systemctl disable telnet.socket --now

[*]关闭防火墙、移除23端口
输入命令:
firewall-cmd --zone=public --remove-port=23/tcp –permanent

[*]生效
输入命令:firewall-cmd –reload

[*]查看端口清单清单
输入命令:firewall-cmd --zone=public --list-ports
https://img-blog.csdnimg.cn/direct/244986c50c194080a52ccc44202eeb90.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 超具体-内网离线升级openssh7.4p1至9.3p2案例