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.