ฉันต้องตั้งกฎ iptables อื่นสำหรับ ipv6 หรือไม่ถ้าฉันเพิ่งใช้ iptables


21

ว่าฉันมีการตั้งค่าไฟร์วอลล์บนเซิร์ฟเวอร์ linux ของฉันด้วย iptables เพื่อให้ฉันยอมรับเฉพาะพอร์ต 22 และพอร์ต 80 ปริมาณการใช้งานและฉันปิดกั้นการเข้าถึงพอร์ตอื่น ๆ ทั้งหมด

กฎเหล่านี้ใช้งานได้เฉพาะในกรณีที่เครื่องไคลเอ็นต์ใช้ที่อยู่ IPv4 หรือไม่ ดังนั้นหากใช้ที่อยู่ ipv6 ไคลเอนต์สามารถเข้าถึงพอร์ตที่ฉันไม่ต้องการได้ (เช่นพอร์ตอื่นที่ไม่ใช่พอร์ต 22 และพอร์ต 80)


คุณไม่ได้ทำเครื่องหมายคำตอบใด ๆ ว่าเป็นประโยชน์ คุณควรทำอย่างนั้น ;-)
Anders

คำตอบ:


21

iptablesใช้งานได้กับ IPv4 แต่ไม่ใช่ IPv6 ip6tablesเป็นเทียบเท่าไฟร์วอลล์ IPv6 iptablesและมีการติดตั้ง

แม้ว่าท้ายที่สุดแล้วiptablesสำหรับการเชื่อมต่อ IPv4 ip6tablesสำหรับการเชื่อมต่อ IPv6 หากคุณต้องการให้iptablesกฎของคุณใช้กับ IPv6 ด้วยคุณต้องเพิ่มกฎเหล่านั้นip6tablesด้วย


หากคุณลองและทำซ้ำชุดiptablesกฎของคุณกฎip6tablesทั้งหมดที่iptablesสามารถทำได้จะเปลี่ยนไปเป็นระเบียบอย่างเรียบร้อยip6tablesแต่ส่วนใหญ่จะเป็นกฎ

อ้างถึงmanpage สำหรับip6tablesถ้าคุณต้องการตรวจสอบให้แน่ใจว่าคำสั่งที่คุณใช้ในiptablesพอร์ตของคุณจะเรียบร้อย


หากคุณต้องการเราสามารถช่วยคุณสร้างชุดip6tablesกฎที่เทียบเท่าเพื่อให้ตรงกับiptablesกฎของคุณหากคุณมีรายการกฎไฟร์วอลล์ (ลบข้อมูลใด ๆ ที่สามารถระบุระบบของ coruse) มิฉะนั้นเราสามารถตอบคำถามทั่วไปของคุณเท่านั้น


10
ไม่ใช่เรื่องไร้สาระแบบนี้เหรอ? เพื่อชี้แจงตอนนี้พอร์ตของฉันทั้งหมดบนเซิร์ฟเวอร์จะเปิดกว้างสำหรับทุกคนที่เชื่อมต่อกับที่อยู่ IPv6 หรือไม่
230779

3
@ user230779 ฉันเห็นด้วยว่ามันเป็น "ไร้สาระ" แต่นี่เป็นสาเหตุufwและผู้จัดการไฟร์วอลล์อื่น ๆ มีอยู่พวกเขาเพิ่มกฎของตัวเองลงไปในทั้งสองอย่าง อย่างไรก็ตามปัญหาที่เกิดขึ้นที่นี่ไม่ใช่ "ทุกคนที่มี IPv6 สามารถดูเว็บไซต์ของฉันได้หรือไม่" ปัญหาที่ใหญ่กว่าคือระบบของคุณมีที่อยู่ IPv6 หรือไม่ การเชื่อมต่อส่วนใหญ่มี IPv4 และ IPv6 จากคอมพิวเตอร์ไคลเอนต์เช่นเดียวกับฉัน แต่ถ้าเซิร์ฟเวอร์ระยะไกลไม่มี IPv6 ที่เป็นแบบสาธารณะแสดงว่ามีการเชื่อมต่อ IPv4 ตามที่ฉันเข้าใจแล้วถ้าคุณมี IPv6 คุณควรเพิ่มกฎip6tablesไว้ด้วย
โทมัสวอร์ด

1
@ user230779 ฉันสามารถสร้างสคริปต์ที่ต้องการรันคำสั่งเดียวกันสำหรับiptablesAND ip6tablesและกฎทั่วไปเช่น-p tcp --dportนั้นจะยังคงใช้ได้ แต่กฎที่ซับซ้อนอาจไม่ทำงาน ... (เช่น-j REJECT --reject-with [something])
Thomas Ward

โทมัสคุณสามารถเชื่อมโยงฉันกับตัวอย่างปลอดภัย ip6tables สำหรับเว็บเซิร์ฟเวอร์ apache ได้หรือไม่?
230779

1
@Braiam ไม่เคยพูดอะไรเกี่ยวกับธง คำสั่งบางคำสั่งใช้งานไม่ได้ ( -j REJECT --reject-with icmp-host-prohibitedตัวอย่างเช่นเนื่องจากแพ็กเก็ตปฏิเสธเป็นชื่อที่แตกต่างกันใน IPv6)
Thomas Ward

3

อย่างที่คนอื่นบอกคุณแล้วมีตารางไฟร์วอลล์ที่แตกต่างกันสำหรับ IPv4 และ IPv6 คุณสามารถตั้งค่ากฎสำหรับ IPv6 เช่นเดียวกับ IPv4 แต่มีความเสี่ยงที่ดีที่คุณจะทำมันหากคุณไม่รู้ IPv6 เช่นคุณไม่สามารถลดICMPIPv6 ได้เนื่องจากมีส่วนจับมือที่จำเป็น เช่นบอกผู้ส่งว่าเฟรมมีขนาดใหญ่ ฯลฯ หากไม่มีสิ่งเหล่านี้ IPv6 อาจหยุดทำงานสำหรับผู้ใช้บางคน

ดังนั้นจึงจะขอแนะนำการใช้งานufwหรือแพคเกจร่วมกับshorewall6 หน้าสนับสนุนทั้ง IPv4 และ IPv6 และใช้งานได้ดีบนเซิร์ฟเวอร์ที่มีหนึ่งหรือสอง interfaces แต่ไม่ได้การจราจรเส้นทาง (การทำงานเป็นเราเตอร์หรือเกตเวย์) หากคุณเข้าชมเส้นทางที่คุณต้องการสิ่งที่ดีกว่าเช่นหรือด้วยตนเองเพิ่มกฎบางอย่างสำหรับการส่งต่อด้วยและshorewalliptablesufwshorewalliptablesip6tables

อย่าลืมว่าคุณสามารถมีที่อยู่ IPv6 ได้มากกว่าหนึ่งที่อยู่ในอินเทอร์เฟซของคุณ บางลิงค์เป็นแบบโลคัลลิงก์บางตัวเป็นแบบสแตติกและแบบไดนามิก ดังนั้นคุณควรตั้งกฎให้สอดคล้องและเซิร์ฟเวอร์จะรับฟังเฉพาะที่อยู่ที่ถูกต้องเท่านั้น

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