IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Centos7.6编译升级openssl、openssh服务关闭rpcbind服务 -> 正文阅读

[开发工具]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 = no
	flags = REUSE
	socket_type = stream
	wait = no
	user = root
	server = /usr/sbin/in.telnetd
	log_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.old

cp /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 install

ll /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-pam

make && 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
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:55:18  更:2022-10-17 12:55:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:48:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码