วิธีการติดตั้งและใช้งานไฟร์วอลล์ลินุกซ์

Linux เป็นหนึ่งในแพลตฟอร์มเดสก์ท็อปและเซิร์ฟเวอร์ที่ปลอดภัยที่สุดในโลก คุณจะพบว่าลีนุกซ์ดิสทริบิวชันส่วนใหญ่มีความปลอดภัยมากกว่าตัวใดตัวหนึ่งเมื่อแกะออกจากกล่อง Windows หรือ macOS. อันที่จริงแล้ว สำหรับกรณีใช้งานเดสก์ท็อปส่วนใหญ่ การรักษาความปลอดภัยที่มีให้ในลีนุกซ์รุ่นส่วนใหญ่จะให้บริการคุณเป็นอย่างดี ไม่ได้หมายความว่าคุณควรเพิกเฉยต่อความปลอดภัยของ ระบบปฏิบัติการ ที่คุณได้มอบหมายข้อมูลของคุณ อันที่จริงแล้ว คุณจะต้องรู้วิธีทำงานกับไฟร์วอลล์ Linux

ไฟร์วอลล์คืออะไร?

พูดง่ายๆ ไฟร์วอลล์คือระบบย่อยในคอมพิวเตอร์ที่บล็อกการรับส่งข้อมูลเครือข่ายบางอย่างไม่ให้เข้าหรือออกจากคอมพิวเตอร์ของคุณ ไฟร์วอลล์สามารถสร้างขึ้นเพื่อให้มีข้อจำกัดมาก (อนุญาตให้เข้าและ/หรือออกได้น้อยมาก) หรืออนุญาตอย่างมาก (อนุญาตให้เข้าและ/หรือออกได้ค่อนข้างน้อย) ไฟร์วอลล์มาในสองประเภทที่แตกต่างกัน:

  • ฮาร์ดแวร์—อุปกรณ์ทางกายภาพที่มีจุดประสงค์ในการปกป้องเครือข่ายของคุณเท่านั้น (และคอมพิวเตอร์ในเครือข่ายของคุณ)
  • ซอฟต์แวร์—ระบบย่อยในคอมพิวเตอร์แต่ละเครื่องที่ป้องกันเฉพาะเครื่องโฮสต์

เครือข่ายภายในบ้านส่วนใหญ่ขึ้นอยู่กับการรวมกันของทั้งสอง โซลูชันฮาร์ดแวร์โดยทั่วไปคือโมเด็ม/เราเตอร์ที่คุณ

ISP. หลายครั้งที่อุปกรณ์เหล่านี้ถูกตั้งค่าให้มีข้อจำกัดอย่างมาก ในด้านซอฟต์แวร์ คอมพิวเตอร์เดสก์ท็อปของคุณใช้ประโยชน์จากซอฟต์แวร์ไฟร์วอลล์ ไฟร์วอลล์ชนิดหนึ่งที่สามารถติดตั้งและใช้งานได้หลายตัว ลินุกซ์ การแจกแจง (เช่น Ubuntu และอนุพันธ์) is ไฟร์วอลล์ที่ไม่ซับซ้อน (UFW). ไฟร์วอลล์ที่ไม่ซับซ้อนเป็นสิ่งที่ดูเหมือน เป็นเครื่องมือง่ายๆ ที่ทำให้การจัดการการบล็อก/การอนุญาตการรับส่งข้อมูลเครือข่ายค่อนข้างง่าย UFW เป็นเครื่องมือบรรทัดคำสั่งเท่านั้นที่ช่วยรักษาความปลอดภัยคอมพิวเตอร์ Linux ของคุณได้ดีเยี่ยม

การติดตั้ง UFW

หน้าจอคำสั่งสถานะ UFW

บน Ubuntu และอนุพันธ์ของ Ubuntu ส่วนใหญ่ UWF ได้รับการติดตั้งแล้ว หากต้องการทราบว่ามีการติดตั้ง UFW บนคอมพิวเตอร์ของคุณหรือไม่ ให้เปิดหน้าต่างเทอร์มินัลแล้วออกคำสั่ง:

สถานะ sudo ufw 

คำสั่งนี้จะ (ส่วนใหญ่) รายงานว่า UFW ไม่ทำงาน หากคุณพบว่าไม่ได้ติดตั้ง UFW ให้ออกคำสั่ง

sudo apt-get ติดตั้ง ufw -y 

