OpenSSH 9.3之前的版本存在各種各樣的安全漏洞,為此,我們需要將OpenSSH升級(jí)到最新的9.3的版本。
執(zhí)行:ssh -V,我們可以查看當(dāng)前的openssh版本
?為了避免升級(jí)過程中出現(xiàn)意外而導(dǎo)致服務(wù)器無法正常使用,建議操作前先對(duì)服務(wù)器進(jìn)行快照備份?。?!
1.?備份原有pam.d下的sshd文件
mv /etc/pam.d/sshd /etc/pam.d/sshd-bak
ls -l /etc/pam.d/sshd*
cp /etc/ssh/ /etc/ssh-bak/
當(dāng)備份pam.d下的sshd文件時(shí),發(fā)現(xiàn)該路徑下沒有此文件時(shí),可以從其他服務(wù)器拷貝一個(gè)過來,或是執(zhí)行:vi?/etc/pam.d/sshd 手敲也行,其內(nèi)容如下:
#%PAM-1.0
auth substack password-auth
auth include postlogin
account required pam_sepermit.so
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session optional pam_motd.so
session include password-auth
session include postlogin
2.?安裝telnet
升級(jí)過程會(huì)卸載舊的ssh而導(dǎo)致無法遠(yuǎn)程,所以先安裝一個(gè)Telnet。如果安裝期間不使用服務(wù)器則可忽略telnet的安裝(畢竟還有服務(wù)器的快照備份)
檢查系統(tǒng)中是否已經(jīng)安裝了telnet的服務(wù)端和客戶端,命令如下:
rpm -q telnet-server
rpm -q telnet
當(dāng)系統(tǒng)中沒有安裝telnet時(shí),則會(huì)報(bào)如下信息:
執(zhí)行命令進(jìn)行安裝telnet
yum install telnet-server -y
yum install telnet -y
設(shè)置開機(jī)啟動(dòng)并啟動(dòng)telnet
systemctl enable telnet.socket
systemctl start telnet.socket
防火墻開啟23端口,使用?telnet ip?進(jìn)行連接登錄。默認(rèn)系統(tǒng)中是不允許root用戶使用telnet登錄的,因此我們需要授權(quán)一下
echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty
當(dāng)我們?cè)谶M(jìn)行登錄時(shí)無法正常登錄時(shí),主機(jī)端執(zhí)行
tail /var/log/secure
假如我們看到的是:access denied: tty 'pts/3' is not secure !
此時(shí)我們?nèi)绻吹降氖莗ts幾就將幾添加一下
echo 'pts/3' >>/etc/securetty
添加后一定要重啟telnet
3.?下載openssh包進(jìn)行升級(jí)
cd /opt/
wget http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
解壓
tar -zxvf openssh-9.3p1.tar.gz
cd openssh-9.3p1
卸載舊版本
rpm -e --nodeps `rpm -qa | grep openssh`
安裝相關(guān)依賴
yum -y install gcc pam-devel zlib-devel openssl-devel
編譯配置
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-pam
編譯并安裝
make && make install
?文件授權(quán)
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
復(fù)制配置文件
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd
還原配置文件
cp /etc/pam.d/sshd-bak /etc/pam.d/sshd
cp /etc/ssh-bak/sshd_config /etc/ssh/sshd_config
添加開機(jī)自啟
chkconfig --add sshd
chkconfig sshd on
?執(zhí)行:sshd -t? 驗(yàn)證配置文件是否正確
?此時(shí)我們已經(jīng)看到這兩個(gè)屬性在當(dāng)前openssh版本下不支持,我們進(jìn)入配置文件,將這兩個(gè)屬性注釋掉
vi /etc/ssh/sshd_config
重新啟動(dòng)sshd
systemctl restart sshd
?執(zhí)行:ssh -V? 此時(shí)我們已經(jīng)可以看到openssh已經(jīng)升級(jí)到了9.3
?4.?升級(jí)過程遇到的坑
4.1?升級(jí)后ssh工具無法成功連接(或是連接上了,但是黑框打不開),找了很多資料,最終發(fā)現(xiàn),問題出在了selinux上。此時(shí)我們只需要執(zhí)行:setenforce 0??之后重啟openssh的服務(wù)即可
setenforce 0
systemctl restart sshd
到此我們會(huì)發(fā)現(xiàn)ssh工具已經(jīng)能順利連接服務(wù)器了
4.2?升級(jí)ssh工具后sftp窗口打不開,這個(gè)很好解決,只需要配置一下sshd_config即可輕松解決
vi /etc/ssh/sshd_config
注釋掉Subsystem那行,重新添加一行
文章來源:http://www.zghlxwxcb.cn/news/detail-732792.html
?重啟openssh服務(wù),注意正在使用的ssh工具也關(guān)閉掉重啟一下(可能出于連接狀態(tài),但是sftp打不開。但此問題截止目前已經(jīng)處理了,所以也需要關(guān)閉重新打開)。文章來源地址http://www.zghlxwxcb.cn/news/detail-732792.html
到了這里,關(guān)于Linux操作系統(tǒng)升級(jí)低版本的OpenSSH到9.3的高版本的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!