linux centOS 下编译升级 openSSH 详细步骤参考

栏目: 服务器 · 发布时间: 7年前

内容简介:centOS 7.x 及以下自带的 openSSH 版本基本都在7.x 以下。而 openSSH 7.3 以下的版本均存在高危漏洞。所以服务器升级 openSSH 就成了一件必做的事情。Zlib 官方网站:http://www.zlib.net/这样,就把 zlib 编译安装在

centOS 7.x 及以下自带的 openSSH 版本基本都在7.x 以下。而 openSSH 7.3 以下的版本均存在高危漏洞。所以服务器升级 openSSH 就成了一件必做的事情。

1、查看当前系统信息

1.1、查看当前系统版本

[root@localhost src]# cat /etc/redhat-release  
CentOS Linux release 7.0.1406 (Core)

[root@localhost src]# uname -m
x86_64

[root@localhost src]# uname -r
3.10.0-693.el7.x86_64

1.2、SSL版本信息

[root@localhost src]# openssl version

OpenSSL 1.0.2k-fips  26 Jan 2017

2、更新/安装 zlib

2.1、下载最新版本 Zlib

Zlib 官方网站:http://www.zlib.net/

cd /usr/src/
wget http://www.zlib.net/zlib-1.2.11.tar.gz

2.2、编译安装 Zlib

tar xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make
make install

这样,就把 zlib 编译安装在 /usr/local/zlib 中了。

3、安装pam-devel

3.1 下载最新版本pam-devel

pam-devel官方下载网站: https://pkgs.org/download/pam-devel

cd /usr/src/
wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic//libpam0-devel-1.3.1.0.5.955b-alt2.x86_64.rpm

3.2 rpm安装pam-devel

rpm -ivh libpam0-devel-1.3.1.0.5.955b-alt2.x86_64.rpm

4、安装 OpenSSL

4.1、下载最新版本的 openssl 和 openssl-fips

打开 OpenSSL 的官方网站下载:https://www.openssl.org/source/

cd /usr/src/
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
wget https://www.openssl.org/source/openssl-fips-2.0.16.tar.gz

4.2、编译安装 openssl-fips

[root@localhost src]# tar -xzvf openssl-fips-2.0.16.tar.gz
[root@localhost src]# cd openssl-fips-2.0.16
[root@localhost openssl-fips-2.0.16]# ./config && make && make install

默认安装到 /usr/local/ssl/fips-2.0

4.3、编译安装 openssl

[root@localhost src]# tar -xzvf openssl-1.0.2o.tar.gz
[root@localhost openssl-1.0.2o]# cd openssl-1.0.2o
[root@localhost openssl-1.0.2o]# ./config --prefix=/usr/ --shared zlib

或者

[root@localhost openssl-1.0.2o]# ./config --prefix=/usr/ --shared fips

注意:必须加上–shared,否则编译时会找不到新安装的 openssl 的库而报错

[root@localhost openssl-1.0.2o]# make
[root@localhost openssl-1.0.2o]# make test

提示:这一步很重要!是进行 SSL加密协议的完整测试,如果出现错误就要一定先找出哪里的原因,否则一味继续可能导致最终 SSH 不能使用,后果很严重!

[root@localhost openssl-1.0.2o]# make install

或者安装升级 openssl 的方式采用如下步骤:

$ tar xf openssl-1.0.1o.tar.gz
$ cd openssl-1.0.1o
$ ./config shared zlib
$ make && make install

# 备份旧的 openssl
$ mv /usr/bin/openssl /usr/bin/openssl.bak
$ mv /usr/include/openssl /usr/include/openssl.bak
# 软链接
$ 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 -v

4.4、查看是否升级成功

$ openssl version
OpenSSL 1.0.2o  27 Mar 2018

5、安装 OpenSSH

5.1、下载最新软件包源码

官方下载地址 http://www.openssh.com/portable.html#http

cd /usr/src
wget http://mirrors.evowise.com/pub/OpenBSD/OpenSSH/portable/openssh-7.7p1.tar.gz

5.2、备份当前 openssh

[root@localhost src]# mv /etc/ssh /etc/ssh.old