กำลังเปิดใช้งาน UFW

การเปิดใช้งานไฟร์วอลล์ UFW

เนื่องจาก UFW ไม่ได้ใช้งานโดยค่าเริ่มต้น คุณจึงต้องการเปิดใช้งาน โดยออกคำสั่ง

sudo ufw enableNow เมื่อคุณตรวจสอบสถานะ สถานะจะแสดงเป็นใช้งานอยู่ นโยบายเริ่มต้น

ไฟล์การกำหนดค่าใน UFW

ผู้ใช้ส่วนใหญ่จะไม่ต้องกังวลกับนโยบายเริ่มต้นมากเกินไป อย่างไรก็ตาม อย่างน้อย อย่างน้อยควรเข้าใจพื้นฐานของนโยบายเหล่านี้

นโยบายเริ่มต้นคือชุดของกฎกฎที่ควบคุมวิธีจัดการการรับส่งข้อมูลที่ไม่ตรงกับกฎอื่นๆ อย่างชัดเจน มีนโยบายเริ่มต้นสี่ประการ:

  • INPUT—การรับส่งข้อมูลเข้ามาในคอมพิวเตอร์
  • OUTPUT—การรับส่งข้อมูลออกจากคอมพิวเตอร์
  • FORWARD—การจราจรที่ส่งต่อจากปลายทางหนึ่งไปยังอีกที่หนึ่ง
  • นโยบายแอปพลิเคชัน—การรับส่งข้อมูลที่กำหนดโดยแอปพลิเคชัน (ไม่ใช่พอร์ตเครือข่าย)

สำหรับผู้ใช้ส่วนใหญ่ จะต้องกังวลเฉพาะนโยบาย INPUT และ OUTPUT

นโยบาย UFW เริ่มต้นถูกตั้งค่าในไฟล์ /etc/default/ufw. ออกคำสั่ง.

  • sudo nano / etc / default / ufw
    และมองหาสี่บรรทัดเหล่านี้:
    DEFAULT_INPUT_POLICY="DROP"
  • DEFAULT_OUTPUT_POLICY="ยอมรับ"
  • DEFAULT_FORWARD_POLICY="DROP"
  • DEFAULT_APPLICATION_POLICY="ข้าม"

สิ่งสำคัญคือต้องรู้ว่านโยบายข้างต้นแต่ละข้อสามารถปรับได้ด้วยค่าเริ่มต้นที่แตกต่างกันเล็กน้อย

  • INPUT/OUTPUT/FORWARD สามารถตั้งค่าเป็น ACCEPT, DROP หรือ REJECT
  • APPLICATION สามารถตั้งค่าเป็น ACCEPT, DROP, REJECT หรือ SKIP

ความแตกต่างระหว่าง ACCEPT, DROP และ REJECT คือ:

  • ยอมรับ—อนุญาตการรับส่งข้อมูลผ่านไฟร์วอลล์
  • ปฏิเสธ—ไม่อนุญาตให้มีการรับส่งข้อมูลผ่านไฟร์วอลล์และส่งข้อความที่ไม่สามารถเข้าถึงปลายทางของ ICMP กลับไปยังต้นทางที่ส่ง
  • DROP—ห้ามไม่ให้แพ็กเก็ตผ่านไฟร์วอลล์และไม่ส่งการตอบกลับ

คุณสามารถปรับนโยบายเริ่มต้นเพื่อให้เหมาะกับความต้องการของคุณ หากคุณเปลี่ยนนโยบายในไฟล์ ให้โหลดกฎ UFW ใหม่ด้วยคำสั่ง:

sudo ufw โหลดซ้ำ 

อนุญาตการจราจรขาเข้า

อนุญาตการรับส่งข้อมูล SSH ใน UFW

เนื่องจากคุณอาจไม่จำเป็นต้องเปลี่ยนนโยบายการรับส่งข้อมูลเริ่มต้น ให้เน้นที่การอนุญาตการรับส่งข้อมูลขาเข้า ตัวอย่างเช่น คุณต้องการรักษาความปลอดภัยให้กับเชลล์ในเดสก์ท็อปของคุณ (โดยใช้ปุ่ม ssh คำสั่ง) จากเครื่องอื่น สำหรับสิ่งนี้ คุณต้องสั่ง UFW เพื่ออนุญาตการรับส่งข้อมูลขาเข้าบนพอร์ต SSH มาตรฐาน (พอร์ต 22) คำสั่งสำหรับสิ่งนี้จะเป็น:

