Linux Openssh 升级(详)

这篇具有很好参考价值的文章主要介绍了Linux Openssh 升级(详)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境:

系统版本:CentOS Linux release 7.4.1708(Core)

Openssh 由6.6.6p1升级到9.2p1

升级说明:

OpensSSH依赖于OpenSSL,

源码包下载地址:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/

OpenSSH sshd 缓冲区错误漏洞(CVE-2016-10012),OpenSSH <7.4

OpenSSH 代码问题漏洞(CVE-2016-10009),OpenSSH< 7.4

OpenSSH 资源管理错误漏洞(CVE-2021-28041),OpenSSH <8.5

安装步骤:

  1. 准备工作

1)版本信息查看

ssh -V

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

2)开启相应服务

rpm -qa telnet telnet-server xinetd //检查telnet 、telnet-server、xinetd包是否安装

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

如果没有安装,执行安装命令,如果安装了,检查服务状态,加入到启动项中。

yum install telnet telnet-server xinetd -y //安装网络守护、telnet服务、telnet包

systemctl status telnet.socket //检查telnet服务状态

systemctl start telnet.socket //开启telnet服务状态

systemctl enable telnet.socket //开机自启telnet服务

systemctl status xinetd //检查网络守护进程状态

systemctl enable xinetd //开机起xinetd服务

systemctl list-unit-files |grep enable //检查开启服务启动项

vim /etc/xinetd.conf ,将enable改为yes

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

注:CentOS7之前的版本修改/etc/xinetd.d/telnet ,默认是不开启telnet服务的,需要把 disable 改成no

至此本机已开启telnet服务,telnet服务开机自启动,仅telnet本机正常,还需要验证外部网络访问本机是否正常。

🔯允许外部网络telnet登陆

firewalld防火墙默认是禁止外部网络telnet从外部登陆的,如果在本机上telnet 127.0.0.1正常,在其他机子上telnet异常,先检查linux的防火墙状态,需关闭(别忘记关闭防火墙的开机自启动)或者加入允许规则,如果还有问题,请先从本网段telnet到目标机进行排查,是否有其他外部限制telnet的登陆。

systemctl status firewalld.service //检查防火墙状态

systemctl stop firewalld.service //关闭防火墙

systemctl disable firewalld.service //关闭防火前开机自启动

firewall-cmd --zone=public --add-source=[访问源] --permanent

或firewall-cmd --zone=public --add-port=23/tcp --permanent

firewall-cmd --reload //刷新配置

firewalld服务默认是允许ping的。

扩展:

CentOS 7以前使用的是iptables 工具,iptables默认是允许访问的。

yum install -y iptables iptables-devel iptables-utils

systemctl start iptables //启动iptables服务,开机自启动iptables服务,版本

systemctl enable iptables 上的差异命令请搜索老版本的命令

iptables -I INPUT -s [源地址] -j ACCEPT //允许访问源登陆

iptables -A INPUT -j DROP //默认为允许,需要末尾加拒绝其他

service iptables save //iptables规则保存到/etc/sysconfig/iptables,不保存仅是临时 的,重启会丢失

iptables -L -n //查看iptables规则临时列表

vim /etc/sysconfig/iptables //查看iptables服务规则列表

🔯telnet登陆root账户

telnet服务默认是无法使用root账户登陆的,可以通过新建用户来解决,升级好后再删除,也可以通过修改文件来允许telnet通过root登陆。

  • 新建账户

useradd *** //新建用户

passwd [新建用户] //修改用户密码

userdel -f *** //删除用户

  • 修改文件允许telnet登陆root的方法

方法一:

vi /etc/pam.d/remote

auth required pam_securetty.so #将这一行加上注释,如下图所示:

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

方法二:

mv /etc/securetty /etc/securetty.bak

方法三:

vim /etc/securetty

加入pts/1

这里加了1个仅允许一个终端远程telnet登陆,如果需要多个则要加pts/2、pts/3等,与访问数量达到相同个数。

telnet为明文传输,在使用完后,要记得关闭并卸载改服务。

避免升级失败,使用telnet服务登陆操作,建议重启后再使用telnet服务登陆

3)备份ssh服务,卸载ssh

原始安装目录备份

mv /etc/ssh /etc/ssh.bak

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

关键文件备份

mv /usr/sbin/sshd /usr/bin/ssh.bak

mv /usr/bin/ssh /usr/bin/ssh.bak

mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak

systemctl stop sshd

rpm -qa |grep ssh

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

