กำหนดค่า mod_evasive เพื่อป้องกันการโจมตี DoS และ DDoS บน CentOS

ในบทความนี้ เราจะเรียนรู้วิธีติดตั้งและกำหนดค่า mod_evasive เพื่อป้องกันการโจมตี DoS และ DDoS บน CentOS

สำหรับการสาธิตนี้ เราได้ใช้เซิร์ฟเวอร์เฉพาะ CentOS 7 64 บิต

มาเริ่มกันเลย.

โมดูล mod_evasive Apache ช่วยรักษา Distributed Denial of Service (DoS & DDoS) Attack และการโจมตีแบบเดรัจฉานบนเว็บเซิร์ฟเวอร์ Apache mod_evasive ทำงานโดยการตรวจสอบคำขอที่เข้ามาและรายงานการละเมิดผ่านอีเมลและสิ่งอำนวยความสะดวก syslog มีวัตถุประสงค์เพื่อเป็นเครื่องมือตรวจจับและจัดการเครือข่าย และกำหนดค่าอย่างรวดเร็วเพื่อสื่อสารกับ ipchains, ไฟร์วอลล์, เราเตอร์ และอื่นๆ

mod_evasive ตรวจสอบคำขอที่น่าสงสัยและปฏิเสธที่อยู่ IP เดียวจากสิ่งต่อไปนี้:

  • ขอหน้าเดียวกันมากกว่าสองสามครั้งต่อวินาที
  • ส่งคำขอพร้อมกันมากกว่า 50 รายการกับลูกคนเดียวกันต่อวินาที
  • ทำการร้องขอใด ๆ ในขณะที่อยู่ในบัญชีดำชั่วคราว

ข้อกำหนดเบื้องต้น

  • เซิร์ฟเวอร์เฉพาะ CentOS 7 64 บิตหรือเซิร์ฟเวอร์คลาวด์ (ใช้งานได้กับ CentOS 6)
  • Apache Webserver LAMP (Linux, Apache, MySQL, PHP) ติดตั้งและกำหนดค่า
  • เมลเซิร์ฟเวอร์

1. อัพเดทเซิร์ฟเวอร์อยู่เสมอ:

# yum update -y

2. ติดตั้ง EPEL (แพ็คเกจเสริมสำหรับ Enterprise Linux):

# yum install epel-release -y

3. ติดตั้งข้อกำหนดเบื้องต้นของmod_evasive:

# yum install httpd-devel

4. ติดตั้ง mod_evasive:

# yum install mod_evasive -y

ตอนนี้ติดตั้งmod_evasiveแล้ว

5. ในการเพิ่มการกำหนดค่า mod_evasive ให้กับไฟล์การกำหนดค่า Apache ของคุณ:

โดยค่าเริ่มต้นบรรทัดLoadModuleจะถูกเพิ่มในไฟล์การกำหนดค่าmod_evasive.conf เปิดไฟล์และเพิ่มบรรทัดต่อไปนี้หากยังไม่มีอยู่

# vi /etc/httpd/conf.d/mod_evasive.conf

LoadModule evasive20_module modules/mod_evasive24.so

เปิดไฟล์คอนฟิกูเรชันmod_evasive.confและตรวจสอบรายการต่อไปนี้

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify

คุณสามารถกำหนดค่ารายการด้านบนตามความต้องการของคุณ แก้ไขDOSEmailNotifyเป็นรหัสอีเมลของคุณ

หากต้องการอนุญาตที่อยู่ IP ให้เพิ่มบรรทัดต่อไปนี้ในไฟล์กำหนดค่า:

DOSWhitelist 127.0.0.1

DOSWhitelist 127.0.0.*

คุณสามารถเพิ่มที่อยู่ IP หลายรายการได้เช่นกัน

อีกหนึ่งรายการจำเป็นต้องเปลี่ยนDOSLogDir โดยค่าเริ่มต้น จะอ้างอิงถึง/tmpสำหรับกลไกการล็อก

สร้างไดเร็กทอรีใหม่ใน/var/log/ :

# mkdir /var/log/mod_evasive

ตั้งค่าความเป็นเจ้าของให้กับผู้ใช้ apache:

# chown -R apache:apache /var/log/mod_evasive

ตอนนี้ แก้ไขบรรทัดต่อไปนี้ในการกำหนดค่า mod_evasive และแก้ไขเส้นทางไดเรกทอรี:

DOSLogDir  /var/log/mod_evasive

บันทึกและออกจากไฟล์คอนฟิกูเรชัน mod_evasive

ถัดไป รีสตาร์ท Apache:

# systemctl restart httpd.service

เพียงเท่านี้ mod_evasive ติดตั้งและกำหนดค่า

เรียนรู้เพิ่มเติมเกี่ยวกับตัวเลือกการกำหนดค่าmod_evasive
คำอธิบายตัวเลือกการกำหนดค่าเหล่านี้นำมาโดยตรงจากไฟล์ README

DOSHashTableSize

