导航
导航
文章目录
  1. 一、查看当前版本
    1. 查看已安装的RPM包 (可选,仅参考)
  2. 二、安装依赖
    1. 安装Perl (可选,仅参考)
  3. 三、安装 OpenSSL
    1. 3.1 卸载现有版本 (仅参考,不需要卸载)
    2. 3.2 安装 OpenSSL
    3. 3.3 替换旧版 OpenSSL
  4. 四、安装 OpenSSH
    1. 4.1 卸载 OpenSSH 旧版本
    2. 4.2 安装 OpenSSH
    3. 4.3 替换旧版 OpenSSH
    4. 4.4 开机自启动(方法1,不推荐)
    5. 4.5 开机自启动(systemd,推荐)
    6. 4.6 重定向日志
    7. 4.7 其他
  5. 五、安装 Telnet (可选,仅参考)

CentOS 升级 OpenSSL 和 OpenSSH

一、查看当前版本

ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

查看已安装的RPM包 (可选,仅参考)

rpm -qa | grep openssl
openssl-1.0.1e-51.el7_2.7.x86_64
openssl-libs-1.0.1e-51.el7_2.7.x86_64

rpm -qa | grep openssh
openssh-server-6.6.1p1-25.el7_2.x86_64
openssh-6.6.1p1-25.el7_2.x86_64
openssh-clients-6.6.1p1-25.el7_2.x86_64

二、安装依赖

yum install -y wget curl gcc gcc-c++ make zlib-devel pam-devel tcp_wrappers tcp_wrappers-devel

安装Perl (可选,仅参考)

via http://www.cpan.org/src/

wget http://www.cpan.org/src/5.0/perl-5.27.0.tar.gz && \
tar -xzf perl-5.27.0.tar.gz && \
cd perl-5.27.0 && \
./Configure -des -Dprefix=/usr/local/perl && \
make  && \
make install
perl -v

三、安装 OpenSSL

OpenSSL 默认安装在 /usr/local/ssl,与旧版不冲突,建议不要去卸载旧版,很多软件都依赖旧版的 SSL 库,否则你得要花更多时间去处理相关错误。

3.1 卸载现有版本 (仅参考,不需要卸载)

rpm -e `rpm -qa | grep openssh`
rpm -e `rpm -qa | grep openssl` --nodeps

若误卸载了,可将下面文件复制到 /usr/lib64/

libcrypto.so.10 libcrypto.so.1.0.1e libssl.so.10 libssl.so.1.0.1e

3.2 安装 OpenSSL

注意 openssl-1.1.x 新版不兼容 openssh ,请用回最新的的 1.0.x 版本

wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz && \
tar -zxf openssl-1.0.2l.tar.gz && \
cd openssl-1.0.2l && \
./config shared zlib && \
make depend && \
make install

3.3 替换旧版 OpenSSL

mv /usr/bin/openssl /usr/bin/openssl.backup
mv /usr/include/openssl /usr/include/openssl.backup
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl/ /usr/include/openssl

echo '/usr/local/ssl/lib' >> /etc/ld.so.conf && ldconfig && \
/sbin/restorecon -v /usr/local/ssl/lib/libcrypto.so.1.0.0

四、安装 OpenSSH

4.1 卸载 OpenSSH 旧版本

OpenSSH 建议卸载旧版本,卸载前也可以备份一下。

# 备份
cp -r /usr/bin/ssh /usr/bin/ssh.bak
cp -r /usr/sbin/sshd /usr/sbin/sshd.bak
cp -r /usr/libexec/openssh/sftp-server /usr/libexec/openssh/sftp-server.bak
cp -r /etc/ssh /etc/ssh_backup

# 卸载
# yum remove -y openssh openssh-server openssh-clients
rpm -e `rpm -qa | grep openssh` --nodeps

4.2 安装 OpenSSH

wget http://ftp.eu.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz && \
tar -zxf openssh-7.5p1.tar.gz && \
cd openssh-7.5p1 && \
./configure --prefix=/usr/local/ssh \
            --sysconfdir=/etc/ssh \
            --with-ssl-dir=/usr/local/ssl/include/openssl \
            --with-pam \
            --with-tcp-wrappers \
            --with-md5-passwords \
            --with-zlib=zlib && \
make && make install

4.3 替换旧版 OpenSSH

ln -s /usr/local/ssh/bin/ssh /usr/bin/ssh && \
ln -s /usr/local/ssh/sbin/sshd /usr/sbin/sshd && \
mkdir -p /usr/libexec/openssh/ && \
ln -s /usr/local/ssh/libexec/sftp-server /usr/libexec/openssh/sftp-server

4.4 开机自启动(方法1,不推荐)

cp contrib/redhat/sshd.init /etc/init.d/sshd
sed -i 's/usr\/sbin/usr\/local\/ssh\/sbin/g' /etc/init.d/sshd
sed -i 's/usr\/bin/usr\/local\/ssh\/bin/g' /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd

systemctl reload sshd
systemctl enable sshd
systemctl restart sshd.service

4.5 开机自启动(systemd,推荐)

systemd 说明文档:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

参考文档:https://zzz.buzz/zh/2015/12/26/configure-port-of-sshd-in-systemd-environment/

下载配置文件:

http://files.wangyan.org/conf/

上传文件,然后切换至 sshd.socket 服务

systemctl disable sshd.service
systemctl enable sshd.socket
systemctl stop sshd.service; systemctl start sshd.socket

4.6 重定向日志

SyslogFacility  local1

vim /etc/rsyslog.conf
local1.* /var/log/sshd.log

4.7 其他

cp contrib/redhat/sshd.pam /etc/pam.d/sshd

安全设置:https://wiki.centos.org/HowTos/Network/SecuringSSH

五、安装 Telnet (可选,仅参考)

yum -y install xinetd telnet telnet-server

vi /etc/securetty
pts/0
pts/1

#默认zone为public 可以使用firewall-cmd --get-default-zone 来获取默认zone
firewall-cmd --permanent --zone=public --add-port=23/tcp
firewall-cmd --reload

vim /etc/selinux/config
SELINUX=disabled

systemctl enable telnet.socket && \
systemctl start telnet.socket && \
systemctl enable xinetd && \
systemctl start xinetd

telnet dmfy@192.168.10.251

参考文档:http://www.omgdba.com/how-to-enable-telnet-on-centos-7.html

支持一下
扫一扫,支持一下