卸载openssh、openssh-clients、openssh-server三项

rpm -e {卸载项}

4)准备部署包

cd /usr/src //仅作为下载安装包的位置,可以是任意位置

wget --no-check-certificate https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz

tar -zxvf openssh-9.2p1.tar.gz

cd openssh-9.2p1.tar.gz

5)准备依赖项

yum -y install pam pam-devel zlib zlib-devel gcc gcc-c++ openssl openssl-devel

  1. 安装部署

../configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl --with-zlib

可能问题:configure: error: *** working libcrypto not found, check config.log

解决方法:yum -y install openssl-devel zlib zlib-devel

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

再次执行部署,安装完成如下图

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

make && make install

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

安装完成后检查,查看 /usr/local/openssh,确认是否有该文件夹。

cp contrib/redhat/sshd.init /etc/init.d/sshd //拷贝启动脚本

cp contrib/redhat/sshd.pam /etc/pam.d/ //如果安装了pam模块则需要拷贝sshd.pam 配置文件

以上的操作仍在解压的源码包的位置中。

# 建立软连接

ln -s /usr/local/openssh/bin/* /usr/bin/

ln -s /usr/local/openssh/sbin/sshd /usr/sbin/sshd

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

/*

从ssh使用安全的角度需要按上述操作把相关联的都同步,联机软链接;

仅考虑升级测试,建立以下三项软链接即可

ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh

ln -s /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

ln -s /usr/local/openssh/sbin/sshd /usr/sbin/sshd

*/

systemctl daemon-reload //重载 systemd 的脚本配置文件内容

systemctl start sshd && systemctl enable sshd // 启动并设置开机自启动

systemctl status sshd

ssh -V

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

设置shh root登陆:

源码安装后,位置存在变动,可以通过find -name sshd_config确定文件位置

vim /etc/local/openssh/etc/sshd_config

PermitRootLogin yes

可能问题1:

/sbin/restorecon: lstat(/etc/ssh/ssh_host_dsa_key.pub) failed:No such file or directory.

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

解决方法:

启动中没有检测到/etc/ssh/ssh_host_dsa_key.pub文件,可以修改启动服务脚本vim /etc/init.d/sshd,

注释对应的文件。systemctl daemon-reload,systemctl restart sshd。再查看状态启动日志正常。

可能问题2:

Permission denied (publickey,password,keyboard-interactive)

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

更换了sshd_config由原1.104换成1.00文件内容,显示Permission denied(publickey,password)

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

修改sshd_config值

PermitRootLogin yes

PubkeyAuthentication no

PasswordAuthentication yes

openssh版本升级,服务器,服务器,linux,运维,Powered by 金山文档

重启后显示 Permission denied(password)

可以看的出来ssh升级已经升级好了,但是无法登陆,这个时候应该检查下 /usr/bin/

中是否存在ssh-keygen文件。

扩展1:

sshd服务的默认安装目录:/etc/ssh

sshd服务默认配置未知:/etc/ssh/sshd_config

ssh服务一般调整项有:

PermitRootLogin yes #这项一定要改成yes,否则登陆不进去

PubkeyAuthentication yes

PasswordAuthentication yes

X11Forwarding yes

UsePAM yes

Port ** //建议修改port端口为非常用端口,已提升安全性。

扩展2:

编译常见参数的作用

--openssldir= openssl 安装目录,默认是 /usr/local/ssl 。

--prefix= 设定安装路径

--with 启用某服务或功能

zlib、zlib-dynamic、no-zlib 使用静态的zlib压缩库、使用动态的zlib压缩库、不使用zlib压缩功能。

shared 、no-shared 是否生成动态连接库。

扩展3:

~/.ssh/文件位置中,几个文件的作用

known_hosts记录ssh访问过计算机的公钥(public key)

id_rsa 生成的私钥

id_rsa.pub 生成的公钥

authorized_keys 存放授权过的无密登录服务器公钥

总结:

在做Openssh升级测试的过程中遇到了很多问题,也在网上查了很多资料,比如编译不成功的问题,Access deny的问题,ssh -V与openssl version显示版本不一致的问题等,最终也获得了满满的收获。

Openssh升级先建立telnet通道,再部署Openssl等依赖项,编译部署完成状态进行确认,最后软连接建立,刷新服务。

参考文档:

参考资料:

https://blog.csdn.net/qq_43524794/article/details/86360429

https://www.cnblogs.com/myfblogs/p/13498664.html

