วิธีแก้ช่องโหว่ HTTPOXY สำหรับ DirectAdmin

ช่องโหว่ HTTPOXY คืออะไร รบกวนอ่านจาก https://httpoxy.org/ หรือ https://www.blognone.com/node/83562

ถ้าใช้ DirectAdmin custombuild ทาง DirectAdmin แนะนำให้รันคำสั่งเหล่านี้ เพื่ออัพเดต config ใหม่
cd /usr/local/directadmin/custombuild ./build update ./build version ./build rewrite_confs

แต่ว่าตอนนี้ config ใหม่จะอยู่เฉพาะบน mirror files1 ของ DirectAdmin อาจจะต้องรอสักพักกว่า mirror อื่นๆจะ sync อัพเดตตามไปด้วยนะครับ (ตอนสั่ง build version ดูให้แน่ใจว่าเป็น rev 1564 แล้ว)

ทั้งนี้ทาง DirectAdmin ก็ได้แนะนำวิธีแก้ไขแบบ manual เช่นกันโดย

Apache
แก้ไขไฟล์ /etc/httpd/conf/extra/httpd-default.conf
เพิ่มบรรทัด
<IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule>
แล้ว restart httpd ด้วยเมื่อแก้ไขเสร็จ

nginx
แก้ไขไฟล์ /etc/nginx/nginx_limits.conf
เพิ่มบรรทัด
fastcgi_param HTTP_PROXY "";
แล้ว restart nginx ด้วยเมื่อแก้ไขเสร็จแล้ว

วิธีทดสอบใช้ไฟล์จาก http://files1.directadmin.com/services/all/test_proxy_header.php
ลองไปรันในเซิฟเวอร์ของท่าน จะขึ้นว่า good หรือ bad

อ้างอิง http://forum.directadmin.com/showthread.php?t=53503

11 Likes

ขอบคุณครับแก้ไขเรียบร้อยครับ : )

ขอบคุณครับ

ต้องไล่แก้ไขหลายเครื่อง เลยเอาแบบง่ายและเร็วสุดคือแบบ manual

แก้ไขไฟล์ /etc/httpd/conf/extra/httpd-default.conf
เพิ่มบรรทัด

RequestHeader unset Proxy early

แล้ว restart httpd ด้วยเมื่อแก้ไขเสร็จ

1 Like

เยี่ยมเลยครับ แก้ไขเรียบร้อย

ขอบคุณน้องปาล์มมาก ๆ ครับ

เครื่องผมใช้ nginx ทำตามนี้
แก้ไขไฟล์ /etc/nginx/nginx_limits.conf
โดยเพิ่มบรรทัดนี้เข้าไปท้ายสุด

fastcgi_param HTTP_PROXY “”;

เสร็จแล้วก็

service nginx restart

แล้วสร้าง file block_http.php โดยเอา code มาจาก http://files1.directadmin.com/services/all/test_proxy_header.php เก็บไว้บนโดเมนใน server ที่แก้ config
เข้า browser แล้วเรียก block_http.php
ทำไมได้ผลเป็น

Bad! You’ll need to filter out the proxy header in your configs.

ไฟล์ nginx_limits.conf น่าจะสำหรับคนที่ใช้ DirectAdmin custombuild แบบ nginx_apache นะครับ
ถ้าเดิมมีไฟล์นี้อยู่แล้วใส่ไปก็น่าจะเห็นผลหลังจาก restart service ทันที

แต่ถ้าเดิมไม่มีไฟล์นี้อยู่ เป็นการสร้างไฟล์ขึ้นมาใหม่ น่าจะไม่มีการ include config เข้าไปจากไฟล์นี้ครับ
ลองไปใส่ใน /etc/nginx/fastcgi_params ดูนะครับ

1 Like

เดี๋ยวลองไปทำที่ /etc/nginx/fastcgi_params ดูครับ
ขอบคุณครับ

เพิ่มเติม 1 ครับ
เอาบรรทัด fastcgi_param HTTP_PROXY “”; ไปต่อท้ายในไฟล์ /etc/nginx/fastcgi_params แล้วผลทดสอบ BAD เหมือนเดิมครับ

เพิ่มเติม 2 ครับ
ได้แล้วครับ ผมเข้าใจผิดเอง ต้องแก้ config ทั้งใน apache และ nginx ผมไปแก้แต่ใน nginx ที่เดียว
ขอบคุณคุณ kke และ คุณ SiamLiveHost.com ครับชี้แนะ

ขอบคุณครับ

ขอบคุณมากครับ เดี๋ยวจะลองเข้าไปแก้ให้เครื่องลูกค้า

ขอบคุณครับ

ขอบคุณครับ :slight_smile: