ฉันมีช่วง IP ไม่กี่ช่วงที่ฉันต้องการให้เซิร์ฟเวอร์ของฉันสามารถเชื่อมต่อและผู้ใช้เชื่อมต่อได้ ทุกอย่างอื่นควรถูกบล็อก
ฉันจะทำเช่นนั้นกับ iptables ได้อย่างไร
ระบบปฏิบัติการของฉันคือการกระจาย linux ที่ใช้ Debian
ฉันมีช่วง IP ไม่กี่ช่วงที่ฉันต้องการให้เซิร์ฟเวอร์ของฉันสามารถเชื่อมต่อและผู้ใช้เชื่อมต่อได้ ทุกอย่างอื่นควรถูกบล็อก
ฉันจะทำเช่นนั้นกับ iptables ได้อย่างไร
ระบบปฏิบัติการของฉันคือการกระจาย linux ที่ใช้ Debian
คำตอบ:
ฉันขอแนะนำให้จับเครื่องมือกำหนดค่าไฟร์วอลล์เช่นFirestarterและไปจากที่นั่น นี่คือพื้นฐานบางอย่างสำหรับคุณ
#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP
สิ่งนี้จะเปลี่ยนระบบของคุณเป็นระบบที่ไม่มีอยู่สำหรับคอมพิวเตอร์ที่ไม่ได้รับอนุญาต
หากคุณต้องการอนุญาตช่วงโดยพลการแทนที่จะเป็นเครือข่ายย่อยทั้งหมดคุณสามารถใช้โมดูล 'iprange' iptables:
iptables -P INPUT DROP
iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT
ตัวอย่างเช่นจะอนุญาตการรับส่งข้อมูลที่มาจากเครื่องทั้งหมดที่มี addressess ระหว่าง 192.168.1.30 ถึง 192.168.1.50
หากคุณต้องการอนุญาตทราฟฟิกขาเข้าและขาออกให้อยู่ในช่วง IP เดียวกันฉันขอแนะนำให้คุณสร้างเชนเฉพาะที่อนุญาต IP นั้นและกำหนดเป้าหมายอินพุตและเอาต์พุตเป้าหมายทั้งหมด:
- กำหนดนโยบายเริ่มต้นที่จะลดลงอย่างแน่นอน:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
- สร้างห่วงโซ่ใหม่:
iptables -N allowed_ips
- ถ้าแหล่งที่มาเป็นส่วนหนึ่งของช่วงที่อนุญาตให้ยอมรับ
iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT
- หากไม่ใช่ให้กลับไปที่เครือข่ายผู้โทรเพื่อดำเนินการต่อ
iptables -A allowed_ips -j RETURN
- ทำให้ปริมาณการเข้าและออกจากเครื่องผ่านห่วงโซ่ใหม่ของเรา
iptables -A INPUT -j allowed_ips
iptables -A OUTPUT -j allowed_ips
และนั่นมัน! แน่นอนคุณอาจต้องใช้กฎ aditional เช่นกฎที่อนุญาตการรับส่งข้อมูลทั้งหมดจาก / ไปยังอินเตอร์เฟสที่ใช้งานได้ ฯลฯ
เมื่อคุณมีความสุขกับกฎของคุณคุณอาจต้องการที่จะบันทึกไว้ ความคิดเห็นในลิงค์นี้มีหลายตัวเลือกในการทำเช่นนั้น
ง่ายต่อการใช้ iptables กฎกำเนิดไฟฟ้าสำหรับความต้องการง่ายๆคือufw แพ็คเกจมีให้บริการในเดเบียนที่ไม่เสถียร
ลองใช้Firestarterด้วย มีจำหน่ายในเลนนี่
คุณอาจใช้fermที่ฉันใช้สำหรับปีที่ผ่านมาและช่วยฉันได้มากในบางกรณีเช่นกฎไฟร์วอลล์แบบมีเงื่อนไข