ปัญหา openlitespeed Server Error 406

แชร์ความรู้ Linux Ubuntu Web Server บทความ การ config server Linux FreeBSD Apache
การติดตั้ง XAMPP Mysql PHP ใครต้องการแชร์ความรู้เรื่องต่างๆ เหล่านี้ให้ ท่านหรืออื่น โพสที่หมวดนี้ได้

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

ปัญหา openlitespeed Server Error 406

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ปัญหา openlitespeed Server Error 406
ปกติ Error ตระกูล 4xx จะเป็น Error ในกลุ่มของปัญทางทาง Server สาเหตุของปัญหาก็มีหลากหลาย

วันนี้ มาดู Error 406 กัน ตัวอย่าง Error ที่เจอจากการ debug ที่ browser Firefox
error-406.png
error-406.png (8.12 KiB) Viewed 1932 times
โค้ดที่ทดสอบสำหรับปัญหานี้
เป็นโค้ดทำ Input Form งานดังนี้

โค้ด: เลือกทั้งหมด

<!DOCTYPE html>
<html lang="en-gb" dir="ltr">
<head>
<meta charset="utf-8" />
</head>
<body>

<form name="login" action="" method="post">

ชื่อ :<input type="text" name="username"/>
<br/>
ข้อความ 
<textarea name="t" cols=40 rows=5></textarea>
<input type="submit">
</form>  

<?php
if($_POST){
	print_r($_POST);
}
?>
</body>
</html>
ถ้ากรอกข้อความปกติ กด submit จะไม่เจอ Error
แต่ถ้า เรากรอกข้อความใน textarea เป็น tag html บางตัวเช่น style, iframe, ฯลฯ ลงในฟอร์ม จะเจอ Error หน้าขาว และ Debug ดูจะได้หน้าจอดังภาพประกอบ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ปัญหา openlitespeed Server Error 406

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ไฟล์ config ที่น่าจะมีผลกับ ส่วนนี้
/usr/local/lsws/conf/httpd-modsecurity-enable.conf
/usr/local/lsws/conf/httpd-extprocessors.conf
/usr/local/lsws/conf/httpd-scripthandler.conf

แก้ไข โดยเปิดไฟล์ httpd-modsecurity-enable.conf แก้ได้ดังนี้
วิธีแรก

โค้ด: เลือกทั้งหมด

nano /usr/local/lsws/conf/httpd-modsecurity-enable.conf

โค้ด: เลือกทั้งหมด

module mod_security {
modsecurity on
modsecurity_rules_file /usr/local/lsws/conf/httpd-modsecurity.conf
modsecurity_rules_file /usr/local/directadmin/data/admin/modsecurity_rules
}
เปลี่ยนเป็น

โค้ด: เลือกทั้งหมด

module mod_security {
modsecurity off
modsecurity_rules_file /usr/local/lsws/conf/httpd-modsecurity.conf
modsecurity_rules_file /usr/local/directadmin/data/admin/modsecurity_rules
}

แล้ว restart

โค้ด: เลือกทั้งหมด

service lsws restart
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ปัญหา openlitespeed Server Error 406

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

วิธีที่สอง

โค้ด: เลือกทั้งหมด

nano /usr/local/lsws/conf/httpd-modsecurity.conf
ซึ่ง Error 406 นี้จากมาจาก
SecDefaultAction "phase:2,deny,log,status:406"
ในไฟล์นี้

โค้ด: เลือกทั้งหมด

# Default recommended configuration
SecRuleEngine On
SecRequestBodyAccess On
SecDefaultAction "phase:2,deny,log,status:406"
SecRequestBodyLimitAction ProcessPartial
SecResponseBodyLimitAction ProcessPartial
SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072
SecAuditLogFormat JSON

SecPcreMatchLimit 250000
SecPcreMatchLimitRecursion 250000

SecCollectionTimeout 600

SecDebugLog /var/log/httpd/modsec_debug.log
SecDebugLogLevel 0
SecAuditEngine RelevantOnly
SecAuditLog /var/log/httpd/modsec_audit.log
SecUploadDir /tmp
SecTmpDir /tmp
SecDataDir /tmp
SecTmpSaveUploadedFiles on

