隐藏Apache Nginx PHP版本号
生活随笔
收集整理的這篇文章主要介紹了
隐藏Apache Nginx PHP版本号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
############################################################################### 隱藏Apache版本號 ############################################################################### [root@localhost?tmp]#?curl?-I?192.168.93.143HTTP/1.1?403?ForbiddenDate:?Wed,?21?Jul?2010?13:09:33?GMTServer:?Apache/2.2.15?(CentOS)Accept-Ranges:?bytesContent-Length:?5043Connection:?closeContent-Type:?text/html;?charset=UTF-8 隱藏方法:1、隱藏Apache版本號的方法是修改Apache的配置文件,如RedHat系的Linux默認是: vim?/etc/httpd/conf/httpd.conf 分別搜索關鍵字ServerTokens和ServerSignature,修改: ServerTokens?OS?修改為?ServerTokens?ProductOnly ServerSignature?On?修改為?ServerSignature?Off2、重啟或重新加載Apache就可以了。 apachectl?restart 測試一下,如下: [root@localhost?tmp]#?curl?-I?192.168.93.143HTTP/1.1?403?ForbiddenDate:?Wed,?21?Jul?2010?13:23:22?GMTServer:?ApacheAccept-Ranges:?bytesContent-Length:?5043Connection:?closeContent-Type:?text/html;?charset=UTF-8 版本號與操作系統信息已經隱藏了。3、上面的方法是默認情況下安裝的Apache,如果是編譯安裝的,還可以用修改源碼編譯的方法: 進入Apache的源碼目錄下的include目錄,然后編輯ap_release.h這個文件,你會看到有如下變量: #define?AP_SERVER_BASEVENDOR?“Apache?Software?Foundation” #define?AP_SERVER_BASEPROJECT?“Apache?HTTP?Server” #define?AP_SERVER_BASEPRODUCT?“Apache” #define?AP_SERVER_MAJORVERSION_NUMBER?2 #define?AP_SERVER_MINORVERSION_NUMBER?2 #define?AP_SERVER_PATCHLEVEL_NUMBER?15 #define?AP_SERVER_DEVBUILD_BOOLEAN?0 可以根據自己喜好,修改或隱藏版本號與名字。############################################################################### 隱藏Nginx?PHP版本號 ############################################################################### Nginx默認是顯示版本號的: [root@localhost?~]#?curl?-I?www.nginx.org HTTP/1.1?200?OK Server:?nginx/0.8.44 Date:?Tue,?13?Jul?2010?14:05:11?GMT Content-Type:?text/html Content-Length:?8284 Last-Modified:?Tue,?13?Jul?2010?12:00:13?GMT Connection:?keep-alive Keep-Alive:?timeout=15 Accept-Ranges:?bytes nginx隱藏版本號的步驟:1、進入nginx配置文件的目錄(此目錄根據安裝時決定),用vim編輯打開 vim?nginx.conf 在http?{—}里加上server_tokens?off;?如: http?{ ……省略 sendfile?on; tcp_nopush?on; keepalive_timeout?60; tcp_nodelay?on; server_tokens?off; …….省略 }2、編輯php-fpm相關文件?fastcgi.conf或fcgi.conf(這個配置文件名也可以自定義的,根據具體文件名修改): 找到: fastcgi_param?SERVER_SOFTWARE?nginx/$nginx_version; 改為: fastcgi_param?SERVER_SOFTWARE?nginx;3、重新加載nginx配置: #?/etc/init.d/nginx?reload 這樣就完全對外隱藏了nginx版本號了,就是出現404、501等頁面也不會顯示nginx版本。 下面測試一下: #?curl?-I?www.abc.net HTTP/1.1?200?OK Server:?nginx Date:?Tue,?13?Jul?2010?14:26:56?GMT Content-Type:?text/html;?charset=UTF-8 Connection:?keep-alive Vary:?Accept-Encoding################### 源代碼安裝時修改方法: ################### vi?/nginx-0.8.44/src/core/nginx.h 修改以下兩行: #define?NGINX_VERSION?"1.0" #define?NGINX_VER?"GWS/"?NGINX_VERSION 為 #define?NGINX_VERSION?"1.8" #define?NGINX_VER?"SWS/"?NGINX_VERSION vi?nginx-0.8.44/src/http/ngx_http_header_filter_module.c 修改以下部分: static?char?ngx_http_server_string[]?=?"Server:?nginx"?CRLF; 為 static?char?ngx_http_server_string[]?=?"Server:?SWS"?CRLF; vi?nginx-0.8.44/src/http/ngx_http_special_response.c 修改以下兩部分: static?u_char?ngx_http_error_full_tail[]?= "<hr><center>"?NGINX_VER?"</center>"?CRLF "</body>"?CRLF "</html>"?CRLF ; static?u_char?ngx_http_error_tail[]?= "<hr><center>nginx</center>"?CRLF "</body>"?CRLF "</html>"?CRLF 為 : static?u_char?ngx_http_error_full_tail[]?= "<center>?"NGINX_VER"?</center>"?CRLF "<hr><center>http://www.nginx.org</center>"?CRLF "</body>"?CRLF "</html>"?CRLF ; static?u_char?ngx_http_error_tail[]?= "<hr><center>SWS</center>"?CRLF "</body>"?CRLF "</html>"?CRLF ; 重新編譯nginx; #這里修改為SWS等用以迷惑對方???? 以上就是偽裝Nginx,隱藏Nginx版本號全部過程。隱藏PHP版本號 首先進入php.ini文件的目錄(這里不區分源碼安裝還是yum或者apt-get): vi?php.ini 找到: expose_php?=?On; 修改為: expose_php?=?Off; 額外加兩條: 屏蔽phpinfo函數,修改php.ini文件中的配置項disble_function = 為disble_function = phpinfo 為避免遭受惡意腳本注入的攻擊,將php.ini文件中的配置項cgi.fix_pathinfo設置為0(默認開啟) 重啟nginx或者Apache服務! 以上就是隱藏Apache,Nginx、PHP版本號并提升服務器安全性全部過程。轉載于:https://my.oschina.net/HeAlvin/blog/303640
總結
以上是生活随笔為你收集整理的隐藏Apache Nginx PHP版本号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SCOM 2012知识分享-26:分布式
- 下一篇: Dijkstra 算法