เราจะเปลี่ยนชื่อ Apache เวอร์ชั่นได้อย่างไร

เหมือนกับที่ google ทำไว้แบบนี้

HTTP/1.1 200 OK

Cache-Control: private

Content-Type: text/html

path=/; domain=.google.com

Server: GWS/2.1

Content-Length: 0

Date: Wed, 16 Nov 2005 21:33:28 GMT

Google เขียน Web server เองไม่ใช่หรอครับ เขาไม่ได้เปลี่ยนนะ ลองหาดูใน Google ซิครับ

ป.ล. ไม่ค่อยแน่ใจ

GWS= http://en.wikipedia.org/wiki/Google_Web_Server

เจอวิธีเปลี่ยนแต่เปลี่ยนไม่ได้

พอดีเจออันนี้มา แต่เก่าเกิน

 If you wish to set your own server version for Apache too somthing else that maybe fits into your company name, its actually a very simple process but it does involve adjusting the apache source.



An example of what it looks like after you have edited is google.com



HTTP/1.1 200 OK

Cache-Control: private

Content-Type: text/html

Server: GWS/2.1

Content-Length: 0

Date: Wed, 16 Nov 2005 21:33:28 GMT





As you see it returns GWS, speculation says its Google Web Server however watching as the versions go on they match the Apache releases, so they either use a heavily modded apache version or just the simple change that I am about too show.



Apache does have this feature somewhat built in already and all we are changing is one line.





if (ap_server_tokens == SrvTk_PRODUCT_ONLY) {

ap_add_version_component(pconf, AP_SERVER_BASEPRODUCT);

}

else if (ap_server_tokens == SrvTk_MINIMAL) {

ap_add_version_component(pconf, AP_SERVER_BASEVERSION);

}

else if (ap_server_tokens == SrvTk_MINOR) {

ap_add_version_component(pconf, AP_SERVER_BASEPRODUCT "/" AP_SERVER_MINORREVISION);

}

else if (ap_server_tokens == SrvTk_MAJOR) {

ap_add_version_component(pconf, AP_SERVER_BASEPRODUCT "/" AP_SERVER_MAJORVERSION);

}

else {

ap_add_version_component(pconf, AP_SERVER_BASEVERSION " (" PLATFORM ")");

}





This is where it sets the product version, and if you set it to Prod it will only return the base_product with nothing else, so all we have to do is adjust the base_product. Anyway enough babbling and lets get straight too the point.



Firstly, you will need to grab a copy of apache from http://www.apache.org,



wget http://www.mirror.ac.uk/mirror/ftp.apache.org/httpd/httpd-2.1.9-beta.tar.gz

tar -zxvf httpd-2.1.9-beta.tar.gz

cd httpd-2.1.9-beta



Now we need to modify include/ap_release.h before compiling



nano include/ap_release.h



Find



#define AP_SERVER_BASEPRODUCT "Apache"



and replace it with



#define AP_SERVER_BASEPRODUCT "HostGeekZ"



Obviously replacing HostGeekZ with the version you wish too use.



Now compile and install apache



./configure --prefix=/usr/hostgeekz

make

make install



Obviously add whatever is required, ie --with-curl --with-mysql and so on too your configure line.





Now want to set httpd.conf to read the first statement of server_baseproduct only to do this open httpd.conf, the path will depend on what you set --prefix too, as we used /usr/hostgeekz this is where httpd.conf will be



nano /usr/hostgeekz/conf/httpd.conf



Now find



ServerSig

and set this too



ServerSig off



Then add this below



ServerTokens Prod



Then start apache, you are now complete and it should return







Server: HostGeekZ





Updated versions of this guide may be found Here (http://www.hostgeekz.com/guides/Security/57/Change_Apache_Version_Header.htm) 

+1 อิอิ

ลองไปดูในนี้ครับ http://toey.tc20.net/2010/07/31/how-to-change-apache-product-name-on-header

หรือ http://www.thaibsd.com/webboard/show.php?Category=thaibsd&No=6512 เคยเขียนไว้นานแระครับ

ใน mod_security จะมีให้แก้ด้วยครับ

http://www.modsecurity.org/documentation/modsecurity-apache/2.5.12/html-multipage/configuration-directives.html#N10C53

ลองดูครับ

ขอบคุณครับ

http://gotoknow.org/blog/linux/6049

ข้อที่ 2 ครับ

ผมเขียนไว้เมื่อ5 ปีที่แล้วครับ

แต่มันจะมีปัญหากับ โปรปแกรมอื่นที่ระบุ version ของ apache

สมมต

เช่น โปรแกรม xyz ต้องการ apache version 2.45 up

แต่เราลง apache 2.50 ถ้า ธรรมดาเราลง xyz ได้ครับ

แต่ถ้าเราแก้เป็น 2.40 เราจะลง xyz ไม่ได้ มันจะฟ้องว่า apache เราเก่าไป

หรือ เราลง apache 2.40 แต่เรา แก้เป็น 2.50 เวลาลง โปรแกรม xyz แล้ว มันจะฟ้องว่า lib หายไป หรือ ตัวแปรบางตัวไม่ได้นิยาม

แต่ถ้าลงได้ โปรแกรม xyz มันจะ error บ่อย หรือบางมันมันปิดโปรแกรมไปดื้อๆ

ขอบคุณครับ งั้นไม่เปลี่ยนแล้ว