IPTables อนุญาตการเข้าถึง localhost เท่านั้น


58

ฉันได้พยายามตลอดหลายปีที่ผ่านมาเพื่อทำความเข้าใจเกี่ยวกับ iptables เมื่อใดก็ตามที่ฉันลองและอ่านผ่านหน้าชายตาของฉันเริ่มที่จะเคลือบ

ฉันมีบริการที่ฉันต้องการอนุญาตให้ localhost เข้าถึงเท่านั้น

คำใด (หรือการกำหนดค่าถ้ามีคนรู้สึกใจกว้าง) ฉันควร Google เพื่ออนุญาตให้โฮสต์ในพื้นที่เท่านั้นที่สามารถเข้าถึงพอร์ตที่กำหนดได้


2
บริการนี้ใช้พอร์ตอะไร
Bart De Vos

44344 เป็นบริการที่เขียนขึ้นภายใน บริษัท
iptablessuck

1
ฉันต้องการเปลี่ยนนิคของฉันเป็นการชั่วคราวสำหรับ 'iptablesrules' แต่ฉันทำไม่ได้
Art Shayderov

@ ศิลปะพวกเขาเพียง แต่ดูดเพราะฉันไม่เข้าใจ :)
iptablessuck

@iptablessuck จริง ๆ แล้วดูเหมือนว่าฉันจะทำได้ แต่ผมจะไม่ทำให้ผมไม่แน่ใจว่าผมจะสามารถเปลี่ยนกลับ :)
ศิลปะ Shayderov

คำตอบ:


65

ถ้าโดยการบริการคุณหมายถึงพอร์ตเฉพาะดังนั้นสองบรรทัดต่อไปนี้ควรใช้งานได้ เปลี่ยน "25" เป็นพอร์ตใดก็ตามที่คุณพยายาม จำกัด

iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP

1
"สิ่งใดก็ตามที่มาจาก localhost ถึงพอร์ต 25 ยอมรับ" และกฎข้อที่สองบอกว่า "ปล่อยสิ่งใด ๆ ที่เข้ามาในพอร์ต 25" บรรทัดแรกจะถูกประมวลผลก่อนอนุญาตให้ใช้ localhost และสิ่งอื่น ๆ จะหายไปจากบรรทัดที่สอง ใช่?
iptablessuck

ถูกต้อง!
Hyppy

4
@Hyppy คุณจะ "เลิกทำ" สิ่งนี้ได้อย่างไร
ผู้ทดสอบ

10
@tester พิมพ์คำสั่งเหล่านั้นอีกครั้ง แต่แทนที่-Aด้วย-D
pepoluan

1
@Astronaut ประเภท 'บริการ sudo iptables save' เพื่อบันทึกการเปลี่ยนแปลง จากนั้นรีบูต คุณสามารถตรวจสอบว่ามีการบันทึกการเปลี่ยนแปลงหรือไม่โดยพิมพ์ 'sudo iptables -L'
Vinayak

30

ฉันอยากจะแนะนำ:

iptables -A INPUT -i lo -p tcp --dport $APP_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $APP_PORT -j DROP

เพราะแพ็คเก็ตที่จัดการเองไม่จำเป็นต้องมี 127.0.0.1 เป็นแหล่งที่มา แต่พวกเขาทั้งหมด 'ป้อน' จากloอินเทอร์เฟซ

ตอนนี้ถ้าคุณจริงๆต้องการที่จะเข้าใจiptablesสิ่งแรกที่คุณควรทำคือการดาวน์โหลดและพิมพ์ไดอะแกรมอธิบายความสัมพันธ์ที่ดีของnetfilterตาราง นี่คือสองสิ่งที่ยอดเยี่ยม:

ในที่สุดอ่านiptablesHOWTO จำนวนมาก ตัวอย่างที่ใช้งานได้จริงจะช่วยให้คุณรับความเร็วได้อย่างรวดเร็ว :)


TY! loแสดงขึ้นสำหรับผมหลังจากใช้คำสั่งเหล่านี้มีคำสั่งที่ผ่านมาจากการเชื่อมโยงcyberciti.biz/faq/howto-display-linux-iptables-loaded-rules iptables -L -v -n --line-numbers

2
@Gracchus ฉันคิดว่ามันใช้งานง่ายกว่ามากiptables-saveบันทึกผลลัพธ์ไปยังไฟล์แก้ไขด้วยvimหรือemacsนำเข้าไฟล์ที่แก้ไขอีกครั้งโดยใช้iptables-apply
pepoluan

ฉันคิดว่าขึ้นอยู่กับกรณีการใช้งานกฎข้อที่สองควรปฏิเสธอย่างชัดเจนแทนที่จะปล่อยอย่างเงียบ ๆ มันลดลงอย่างเงียบ ๆ ว่าเป็นแนวปฏิบัติที่ดีที่สุดหรือไม่? การปฏิเสธการใช้นั้นปลอดภัยหรือไม่?
Mr. Doomsbuster

1
@ tech-pro ใช่การปฏิเสธมีความปลอดภัยในการใช้ มันขึ้นอยู่กับสิ่งที่คุณพยายามทำให้สำเร็จและไม่ว่าคุณต้องการที่จะสุภาพต่อผู้ที่พยายามใช้พอร์ต REJECT จะส่งแพ็กเก็ต TCP RST กลับไปแจ้งให้ลูกค้าทราบว่าเครื่องไม่ทำงาน แต่พอร์ตปิด หากคุณกำลังปิดพอร์ตที่ผู้คนอาจคาดหวังว่าจะใช้อย่างถูกกฎหมายการปฏิเสธนั้นดี หากคุณคาดหวังเพียงสแกนเนอร์พอร์ตแล้ว DROP จะดีกว่า
กฎหมายที่ 29

1
@ x-ยูริตัวอย่างเช่นผมทำงานunboundเป็นแคช DNS dnscrypt-proxyในด้านหน้าของ unboundผูกกับ127.0.53.1:53และผูกกับdnscrypt-proxy 127.0.53.2:53เมื่อแอพร้องขอ unbound หรือ dnscrypt-proxy เพื่อแก้ไข FQDN ให้เดาว่าที่อยู่ต้นทางใดที่ unbound / dnscrypt-proxy ตอบกลับมาจากไหน
pepoluan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.