Snort หรือ Suricata ตอนที่ 2: การติดตั้งและการตั้งค่าเริ่มต้นของ Suricata

ตามสถิติ ปริมาณการรับส่งข้อมูลเครือข่ายเพิ่มขึ้นประมาณ 50% ทุกปี สิ่งนี้นำไปสู่การเพิ่มภาระของอุปกรณ์และโดยเฉพาะอย่างยิ่งจะเพิ่มข้อกำหนดด้านประสิทธิภาพของ IDS / IPS คุณสามารถซื้อฮาร์ดแวร์พิเศษราคาแพงได้ แต่มีตัวเลือกที่ถูกกว่า - การแนะนำระบบโอเพ่นซอร์สระบบใดระบบหนึ่ง ผู้ดูแลระบบมือใหม่หลายคนพบว่าการติดตั้งและกำหนดค่า IPS ฟรีเป็นเรื่องยาก ในกรณีของ Suricata สิ่งนี้ไม่เป็นความจริงทั้งหมด - คุณสามารถติดตั้งและเริ่มต่อต้านการโจมตีทั่วไปด้วยชุดกฎฟรีในไม่กี่นาที

Snort หรือ Suricata ตอนที่ 2: การติดตั้งและการตั้งค่าเริ่มต้นของ Suricata
Snort หรือ Suricata ตอนที่ 1: การเลือก IDS/IPS ฟรีเพื่อปกป้องเครือข่ายองค์กรของคุณ

เหตุใดเราจึงต้องการ IPS แบบเปิดอีกอัน

Snort ได้รับการพัฒนามาช้านานตั้งแต่ช่วงปลายยุค 6 ดังนั้นเดิมที Snort จึงเป็นแบบเธรดเดียว ในช่วงหลายปีที่ผ่านมามีคุณสมบัติที่ทันสมัยทั้งหมดเช่นการรองรับ IPvXNUMX ความสามารถในการวิเคราะห์โปรโตคอลระดับแอปพลิเคชันหรือโมดูลการเข้าถึงข้อมูลสากล

เอ็นจิ้น Snort 2.X หลักได้เรียนรู้ที่จะทำงานกับหลายคอร์ แต่ยังคงทำงานแบบเธรดเดียว ดังนั้นจึงไม่สามารถใช้ประโยชน์จากแพลตฟอร์มฮาร์ดแวร์สมัยใหม่ได้อย่างเหมาะสม

ปัญหาได้รับการแก้ไขในรุ่นที่สามของระบบ แต่ใช้เวลานานมากในการเตรียมการที่ Suricata ซึ่งเขียนขึ้นใหม่ตั้งแต่ต้น สามารถปรากฏในตลาดได้ ในปี 2009 มันเริ่มได้รับการพัฒนาอย่างแม่นยำเพื่อเป็นทางเลือกแบบมัลติเธรดแทน Snort ซึ่งมีฟังก์ชั่น IPS นอกกรอบ รหัสนี้เผยแพร่ภายใต้ใบอนุญาต GPLv2 แต่พันธมิตรทางการเงินของโครงการสามารถเข้าถึงเครื่องยนต์เวอร์ชันปิดได้ ปัญหาความสามารถในการปรับขนาดบางอย่างเกิดขึ้นในเวอร์ชันแรกของระบบ แต่ปัญหาเหล่านี้ได้รับการแก้ไขอย่างรวดเร็ว

ทำไมต้องซูริก้า?

Suricata มีโมดูลหลายโมดูล (คล้ายกับ Snort): จับภาพ จับภาพ ถอดรหัส ตรวจจับ และส่งออก ตามค่าเริ่มต้น ทราฟฟิกที่จับได้จะไปก่อนที่จะถอดรหัสในหนึ่งสตรีม แม้ว่าจะทำให้ระบบโหลดมากขึ้น หากจำเป็น เธรดสามารถแบ่งได้ในการตั้งค่าและแจกจ่ายระหว่างโปรเซสเซอร์ - Suricata ได้รับการปรับให้เหมาะสมเป็นอย่างดีสำหรับฮาร์ดแวร์เฉพาะ แม้ว่านี่จะไม่ใช่ระดับ HOWTO สำหรับผู้เริ่มต้นอีกต่อไป นอกจากนี้ยังเป็นที่น่าสังเกตว่า Suricata มีเครื่องมือตรวจสอบ HTTP ขั้นสูงที่ใช้ไลบรารี HTTP นอกจากนี้ยังสามารถใช้เพื่อบันทึกการรับส่งข้อมูลโดยไม่ถูกตรวจจับ ระบบยังรองรับการถอดรหัส IPv6 รวมถึงอุโมงค์ IPv4-in-IPv6, อุโมงค์ IPv6-in-IPv6 และอื่นๆ

