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

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

内容简介: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 详细步骤参考》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

从颠覆到创新

从颠覆到创新

长江商学院 / 中国友谊出版公司 / 49.00

互联网+时代的汹涌来临,一切我们所熟知的事物都在发生改变,商业模式的剧烈变化正在席卷各行各业,所有坚硬的壁垒都将消散,所有的企业都面临着商业模式的再探索和转型,而商业模式的探索、失败、进化,甚而再回到起点,杀死自己推倒重来,不断颠覆不断创新,不断涅槃不断重生,这不仅仅是这个时代新创公司的特征,也是今天互联网领域所有存活下来的巨头们的轨迹。 本书通过11个典型的互联网企业商业模式转型案例,讲述......一起来看看 《从颠覆到创新》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具