Centos7.6编译升级openssl、openssh服务,关闭rpcbind服务
目录
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服务相关推荐
- 【救援过程】升级openssl导致libcrypto.so.1.1动态库不可用
目录 一.故障重现 二.救援过程 一.故障重现 近日为了解决CVE-2021-3449: 拒绝服务漏洞.CVE-2021-3450: 证书校验漏洞,自己编译了openssl-1.1.1k. 亲测发现: ...
- 定位服务器已关闭里面显示的时间,测试显示iPhone关闭定位服务仍记录用户位置...
北京时间4月25日上午消息,国外媒体进行的一项测试显示,即使在定位服务被关闭的情况下,iPhone仍会收集并储存用户的位置信息.此时位置数据来自手机基站和WiFi接入点,同时并被发送给苹果. 苹果尚未 ...
- 一键脚本升级OpenSSL、OpenSSH
OpenSSL.OpenSSH一般官方每年会更新两次,修复已知安全漏洞和各种程序Bug.随着越来越多的企业对安全意识的提高,一般每年也会内部开展两次安全整改检查工作,其中OpenSSL.OpenSSH ...
- centos7上先要关闭httpd服务之后再卸载,反正卸载之后就是安装不上一脸懵逼
centos7上先要关闭httpd服务之后再卸载,反正卸载之后就是安装不上一脸懵逼,最后只有重新装系统.
- 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 ...
- centOS7编译安装openssl并使用C接口
centOS7编译安装openssl并使用C接口. 1.编译安装: 下载OpenSSL安装包 sudo wget http://www.openssl.org/source/openssl-1.1.0 ...
- Centos7 64位 -- glibc-2.29 编译升级方法(已成功)
某软件出现漏洞,需要升级解决(忘了哪个)结果提示glibc版本过低. 懵懂无知的我以为glibc想其他软件一样编译升级一下就好.. 结果? 重装系统! 说真的,如非必要(或学习),请勿升级 glibc ...
- CentOS openssh升级到openssh可用
http://blog.csdn.net/levy_cui/article/details/53100315 levy_cui (花名:白起) 科技改变世界,技术改变人生. 目录视图 摘要视图 订阅 ...
- Centos7源码升级openssh9
Centos7源码升级openssh9 升级openssh9脚本 升级openssh9脚本 !!!警告: 该脚本仅供学习,不建议在生产环境下使用. #!/usr/bin/env bash# 声明: 该 ...
最新文章
- python线程暂停恢复退出_python中的暂停和恢复线程
- Web前端要学什么框架呢?推荐这几款
- w7提示无法关闭计算机,win7关不了机怎么回事?老司机教你怎么解决电脑关不了机...
- 只需修改一个像素,让神经网络连猫都认不出 | 论文+代码
- 【例题 7-2 UVA - 11059】Maximum Product
- 实用的Safari浏览器扩展工具——浏览标签太多?来一键保存!
- centos www服务器文件unable create,Centos Vsftpd 无上传权限 (553 Could not create file)
- 基于bp神经网络的房价预测,房价预测 神经网络
- 华氏度和摄氏度的相互转化
- newton插值公式
- 中移动投身开放大潮重整数据业务
- 【饥荒脚本】饥荒控制台代码自动输入
- 计算机白板培训报道,学习电子白板心得体会
- 论文阅读:CVPR 2022 Object Localization under Single Coarse Point Supervision
- python能制作ppt动画效果吗_原来用PPT也能做出神级的动画效果!
- 带南海九段线分位数地图可视化(R语言版)
- U8备份提示“远程组件初始化失败”
- 解决Ubuntu更新后无线网卡不能使用的问题
- 【习题】《算法零基础100讲》位与 2
- R Z-score结果