ขนาดตารางแฮชกำหนดจำนวนโหนดระดับบนสุดสำหรับตารางแฮชของเด็กแต่ละคน การเพิ่มจำนวนนี้จะให้ประสิทธิภาพที่เร็วขึ้นโดยการลดจำนวนการวนซ้ำที่จำเป็นเพื่อไปยังเร็กคอร์ด แต่ใช้หน่วยความจำมากขึ้นสำหรับพื้นที่ตาราง คุณควรเพิ่มค่านี้หากคุณมีเว็บเซิร์ฟเวอร์ไม่ว่าง ค่าที่คุณระบุจะถูกจัดระดับโดยอัตโนมัติเป็นจำนวนเฉพาะถัดไปในรายการจำนวนเฉพาะ (ดู mod_evasive.c สำหรับรายการไพรเมอร์ที่ใช้)

DOSpageCount

นี่คือเกณฑ์สำหรับจำนวนคำขอสำหรับหน้าเดียวกัน (หรือ URI) ต่อช่วงหน้า เมื่อเกินเกณฑ์สำหรับช่วงเวลานั้นแล้ว ที่อยู่ IP ของไคลเอ็นต์จะถูกเพิ่มลงในรายการบล็อก

DOSsiteCount

นี่คือเกณฑ์สำหรับจำนวนคำขอทั้งหมดสำหรับอ็อบเจ็กต์ใดๆ โดยไคลเอ็นต์เดียวกันบน listener เดียวกันต่อช่วงไซต์ เมื่อเกินเกณฑ์สำหรับช่วงเวลานั้นแล้ว ที่อยู่ IP ของไคลเอ็นต์จะถูกเพิ่มลงในรายการบล็อก

DOSpageInterval

ช่วงเวลาสำหรับเกณฑ์การนับหน้า ค่าเริ่มต้นเป็นช่วง 1 วินาที

DOSsiteInterval

ช่วงเวลาสำหรับเกณฑ์การนับไซต์ ค่าเริ่มต้นเป็นช่วง 1 วินาที

DOSBlockingระยะเวลา

ระยะเวลาการบล็อกคือระยะเวลา (เป็นวินาที) ที่ลูกค้าจะถูกบล็อกหากพวกเขาถูกเพิ่มลงในรายการบล็อก ในช่วงเวลานี้ คำขอที่ตามมาทั้งหมดจากลูกค้าจะส่งผลให้เป็น 403 (ต้องห้าม) และตัวจับเวลาจะถูกรีเซ็ต (เช่น อีก 10 วินาที) เนื่องจากตัวจับเวลาจะถูกรีเซ็ตสำหรับคำขอที่ตามมาทุกครั้ง จึงไม่จำเป็นต้องมีระยะเวลาการบล็อกที่ยาวนาน ในกรณีที่มีการโจมตี DoS ตัวจับเวลานี้จะถูกรีเซ็ตต่อไป

DOSEmailNotify

หากมีการตั้งค่านี้ อีเมลจะถูกส่งไปยังที่อยู่ที่ระบุเมื่อใดก็ตามที่ที่อยู่ IP กลายเป็นบัญชีดำ กลไกการล็อคโดยใช้ /tmp ป้องกันไม่ให้ส่งอีเมลอย่างต่อเนื่อง

บันทึก:

ตรวจสอบให้แน่ใจว่าตั้งค่า MAILER อย่างถูกต้องใน mod_evasive.c (หรือ mod_evasive20.c) ค่าเริ่มต้นคือ “/bin/mail -t %s” โดยที่ %s ใช้เพื่อระบุที่อยู่อีเมลปลายทางที่กำหนดไว้ในการกำหนดค่า หากคุณกำลังใช้งานบน linux หรือระบบปฏิบัติการอื่นที่มีตัวส่งเมลประเภทอื่น คุณจะต้องเปลี่ยนแปลงสิ่งนี้

DOSSystemCommand

หากมีการตั้งค่านี้ คำสั่งของระบบที่ระบุจะถูกดำเนินการเมื่อใดก็ตามที่ที่อยู่ IP กลายเป็นบัญชีดำ ซึ่งออกแบบมาเพื่อเปิดใช้งานการเรียกระบบไปยังตัวกรอง ip หรือเครื่องมืออื่นๆ กลไกการล็อคโดยใช้ /tmp ป้องกันการเรียกระบบอย่างต่อเนื่อง ใช้ %s เพื่อระบุที่อยู่ IP ของ IP ที่ขึ้นบัญชีดำ

DOSLogDir

เลือกไดเร็กทอรี temp อื่น
โดยค่าเริ่มต้น “/tmp” จะถูกใช้สำหรับกลไกการล็อก ซึ่งจะเปิดประเด็นด้านความปลอดภัยบางอย่างหากระบบของคุณเปิดให้ผู้ใช้เชลล์ ในกรณีที่คุณมีผู้ใช้เชลล์ที่ไม่มีสิทธิพิเศษ คุณจะต้องสร้างไดเร็กทอรีที่สามารถเขียนได้เฉพาะผู้ใช้ที่ Apache กำลังทำงานเป็น (โดยปกติคือรูท) จากนั้นตั้งค่านี้ใน httpd.conf ของคุณ

