น่าเสียดายที่ไม่มีสคริปต์ดังกล่าวที่ฉันเคยเห็นที่สามารถทำงานในโหมดการเรียนรู้หรือโหมดแฝงบันทึกการใช้งานเครือข่ายทั้งหมดของคุณรับผลและสร้างไฟร์วอลล์จริงโดยใช้iptables
จากบันทึกของมัน
ทางออกที่ดีที่สุดของคุณคือการเริ่มต้นอย่างง่าย ๆ และเพิ่มชิ้นส่วนต่าง ๆ อย่างต่อเนื่องเมื่อคุณเริ่มเข้าใจอย่างถ่องแท้ว่าบริการใดที่ระบบของคุณนำเสนอ คุณจะต้องใช้เครื่องมือต่างๆnetstat
เพื่อดูว่ามีการใช้พอร์ตใดบ้างสำหรับบริการต่างๆที่คุณโฮสต์รวมถึงที่อยู่ IP ใดที่เข้าถึงได้
$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:890 0.0.0.0:* LISTEN 26149/ypbind
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 26226/python
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 26221/./hpiod
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 26237/snmpd
tcp 0 0 0.0.0.0:809 0.0.0.0:* LISTEN 26067/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 26038/portmap
tcp 0 0 0.0.0.0:35604 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26249/sshd
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 26257/cupsd
tcp 0 0 :::22 :::* LISTEN 26249/sshd
tcp 0 0 :::631 :::* LISTEN 26257/cupsd
หมายเหตุ:ในข้างต้นคุณสามารถดูว่าบริการใดที่ฉันใช้บนเซิร์ฟเวอร์ที่ยอมรับการเชื่อมต่อ TCP นั่นคือ "กำลังรับฟัง" สำหรับการเชื่อมต่อบนพอร์ตต่างๆ
การเริ่มต้นกับสิ่งต่าง ๆ เช่น SSH (พอร์ต 22) และ HTTP (พอร์ต 80) ไม่ใช่เรื่องง่ายหากสิ่งเหล่านี้เป็นเรื่องปกติสำหรับระบบของคุณดังนั้นฉันจะทำบริการประเภทนี้เป็นจำนวนมากในคราวเดียว สำหรับบริการอื่น ๆ เช่น LDAP หรือ NIS คุณอาจต้องการทำสิ่งเหล่านี้ในลักษณะที่ควบคุมได้มากขึ้น
เครื่องมือเช่นFireHOL , ตัวสร้างไฟร์วอลล์ (fwbuilder) และeztablesอาจเป็นประโยชน์ในขณะที่คุณโจมตีโครงการนี้เนื่องจากมันให้เลเยอร์ที่เป็นนามธรรมของการสร้างiptable
กฎที่กำหนดเองด้วยมือซึ่งอาจเป็นเรื่องยุ่งยาก
FireHOL
FireHOL เป็นภาษา (และโปรแกรมที่เรียกใช้) ซึ่งสร้างไฟร์วอลล์ที่ปลอดภัยและระบุสถานะของความซับซ้อนใด ๆ จากการกำหนดค่าที่เข้าใจได้ง่ายและมนุษย์อ่านได้
ตัวอย่าง
transparent_squid 8080 "squid root" inface eth0
interface eth0 mylan
policy accept
interface ppp+ internet
server smtp accept
server http accept
server ftp accept
server ssh accept src example.firehol.org
client all accept
router mylan2internet inface eth0 outface ppp+
masquerade
route all accept
fwbuilder
Fwbuilder เป็นเครื่องมือไฟร์วอลล์กราฟิกที่ไม่เหมือนใครที่ช่วยให้ผู้ใช้สร้างวัตถุจากนั้นลากและวางวัตถุเหล่านั้นลงในไฟร์วอลล์เพื่อสร้างระบบรักษาความปลอดภัยที่ทรงพลังสำหรับพีซีเครื่องเดียวหรือเครือข่ายพีซี Fwbuilder สนับสนุนไฟร์วอลล์ที่หลากหลาย (Cisco ASA / PIX, iptables Linux, ipfilter ของ FreeBSD, pf ของ OpenBSD และอื่น ๆ ) ดังนั้นกฎของมันจึงสามารถนำไปใช้กับหลายแพลตฟอร์มได้ มาดูการใช้ Fwbuilder บน Linux ซึ่งอาจกลายเป็นเรื่องตลอดชีวิตด้วยระบบความปลอดภัยที่มีประสิทธิภาพ
ตัวอย่าง
eztables
Eztables ช่วยให้คุณกำหนดค่าไฟร์วอลล์ได้อย่างรวดเร็วโดยไม่ต้องแตะ iptables ไวยากรณ์ของกฎไฟร์วอลล์ได้รับการออกแบบให้อ่านและใช้งานง่าย
นี่คือวิธีที่คุณอนุญาตให้อินเทอร์เน็ตทั้งหมดเข้าถึงเว็บเซิร์ฟเวอร์ของคุณบน TCP-port 80:
allow_in any $eth0 any 80/tcp
Eztables ออกแบบมาให้เรียบง่าย แต่ทรงพลัง ไม่สำคัญว่าคุณต้องการปกป้องแล็ปท็อปของคุณกำลังตั้งค่าเราเตอร์ที่บ้านหรือสร้างไฟร์วอลล์ของ บริษัท
ใช้ Fail2Ban
ด้วยพื้นฐานiptables
ไฟร์วอลล์ในสถานที่ที่คุณอาจจะต้องการที่จะชมเชยโดยใช้เครื่องมือเช่นfail2ban
สิ่งที่สกัดมา
Fail2ban สแกนไฟล์บันทึก (เช่น / var / log / apache / error_log) และแบนไอพีที่แสดงสัญญาณที่เป็นอันตราย - รหัสผ่านล้มเหลวมากเกินไปการค้นหาช่องโหว่ ฯลฯ โดยทั่วไป Fail2Ban จะใช้เพื่อปรับปรุงกฎไฟร์วอลล์เพื่อปฏิเสธที่อยู่ IP ตามระยะเวลาที่กำหนดถึงแม้ว่าการดำเนินการอื่นใดโดยพลการ (เช่นการส่งอีเมล) สามารถกำหนดค่าได้ Fail2Ban มาพร้อมกับตัวกรองสำหรับบริการต่างๆ (apache, courier, ssh, ฯลฯ )
การใช้เครื่องมือเช่นนี้จะช่วย จำกัด การเปิดเผยที่ระบบของคุณจะต้องทนขณะที่คุณยังคงแข็งตัว แม้หลังจากที่คุณมั่นใจว่าระบบของคุณได้รับการชุบแข็งแล้วคุณอาจต้องการใช้ Fail2Ban ต่อไปเพื่อเป็นส่วนหนึ่งของมาตรการรักษาความปลอดภัย
อ้างอิง