สามารถใช้อินเทอร์เฟซต่างๆ เพื่อสกัดกั้นทราฟฟิก (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING) และในโหมด Unix Socket คุณสามารถวิเคราะห์ไฟล์ PCAP ที่ดักจับโดยนักดมกลิ่นคนอื่นได้โดยอัตโนมัติ นอกจากนี้ สถาปัตยกรรมโมดูลาร์ของ Suricata ยังทำให้ง่ายต่อการเสียบองค์ประกอบใหม่เพื่อจับภาพ ถอดรหัส แยกวิเคราะห์ และประมวลผลแพ็กเก็ตเครือข่าย สิ่งสำคัญคือต้องทราบด้วยว่าใน Suricata ทราฟฟิกจะถูกบล็อกโดยใช้ตัวกรองปกติของระบบปฏิบัติการ GNU/Linux มีสองตัวเลือกสำหรับวิธีการทำงานของ IPS: ผ่านคิว NFQUEUE (โหมด NFQ) และผ่าน Zero Copy (โหมด AF_PACKET) ในกรณีแรก แพ็กเก็ตที่เข้าสู่ iptables จะถูกส่งไปยังคิว NFQUEUE ซึ่งสามารถประมวลผลในระดับผู้ใช้ได้ Suricata ดำเนินการตามกฎของตนเองและออกคำตัดสินหนึ่งในสามรายการ: NF_ACCEPT, NF_DROP และ NF_REPEAT สองอันแรกอธิบายตัวเองได้ ในขณะที่อันสุดท้ายอนุญาตให้แพ็กเก็ตถูกแท็กและส่งไปที่ด้านบนสุดของตาราง iptables ปัจจุบัน โหมด AF_PACKET เร็วกว่า แต่มีข้อ จำกัด หลายประการในระบบ: ต้องมีอินเทอร์เฟซเครือข่ายสองอินเทอร์เฟซและทำงานเป็นเกตเวย์ แพ็กเก็ตที่ถูกบล็อกจะไม่ถูกส่งต่อไปยังอินเทอร์เฟซที่สอง

คุณสมบัติที่สำคัญของ Suricata คือความสามารถในการใช้การพัฒนาสำหรับ Snort ผู้ดูแลระบบมีสิทธิ์เข้าถึงชุดกฎ Sourcefire VRT และ OpenSource Emerging Threats รวมถึง Emerging Threats Pro เชิงพาณิชย์ เอาต์พุตแบบรวมสามารถแยกวิเคราะห์โดยใช้แบ็กเอนด์ยอดนิยม รองรับเอาต์พุต PCAP และ Syslog การตั้งค่าและกฎของระบบจะจัดเก็บไว้ในไฟล์ YAML ซึ่งอ่านง่ายและประมวลผลได้โดยอัตโนมัติ กลไก Suricata รู้จักโปรโตคอลจำนวนมาก ดังนั้นกฎจึงไม่จำเป็นต้องเชื่อมโยงกับหมายเลขพอร์ต นอกจากนี้ แนวคิดของโฟลว์บิตยังได้รับการฝึกฝนอย่างแข็งขันในกฎของ Suricata ในการติดตามทริกเกอร์ ตัวแปรเซสชันจะใช้เพื่อสร้างและใช้ตัวนับและแฟล็กต่างๆ IDS หลายตัวถือว่าการเชื่อมต่อ TCP ที่แตกต่างกันเป็นเอนทิตีที่แยกจากกัน และอาจไม่เห็นการเชื่อมต่อระหว่างกันซึ่งบ่งชี้ถึงการเริ่มต้นของการโจมตี Suricata พยายามดูภาพรวม และในหลายกรณีตรวจพบทราฟฟิกที่เป็นอันตรายซึ่งกระจายผ่านการเชื่อมต่อต่างๆ คุณสามารถพูดคุยเกี่ยวกับข้อดีของมันเป็นเวลานาน เราควรไปยังการติดตั้งและการกำหนดค่า

วิธีการติดตั้ง

เราจะติดตั้ง Suricata บนเซิร์ฟเวอร์เสมือนที่ใช้ Ubuntu 18.04 LTS คำสั่งทั้งหมดต้องดำเนินการในนามของ superuser (รูท) ตัวเลือกที่ปลอดภัยที่สุดคือ SSH เข้าสู่เซิร์ฟเวอร์ในฐานะผู้ใช้ทั่วไป จากนั้นใช้ยูทิลิตี sudo เพื่อยกระดับสิทธิ์ ก่อนอื่นคุณต้องติดตั้งแพ็คเกจที่เราต้องการ:

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

