linux之 linux 7 升级openssl&openssh步骤

说明:
传安装包,所有安装包放在 /home 下
#### 是相关注释部分与报错处理部分


升级前先做好备份并开启telnet服务。

1、 安装telnet
检查 是否 已经安装 telnet
[root@slave-01 ~]# rpm -qa|grep telnet*
telnet-server-0.17-64.el7.x86_64
telnet-0.17-64.el7.x86_64

如果没有安装则安装 telnet
yum install telnet telnet-server -y

开启 telnet 服务 ## CentOS 7 中 没有 vi /etc/xinetd.d/telnet 将 disabled yes 改为no 这步
systemctl start telnet.socket
systemctl enable telnet.socket


测试telnet正常登入后开始升级
telnet XXXXXX

备份 /etc/securrtty (根用户可以登录终端设备列表)
cp /etc/securrtty /etc/securetty.bak

2.升级openssl
先升级openssl, 一定记得加上 shared选项, 否则openssh编译的时候会找不到新安装的openssl的library, 
会报错: openssl的 header和library版本不匹配。

tar zxvf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
./config --prefix=/usr/openssl shared zlib && make && make install

## 编译 ssl 时, 报 找不到 zlib ,则 补安 zlib ####
tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure && make && make install
##################################################

mv /usr/bin/openssl /usr/bin/openssl-old
mv /usr/include/openssl /usr/include/openssl-old 
ln -s /usr/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/openssl/include/openssl /usr/include/openssl
cp -p /etc/ld.so.conf /etc/ld.so.conf-old
echo "/usr/openssl/lib">> /etc/ld.so.conf

ldconfig -v


*用命令查看openssl version -a 查看openssl版本是否正确。

vi /etc/profile 添加:
export LIBPATH=/usr/openssl/lib:$LIBPATH
export LD_LIBRARY_PATH=/usr/openssl/lib:$LD_LIBRARY_PATH
export PATH=/usr/openssl/bin:/usr/openssh/bin:$PATH

source /etc/profile

3.升级openssh

mv /etc/init.d/sshd /etc/init.d/sshd-old #### Linux 7 没有这个文件#####
mv /etc/ssh /etc/ssh-old
mkdir /etc/ssh

检查是否安装 pam-devel 包
[root@zk01 ~]# rpm -qa|grep pam-devel*
pam-devel-1.1.8-12.el7_1.1.x86_64 ## 需要此包 ,否则报 PAM 错误

tar zxvf openssh-7.3p1.tar.gz
cd openssh-7.3p1

./configure --prefix=/usr/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/openssl --mandir=/usr/share/man --with-zlib --with-pam --with-md5-passwords --with-kerberos5 && make && make install

## 如果编译 ssh 时, 报 krb5.h: No such file or directory , 则依赖补包 #########
[root@localhost openssh-7.3p1]# yum -y install krb5-devel*
#################################################################################

ssh -V

mv /usr/bin/ssh /usr/bin/ssh.old
ln -s /usr/openssh/bin/ssh /usr/bin/ssh


cp -p /home/openssh-7.3p1/contrib/redhat/sshd.init /etc/init.d/sshd

##### linux 7 中不做此操作步骤,否则开启 UsePAM yes 后,限制多次ssh登陆失败 ,报 Permission denied, please try again.####
##### cp -p /home/openssh-7.3p1/contrib/redhat/sshd.pam /etc/pam.d/sshd ############################################

chown root:root /etc/init.d/sshd


修改/etc/init.d/sshd 文件的内容:

SSHD=/usr/sbin/sshd==》SSHD=/usr/openssh/sbin/sshd
/usr/bin/ssh-keygen==》/usr/openssh/bin/ssh-keygen -A

vi /etc/ssh/sshd_config
添加两行 
PermitRootLogin yes
UsePAM yes


限制远程ssh多次登入失败的用户

在 /etc/pam.d/sshd 第一行下即#%PAM-1.0的下面添加

auth required pam_tally2.so deny=5 unlock_time=600 even_deny_root root_unlock_time=600

account required pam_tally2.so

 


sed -i 's/# StrictHostKeyChecking ask/StrictHostKeyChecking no/' /etc/ssh/ssh_config
sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/ssh_config
service sshd restart

重启ssh服务
/etc/init.d/sshd restart

4.测试ssh

ssh -V

测试能否ssh localhost 以及 异机 ssh (注意核实 能否正常ssh登录、限制用户登入失败次数是否生效)

查看某个用户登入失败次数 #pam_tally2 --user [user]

清空某个用户失败次数 #pam_tally2 -u [user] --reset



5.如果ssh成功的话,关闭telnet 。 否则回退
systemctl stop telnet.socket
systemctl disable telnet.socket

 

 

 

 

 

请使用浏览器的分享功能分享到微信等