# ModSecurity Core Rules Set and Local configuration
Include /etc/modsecurity.d/*.conf.main
Include /etc/modsecurity.d/*.conf
เปลี่ยนเป็น SecRuleEngine On เปลี่ยนเป็น Off

โค้ด: เลือกทั้งหมด

# Default recommended configuration
SecRuleEngine Off
SecRequestBodyAccess On
SecDefaultAction "phase:2,deny,log,status:406"
SecRequestBodyLimitAction ProcessPartial
SecResponseBodyLimitAction ProcessPartial
SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072
SecAuditLogFormat JSON

SecPcreMatchLimit 250000
SecPcreMatchLimitRecursion 250000

SecCollectionTimeout 600

SecDebugLog /var/log/httpd/modsec_debug.log
SecDebugLogLevel 0
SecAuditEngine RelevantOnly
SecAuditLog /var/log/httpd/modsec_audit.log
SecUploadDir /tmp
SecTmpDir /tmp
SecDataDir /tmp
SecTmpSaveUploadedFiles on

# ModSecurity Core Rules Set and Local configuration
Include /etc/modsecurity.d/*.conf.main
Include /etc/modsecurity.d/*.conf
เสร็จแล้ว

โค้ด: เลือกทั้งหมด

service lsws restart

ทิป สามารถปิดบางโดเมนเพิ่มโค้ดนี้หลัง SecRuleEngine On แทน SecRuleEngine Off ก็ได้

โค้ด: เลือกทั้งหมด

 SecRule SERVER_NAME "domain.com" phase:1,nolog,allow,ctl:ruleEngine=off
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ปัญหา openlitespeed Server Error 406

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

วิธีที่สาม
ปรับ SecRuleEngine เฉพาะ โดเมนที่เราจะปิดการใช้งาน modsecurity
แก้ไขไฟล์

โค้ด: เลือกทั้งหมด

/usr/local/directadmin/data/users/[user]/openlitespeed.conf
เพิ่มโค้ด

โค้ด: เลือกทั้งหมด

module mod_security {
modsecurity  off 
}
ก่อน } สุดท้ายของไฟล์ ในส่วนของ VirtualHost

เสร็จแล้ว

โค้ด: เลือกทั้งหมด

service lsws restart
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ปัญหา openlitespeed Server Error 406

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

วิธีที่สี่
เป็นวิธีที่เหมาะสมและปลอดภัยเพราะเรายังเปิดใช้ mod_security อยู่แต่เป็นการเขียนกฏเพิ่มเติมตัดไม่ต้องเช็คส่วนที่เราจำเป็นต้องใช้
แก้ไฟล์เดียวกับ วิธีที่สาม Rule ของ mod_security

โค้ด: เลือกทั้งหมด

/usr/local/directadmin/data/users/[user]/openlitespeed.conf
เพิ่มโค้ด แก้ไข config ของ modsecurity ดังนี้

โค้ด: เลือกทั้งหมด

module mod_security {
modsecurity  on
modsecurity_rules `
SecRuleEngine On
SecDebugLog /tmp/auditlog-debug.txt
SecDebugLogLevel 9
SecAuditLogParts AB
#SecAuditEngine On
#SecAuditLog /tmp/auditlog.txt
#SecAuditLogType Serial
SecAuditLogStorageDir /tmp/
SecRule REQUEST_URI "@pm phpinfo.php" "phase:1,id:'10',log,deny,status:403"
SecRule REQUEST_BODY_LENGTH "@eq 0" "id:12345,phase:1,nolog,ctl:requestBodyAccess=off"
`
}
อธิบายโค้ด

โค้ด: เลือกทั้งหมด

SecRule REQUEST_BODY_LENGTH "@eq 0" "id:12345,phase:1,nolog,ctl:requestBodyAccess=off"
ส่วนนี้คือไม่ต้องส่วนใจ REQUEST_BODY โดยปิด requestBodyAccess=off
เสร็จแล้ว

โค้ด: เลือกทั้งหมด

service lsws restart
เท่านี้เราก็สามารถแก้ไขปัญหาของ mod_security ที่ block การทำงานส่วนที่เราจำเป็นต้องใช้ออกไปได้แล้ว

อีกวิธีคือเราสามารถเขียน rule ของ modsecurity ไว้ในไฟล์ .htaccess ก็ได้

ศึกษาเพิ่มเติม การ Block URL ป้องกันบาง URL ไม่ให้ถูกเรียกใช้งานจากภายนอก - OpenLiftspeed
viewtopic.php?t=87350
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ปัญหา openlitespeed Server Error 406

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ศึกษาเพิ่มเติม
https://cyberpanel.net/blog/406-error/

Rule Sets (OWASP Core)
https://github.com/SpiderLabs/ModSecuri ... RS_Project
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ปัญหา openlitespeed Server Error 406

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

เจอปัญหานี้ กลับมาเมื่อ SSL Certificate หมดอายุ แล้วไม่สามารถต่ออายุใหม่ แบบ auto ได้
ลองใช้แบบ http ธรรมดาก็เจอปัญหาเดียวกัน
ต้องหาทางจูน Server กันใหม่
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ปัญหา openlitespeed Server Error 406

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

mindphp เขียน: 26/01/2023 2:06 am เจอปัญหานี้ กลับมาเมื่อ SSL Certificate หมดอายุ แล้วไม่สามารถต่ออายุใหม่ แบบ auto ได้
ลองใช้แบบ http ธรรมดาก็เจอปัญหาเดียวกัน
ต้องหาทางจูน Server กันใหม่
จะมีปัญหาถ้าแก้ไขปัญหาโดยใช้แบบที่ 3 ถ้ามีการ reconfig ค่าใหม่จาก cp อย่าง directadmin เอง
เลยทดลองเปลี่ยนไปใช้การแก้ไขแบบวิธีที่ 3 แทน
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 79