การเชื่อมต่อที่เก็บข้อมูลภายนอก:

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

ติดตั้ง Suricata เวอร์ชันเสถียรล่าสุด:

sudo apt-get install suricata

หากจำเป็น ให้แก้ไขชื่อไฟล์คอนฟิกูเรชัน โดยแทนที่ค่าดีฟอลต์ eth0 ด้วยชื่อจริงของอินเตอร์เฟสภายนอกของเซิร์ฟเวอร์ การตั้งค่าเริ่มต้นถูกจัดเก็บไว้ในไฟล์ /etc/default/suricata และการตั้งค่าแบบกำหนดเองถูกจัดเก็บไว้ใน /etc/suricata/suricata.yaml การกำหนดค่า IDS ส่วนใหญ่จำกัดอยู่ที่การแก้ไขไฟล์การกำหนดค่านี้ มีพารามิเตอร์มากมายที่ตามชื่อและวัตถุประสงค์แล้ว ตรงกับแอนะล็อกจาก Snort อย่างไรก็ตาม ไวยากรณ์นั้นแตกต่างไปจากเดิมอย่างสิ้นเชิง แต่ไฟล์นั้นอ่านง่ายกว่าการกำหนดค่า Snort มาก และได้รับการแสดงความคิดเห็นเป็นอย่างดี

sudo nano /etc/default/suricata

Snort หรือ Suricata ตอนที่ 2: การติดตั้งและการตั้งค่าเริ่มต้นของ Suricata

и

sudo nano /etc/suricata/suricata.yaml

Snort หรือ Suricata ตอนที่ 2: การติดตั้งและการตั้งค่าเริ่มต้นของ Suricata

ความสนใจ! ก่อนเริ่มควรตรวจสอบค่าของตัวแปรจากส่วน vars

ในการตั้งค่าให้เสร็จสมบูรณ์ คุณจะต้องติดตั้ง suricata-update เพื่ออัปเดตและโหลดกฎ มันค่อนข้างง่ายที่จะทำสิ่งนี้:

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

ต่อไป เราต้องรันคำสั่ง suricata-update เพื่อติดตั้งชุดกฎการเปิดภัยคุกคามใหม่:

sudo suricata-update

Snort หรือ Suricata ตอนที่ 2: การติดตั้งและการตั้งค่าเริ่มต้นของ Suricata

หากต้องการดูรายการแหล่งที่มาของกฎ ให้รันคำสั่งต่อไปนี้:

sudo suricata-update list-sources

Snort หรือ Suricata ตอนที่ 2: การติดตั้งและการตั้งค่าเริ่มต้นของ Suricata

อัปเดตแหล่งที่มาของกฎ:

sudo suricata-update update-sources

Snort หรือ Suricata ตอนที่ 2: การติดตั้งและการตั้งค่าเริ่มต้นของ Suricata

การเยี่ยมชมแหล่งข้อมูลที่อัปเดตอีกครั้ง:

sudo suricata-update list-sources

หากจำเป็น คุณสามารถรวมแหล่งข้อมูลฟรีที่มีอยู่:

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

หลังจากนั้น คุณต้องอัปเดตกฎอีกครั้ง:

sudo suricata-update

การติดตั้งและการกำหนดค่าเริ่มต้นของ Suricata ใน Ubuntu 18.04 LTS เสร็จสมบูรณ์ จากนั้นความสนุกก็เริ่มขึ้น: ในบทความหน้า เราจะเชื่อมต่อเซิร์ฟเวอร์เสมือนกับเครือข่ายสำนักงานผ่าน VPN และเริ่มวิเคราะห์ทราฟฟิกขาเข้าและขาออกทั้งหมด เราจะให้ความสนใจเป็นพิเศษในการบล็อกการโจมตี DDoS กิจกรรมของมัลแวร์ และความพยายามที่จะใช้ประโยชน์จากช่องโหว่ในบริการที่เข้าถึงได้จากเครือข่ายสาธารณะ เพื่อความชัดเจน การโจมตีประเภทที่พบมากที่สุดจะถูกจำลองขึ้น

Snort หรือ Suricata ตอนที่ 2: การติดตั้งและการตั้งค่าเริ่มต้นของ Suricata

Snort หรือ Suricata ตอนที่ 2: การติดตั้งและการตั้งค่าเริ่มต้นของ Suricata

ที่มา: will.com

เพิ่มความคิดเห็น