centos7升级openssh9.3p1
# 开荒新服务器
搬瓦工又要续费了,平时用着延时高,有时还会卡到连不上,相比virmach 7刀的日本节点简直就是依托答辩,看看有没有能平替的?
阿里云新加坡节点直接劝退,丢包率超过50%,感谢5天无理由退货。
阿里云的服务简直无话可说,退货还来问啥原因,顺手推荐了自家的VPN -.-b
腾讯云首尔节点,延迟比virmach日本稍高,但比搬瓦工要低一半,但价格比打折的搬瓦工还要贵,竟然没有年付85折,也是坑子,但胜在算是能正常使用了。
新服务器上手第一件事就是把openssh升级到最新版
# 站在前人的肩膀上
本次升级参考的是这篇文章《centos7——OpenSSH.7.4升级OpenSSH 9.2》,虽然文章里是9.2,但最终测试下来对于centos7.6升级openssh9.3p1也是适用的。
# 升级openssl
就改动了一个参数,把make -j 4 改为 make -j $(nproc) ,其余照搬就行,以root用户执行下列命令
#下载文件
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1t.tar.gz
#解压文件
tar -zxf openssl-1.1.1t.tar.gz
#编译安装
cd openssl-1.1.1t
./config -Wl,-rpath=/usr/lib64 --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --libdir=/usr/lib64
make -j $(nproc) && make install
#替换旧文件
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
#验证
openssl version
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 升级openssh
考虑到一般网络上针对openssh的攻击是基于版本号的,所以首先要修改版本号。
只是没想到openssh最新版已经是9.3了,以前隐藏版本改为9.9是没想到openssh的版本会涨得这么快,这次改得再大一点,感觉有生之年应该是升不到这个版本号了。以root用户执行下列命令
#下载文件
cd ~
wget https://mirrors.aliyun.com/openssh/portable/openssh-9.3p1.tar.gz
#解压文件
tar -zxf openssh-9.3p1.tar.gz
#修改版本号
cd openssh-9.3p1
vim version.h
2
3
4
5
6
7
8
9
10
改成如下样式,如按自己喜好设置版本名称
#define SSH_VERSION "OpenSSH_999.999"
#define SSH_PORTABLE "p999"
#define SSH_RELEASE SSH_VERSION SSH_PORTABLE
2
3
4
然后基本按文章操作,除了编译参数变一下之外,还加了复制几个文件,这样就可以用systemctl来管理了
#安装依赖
yum -y install pam-devel
#备份
cd ~
$ mkdir -p ~/ssh_bak/etc/ssh/ && mkdir -p ~/ssh_bak/usr/bin/ && mv /etc/ssh/ ~/ssh_bak/etc/ssh/ && mv /usr/bin/{ssh*,scp,sftp} ~/ssh_bak/usr/bin/
#编译安装
cd openssh-9.2p1
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-pam --with-md5-passwords --with-selinux && make -j $(nproc) && make install
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'UsePAM yes' >> /etc/ssh/sshd_config
# 复制到系统服务目录
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
# 移走之前的服务
mv /usr/lib/systemd/system/sshd.service ./sshd.service.old
# 设置开机启动
chkconfig --add sshd
systemctl enable sshd
/usr/lib/systemd/systemd-sysv-install enable sshd
systemctl enable sshd
#验证(可以看到自己设置的版本号)
ssh -V
#重启服务(可以再次用ssh连接上)
systecmctl restart sshd
#重启系统(可以再次用ssh连接上)
reboot now
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
重启服务与重启系统都验证通过后,就说明openssh升级成功了。如果登录不上最简单的方法就是重装系统,也可以通过云服务商提供的vnc或其它方式登录后在/var/log/messages中跟踪日志消息进一步排查故障原因。
调试完成后,从主机安全的角度应是禁止root直接登录的,所以需要把/etc/ssh/sshd_config中自己加的PermitRootLogin yes注释掉,但需要提前新建个普通用户,以免影响登录。
🌻🌻🌻