UFW: มันคืออะไรกันแน่?


13

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

ตัวย่อสะกดออกมาเป็น Uncomplicated FireWall ราวกับว่า ufw ใช้ไฟร์วอลล์ตัวจริง และแน่นอนในหลายสถานที่มันจะเรียกว่าไฟร์วอลล์ต่อ se เช่นในบทความนี้

หน้าอูบุนตูช่วยเหลือ wiki บน UFWกล่าวว่า UFW เป็นเครื่องมือกำหนดค่าสำหรับ iptables (ในทางกลับกันหน้าช่วยเหลือวิกิบนไฟร์วอลล์บอกว่า iptables เป็นฐานข้อมูลของกฎไฟร์วอลล์และเป็นไฟร์วอลล์จริงราวกับว่าฐานข้อมูลเป็นไฟร์วอลล์ซึ่งเป็นเท็จอย่างเห็นได้ชัดและแน่นอน 'iptables' ก็เป็นเช่นกัน ชื่อของโปรแกรม)

หาก ufw เป็นเครื่องมือกำหนดค่าเราอาจคาดหวังว่ามันจะเป็นโปรแกรมที่คุณเรียกใช้เพื่อกำหนดค่าบางสิ่งและเมื่อเสร็จแล้วคุณจะออกจากการกำหนดค่าที่ได้รับการจัดตั้งขึ้น นั่นคือตำแหน่งของคำตอบที่ได้รับการยอมรับของคำถามนี้: เป็นบริการที่ไม่ซับซ้อน FireWall (ufw) หรือไม่?

แต่คำตอบอื่น ๆ สำหรับคำถามนั้นไม่เห็นด้วย - ไม่เป็นบริการ และบนเครื่อง 18.04 ของฉันฉันเห็นว่า ufw ทำงานเป็นบริการ! ทำไม heck จึงใช้เครื่องมือตั้งค่าเป็นบริการ!

นอกจากนี้systemctl list-units --all --type=serviceการแสดงufw.serviceเป็นloaded and active(และยังexited?) ยังแสดงให้เห็นว่าufw statusinactive

ดังนั้นสถานะ ufw = ไม่ได้ใช้งานหมายถึงอะไร

  1. "ไฟร์วอลล์" (ไม่ว่าจะเป็นอะไร) นั้นไม่ทำงาน? นั่นคือสิ่งที่เอกสาร ufw man page doc สำหรับ 'สถานะ' ที่จะแนะนำ

  2. หรือหมายความว่ากฎที่กำหนดค่าใน ufw นั้นไม่ทำงาน (แต่กฎอื่น ๆ ที่กำหนดค่าใน iptables ทำงานอยู่)

  3. หรือหมายความว่า ufw เริ่มต้นการบูทใส่กฎของมันไว้ใน ipconfig (หรือที่ใดก็ตามที่พวกเขาไป) เพื่อให้พวกมันมีผลบังคับใช้และตอนนี้ ufw ไม่มีอะไรทำเลยมันไม่ทำงานเลยเหรอ?

สิ่งที่น่าสนใจเป็นพิเศษ: ฉันต้องการทำตามคำแนะนำที่จำเป็นต้องใช้คำสั่ง iptables บางคำสั่ง แต่ฉันกังวลว่าพวกเขาจะขัดแย้งหรือถูกเขียนทับโดยเครื่องมือ ufw


2
iptables เป็นไฟร์วอลล์ นอกจากนี้ยังมีกฎเพราะเห็นได้ชัดว่าต้องการ แต่เรียกมันว่า 'ฐานข้อมูล' ยืดออกเล็กน้อยเนื่องจากเคอร์เนลไม่มีการคงอยู่ การโหลดมันในเวลาบูทจะต้องได้รับการดูแลโดยเครื่องมือบางอย่างเช่น ufw
— Jan Hudec

@JanHudec ฉันเห็นบางคนพูดคุยเกี่ยวกับ iptables ราวกับว่ามันเป็นไฟร์วอลล์ แต่เท่าที่ฉันสามารถบอกได้ netfilter มีฟังก์ชั่นไฟร์วอลล์ในขณะที่ iptables ให้วันที่สำหรับ netfilter ฉันชอบจุดของคุณที่ iptables เก็บข้อมูลไว้ในหน่วยความจำเท่านั้นดังนั้น "ฐานข้อมูล" ก็ทำให้เข้าใจผิด
— gwideman

ฉันเองคิดว่า netfilter จะเป็นส่วนหนึ่งของ iptables แต่ฉันอาจผิดในจุดนี้
— Jan Hudec

