升级资源准备
- Telnet
- Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。
- SSL
- SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。
- 下载地址:https://www.openssl.org/source/
- 本次安装使用版本:openssl-1.0.2s.tar.gz,下载地址:openssl-1.0.2s.tar.gz
- SSH
- OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件
- 下载地址:http://www.openssh.com/portable.html
- 本次安装使用版本:openssh-8.0p1.tar.gz,下载地址:openssh-8.0p1.tar.gz
-
SSL和SSH安装版本说明
版本要求详情请查看:http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/INSTALL
-
安装包上传
将下载的安装包上传到服务器 /home/software目录下,具体根据自己建的目录而定,如:
安装Telnet
- 安装Telnet目的
防止在升级过程中SSH远程登录不可用导致连接不上服务器 - 查看防火墙状态
firewall-cmd --state
如果没有开启就不需要管,开启了就需要关闭防火墙或者开放23端口,其中telnet的默认端口为23 - 安装Telnet相关工具
- 安装telnet-server和xinetd
sudo yum install -y xinetd telnet-server - 配置telnet
使用以下命令确认是否有telnet文件,没有调过以下操作,进入步骤3:
ll /etc/xinetd.d/telnet
修改telnet文件:
sudo vim /etc/xinetd.d/telnet
修改如下信息:
disable = yes - 配置telnet登录
修改securetty文件
sudo vim /etc/securetty
在末尾加入:
pts/0
pts/1
pts/2
pts/3 - 启动telnet服务
sudo systemctl enable xinetd
sudo systemctl enable telnet.socket
sudo systemctl start telnet.socket
sudo systemctl start xinetd
查看服务是否启动
sudo netstat -lntp | grep 23 - 使用xshell连接测试,选择telnet协议连接,如下图所示:
- 如果连接不上,尝试如下步骤:
编辑remote文件:
sudo vi /etc/pam.d/remote
将如下信息注释:
#auth required pam_securetty.so
编辑login文件:
将如下信息注释:
#auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
重新使用xshell连接测试 - 需要本机测试可以安装telnet客户端
sudo yum install -y telnet
测试命令:telnet 127.0.0.1 23
升级SSL
-
安装需要的包
sudo yum install -y pam* zlib* gcc
可以使用gcc -v看一下有没有gcc相关编译包 -
安装openssl
- 查找openssl相关文件
find / -name openssl - 备份旧的文件
ll /usr/bin/openssl
sudo mv /usr/bin/openssl /usr/bin/openssl_bak
ll /usr/lib64/openssl
sudo mv /usr/lib64/openssl /usr/lib64/openssl_bak
其中ll命令可以先确认一下有没有对应的文件 - 进入解压的openssl目录,开始安装openssl:
sudo ./config shared && sudo make && sudo make install
-
查看安装过程中有没有出错
sudo echo $?
输出为0就没有出错 -
建立软链接
sudo ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
sudo ln -s /usr/local/ssl/include/openssl /usr/include/openssl -
加载新配置
echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
这里如果不是使用root账号会提示没有权限,可以使用vim直接将/usr/local/ssl/lib维护到ld.so.conf文件中。继续执行命令: /sbin/ldconfig
-
查看版本
openssl version
升级SSH
- 安装openssh
-
删除原有或进行备份,以下进行备份
sudo mkdir /etc/ssh.bak
sudo cp -r /etc/ssh/. /etc/ssh.bak/
sudo rm -rf /etc/ssh/* -
进入openssh解压路径,编译安装
sudo ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl --with-zlib --with-md5-passwords --with-pam && sudo make && sudo make install
-
查看编译安装有没有报错
sudo echo $?
输出为0就没有出错 -
修改配置文件如下:
sudo vim /etc/ssh/sshd_config
修改或添加内容如下:
UsePAM yes
PermitRootLogin yes
UseDNS no -
在解压目录openssh目录下复制文件,如下操作:
sudo cp -a contrib/redhat/sshd.init /etc/init.d/sshd
sudo cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
sudo chmod +x /etc/init.d/sshd
sudo chkconfig --add sshd
sudo systemctl enable sshd -
将原有的sshd文件删除或移动到其他目录,这里选择移动
sudo mv /usr/lib/systemd/system/sshd.service /home/software/ -
设置开机自启动
sudo chkconfig sshd on -
启停操作
sudo /etc/init.d/sshd restart
sudo /etc/init.d/sshd start
sudo /etc/init.d/sshd stop -
查看端口
netstat -lntp | grep 22 -
查看版本
ssh -V -
使用xshell连接测试,连接上之后进行步骤12.
-
禁用telnet
sudo systemctl disable xinetd.service
sudo systemctl stop xinetd.service
sudo systemctl disable telnet.socket
sudo systemctl stop telnet.socket -
查看是否禁用成功
netstat -lntp | grep 23 -
恢复安装telnet进行注释的部分
-
如果安装了telnet的客户端也将客户端卸载。
使用如下命令查询是否有telnet安装包
sudo rpm -qa | grep telnet
卸载
sudo rpm -e 上面查询到的名称