文章目錄
- 前言
- 一、開啟telnet登入
-
- 1.安裝telnet
- 二、更新openssh-7.9pl
-
- 1.安裝所需環境和openssh
前言
更新原因:之是以更新是因為伺服器被掃描出openssh漏洞
例如:
1.OpenSSH使用者枚舉漏洞(CNVD-2018-20962)(CVE-2018-15919);
2.OpenSSH設計漏洞(CVE-2017-15906);
3.OpenSSH <7.5;
一、開啟telnet登入
由于是生産環境,直接更新存在隐患,萬一更新失敗會導緻ssh登入不上伺服器,顧先開啟telnet登入, 保證openssh更新失敗也可以通過telnet連接配接伺服器,進行恢複操作。并不用去機房。
(注意最好按本文在測試伺服器上整個流程走一遍沒問題再去生産環境執行)
若防火牆是開啟狀态
#1.檢視開放了哪些端口
firewall-cmd --list-port
#2.放開單個端口,并重新開機
--zone #作用域
--add-port=80/tcp #添加端口,格式為:端口/通訊協定
--permanent #永久生效,沒有此參數重新開機後失效
#添加telent 23端口
firewall-cmd --zone=public --add-port=23/tcp --permanent
#重載
firewall-cmd --reload
1.安裝telnet
yum install -y telnet-server
yum install -y xinetd
systemctl start telnet.socket
systemctl start xinetd
建議開啟telnet和xinetd開機自動啟動,避免reboot後連不上Telnet
systemctl enable xinetd.service
systemctl enable telnet.socket
預設情況下,系統是不允許root使用者telnet遠端登入的。如果要使用root使用者直接登入,需設定如下内容
echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty
systemctl restart telnet.socket
systemctl restart xinetd
#檢視是否添加成功
cat /etc/securetty | grep pts
存在下圖所示代表成功,不要重複設定:
然後通過telnet連接配接,注意telent端口是23,我使用的是MobaXterm軟體連接配接
若出現通過telnet 登陸linux(密碼正确,但登入不上)報錯Login incorrect,無論怎麼登陸也登陸不上,執行下面指令,檢視登入日志:
tail /var/log/secure
若出現如下錯誤:access denied: tty ‘pts/0’ is not secure(接入被拒絕,tty pts/0是不安全的),pts/0不是固定的,有可能是pts/1或pts/2
解決辦法:
#1.第一種方案:編輯securetty檔案,再最後添加上對應的pts/0
vi /etc/securetty
#2.第二種方案:先檢視有哪幾個pts
cat /etc/securetty | grep pts
#然後将對應的pts/0 通過下列指令加進去
echo 'pts/0' >>/etc/securetty
---------------------------
#上面兩種任選一種,然後
systemctl restart telnet.socket
systemctl restart xinetd
再使用telnet登入,成功即可
二、更新openssh-7.9pl
1.安裝所需環境和openssh
指令如下(示例):
#準備工作
yum install gcc
yum install openssl openssl-devel -y #安裝依賴包
#下載下傳openssh.位址是:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
#下載下傳
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz
#解壓
tar -zxvf openssh-7.9p1.tar.gz
#進入解壓後目錄
cd openssh-7.9p1
#配置
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
#編譯
make
#安裝openssh
install -v -m700 -d /var/lib/sshd
chown -v root:sys /var/lib/sshd
groupadd -g 50 sshd
useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
make install
install -v -m755 contrib/ssh-copy-id /usr/bin
install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
install -v -m755 -d /usr/share/doc/openssh-7.9p1
install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.9p1
#允許root登陸
先cat etc/ssh/sshd_config | grep PermitRootLogin 檢視是否有PermitRootLogin yes,
1如果沒有,2.如果有但前面有注釋# 則執行下面指令,或編輯檔案取消注釋
echo "PermitRootLogin yes" >> etc/ssh/sshd_config
#開機自啟動
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list sshd
#臨時關閉Selinux
setenforce 0
#如果要永久關閉,修改/etc/selinux/config 檔案,将SELINUX=enforcing改為SELINUX=disabled
#重新開機sshd服務,運作下面指令需要幾分鐘
systemctl restart sshd
#若運作報錯,會提示先通過檢視sshd服務狀态。
systemctl status sshd
如下圖,auto-restart說明啟動失敗
#檢視報錯原因
sshd -t
若出現下圖原因,則需編輯/etc/ssh/sshd_config檔案
vi /etc/ssh/sshd_config
#找到對應的GSSAPIAuthertication, GSSAPIClearupCredentials, UsePAM 添加上#注釋掉;
systemctl restart sshd
#待執行完成後,預設22端口,如果要修改,則調整/etc/ssh/sshd_config裡的22端口
netstat -lnp | grep 22
若存在這個程序則說明成功,單開一個視窗去ssh連接配接,成功則說明更新完成
檢視openssh版本
ssh -V
如下圖說明更新成功