Zanna แก้ไขคำถามของฉันให้เป็นระเบียบเรียบร้อยเช่น URL (ขอบคุณ!) แต่ใช้แทนที่ "UFW" แทน "ufw" ทุกกรณี ตอนนี้ฉันเชื่อว่าตัวพิมพ์เล็กเป็นกรณีที่เหมาะสม (ดังที่แสดงในmanpages.ubuntu.com/manpages/xenial/en/man8/ufw.8.htmlและwiki.ubuntu.com/UncomplicatedFirewallแต่ฉันไม่สนใจในการแก้ไข ทำสงครามกับเรื่องนี้ Zanna โปรดกลับไปใช้ตัวพิมพ์เล็กถ้าคุณซื้อหลักฐานของฉัน
— gwideman

คำตอบ:


21

ufw เป็น front-end สำหรับ netfilter / iptables กลไก Linux สำหรับการกำหนดเส้นทางและกรองปริมาณการใช้งานอินเทอร์เน็ต

ufw เป็นทางเลือกที่สมบูรณ์และเป็นไปได้ที่จะสร้างไฟร์วอลล์และตารางเส้นทางโดยใช้คำสั่ง iptables โดยตรง บางคนชอบไวยากรณ์ของ ufw ซึ่งควรทำให้ง่ายขึ้นเล็กน้อย

ufw ตัวเองไม่ใช่ไฟร์วอลล์มันเป็นเครื่องมือสำหรับการตั้งค่าการกำหนดค่าของ netfilter / iptables มีการลงทะเบียนเป็นบริการเพราะจะต้องทำงานทุกครั้งที่เครื่องเริ่มทำงาน ฉันไม่เชื่อว่ามันจะยังคงอยู่ในหน่วยความจำหลังจากทำการตั้งค่านี้แล้ว "เริ่มต้นใหม่" บริการเพียงแค่เรียกใช้สคริปต์อีกครั้ง ไม่ใช่เรื่องผิดปกติสำหรับสิ่งต่าง ๆ ในลีนุกซ์ดิสทริบิวชันที่ต้องลงทะเบียนเป็นบริการแม้ว่าจะเป็นเพียงสคริปต์ที่รันตอนบูทหรือปิดเครื่องโดยไม่ต้องอาศัยอยู่ในนั้น

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

หากsudo ufw statusส่งคืน "ไม่ได้ใช้งาน" แสดงว่า ufw ถูกปิดใช้งาน (และจะไม่ใช้กฎใด ๆ เมื่อเริ่มต้น) คุณต้องแน่ใจว่าเปิดใช้งาน ufw ด้วยsudo ufw enableแม้ว่าคุณจะต้องกำหนดค่ากฎเพื่อให้มีความหมาย หากคุณแน่ใจว่าคุณเปิดใช้งาน ufw แล้ว แต่ส่งคืน "ไม่ได้ใช้งาน" อาจมีปัญหาอื่นอีก

โปรดทราบว่า "การเริ่มต้น" บริการไม่ได้เปิดใช้งาน ufw เพียงแค่เปิดใช้งานสคริปต์เริ่มต้น หาก ufw ถูกปิดใช้งานเมื่อสคริปต์เริ่มทำงานมันจะไม่ทำอะไรเลย

คุณสามารถบอกได้ว่ากฎไฟร์วอลล์ของคุณมีการใช้งานในเวลาใดก็ตามโดยใช้ iptables โดยตรง:

sudo iptables -L
sudo ip6tables -L

1
หมายเหตุ: โดยส่วนตัวฉันไม่ได้ใช้ ufw ฉันใช้แพ็คเกจที่เรียกว่า netfilter-persistent ซึ่งอนุญาตให้คุณเขียนกฎ iptables แบบเนทีฟลงในไฟล์และนำมาใช้ใหม่ตอนบูต ในการบูตมันทำสิ่งที่ ufw ทำ: รันสคริปต์เริ่มต้นซึ่งใช้การกำหนดค่า ความแตกต่างคือมันไม่ได้แปลจากซินแท็กซ์แบบง่ายของตัวเอง แต่มันแค่ส่งคำสั่ง iptables โดยตรงไปยัง iptables
— thomasrutter

มีสิ่งที่ดีมากมาย ขอบคุณ ที่นี่: "ถ้าคุณใช้ ufw คุณไม่สามารถตั้งค่ากฎ iptables ของคุณเองโดยใช้สคริปต์ของคุณเองเนื่องจากจะถูกเขียนทับเมื่อ ufw ตั้งค่าของตนเอง" ufw ลบกฎ iptables ที่มีอยู่ทั้งหมดหรือไม่ หรือคุณกำลังพูดกับ ufw ในรูปภาพคุณไม่สามารถพึ่งพาคำสั่ง / กฎ iptables ที่มีผลเพราะพวกเขาอาจถูกเขียนทับโดย ufw?
— gwideman

ยังรวมถึงโทมัส: "netfilter-persistent"> ที่เกี่ยวข้องกับ iptables-persistent หรือไม่
— gwideman

ใช่นั่นคือสิ่งที่มันเคยถูกเรียกว่า หากเวอร์ชั่น Ubuntu ของคุณมีทั้งสองอย่างแพคเกจ iptables-persistent อาจเป็นเพียงแพ็คเกจการเปลี่ยนผ่านเพื่อให้เส้นทางที่อัปเกรดแก่ผู้คนจากเวอร์ชันเก่า
— thomasrutter

1
ขออภัยถ้าฉันสับสนคุณพูดถึง resolv.conf ฉันเพิ่งใช้เป็นตัวอย่างของการกำหนดค่าอื่นใน Ubuntu ซึ่งอาจถูกควบคุมโดยบริการอื่น ๆ ที่แทนที่การเปลี่ยนแปลงที่คุณทำโดยตรง มันไม่ได้เชื่อมต่อ
— thomasrutter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.