centos6.5升级openssh和openssl +修改ssh端口为自定义

部分安装步骤参考了其他博文,详见本文最后

1.关键操作:libcrypto.so.10和libssl.so.10的保存(本人的惨痛教训就是直接rpm openssl后缺失这两个文件导致wget/yum均不能使用。只能现场USB方式复制
# cp  /usr/lib64/libcrypto.so.10  /usr/lib64/libcrypto.so.10.old
# cp  /usr/lib64/libssl.so.10  /usr/lib64/libssl.so.10.old
2.为升级准备,必须先安装的包:
# yum install xinetd
# yum install telnet-server
 允许通过telnet登陆设备
# yum install lrzsz 允许通过secureCRT传输文件
# yum install zlib 前置软件包
3.获取数据包(使用make方式安装)
# wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
# wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz

说明:http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html
依据此链接可见:openssh只支持1.0.2K版本的openssl,不支持1.1.0e版本

4.安装openssl:
# cp  /usr/lib64/libcrypto.so.10  /usr/lib64/libcrypto.so.10.old
# cp  /usr/lib64/libssl.so.10  /usr/lib64/libssl.so.10.old
//复制关键文件
5.卸载openssl
方案1# rpm -qa |grep openssl|xargs -i rpm -e --nodeps {}

方案2:
如果执行方案1后openssl version -a 依旧存在,可以使用以下方案强制清理(但可能需要手工建立软链接)
# find / -name openssl
/usr/lib64/openssl
/usr/bin/openssl
/etc/pki/ca-trust/extracted/openssl

# rm -rf /usr/lib64/openssl
# rm -rf /usr/bin/openssl
# rm -rf /etc/pki/ca-trust/extracted/openssl
6.安装openssl
# tar -zxvf openssl-1.0.2k.tar.gz
# cd openssl-1.0.2k
# ./config --prefix=/usr --openssldir=/etc/ssl --shared zlib    #必须加上--shared,否则编译时会找不到新安装的openssl的库而报错
# make
# make test                            #必须执行这一步结果为pass才能继续,否则即使安装完成,ssh也无法使用
# make install
# openssl version -a                   #查看是否升级成功

恢复关键文件
# mv  /usr/lib64/libcrypto.so.10.old  /usr/lib64/libcrypto.so.10
# mv  /usr/lib64/libssl.so.10.old  /usr/lib64/libssl.so.10
7.卸载openssh
(如需备份配置请自行执行mv /etc/ssh /etc/ssh.old)
rpm -qa |grep openssh|xargs -i rpm -e --nodeps {}
8.openssh安装:
使用之前下载的openssh tar包进行安装
# tar -zxvf openssh-7.4p1.tar.gz
# cd openssh-7.4p1
# ./configure --prefix=/usr  --sysconfdir=/etc/ssh  --with-md5-passwords  --with-pam  --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd
# make
# make install
# ssh -V              #验证是否升级成功

(如果之前复制了配置文件此处请进行恢复)
# service sshd restart
使用22端口远程SSH登陆以确认可行性。
可登陆后删除telnet
# yum remove telnet-server

如果需要修改SSH端口为自定义端口

1.修改ssh端口

# vi  /etc/ssh/sshd_config
    #Port 22
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::

增加两行:
Port 22
Port 12345
保存退出


# /etc/init.d/sshd restart 重启服务
2.修改iptables:新增一行策略
#  vi /etc/sysconfig/iptables
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 12345 -j ACCEPT
3.修改selinux:
# yum -y install policycoreutils-pythoy
# semanage port -a -t ssh_port_t -p tcp 12345  新增ssh允许端口号
# semanage port -l | grep ssh 检查是否生效
    ssh_port_t                     tcp      10086, 22
#  netstat -tpnl | grep ssh
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      26348/sshd  
    tcp        0      0 :::22                       :::*                        LISTEN      26348/sshd 
    tcp        0      0 0.0.0.0:12345               0.0.0.0:*                   LISTEN      27627/sshd          
    tcp        0      0 :::12345                    :::*                        LISTEN      27627/sshd  

使用12345的ssh登陆,验证是否可用。
如生效则
#  vi /etc/sysconfig/iptables
删除port 22
# /etc/init.d/sshd restart 重启服务

附录:各种报错的解决方案

软链接失效
[root@localhost openssl-1.0.2k]# openssl version -a
bash: /usr/local/bin/openssl: No such file or directory

解决方案:将/usr/local/bin/openssl中新增一个软链接指向真实的 /usr/bin/openssl 
ln -s /usr/bin/openssl /usr/local/bin/openssl 
安装ssl缺少library的解决方案
configure: error: Your OpenSSL headers do not match your
        library. Check config.log for details.
        If you are sure your installation is consistent, you can disable the check
        by running "./configure --without-openssl-header-check".
        Also see contrib/findssl.sh for help identifying header/library mismatches.

解决方案:yum install openssl-devel
安装openssh时发现openssl版本不匹配
checking OpenSSL header version... 1010005f (OpenSSL 1.1.0e  16 Feb 2017)
checking OpenSSL library version... not found
configure: error: OpenSSL library not found.

解决方案:
find / -name openssh
rm -rf 所有搜索结果

正常升级流程可参考下述blog
http://www.cnblogs.com/xshrim/p/6472679.html

修改ssh端口可参考此blog
http://www.2cto.com/os/201405/299466.html

你可能感兴趣的:(系统环境与安装问题)