sudo ufw อนุญาต ssh 

คำสั่งข้างต้นจะอนุญาตให้เครื่องใดๆ ในเครือข่ายของคุณ (หรือแม้แต่นอกเครือข่ายของคุณ หากเราเตอร์ของคุณได้รับการกำหนดค่าให้อนุญาตการรับส่งข้อมูลภายนอก) เพื่อเข้าถึงคอมพิวเตอร์ของคุณผ่านพอร์ต 22

อนุญาตการรับส่งข้อมูล SSH จากที่อยู่ IP เฉพาะ

ทั้งหมดนั้นดีและดี เว้นแต่คุณต้องการอนุญาตเฉพาะคอมพิวเตอร์บางเครื่องในเครือข่ายของคุณ ตัวอย่างเช่น คุณต้องการอนุญาตคอมพิวเตอร์เครื่องเดียวในเครื่อง—คอมพิวเตอร์ที่มีที่อยู่ IP 192.168.1.162 สำหรับสิ่งนี้ คำสั่งจะเป็น:

sudo ufw อนุญาตจาก 192.168.1.162 ไปยังพอร์ตใด ๆ 22 

NS.

อนุญาตจาก

คำสั่งสั่ง UFW ว่าสิ่งต่อไปนี้คือที่อยู่สำหรับรับส่งข้อมูล NS.

ไปยังท่าเรือใด ๆ

สั่งให้ UFW อนุญาตทราฟฟิกพอร์ตที่ระบุ ในตัวอย่างข้างต้น

เท่านั้น

คอมพิวเตอร์ในเครือข่ายของคุณที่จะได้รับอนุญาตให้รักษาความปลอดภัยเชลล์ในคอมพิวเตอร์ของคุณจะเป็นเครื่องหนึ่งที่ที่อยู่ IP 192.168.1.162

คุณยังสามารถปฏิเสธการรับส่งข้อมูลไปยังอินเทอร์เฟซเครือข่ายที่ระบุได้ ตัวอย่างเช่น เครื่องของคุณมีอินเทอร์เฟซเครือข่ายสองอินเทอร์เฟซ:

  • ภายใน—ใช้อินเทอร์เฟซเครือข่าย ens5 พร้อมรูปแบบที่อยู่ IP 192.168.1.x
  • ภายนอก—ใช้อินเทอร์เฟซเครือข่าย enp0s3 พร้อมรูปแบบที่อยู่ IP 172.217.1.x

จะทำอย่างไรถ้าคุณต้องการออกจากกฎที่อนุญาตให้มีการรับส่งข้อมูล ssh ขาเข้าบน 192.168.1.162 แต่ปฏิเสธการรับส่งข้อมูลขาเข้าทั้งหมดจากอินเทอร์เฟซภายนอก สำหรับสิ่งนี้ คำสั่งจะเป็น:

sudo ufw ปฏิเสธใน enp0s3 ไปยังพอร์ต ssh 

ออกคำสั่ง.

สถานะ sudo ufw เพื่อดูว่าทราฟฟิก ssh จาก 192.168.1.162 ยังคงได้รับอนุญาต ในขณะที่การรับส่งข้อมูลจากอินเทอร์เฟซภายนอกถูกปฏิเสธ การลบกฎ

รายการกฎ UFW ตามหมายเลข

หากคุณพบว่าคุณได้สร้างกฎที่ทำให้เกิดปัญหากับคอมพิวเตอร์ที่เชื่อมต่อกับเครื่องของคุณ คุณสามารถลบกฎที่คุณสร้างขึ้นได้ สิ่งแรกที่คุณต้องการทำคือให้ UFW แสดงรายการกฎของคุณตามหมายเลข เมื่อต้องการทำสิ่งนี้ ให้ออกคำสั่ง:

sudo ufw สถานะหมายเลข 

สมมติว่าคุณต้องการลบกฎข้อที่ 1 เมื่อต้องการทำสิ่งนี้ ให้ออกคำสั่ง:

sudo ufw ลบ 1 

คุณจะได้รับแจ้งให้ยืนยันการลบกฎ พิมพ์ y และใช้ เข้า/กลับ บนแป้นพิมพ์ของคุณเพื่อยืนยัน ออกคำสั่ง.

สถานะ sudo ufw