ใช้ mod_security กับ nginx แล้วมีปัญหา หาก reload mod_security จะไม่ทำงาน

สวัสดีครับ

มีท่านใด เคยเจอปัญหา mod_security ไม่ทำงาน เมื่อสั่ง service nginx reload บ้างไหมครับ เป็นเฉพาะตอนสั่ง reload เท่านั้น หากสั่ง service nginx restart / mod_security จะทำงานปกติครับ

จาก 4 เครื่อง มีปัญหาอยู่ 1 เครื่อง และไม่มี error log ใดๆ ลอง rewrite_conf / rebuild ก็ไม่หาย
nginx ทำงานปกติ config ต่างๆ ของ nginx ทำงานปกติ

ติดตั้ง nginx ในโหมด nginx_apache ของ directadmin ครับ

nginx 1.10.1
apache 2.4.23
directAdmin 1.50.1
custombuild 2.0
Comodo WAF 2.18.1
current rules version 1.101
CWAF plugin version 2.18.1
Web Platform Nginx
Nginx version 1.10.1
Mod_security compatible yes
Mod_security loaded yes
Mod_security conf /etc/nginx/nginx-modsecurity.conf

ขอบคุณครับ

เจอสาเหตุแล้วครับ
มีไฟล์ custom hostname อยู่ในนี้ครับ เอาออกก็หายเลยครับ

/usr/local/cwaf/etc/httpd/domains/

หาสาเหตุมาตั้งหลายเดือน :slight_smile:

2 Likes

mod_security + nginx ผมใช้ของ DA มี bug เยอะเลยฮะ
ใหญ่ๆ ที่ทำให้ผมต้องปลดออกคือ gzip ไม่ทำงานกับ http header มีการส่งซ้ำ

ผมเพิ่งสังเกตุ ไม่ทำงานจริงๆ ด้วยครับ
http header ส่งซ้ำ พี่แบงค์ test ไงได้ครับ

ปล. เผื่อท่านอื่นๆ อยาก test ครับ
https://www.giftofspeed.com/gzip-test/

ผมเจอแล้วครับ
gzip จาก apache_nginx ไม่ทำงาน มีผลมาจาก mod_security ครับ
แต่ยังหาวิธีแก้ไม่ได้ครับ ลองปิด rule ต่างๆ และ include ต่างๆ ก็ยังไม่ทำงาน

telnet เข้าไป Port 80 แล้ว GET / HTTP/1.1 ครับ

ผมไปตั้งกระทู้ที่ forum directadmin กระทู้โดนอุ้มเลยครับพี่แบงค์
งืมมม

ผมเทสกับเว็บอื่นๆ ใช้ได้นะครับ :grin:
ตัวอย่าง

ลองทั้ง Apache, Nginx+Apache

และลองใช้ Firefox + Firebug ก็ขึ้น gzip ครับ

ผมลอง curl -H “Accept-Encoding: gzip” -I domain.com แบบนี้ไม่ได้ครับ ??

แต่ลองแบบนี้ wget -d --header=“Accept-Encoding: compress, gzip” domain.com ได้ครับ :sweat_smile:

และเพิ่มเติม ถ้าเป็น Nginx+Apache ทดสอบด้วย Firebug พบว่า Connection: Keep-Alive,Keep-Alive ซึ่งน่าจะมาจากพี่ @bestthaihost บอกว่ามีการ response header 2 ครั้งครับ :sweat_smile:

ได้เปิด mod_security บน nginx หรือป่าวครับ
ผมพบปัญหา เมื่อเปิด mod_security บน nginx ครับ
ซึ่งเห็นทีมงานแอบมาตอบสั้นๆ ว่าเป็น bug รอ version 3 ครับ

หรือถ้าหากเช็คกับ html gzip จะทำงานปกติครับ
ถ้าเป็น css js จะไม่ทำงานครับ ลองดูครับ

ไว้เช็ค header อีกเว็บครับ
https://redbot.org/

ชัดเจนครับ,… พวกไฟล์ CSS, JS ไม่ gzip ครับ
ผมทดสอบแค่ HTML เฉยๆ :grin:

วิธีการแก้ชั่วคราวของผม

  • ปิด mod_security ที่ nginx ครับ
    vi /etc/nginx/nginx.conf

    include /etc/nginx/nginx-modsecurity-enable.conf;

ป้องกันการแก้ไขไฟล์ chattr +i /etc/nginx/nginx.conf

  • ติดตั้ง mod_security ที่ apache แทน
    โดยทำการ แก้ webserver=apache
    และสั่ง ./build modsecurity
    ทำการแก้ไขกลับมาเป็น webserver=nginx_apache

ถ้าเจอ error Could not open configuration file /etc/httpd/01_Global_Generic.conf
แก้ไขไฟล์ vi /usr/local/cwaf/rules/rules.conf.main

ปิดการแก้ไขไฟล์
chattr +i /usr/local/cwaf/rules/rules.conf.main

สั่ง restart nginx / httpd
gzip ทำงานปกติ
และ mod_security ทำงานปกติ

หากมีวิธีอื่นมาจะ update อีกทีครับ

1 Like

เคยมีอาการเหมือนกัน ขอบคุณที่เสนอแนวทางแก้ไขค่ะ