ในบทความนี้ เราได้กล่าวถึงวิธีที่วิศวกรฝ่ายสนับสนุนของเราติดตั้งและกำหนดค่า mod_evasive เพื่อป้องกันการโจมตี DoS และ DDoS บน CentOS


วิธีปิดการใช้งาน Block Editor และติดตั้ง Classic Editor ใน WordPress 5.0

วิธีปิดการใช้งาน Block Editor และติดตั้ง Classic Editor ใน WordPress 5.0

เริ่มต้นด้วย WordPress 5.0 ตัวแก้ไขเริ่มต้นบน WordPress คือตัวแก้ไขบล็อกใหม่ ตัวแก้ไขใหม่แตกต่างไปจากเดิมอย่างสิ้นเชิง

การแก้ไข: “ตัวแก้ไขพบข้อผิดพลาดที่ไม่คาดคิด” ใน WordPress หลังจากอัปเดต

การแก้ไข: “ตัวแก้ไขพบข้อผิดพลาดที่ไม่คาดคิด” ใน WordPress หลังจากอัปเดต

ไม่สามารถเขียนบทความใหม่โดยใช้ตัวแก้ไขบล็อกใหม่ใน WordPress ได้? โอกาสที่คุณจะได้รับ “The editor

🔧 การแก้ไข: การติดตั้ง PHP ของคุณดูเหมือนจะไม่มีส่วนขยาย MySQL ที่ WordPress . ต้องการ

🔧 การแก้ไข: การติดตั้ง PHP ของคุณดูเหมือนจะไม่มีส่วนขยาย MySQL ที่ WordPress . ต้องการ

ต้องการเรียกใช้ไซต์ WordPress ที่จัดการด้วยตนเองหรือไม่? ยอดเยี่ยม. คุณจะได้เรียนรู้หลายล้านสิ่ง หนึ่งในส่วนสำคัญของการตั้งค่า

วิธีรีเฟรชรายการโฟลเดอร์ใน Windows 11

วิธีรีเฟรชรายการโฟลเดอร์ใน Windows 11

เมื่อไม่มีตัวเลือกรีเฟรชในเมนูบริบท ต่อไปนี้คือวิธีรีเฟรชรายการใน File Explorer ใน Windows 11

วิธีแก้ไขปัญหา WordPress 5.0

วิธีแก้ไขปัญหา WordPress 5.0

ในที่สุด WordPress 5.0 ก็เปิดตัวและมาพร้อมกับประสบการณ์การแก้ไขใหม่ล่าสุดกับ Gutenberg

วิธีตั้งค่า Classic Editor เป็น Default Editor ใน WordPress แทน Gutenberg

วิธีตั้งค่า Classic Editor เป็น Default Editor ใน WordPress แทน Gutenberg

Gutenberg Editor จะกลายเป็นตัวแก้ไขเริ่มต้นใน WordPress ในไม่ช้า คุณจะมีตัวเลือกให้เลือก Classic Editor

วิธีแก้ไขข้อผิดพลาดการจัดเรียง “utf8mb4_0900_ai_ci” เมื่อนำเข้าฐานข้อมูล WordPress

วิธีแก้ไขข้อผิดพลาดการจัดเรียง “utf8mb4_0900_ai_ci” เมื่อนำเข้าฐานข้อมูล WordPress

หากคุณกำลังเปลี่ยนการติดตั้ง WordPress จากเซิร์ฟเวอร์ MySQL 8 ไปเป็น MySQL 5.7 (หรือต่ำกว่า) คุณมักจะประสบปัญหา

วิธีเปิดใช้งานแท็กสั้น PHP

วิธีเปิดใช้งานแท็กสั้น PHP

ในบทความนี้ เราได้กล่าวถึงวิธีเปิดใช้งานแท็กสั้น PHP แล้ว PHP แยกวิเคราะห์ไฟล์โดยใช้แท็กเปิดและปิด ซึ่งดูเหมือนไฟล์ . วิธีเปิดใช้งานแท็กสั้น PHP

กำหนดค่า mod_evasive เพื่อป้องกันการโจมตี DoS และ DDoS บน CentOS

กำหนดค่า mod_evasive เพื่อป้องกันการโจมตี DoS และ DDoS บน CentOS

ในบทความนี้ เราจะเรียนรู้วิธีติดตั้งและกำหนดค่า mod_evasive เพื่อป้องกันการโจมตี DoS และ DDoS บน CentOS โมดูล mod_evasive Apache

วิธีการติดตั้ง PHP ด้วย PHP-FPM สำหรับ NGINX บน CentOS

วิธีการติดตั้ง PHP ด้วย PHP-FPM สำหรับ NGINX บน CentOS

วิธีการติดตั้ง PHP ด้วย PHP-FPM สำหรับ NGINX บน CentOS การกำหนดค่าพื้นฐานของเว็บเซิร์ฟเวอร์ NGINX เพื่อประมวลผลแอปพลิเคชัน PHP และเซิร์ฟเวอร์บนพอร์ต 80