IT评测·应用市场-qidao123.com技术社区

标题: Ubuntu20.04与22.04 OpenSSL与OpenSSH编译安装 [打印本页]

作者: 篮之新喜    时间: 2024-6-10 13:47
标题: Ubuntu20.04与22.04 OpenSSL与OpenSSH编译安装
OpenSSL与OpenSSH需要常常修复漏洞,编译安装步调供参考,适用ubuntu版本,其他版本雷同,若升级主机较多,建议先在测试情况验证,如OpenSSL大版本升级且OpenSSH有新稳固版本,建议升级OpenSSL同时也升级OpenSSH

安装编译依靠包

  1. apt update
  2. apt install gcc make  zlib1g-dev  libpam0g-dev libkrb5-dev libedit-dev -y
复制代码
利用体系openssl版本检察:
ubuntu20.04 openssl版本:OpenSSL 1.1.1f
ubuntu22.04 openssl版本:OpenSSL 3.0.2


安装 OpenSSL

起首,使用 wget 下令下载 OpenSSL 的源代码压缩包。从 OpenSSL 官方网站上找到最新版本的源代码。
注意:由于OpenSSL 1.1.x版本已停止维护,ubuntu20.04.x体系建议都使用现在长期支持版

下载 OpenSSL包
  1. wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
复制代码
如下以ubuntu20.04示例:

解压源代码
使用 tar 下令解压源代码压缩包。
  1. tar -zxf openssl-3.0.13.tar.gz
复制代码
切换到解压后的源代码目次。
  1. cd openssl-3.0.13/
复制代码
设置编译选项:
运行以下下令设置编译选项。(是否加shared 、zlib参数都可以举行后面的openssh安装)
将 OpenSSL 安装到 /usr/local/openssl 目次下,并设置 openssldir 为同样的路径。
  1. ./config shared --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
复制代码

编译和安装:
运行 make 下令举行编译,然后使用 make install 下令举行安装。请确保您具有足够的权限来执行此利用, make 可更换为 make -j4 并行处理(此中的数字 4 表示允许并行运行的任务数)
  1. make && make install
复制代码

备份原来的openssl
  1. mv /usr/bin/openssl /usr/bin/openssl.bak
复制代码
创建软链接到体系位置
  1. ln -s /usr/local/openssl/bin/openssl  /usr/bin/openssl
复制代码
将openssl 的lib 库添加到体系(‘/usr/local/openssl/lib64’ 单引号)
  1. #openssl 1.x.x版本是: /usr/local/openssl/lib/ 路径
  2. #echo '/usr/local/openssl/lib' > /etc/ld.so.conf.d/openssl.conf
  3. echo '/usr/local/openssl/lib64' > /etc/ld.so.conf.d/openssl.conf   
复制代码
加载lib库 (可加 -v 参数检察详细显示)
  1. ldconfig
复制代码
看看openssl版本
  1. openssl  version
复制代码

如今,您已经成功在 Ubuntu 20.04 上编译安装了 OpenSSL。 如果您在安装其他软件时需要使用 OpenSSL,请确保相应的软件能够找到新安装的 OpenSSL 路径。
openssh安装

注意: 利用前需备份好已安全加固的设置文件 (新情况可忽略)
若网络不稳固举行升级,建议临时安装telnetd服务,制止终端中断无法远程利用,由于telnet服务存在不安全因素,升级验证完后举行卸载 (apt install telnetd -y)
备份文件,防止现有设置丢失
  1. cp -a /etc/pam.d/sshd  /mnt/sshd-bak-`date +%F`
  2. cp -a /etc/ssh/sshd_config  /mnt/sshd_config-bak-`date +%F`
复制代码
下载openssh
采用国内阿里云镜像站下载,也可从openssh官网下载

按支持的协议选择性下载

  1. #清华大学镜像站(备用)
  2. #wget https://mirrors.tuna.tsinghua.edu.cn/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
  3. wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
复制代码
若下载认证提示未通过可添加--no-check-certificate 参数跳过认证
  1. wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz --no-check-certificate
复制代码
解压openssh
  1. tar -zxf openssh-9.7p1.tar.gz
复制代码
进入解压目次
  1. cd openssh-9.7p1/
复制代码
设置参数
  1. ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-kerberos5 --with-libedit --with-pam --with-gssapi --with-zlib --with-ssl-dir=/usr/local/openssl --with-privsep-path=/var/lib/sshd
