Linux

防止其他應用程序綁定到 80 和 443 埠

  • April 14, 2017

上週我接到一個害怕的客戶的電話,因為他認為他的網站被黑了。當我查看他的網站時,我看到了apache2預設頁面。那天晚上,我的伺服器 ( Ubuntu 16.04 LTS) 已升級並重新啟動。通常,當出現問題時,我會在夜間收到警報。這次沒有,因為監控系統會檢查 HTTP 狀態碼 200,而apache2預設頁面自帶狀態碼 200。

發生的事情是,在啟動期間apache2綁定到埠 80 和 443 比我實際的網路伺服器 nginx 更快。我自己沒有安裝 apache2。通過aptitude why apache2我發現php7.0包需要它。

簡單地刪除apache2是行不通的,因為顯然 php7.0 需要它。是否有可能創建一個限制,以便只允許 nginx 綁定到埠 80 和 443?

其他解決方案也非常受歡迎。

您無法阻止埠被錯誤的服務綁定。在您的情況下,只需從自動啟動中刪除 apache 就可以了。

對於 16.04 及更高版本:

sudo systemctl disable apache2

對於較舊的 Ubuntu 版本:

sudo update-rc.d apache2 disable

如果您真的不使用apache2,並且需要它的是 PHP 7.0,那麼看起來您已經libapache2-mod-php7.0安裝了。沒有 Apache,那個包是沒用的。由於您使用的是 nginx,因此您可能還擁有php7.0-fpmphp7.0-cgi已安裝,其中任何一個都足以滿足php7.0’s 的依賴要求:

$ apt-cache depends php7.0
php7.0
|Depends: php7.0-fpm
|Depends: libapache2-mod-php7.0
 Depends: php7.0-cgi
 Depends: php7.0-common
 Conflicts: <php5>

如果您確實安裝了其中任何一個php7.0-{fpm,cgi},則可以繼續解除安裝 Apache。

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