В
Snort หรือ Suricata ตอนที่ 1: การเลือก IDS/IPS ฟรีเพื่อปกป้องเครือข่ายองค์กรของคุณ Snort หรือ Suricata ตอนที่ 2: การติดตั้งและการตั้งค่าเริ่มต้นของ Suricata
การเชื่อมต่อเครือข่าย
การลบ IDS ไปยังเครื่องเสมือนในครั้งแรกอาจจำเป็นสำหรับการทดสอบ หากคุณไม่เคยจัดการกับโซลูชันดังกล่าว คุณไม่ควรรีบสั่งซื้อฮาร์ดแวร์จริงและเปลี่ยนสถาปัตยกรรมเครือข่าย เป็นการดีที่สุดที่จะรันระบบอย่างปลอดภัยและประหยัดค่าใช้จ่ายเพื่อกำหนดความต้องการในการประมวลผลของคุณ สิ่งสำคัญคือต้องเข้าใจว่าการรับส่งข้อมูลขององค์กรทั้งหมดจะต้องผ่านโหนดภายนอกเพียงโหนดเดียว: หากต้องการเชื่อมต่อเครือข่ายท้องถิ่น (หรือหลายเครือข่าย) กับ VDS ที่ติดตั้ง IDS Suricata คุณสามารถใช้
sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update
คุณสามารถดูรายการแพ็คเกจที่มีได้ด้วยคำสั่งต่อไปนี้:
apt-cache search softether
เราจะต้อง softether-vpnserver (เซิร์ฟเวอร์ในการกำหนดค่าการทดสอบกำลังทำงานบน VDS) รวมถึงยูทิลิตี้บรรทัดคำสั่ง softether-vpncmd สำหรับการกำหนดค่า
sudo apt-get install softether-vpnserver softether-vpncmd
ยูทิลิตีบรรทัดคำสั่งพิเศษใช้เพื่อกำหนดค่าเซิร์ฟเวอร์:
sudo vpncmd
เราจะไม่พูดถึงรายละเอียดเกี่ยวกับการตั้งค่า: ขั้นตอนค่อนข้างง่าย มีการอธิบายไว้อย่างดีในสิ่งพิมพ์จำนวนมาก และไม่เกี่ยวข้องโดยตรงกับหัวข้อของบทความ พูดสั้นๆ หลังจากเริ่ม vpncmd คุณต้องเลือกข้อ 1 เพื่อไปที่คอนโซลการจัดการเซิร์ฟเวอร์ ในการดำเนินการนี้ คุณต้องป้อนชื่อ localhost แล้วกด Enter แทนการป้อนชื่อฮับ รหัสผ่านของผู้ดูแลระบบถูกตั้งค่าในคอนโซลด้วยคำสั่ง serverpasswordset ฮับเสมือน DEFAULT จะถูกลบ (คำสั่ง hubdelete) และสร้างอันใหม่ด้วยชื่อ Suricata_VPN และรหัสผ่านก็ถูกตั้งค่าด้วย (คำสั่ง hubcreate) ถัดไป คุณต้องไปที่คอนโซลการจัดการของฮับใหม่โดยใช้คำสั่งฮับ Suricata_VPN เพื่อสร้างกลุ่มและผู้ใช้โดยใช้คำสั่ง groupcreate และ usercreate รหัสผ่านผู้ใช้ตั้งโดยใช้ userpasswordset
SoftEther รองรับโหมดการถ่ายโอนทราฟฟิกสองโหมด: SecureNAT และ Local Bridge ประการแรกคือเทคโนโลยีที่เป็นกรรมสิทธิ์สำหรับการสร้างเครือข่ายส่วนตัวเสมือนด้วย NAT และ DHCP ของตนเอง SecureNAT ไม่ต้องการ TUN/TAP หรือ Netfilter หรือการตั้งค่าไฟร์วอลล์อื่นๆ การกำหนดเส้นทางไม่ส่งผลกระทบต่อแกนหลักของระบบ และกระบวนการทั้งหมดจะถูกจำลองเสมือนและทำงานบน VPS / VDS ใด ๆ โดยไม่คำนึงถึงไฮเปอร์ไวเซอร์ที่ใช้ ส่งผลให้โหลด CPU เพิ่มขึ้นและความเร็วช้าลงเมื่อเทียบกับโหมด Local Bridge ซึ่งเชื่อมต่อฮับเสมือน SoftEther กับอะแดปเตอร์เครือข่ายจริงหรืออุปกรณ์ TAP
การกำหนดค่าในกรณีนี้จะซับซ้อนมากขึ้น เนื่องจากการกำหนดเส้นทางเกิดขึ้นที่ระดับเคอร์เนลโดยใช้ Netfilter VDS ของเราสร้างขึ้นบน Hyper-V ดังนั้นในขั้นตอนสุดท้ายเราสร้างบริดจ์ภายในเครื่องและเปิดใช้งานอุปกรณ์ TAP ด้วยคำสั่ง bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes หลังจากออกจากคอนโซลการจัดการฮับ เราจะเห็นอินเทอร์เฟซเครือข่ายใหม่ในระบบที่ยังไม่ได้กำหนด IP:
ifconfig
ถัดไป คุณจะต้องเปิดใช้งานการกำหนดเส้นทางแพ็กเก็ตระหว่างอินเทอร์เฟซ (การส่งต่อ ip) หากไม่ได้ใช้งาน:
sudo nano /etc/sysctl.conf
ยกเลิกการแสดงความคิดเห็นในบรรทัดต่อไปนี้:
net.ipv4.ip_forward = 1
บันทึกการเปลี่ยนแปลงลงในไฟล์ ออกจากเอดิเตอร์และใช้คำสั่งต่อไปนี้:
sudo sysctl -p
ต่อไป เราต้องกำหนดเครือข่ายย่อยสำหรับเครือข่ายเสมือนด้วย IP ที่สมมติขึ้น (เช่น 10.0.10.0/24) และกำหนดที่อยู่ให้กับอินเทอร์เฟซ:
sudo ifconfig tap_suricata_vp 10.0.10.1/24
จากนั้นคุณต้องเขียนกฎ Netfilter
1. หากจำเป็น ให้อนุญาตแพ็กเก็ตขาเข้าบนพอร์ตการฟัง (โปรโตคอลที่เป็นกรรมสิทธิ์ของ SoftEther ใช้ HTTPS และพอร์ต 443)
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT
2. ตั้งค่า NAT จากซับเน็ต 10.0.10.0/24 ไปยัง IP เซิร์ฟเวอร์หลัก
sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140
3. อนุญาตให้ส่งแพ็กเก็ตจากซับเน็ต 10.0.10.0/24
sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT
4. อนุญาตให้ส่งแพ็กเก็ตสำหรับการเชื่อมต่อที่สร้างไว้แล้ว
sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
เราจะปล่อยให้การทำงานอัตโนมัติของกระบวนการเมื่อระบบเริ่มต้นใหม่โดยใช้สคริปต์การเริ่มต้นให้กับผู้อ่านเป็นการบ้าน
หากคุณต้องการให้ IP แก่ไคลเอนต์โดยอัตโนมัติ คุณจะต้องติดตั้งบริการ DHCP บางชนิดสำหรับโลคัลบริดจ์ด้วย การตั้งค่าเซิร์ฟเวอร์เสร็จสมบูรณ์และคุณสามารถไปที่ไคลเอนต์ได้ SoftEther รองรับโปรโตคอลมากมาย ซึ่งการใช้งานขึ้นอยู่กับความสามารถของอุปกรณ์ LAN
netstat -ap |grep vpnserver
เนื่องจากเราเตอร์ทดสอบของเราทำงานภายใต้ Ubuntu เช่นกัน มาติดตั้งแพ็คเกจ softether-vpnclient และ softether-vpncmd จากที่เก็บภายนอกเพื่อใช้โปรโตคอลที่เป็นกรรมสิทธิ์ คุณจะต้องเรียกใช้ไคลเอนต์:
sudo vpnclient start
ในการกำหนดค่า ให้ใช้ยูทิลิตี้ vpncmd โดยเลือก localhost เป็นเครื่องที่ vpnclient กำลังทำงานอยู่ คำสั่งทั้งหมดถูกสร้างขึ้นในคอนโซล: คุณจะต้องสร้างอินเทอร์เฟซเสมือน (NicCreate) และบัญชี (AccountCreate)
ในบางกรณี คุณต้องระบุวิธีการรับรองความถูกต้องโดยใช้คำสั่ง AccountAnonymousSet, AccountPasswordSet, AccountCertSet และ AccountSecureCertSet เนื่องจากเราไม่ได้ใช้ DHCP ที่อยู่สำหรับอะแดปเตอร์เสมือนจึงถูกตั้งค่าด้วยตนเอง
นอกจากนี้ เราจำเป็นต้องเปิดใช้งาน ip forward (ตัวเลือก net.ipv4.ip_forward=1 ในไฟล์ /etc/sysctl.conf) และกำหนดค่าเส้นทางแบบคงที่ หากจำเป็น บน VDS ที่มี Suricata คุณสามารถกำหนดค่าการส่งต่อพอร์ตเพื่อใช้บริการที่ติดตั้งบนเครือข่ายท้องถิ่นได้ ในการนี้ถือว่าการรวมเครือข่ายเสร็จสมบูรณ์
การกำหนดค่าที่เราเสนอจะมีลักษณะดังนี้:
การตั้งค่า Suricata
В
ในการรีสตาร์ท IDS ให้ใช้คำสั่ง:
systemctl restart suricata
โซลูชันพร้อมแล้ว ตอนนี้คุณอาจต้องทดสอบการต่อต้านการกระทำที่เป็นอันตราย
จำลองการโจมตี
อาจมีหลายสถานการณ์สำหรับการต่อสู้กับการใช้บริการ IDS ภายนอก:
การป้องกันการโจมตี DDoS (วัตถุประสงค์หลัก)
เป็นการยากที่จะใช้ตัวเลือกดังกล่าวภายในเครือข่ายองค์กร เนื่องจากแพ็กเก็ตสำหรับการวิเคราะห์จะต้องไปที่ส่วนต่อประสานระบบที่ดูอินเทอร์เน็ต แม้ว่า IDS จะบล็อกพวกเขา แต่ทราฟฟิกปลอมก็สามารถทำให้ดาต้าลิงค์ล่มได้ เพื่อหลีกเลี่ยงปัญหานี้ คุณต้องสั่งซื้อ VPS ด้วยการเชื่อมต่ออินเทอร์เน็ตที่มีประสิทธิผลเพียงพอ ซึ่งสามารถผ่านทราฟฟิกเครือข่ายท้องถิ่นและทราฟฟิกภายนอกทั้งหมดได้ การทำเช่นนี้มักจะง่ายและถูกกว่าการขยายช่องทางสำนักงาน เป็นอีกทางเลือกหนึ่งที่ควรกล่าวถึงบริการพิเศษสำหรับการป้องกัน DDoS ค่าบริการของพวกเขาเปรียบได้กับค่าใช้จ่ายของเซิร์ฟเวอร์เสมือน และไม่ต้องกำหนดค่าที่ใช้เวลานาน แต่ก็มีข้อเสียเช่นกัน - ลูกค้าจะได้รับเฉพาะการป้องกัน DDoS สำหรับเงินของเขา ในขณะที่ IDS ของเขาเองสามารถกำหนดค่าได้เช่นเดียวกับคุณ ชอบ.
ป้องกันการโจมตีจากภายนอกประเภทอื่นๆ
Suricata สามารถรับมือกับความพยายามที่จะใช้ประโยชน์จากช่องโหว่ต่างๆ ในบริการเครือข่ายขององค์กรที่เข้าถึงได้จากอินเทอร์เน็ต (เมลเซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์ และเว็บแอปพลิเคชัน เป็นต้น) โดยปกติแล้วสำหรับสิ่งนี้ IDS จะถูกติดตั้งภายใน LAN หลังจากอุปกรณ์ชายแดน แต่การนำไปใช้ภายนอกนั้นมีสิทธิ์ที่จะมีอยู่
การป้องกันจากภายใน
แม้ว่าผู้ดูแลระบบจะพยายามอย่างเต็มที่แล้ว แต่คอมพิวเตอร์ในเครือข่ายองค์กรก็อาจติดมัลแวร์ได้ นอกจากนี้บางครั้งอันธพาลยังปรากฏตัวในพื้นที่ซึ่งพยายามดำเนินการที่ผิดกฎหมาย Suricata สามารถช่วยป้องกันความพยายามดังกล่าวได้ แม้ว่าเพื่อป้องกันเครือข่ายภายใน จะเป็นการดีกว่าที่จะติดตั้งภายในขอบเขตและใช้งานควบคู่กับสวิตช์ที่มีการจัดการซึ่งสามารถมิเรอร์การรับส่งข้อมูลไปยังพอร์ตเดียว IDS ภายนอกก็ไม่ได้ไร้ประโยชน์ในกรณีนี้ - อย่างน้อยก็สามารถตรวจจับความพยายามของมัลแวร์ที่อาศัยอยู่ใน LAN เพื่อติดต่อกับเซิร์ฟเวอร์ภายนอกได้
ในการเริ่มต้น เราจะสร้างการทดสอบอื่นเพื่อโจมตี VPS และบนเราเตอร์เครือข่ายท้องถิ่น เราจะเพิ่ม Apache ด้วยการกำหนดค่าเริ่มต้น หลังจากนั้นเราจะส่งต่อพอร์ตที่ 80 จากเซิร์ฟเวอร์ IDS ไปยังพอร์ตนั้น ต่อไป เราจะจำลองการโจมตี DDoS จากโฮสต์ที่ถูกโจมตี ในการดำเนินการนี้ ให้ดาวน์โหลดจาก GitHub คอมไพล์และรันโปรแกรม xerxes ขนาดเล็กบนโหนดโจมตี (คุณอาจต้องติดตั้งแพ็คเกจ gcc):
git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes
./xerxes 45.132.17.140 80
ผลงานของเธอมีดังนี้
Suricata ตัดผู้ร้ายออก และหน้า Apache จะเปิดขึ้นตามค่าเริ่มต้น แม้ว่าเราจะโจมตีอย่างกะทันหันและเครือข่าย "สำนักงาน" (จริงๆ แล้วคือบ้าน) ค่อนข้างตัน สำหรับงานหนักๆ คุณควรใช้
sudo msfupdate
สำหรับการทดสอบ ให้เรียกใช้ msfconsole
น่าเสียดายที่เฟรมเวิร์กเวอร์ชันล่าสุดไม่มีความสามารถในการถอดรหัสโดยอัตโนมัติ ดังนั้นช่องโหว่จะต้องจัดเรียงด้วยตนเองและเรียกใช้โดยใช้คำสั่ง use ในการเริ่มต้น มันคุ้มค่าที่จะกำหนดพอร์ตที่เปิดบนเครื่องที่ถูกโจมตี เช่น การใช้ nmap (ในกรณีของเรา มันจะถูกแทนที่ด้วย netstat บนโฮสต์ที่ถูกโจมตีโดยสมบูรณ์) จากนั้นเลือกและใช้ที่เหมาะสม
มีวิธีอื่นในการทดสอบความยืดหยุ่นของ IDS ต่อการโจมตี รวมถึงบริการออนไลน์ เพื่อความอยากรู้อยากเห็น คุณสามารถจัดให้มีการทดสอบความเครียดโดยใช้รุ่นทดลอง
ที่มา: will.com