复制代码
编译与安装
  1. make && make install
复制代码
编辑设置文件
注释Type=notify参数或者修改为Type=simple
  1. vim /lib/systemd/system/ssh.service  
复制代码

注释Type=参数快捷方式
  1. sed -i '/^Type=/s/^/#/' /lib/systemd/system/ssh.service
复制代码
重新加载设置并重启sshd生效
  1. systemctl daemon-reload
  2. systemctl restart sshd
复制代码
检察openssh 版本
  1. ssh -V
复制代码

如今,您已经成功在 Ubuntu 20.04 上编译安装了 OpenSSH。
openssh升级后root用户无法远程登录 (可选利用,根据实际情况要求选择是否开启)

编辑sshd_config设置文件PermitRootLogin参数为yes,生存并重启sshd
  1. PermitRootLogin yes
复制代码
隐藏版本号:
当地执行’ssh -V
"任可见,根据实际版本号举行更换,x.x 可为任意字母或数字

根据ssh-V 和 strings /usr/sbin/sshd|grep ‘OpenSSH_’ 确定要修改的版本(ssh远程时版本号后一样寻常不带字母)

备份文件
  1. cp -a /usr/sbin/sshd /usr/sbin/sshd-bak-`date +%F`
复制代码
修改版本号
  1. sed -i 's/OpenSSH_9.7/OpenSSH_x.x/g'  /usr/sbin/sshd
复制代码
重启sshd服务
  1. systemctl restart sshd
复制代码
验证隐藏版本号
使用nmap工具举行验证或新建连接方式检察,版本号变为OpenSSH x.x (nmap安装:apt install nmap)
  1. nmap -p 22 -sV -v -n  主机ip
复制代码
  1. PORT   STATE SERVICE VERSION
  2. 22/tcp open  ssh     OpenSSH x.x (protocol 2.0)
复制代码
安全加固
修复diffie-hellman 漏洞,去掉diffie-hellman开头的参数
  1. sshd -T|grep -w kexalgorithms
复制代码

sntrup761x25519-sha512@openssh.com 参数在openssh 8.5版本引入,9.0版本中默认添加
openssh升级后rke 启动集群报ssh认证错误:(非安全加固,统一添加sshd设置)
  1. PubkeyAcceptedKeyTypes=+ssh-rsa
复制代码

sshd_config 设置末了添加
  1. vim /etc/ssh/sshd_config
复制代码
  1. Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
  2. kexalgorithms sntrup761x25519-sha512@openssh.com,ecdh-sha2-nistp384,ecdh-sha2-nistp521
  3. MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com
  4. PubkeyAcceptedKeyTypes=+ssh-rsa
复制代码
重启sshd
  1. systemctl  restart sshd
复制代码
FAQ:

openssl与openssh编译后是否可删除原体系默认安装的opensl与openssh

答:建议都生存
针对openssl
若狠心删除,openssl软链接的是原体系的openssl执行文件,删除原体系默认安装的opensl后会将openssl执行文件一并删除,重新创建一次软连接即可
  1. apt remove openssl
  2. ln -s /usr/local/openssl/bin/openssl  /usr/bin/openssl
复制代码
针对openssh
openssh编译时已指定/etc/ssh路径,删除不仅把原体系安装的openssh卸载,编译安装的也会卸载,建议生存,若已删除,请重新按openssh编译安装步调执行
openssl有新版本怎么升级

答:下载新版本,解压并进入目次,再次运行编译与安装、加载lib库、检察版本号是否更新即可,无需其他利用
  1. ./config shared --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
  2. make && make install
  3. ldconfig
  4. -v
复制代码
若普通用户执行openssl version还是之前安装的版本,但是root用户显示却是已升级的版本

openssl安装目次权限添加普通用户可读设置(正常编译安装应该不存在需要再次设置权限标题)
  1. find /usr/local/openssl/ -type d |xargs chmod  o+r
复制代码
远程登录ssh连接慢,需要期待好一会儿才气连接成功

编辑设置文件:/etc/ssh/sshd_config,取消 #UseDNS no前注释,生存后重启sshd服务

ssh.service设置文件注释Type=notify参数量的

答:编译安装完后,执行sshd重启systemctl restart sshd
下令会不绝期待末了超时,临时注释Type=notify参数后不关照systemd管理,如有高人知晓还请不吝赐教,接待评论和联系

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4