Centos

如何在 OpenSSH 的 sftp-server 子系統中關閉只讀模式

  • January 31, 2018

由於標記為 CVE-2017-15906 的 OpenSSH 漏洞,我們的 PCI 兼容 CentOS 7 系統最近被 Trustwave 標記為 FAILED,並被告知“OpenSSH sftp-server 允許在只讀模式下創建零長度文件”。Trustwave 還表示,至少升級到 OpenSSH 7.6 將解決這個問題。

我們正在使用 SFTP,配置是預設配置,子系統具有以下值:

Subsystem sftp /usr/libexec/openssh/sftp-server

由於 CentOS 7 還沒有將 OpenSSH 7.4 升級到 7.6 的官方更新,我嘗試參考本指南自行更新軟體包:在 CentOS 6 或 7 上升級 OpenSSH。我在這方面是成功的,但是,它有一個很大的複雜性。我被鎖定在 SSH 之外,即使 ssh -vvv 說密鑰被接受,我們所有的密鑰也不再起作用。我們在登錄後立即被踢出。Google Cloud Support(我們正在使用 Google Cloud CE 實例)認為 CentOS 7 與 7.6 不兼容,並且 RedHat 和 CentOS 尚未推出更新,可能仍在測試和修復錯誤:

後線支持團隊確實回答了我。

他們能夠通過啟動自己的 CentOS 7 機器來重現該問題

$$ and upgrading OpenSSH $$. 在將 OpenSSH 升級到 7.6 版後,他們也無法通過 SSH 連接到實例。 根據您之前的消息,您是對的。他們也認為問題是由對 PAM 的配置更改引起的。事實上,PAM 模組沒有正確更新。後端技術人員在進行更改之前對 /etc/pam.d/sshd 進行了備份,然後他注意到升級後失去了很多行。他比較了兩個文件。較新版本的 /etc/pam.d/sshd 只有 6 行,而原始文件至少有 19 行。

我想補充一點,OpenSSH 7.6 版還不是 RedHat/CentOS 對主流穩定版所做的更改。這意味著即使 openSSH 7.6p1 發布了,它還沒有處於 Redhat (Centos) 的穩定模式。Redhat 團隊仍在努力修復一些錯誤。

因此,此時升級到 OpenSSH 7.6 不是一種選擇。

我還看到這個漏洞只有在 SFTP 處於只讀模式時才會出現。但我不知道如何關閉此模式。我嘗試尋找不同的資源,但似乎沒有具體提及這種模式,而只是“他們如何在特定使用者上打開只讀”。由於我使用的是預設的 SSH 配置文件,我不知道是否預設啟用了只讀模式。

/etc/ssd/sshd_config我再次嘗試更改子系統部分:

Subsystem sftp internal-sftp

PCI 掃描仍然失敗。

我在它下面添加了另一個配置:

Match Group psacln
       ChrootDirectory /var/www/vhosts
       X11Forwarding no
       AllowTcpForwarding no
       ForceCommand internal-sftp

我認為這違背了目的,因為現在我正在 chrooting 到主 vhosts 文件夾,而不是在 vhosts 下分配了一個文件夾的使用者(似乎我只能將 ChrootDirectory 分配給 root 使用者擁有的文件夾)。在此更改之後,我請求進行 PCI 合規性掃描,並在撰寫本文時等待結果。

如果有人能指出如何在 OpenSSH 的 sftp-server 或 internal-sftp 中有效地禁用只讀模式,我將不勝感激,因為我相信這是我關閉此漏洞唯一要做的事情。

謝謝你。

您不能做任何事情來導致掃描不失敗。這是因為 Trustwave 只是檢查您的 OpenSSH 版本號並報告漏洞,就好像它確實存在一樣,無論您的實際系統配置如何。

對於這一點,您需要對調查結果提出異議並解釋您已採取的緩解措施。

引用自:https://serverfault.com/questions/895073