Nginx 防止被域名惡意解析的辦法
前言:
今天太倒霉了,發現通過IP無法訪問服務器的80端口很無語,昨天都還好的啊,也沒有修改過配置,其他端口又是正常的,防火墻也沒問題。于是問了下機房,給了個崩潰的回復說我們的服務器有個域名沒有備案被電信多次通告,然后就把我們ip端口給封了。。。。封了啊。。。瘋了,關鍵是這個域名TMD不是我的啊
經過一番折騰,發現是 nginx 配置上貌似有個漏洞,導致任何域名解析到服務器都能被正常請求,雖然是個空白頁,但HTTP狀態碼是200。
主要是缺少下面的配置代碼:nginx 版本 1.8.0
server { listen 80 default_server; server_name _; return 403;}
讓所有沒有配置過的 server_name 都返回 403 錯誤
我以前 Nginx 也重未加過這個配置,但重來沒遇到過此類問題,而且我在另一臺服務器上測試,即便沒有這個代碼也不可能解析并請求成功啊,很是無語。
補充:
搜索了一圈后發現 Nginx 對這類問題,貌似應該用自身特有的 444 這個狀態碼最好
server { listen 80 default_server; server_name _; access_log off; return 444;}
這樣在瀏覽器端訪問的時候,瀏覽器會自動提示用戶無法訪問
通過 CURL 抓取的結果(輸出的是HTTP錯誤信息)
如有疑問請留言或到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答