目录

1. 安装telnet服务(可选)

2. openssl升级

2.1 备份原有openssl服务

2.2编译安装、及编译安装出现的报错

2.3 建立软连接

2.4 更新动态连接数据库

2.5查看openssl版本,确认是否升级成功

3.  SSH升级

3.1备份原有ssh数据   !!!!!

3.2. 卸载原有ssh服务

3.3.源码包编译升级

3.4.拷贝开机启动脚本设置为开机自启、还原ssh-keygen文件

3.5.修改sshd服务端的配置文件

3.6.检查、测试SSH服务是否正常

4.关闭rpcbind服务

5.禁用telnet远程连接(可选)


为什么要升级openssl、openssh,关闭rpcbind服务?

由于Centos7自带的openssh、openssl版本过低、第三方安全软件扫描过不了存在严重漏洞所以必须升级

京东云安全团队检测到多起黑客利用云主机上的RPCBind服务进行UDP反射DDoS攻击导致用户流量暴增的案例

#升级前记得一定一定要提前备份好数据

环境:CentOS 7.6 64bit

查看当前系统openssl、openssh版本

[root@cowboy ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017[root@cowboy ~]# rpm -qa |egrep "openssh|openssl"
openssh-7.4p1-22.el7_9.x86_64
openssl-1.0.2k-25.el7_9.x86_64
openssh-server-7.4p1-22.el7_9.x86_64
openssl-devel-1.0.2k-25.el7_9.x86_64
openssh-clients-7.4p1-22.el7_9.x86_64
openssl-libs-1.0.2k-25.el7_9.x86_64

wget下载openssh-8.1p1.tar.gz、openssl-1.1.1q.tar.gz

  • openssl官网:https://www.openssl.org/
  • openssh官网:http://www.openssh.com/
[root@cowboy ~]# wget http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz
[root@cowboy ~]# wget -c https://www.openssl.org/source/openssl-1.1.1q.tar.gz --no-check-certificate[root@cowboy ~]# tar -zxvf openssh-8.3p1.tar.gz
[root@cowboy ~]# tar -zxvf openssl-1.1.1q
[root@cowboy ~]#  ls
openssh-8.3p1  openssh-8.3p1.tar.gz  openssl-1.1.1q  openssl-1.1.1q.tar.gz

--no-check-certificate: 不检查证书

tar -C: 指定解压到那个目录

#下载编译安装的依赖
yum -y install gcc gcc-c++ zlib zlib-devel openssl openssl-devel  libselinux-devel perl pam-devel

1. 安装telnet服务(可选)

#防止ssh连接不上,安装telnet作为备用远程连接服务

yum -y install telnet-server xinetd
systemctl restart xinetd
systemctl restart telnet.socket
#telnet服务由xinetd守护的,安装完telnet-server后,需要重新启动xinetd守护进程

1.2. 启动xinetd

修改配置文件,安装完之后是默认不开启的(如果文件不存在则vim 创建)

cat /etc/xinetd.d/telnet
service telnet
{disable = noflags = REUSEsocket_type = streamwait = nouser = rootserver = /usr/sbin/in.telnetdlog_on_failure += USERID
}

参数含义

启动报错:bind failed (Address already in use (errno = 98)). ser...net

信息表明,有其它的程度占用了端口,致使xinetd服务无法启动.

解决方法: 有两种启动telnet服务的方式,两种方法同时使用会导致端口占用,所以停止telnet.socket服务

systemctl stop telnet.socket
systemctl disble telnet.socket
systemctl restart xinetd.service

1.3.防火墙、端口服务的放通

查看进程知否正常运行、过滤23端口

[root@cowboy ~]# ps -ef|grep telnet
root      9674  1155  0 10:18 pts/1    00:00:00 grep --color=auto telnet
[root@cowboy ~]# lsof -i :23
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
xinetd  8429 root    5u  IPv6 2217950      0t0  TCP *:telnet (LISTEN)

服务器端防火墙放通23端口

[root@cowboy ~]# firewall-cmd --zone=public --add-port=23/udp --permanent
[root@cowboy ~]# firewall-cmd --zone=public --add-port=23/tcp --permanent
[root@cowboy ~]# firewall-cmd --reload
success
[root@cowboy ~]# firewall-cmd --list-ports
80/tcp 23/tcp 23/udp

因为博主用的是云服务器,所以还需在 云服务器控制台进行操作

#注意 云服务器放通 安全组 轻量级服务器放通防火墙

云服务器

轻量级服务器

win端

打开控制面板→程序

4.测试是否可以正常连接

2. openssl升级

2.1 备份原有openssl服务

find / -name openssl
cp -r /usr/lib64/openssl /usr/lib64/openssl.old
cp -r /usr/bin/openssl /usr/bin/openssl.old
cp -r /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl.oldcp /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10.old
cp /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10.old
#如下两个库文件必须先备份,因系统内部分工具(如yum、wget等)依赖此库,而新版OpenSSL不包含这两个库[root@cowboy ~]# echo $?
0
[root@cowboy ~]# ls /usr/lib64 |grep openssl
openssl
openssl.old
[root@cowboy ~]# ls /usr/bin/ |grep openssl
openssl
openssl.old
[root@cowboy ~]# ls -al /usr/lib64/libcrypto.so.10
lrwxrwxrwx 1 root root 19 Jul 25 17:04 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.2k
[root@cowboy ~]# ls -al /usr/lib64/libssl.so.10
lrwxrwxrwx 1 root root 16 Jul 25 17:04 /usr/lib64/libssl.so.10 -> libssl.so.1.0.2k
#确认已经备份

2.2编译安装、及编译安装出现的报错

cd /openssl-1.1.1q
./config shared && make && make installll /usr/local/bin/openssl
ll -d /usr/local/include/openssl/
#编译完成之后,可以在以下目录找到文件[root@cowboy openssl-1.1.1q]# ll /usr/local/bin/openssl
-rwxr-xr-x 1 root root 749088 Oct 14 10:17 /usr/local/bin/openssl
[root@cowboy openssl-1.1.1q]# ll -d /usr/local/include/openssl/
drwxr-xr-x 2 root root 4096 Oct 14 10:17 /usr/local/include/openssl/

2.3 建立软连接

ln -sf /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/include/openssl/ /usr/include/openssl

2.4 更新动态连接数据库

echo "/usr/local/lib64" >> /etc/ld.so.conf
将新的库文件地址写入记录so库的配置文件/sbin/ldconfig
#更新动态连接数据库

2.5查看openssl版本,确认是否升级成功

openssl version -a

3.  SSH升级

 3.1备份原有ssh数据   !!!!!

[root@cowboy ~]# mkdir /opt/sshbak
[root@cowboy ~]# find / -name ssh
/etc/ssh
/etc/selinux/targeted/active/modules/100/ssh
/usr/share/bash-completion/completions/ssh
/usr/bin/ssh############数据备份#############
cp /etc/ssh/sshd_config /opt/sshbak
tar -cvf /opt/sshbak/ssh.bak.tar /etc/ssh
cp /usr/bin/ssh-copy-id /usr/bin/ssh-copy-id.bak 

3.2. 卸载原有ssh服务

rpm -qa |grep openssh |xargs rpm -e --allmatches  --nodeps

xargs:               给命令传递参数的一个过滤器,也是组合多个命令的一个工具

--allmatches:    删除与 packge_name 匹配的包的所有版本

--nodeps:         不检查依赖直接删除rpm包

rm -rf /etc/ssh/

#删除之前,建议安装telnet远程服务防止ssh断开

只要不重启sshd服务,就不会断开

3.3.源码包编译升级

mkdir /usr/local/openssh
###########编译安装################
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh \
--with-openssl-includes=/usr/local/include \
--with-ssl-dir=/usr/local/lib64 \
--with-md5-passwords \
--with-zlib \
--with-pammake && make install

参数含义:–prefix 安装目录
                  –sysconfdir 配置文件目录       
                  –with-privsep-path 支持特权分离
                  –with-md5-passwords 支持读取经过MD5加密的口令

zlib库:一套通用的解压缩开源库,提供了内存(in-memory)压缩和解压函数,
 能检测解压出来的数据完整性

3.4.拷贝开机启动脚本设置为开机自启、还原ssh-keygen文件

cp ./contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
cp -a ./contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
cp /usr/local/ssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/ssh/bin/ssh /usr/bin/ssh
cp /usr/local/ssh/bin/ssh-keygen /usr/bin/ssh-keygen

将脚本添加至开机自启列表

[root@cowboy init.d]# chkconfig --add sshd  && chkconfig sshd on
Note: Forwarding request to 'systemctl enable sshd.socket'.
Created symlink from /etc/systemd/system/sockets.target.wants/sshd.socket to /usr/lib/systemd/system/sshd.socket.[root@cowboy openssh-8.3p1]# systemctl enable sshd --now

chkconfig --add sshd &&chkconfig sshd on: 新增加sshd服务并设置开机启动

chkconfig --list |grep sshd:                             列出sshd服务的设置情况

 3.5.修改sshd服务端的配置文件

echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
echo 'Port 22' >> /etc/ssh/sshd_config
echo 'AddressFamily any' >> /etc/ssh/sshd_config
echo 'ListenAddress 0.0.0.0' >> /etc/ssh/sshd_config

[root@cowboy sshd]# vim /etc/ssh/sshd_config
#注释  :set number  显示行号

默认监听22端口
17 Port 22                                                                 (去掉注释)

ipv4和ipv6协议地址簇用那个一个,any 表示全用
18 AddressFamily any                                              (去掉注释)

指名监控的地址,0.0.0.0表示本机的所有地址
19 ListenAddress 0.0.0.0                                          (去掉注释)

允许使用ROOT用户登录
32 #PermitRootLogin prohibit-password                     改成 32 PermitRootLogin yes

运行使用公钥认证
37 PubkeyAuthentication yes                                    (去掉注释)

禁止解析(优化项如果使用DNS解析速度会很慢)
98 UseDNS no                                                           (去掉注释)

###建立软连接###
ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh
ln -s /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
ln -s /usr/local/openssh/sbin/sshd /usr/sbin/sshd

systemctl daemon-reload

3.6.检查、测试SSH服务是否正常

[root@cowboy init.d]# systemctl daemon-reload
[root@cowboy init.d]# /etc/init.d/sshd restart
Restarting sshd (via systemctl):                           [  OK  ]
[root@cowboy init.d]# lsof -i :22
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd     1143 root    3u  IPv4 2666867      0t0  TCP cowboy:ssh->183.62.240.234:57082 (ESTABLISHED)
sshd     3040 root    3u  IPv4 2926334      0t0  TCP cowboy:ssh->183.62.240.234:61485 (ESTABLISHED)
sshd    15107 root    3u  IPv4 3027264      0t0  TCP *:ssh (LISTEN)
sshd    15107 root    4u  IPv6 3027266      0t0  TCP *:ssh (LISTEN)
[root@cowboy init.d]# netstat -ntup|grep 22
tcp        0      0 10.0.20.2:22            183.62.240.234:57082    ESTABLISHED 1143/sshd: root@pts
tcp        0     52 10.0.20.2:22            183.62.240.234:61485    ESTABLISHED 3040/sshd: root@pts
tcp        0      0 10.0.20.2:23            176.97.210.224:42958    ESTABLISHED 11518/in.telnetd
[root@cowboy init.d]# ssh -V
OpenSSH_8.3p1, OpenSSL 1.1.1q  5 Jul 2022

4.关闭rpcbind服务

大部分服务是不依赖于rpcbind的,只有NFS需要用到这个服务。

systemctl status rpcbind.service
systemctl disable --now rpcbind.service
systemctl stop rpcbind.socket

rpcbind服务作用:Centos上禁用 rpcbind 111端口 - 一路狂飙 (ylkb.net)

5.禁用telnet远程连接(可选)

[root@cowboy init.d]# systemctl disable xinetd.service && systemctl stop xinetd.service

Centos7.6编译升级openssl、openssh服务,关闭rpcbind服务相关推荐

  1. 【救援过程】升级openssl导致libcrypto.so.1.1动态库不可用

    目录 一.故障重现 二.救援过程 一.故障重现 近日为了解决CVE-2021-3449: 拒绝服务漏洞.CVE-2021-3450: 证书校验漏洞,自己编译了openssl-1.1.1k. 亲测发现: ...

  2. 定位服务器已关闭里面显示的时间,测试显示iPhone关闭定位服务仍记录用户位置...

    北京时间4月25日上午消息,国外媒体进行的一项测试显示,即使在定位服务被关闭的情况下,iPhone仍会收集并储存用户的位置信息.此时位置数据来自手机基站和WiFi接入点,同时并被发送给苹果. 苹果尚未 ...

  3. 一键脚本升级OpenSSL、OpenSSH

    OpenSSL.OpenSSH一般官方每年会更新两次,修复已知安全漏洞和各种程序Bug.随着越来越多的企业对安全意识的提高,一般每年也会内部开展两次安全整改检查工作,其中OpenSSL.OpenSSH ...

  4. centos7上先要关闭httpd服务之后再卸载,反正卸载之后就是安装不上一脸懵逼

    centos7上先要关闭httpd服务之后再卸载,反正卸载之后就是安装不上一脸懵逼,最后只有重新装系统.

  5. Linux随笔16-主从DNS服务搭建以及智能DNS服务搭建、基于CentOS7.6编译安装MySQL-5.7.32

    Contents 1. DNS主从服务器搭建 1.1. DNS简介 1.2. DNS主从服务搭建 1.2.1. 主DNS服务器配置 1.2.2. 从DNS服务器配置 1.2.3. Web服务器准备 1 ...

  6. centOS7编译安装openssl并使用C接口

    centOS7编译安装openssl并使用C接口. 1.编译安装: 下载OpenSSL安装包 sudo wget http://www.openssl.org/source/openssl-1.1.0 ...

  7. Centos7 64位 -- glibc-2.29 编译升级方法(已成功)

    某软件出现漏洞,需要升级解决(忘了哪个)结果提示glibc版本过低. 懵懂无知的我以为glibc想其他软件一样编译升级一下就好.. 结果? 重装系统! 说真的,如非必要(或学习),请勿升级 glibc ...

  8. CentOS openssh升级到openssh可用

    http://blog.csdn.net/levy_cui/article/details/53100315 levy_cui (花名:白起) 科技改变世界,技术改变人生. 目录视图 摘要视图 订阅 ...

  9. Centos7源码升级openssh9

    Centos7源码升级openssh9 升级openssh9脚本 升级openssh9脚本 !!!警告: 该脚本仅供学习,不建议在生产环境下使用. #!/usr/bin/env bash# 声明: 该 ...

最新文章

  1. python线程暂停恢复退出_python中的暂停和恢复线程
  2. Web前端要学什么框架呢?推荐这几款
  3. w7提示无法关闭计算机,win7关不了机怎么回事?老司机教你怎么解决电脑关不了机...
  4. 只需修改一个像素,让神经网络连猫都认不出 | 论文+代码
  5. 【例题 7-2 UVA - 11059】Maximum Product
  6. 实用的Safari浏览器扩展工具——浏览标签太多?来一键保存!
  7. centos www服务器文件unable create,Centos Vsftpd 无上传权限 (553 Could not create file)
  8. 基于bp神经网络的房价预测,房价预测 神经网络
  9. 华氏度和摄氏度的相互转化
  10. newton插值公式
  11. 中移动投身开放大潮重整数据业务
  12. 【饥荒脚本】饥荒控制台代码自动输入
  13. 计算机白板培训报道,学习电子白板心得体会
  14. 论文阅读:CVPR 2022 Object Localization under Single Coarse Point Supervision
  15. python能制作ppt动画效果吗_原来用PPT也能做出神级的动画效果!
  16. 带南海九段线分位数地图可视化(R语言版)
  17. U8备份提示“远程组件初始化失败”
  18. 解决Ubuntu更新后无线网卡不能使用的问题
  19. 【习题】《算法零基础100讲》位与 2
  20. R Z-score结果

热门文章

  1. Win10下 60行代码实现多线程PDF转Word 运行错误摘要
  2. 0xc000007b报错最优简单解决方法
  3. 手机话费接口 为指定手机直接充值
  4. .net AutoEventWireup介绍
  5. 【数据库】【Mysql - Workbench1】 :如何解决WPS/excel数据导入时Table Data Import报错问题?
  6. excel 回归 - 输入区域包含非数值型数据
  7. 采购申请审批-MEPO822
  8. 使用nginx部署多个前端项目
  9. HTML5 Audio(音频)简介
  10. 2021Vue.js面试题汇总及答案【全网最全 建议收藏】