รายการที่อนุญาตอนุญาตให้ใช้ IP (เข้า / ออก) โดยใช้ iptables


21

ฉันมีช่วง IP ไม่กี่ช่วงที่ฉันต้องการให้เซิร์ฟเวอร์ของฉันสามารถเชื่อมต่อและผู้ใช้เชื่อมต่อได้ ทุกอย่างอื่นควรถูกบล็อก

ฉันจะทำเช่นนั้นกับ iptables ได้อย่างไร

ระบบปฏิบัติการของฉันคือการกระจาย linux ที่ใช้ Debian

คำตอบ:


27

ฉันขอแนะนำให้จับเครื่องมือกำหนดค่าไฟร์วอลล์เช่น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

3
คุณรู้ว่าคุณสามารถจัดรูปแบบรหัสของคุณในโพสต์ความผิดพลาดของเซิร์ฟเวอร์โดยใช้ปุ่ม 101010 ด้วยวิธีนี้ความคิดเห็นของคุณจะไม่ออกมาเหมือนตะโกน เพียงเลือก (ลากเม้าส์ของคุณ) รหัสแล้วคลิกปุ่ม 101010 เหนือช่องข้อความ
เจสันตาล

2
Ahhh ขอบคุณฉันไม่ได้ตระหนักว่า ตอนนี้ฉันรู้ :)
Zenham

1
+1 สำหรับการมีอยู่ที่เกี่ยวข้อง - มีคนจำนวนมากไม่ทำเช่นนี้
Alnitak

1
สำหรับความรักของพระเจ้าโปรดตั้งค่ากฎ DROP เริ่มต้นล่าสุด! ฉันล็อคตัวเอง (และทุกอย่างอื่น!) ออกจากเครื่องโดยทำตามคำสั่งของการดำเนินการนั้น
Bendoh

1
คำตอบแย่มาก OP บอกว่าไม่มีอะไรเกี่ยวกับการทิ้งการเชื่อมต่อปัจจุบันทั้งหมด ตอนนี้ฉันถูกล็อคเพราะฉันคิดว่าคำตอบที่เหมาะสมที่สุด
ข้าม

14
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

สิ่งนี้จะเปลี่ยนระบบของคุณเป็นระบบที่ไม่มีอยู่สำหรับคอมพิวเตอร์ที่ไม่ได้รับอนุญาต


7

หากคุณต้องการอนุญาตช่วงโดยพลการแทนที่จะเป็นเครือข่ายย่อยทั้งหมดคุณสามารถใช้โมดูล '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 เช่นกฎที่อนุญาตการรับส่งข้อมูลทั้งหมดจาก / ไปยังอินเตอร์เฟสที่ใช้งานได้ ฯลฯ


1

เมื่อคุณมีความสุขกับกฎของคุณคุณอาจต้องการที่จะบันทึกไว้ ความคิดเห็นในลิงค์นี้มีหลายตัวเลือกในการทำเช่นนั้น

ง่ายต่อการใช้ iptables กฎกำเนิดไฟฟ้าสำหรับความต้องการง่ายๆคือufw แพ็คเกจมีให้บริการในเดเบียนที่ไม่เสถียร

ลองใช้Firestarterด้วย มีจำหน่ายในเลนนี่


0

คุณอาจใช้fermที่ฉันใช้สำหรับปีที่ผ่านมาและช่วยฉันได้มากในบางกรณีเช่นกฎไฟร์วอลล์แบบมีเงื่อนไข

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.