5.3、卸载当前 openssh

[root@localhost src]# rpm -qa | grep openssh

openssh-clients-6.4p1-8.el7.x86_64
openssh-server-6.4p1-8.el7.x86_64
openssh-6.4p1-8.el7.x86_64

[root@localhost src]# rpm -e --nodeps openssh-clients-6.4p1-8.el7.x86_64
[root@localhost src]# rpm -e --nodeps openssh-server-6.4p1-8.el7.x86_64
[root@localhost src]# rpm -e --nodeps openssh-6.4p1-8.el7.x86_64
[root@localhost src]# rpm -qa | grep openssh

5.4、安装openssh

[root@localhost src]# tar -xzvf openssh-7.7p1.tar.gz
[root@localhost src]# cd openssh-7.7p1

编译(同时兼容ssh1协议)

[root@localhost openssh-7.7p1]# ./configure --prefix=/usr  --sysconfdir=/etc/ssh  --with-md5-passwords  --with-pam  --with-zlib --with-ssh1
[root@localhost openssh-7.7p1]# make && mak install

5.5、安装后环境配置

[root@localhost openssh-7.7p1]# cp ./contrib/redhat/sshd.init /etc/init.d/sshd
[root@localhost openssh-7.7p1]# chmod +x /etc/init.d/sshd
[root@localhost openssh-7.7p1]# chkconfig --add sshd

修改 /etc/ssh/sshd_config 文件,添加 PermitRootLogin yes 到文件 /etc/ssh/sshd_config 的末尾:

$ echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
$ cat /etc/ssh/sshd_config

5.6、启动ssh服务

service sshd start

5.7、验证是否升级成功

$ ssh -V
OpenSSH_7.7p1, OpenSSL 1.0.2m  2 Nov 2017 (升级成功)

注意:

  • 记得关闭防火墙: systemctl stop firewalld
  • 记得关闭 SELinux

1、临时关闭(不用重启机器)

setenforce 0                  ##设置SELinux 成为permissive模式
                              ##setenforce 1 设置SELinux 成为enforcing模式

2、修改配置文件需要重启机器

修改 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=disabled

5.8、修改 ssh 默认 22 端口

公开的 22 端口可被遍历扫描。我们可以修改默认端口。步骤参考如下。

首先修改配置文件

vi /etc/ssh/sshd_config

找到 #Port 22 一段,这里是标识默认使用22端口,修改为如下:

Port 22
Port 50000

然后保存退出。50000 为修改后的端口,可自定义一个,一定要记住,否则后续连接不上就麻烦了。

重启 ssh。执行:

/etc/init.d/sshd restart

此时 SSH 端口将同时工作于 22 和 50000 上

编辑防火墙配置,启用50000端口:

vi /etc/sysconfig/iptables
# 在末尾添加如下内容
-A INPUT -p tcp -m tcp --dport 2222 -j ACCEPT

再次重启 ssh:

/etc/init.d/iptables restart

现在请使用ssh工具连接 50000 端口,来测试是否成功。如果连接成功了,则再次编辑 sshd_config 的设置,将里边的 Port22 删除,然后再重启一下 ssh 即可。

注意:

如果此时 ssh 工具连接提示 找不到匹配的host key算法 而无法连接,可尝试如下方法(删除 ssh_host 前缀的文件,然后重启 ssh 生成新的):

mkdir /etc/ssh/ssh_host_bak
mv  /etc/ssh/ssh_host_* /etc/ssh/ssh_host_bak
/etc/init.d/sshd restart

相关链接

  • https://blog.csdn.net/oujuan9812/article/details/80416392
  • http://www.zlib.net/
  • https://pkgs.org/download/pam-devel
  • https://www.openssl.org/source/

以上所述就是小编给大家介绍的《linux centOS 下编译升级 openSSH 详细步骤参考》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ajax for Web Application Developers

Ajax for Web Application Developers

Kris Hadlock / Sams / 2006-10-30 / GBP 32.99

Book Description Reusable components and patterns for Ajax-driven applications Ajax is one of the latest and greatest ways to improve users’ online experience and create new and innovative web f......一起来看看 《Ajax for Web Application Developers》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具