https://zhuanlan.zhihu.com/p/553027729文章来源地址https://www.toymoban.com/news/detail-545019.html

到了这里,关于Linux Openssh 升级(详)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux 升级Openssh以及Openssl版本】

    服务器漏洞,需要升级openssh版本到9.0。 输入命令查看 openssl 版本 因为我这里已经升级过了,所以显示最新版 下载最新的openssl并解压(建议将压缩包下载到 /opt 目录下): 如果在执行 wget 后指令提示 command not found ,是因为目标机上没有安装wget指令,需进行wget指令安装;

    2023年04月17日
    浏览(40)
  • linux系统将OpenSSH升级到最高版本

    公司安全扫描到主机的OpenSSH安全漏洞,由于是虚拟机只能由自己修复,很多OpenSSH的漏洞厂商都没有提供补丁,只能通过禁用scp或者端口的方式临时解决,但是后面使用就不方便了,而且也不安全,所以直接将OpenSSH升级到现在的最高版本openssh-9.3p2,ssl升级到1.1.1。 升级OpenS

    2024年02月15日
    浏览(46)
  • linux离线升级ssh,升级到openssh8.8版本

    服务器检查漏洞,需要升级服务器ssh版本,从openssh7.4升级到openssh8.8,平滑升级ssh方法。 实际生产服务器是RedHat 7.6,我在vm虚拟机中搭建了centos7.6测试环境,前期也用了一个RedHat 7.6不理想,实际直接下载的红帽是用不了的,需要注册服务器,要用也能用安装网上需要改一些东

    2024年02月14日
    浏览(41)
  • 【OpenSSH】Windows系统使用OpenSSH搭建SFTP服务器

    Windows Server 2019 OpenSSH-Win64(下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases) windows设置-账户-其他用户 本地用户和组 - 用户,新建用户,如SFTP,设置用户名和密码 这一步非常重要,否则用户登录上来就可以对计算机所有磁盘和目录进行操作。因此,必须要限制用户访问

    2024年04月14日
    浏览(41)
  • Linux操作系统升级低版本的OpenSSH到9.3的高版本

    OpenSSH 9.3之前的版本存在各种各样的安全漏洞,为此,我们需要将OpenSSH升级到最新的9.3的版本。 执行:ssh -V,我们可以查看当前的openssh版本  为了避免升级过程中出现意外而导致服务器无法正常使用,建议操作前先对服务器进行快照备份!!! 1. 备份原有pam.d下的sshd文件

    2024年02月07日
    浏览(45)
  • 【OpenSSH】无需公网IP使用SSH远程连接服务器

    转发自CSDN远程穿透的文章:【vscode远程开发】使用SSH远程连接服务器 「内网穿透」 远程连接服务器工具有很多,比如XShell、putty等,可以通过ssh来远程连接服务器,但这用于写代码并不方便,可能需要现在本地写好代码后再将源代码传送到服务器运行、服务器上的图片也无

    2024年02月04日
    浏览(78)
  • centos7.6云服务器安全高危漏洞之Openssh

    OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用

    2024年02月12日
    浏览(41)
  • Windows系统安装OpenSSH客户端,实现ssh远程连接云服务器

    一、打开设置 - 应用 - 添加可选功能,选择安装OpenSSH客户端 二、安装完之后,验证 ssh 命令 1、启动ssh服务之后,打开 cmd 窗口已支持连接 三、如果 ssh 命令仍然不生效,需要配置 ssh 环境变量 1、新建 SSH_HOME 环境变量,C:windowsSystem32OpenSSH 2、把新建的 SSH_HOME 变量加入

    2024年02月15日
    浏览(45)
  • OpenSSH 漏洞修复升级最新版本

    Centos7系统ssh默认版本一般是OpenSSH7.4左右,低版本是有漏洞的而且是高危漏洞,在软件交付和安全扫描上是过不了关的,一般情况需要升级OpenSSH的最新版本 今天详细说下升级最新版本的处理过程(认真看会发现操作很简单,因为写的操作很详细...) 现在绝大多数服务器的操

    2024年01月22日
    浏览(51)
  • 升级openssh至9.2版本

    根据安全扫描结果,发现原系统自带openssh存在高危漏洞。需要针对图中漏洞进行处理。 由于ssh服务涉及运维方面,对openssh更新前需要预留其他连接服务器方法(如:telnet、VNC)。防止在升级的过程中导致服务器连接不上。 以centos7为例,采取telnet方式对openssh升级至openssh-9

    2024年02月01日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包