Android

วิธีการตั้งค่าไฟร์วอลล์ด้วย ufw บน ubuntu 18.04

Ubuntu Server 18.04.1. Настройка файрвола UFW

Ubuntu Server 18.04.1. Настройка файрвола UFW

สารบัญ:

Anonim

ไฟร์วอลล์ที่ตั้งค่าไว้อย่างเหมาะสมเป็นหนึ่งในส่วนที่สำคัญที่สุดของความปลอดภัยของระบบโดยรวม โดยค่าเริ่มต้น Ubuntu มาพร้อมกับเครื่องมือกำหนดค่าไฟร์วอลล์ที่เรียกว่า UFW (Uncomplicated Firewall) UFW เป็น front-end ที่ใช้งานง่ายสำหรับการจัดการกฎไฟร์วอลล์ iptables และเป้าหมายหลักคือการทำให้การจัดการ iptables ง่ายขึ้นหรือตามชื่อที่ไม่ซับซ้อน

ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่มต้นด้วยบทช่วยสอนนี้ตรวจสอบให้แน่ใจว่าคุณได้ลงชื่อเข้าใช้เซิร์ฟเวอร์ด้วยบัญชีผู้ใช้ที่มีสิทธิ์ sudo หรือกับผู้ใช้รูท แนวปฏิบัติที่เหมาะสมที่สุดคือการรันคำสั่งการควบคุมดูแลในฐานะผู้ใช้ sudo แทนที่จะเป็นรูท หากคุณไม่มีผู้ใช้ sudo บนระบบ Ubuntu คุณสามารถสร้างได้โดยทำตามคำแนะนำเหล่านี้

ติดตั้ง UFW

ควรติดตั้งไฟร์วอลล์ที่ไม่ซับซ้อนโดยค่าเริ่มต้นใน Ubuntu 18.04 แต่หากไม่ได้ติดตั้งไว้ในระบบของคุณคุณสามารถติดตั้งแพ็คเกจโดยพิมพ์:

sudo apt install ufw

ตรวจสอบสถานะ UFW

เมื่อการติดตั้งเสร็จสมบูรณ์คุณสามารถตรวจสอบสถานะของ UFW ด้วยคำสั่งต่อไปนี้:

sudo ufw status verbose

UFW ถูกปิดใช้งานโดยค่าเริ่มต้น หากคุณไม่เคยเปิดใช้งาน UFW มาก่อนผลลัพธ์จะเป็นดังนี้:

Status: inactive

หากเปิดใช้งาน UFW เอาต์พุตจะมีลักษณะดังนี้:

นโยบายเริ่มต้นของ UFW

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

นโยบายเริ่มต้นถูกกำหนดไว้ในไฟล์ /etc/default/ufw และสามารถเปลี่ยนแปลงได้โดยใช้ sudo ufw default คำสั่ง

นโยบายไฟร์วอลล์เป็นพื้นฐานสำหรับการสร้างกฎที่ละเอียดและกำหนดโดยผู้ใช้มากขึ้น ในกรณีส่วนใหญ่นโยบายเริ่มต้น UFW เริ่มต้นเป็นจุดเริ่มต้นที่ดี

โปรไฟล์แอปพลิเคชัน

เมื่อติดตั้งแพคเกจด้วยคำสั่ง apt มันจะเพิ่มโปรไฟล์แอปพลิเคชันไปยังไดเร็กทอรี /etc/ufw/applications.d โปรไฟล์อธิบายบริการและมีการตั้งค่า UFW

คุณสามารถแสดงรายการแอปพลิเคชันทั้งหมดที่มีอยู่บนเซิร์ฟเวอร์ของคุณโดยพิมพ์:

sudo ufw app list

ขึ้นอยู่กับแพ็กเกจที่ติดตั้งบนระบบของคุณเอาต์พุตจะมีลักษณะคล้ายกับที่แสดงต่อไปนี้:

Available applications: Dovecot IMAP Dovecot POP3 Dovecot Secure IMAP Dovecot Secure POP3 Nginx Full Nginx HTTP Nginx HTTPS OpenSSH Postfix Postfix SMTPS Postfix Submission

หากต้องการค้นหาข้อมูลเพิ่มเติมเกี่ยวกับโปรไฟล์ที่ระบุและกฎที่รวมอยู่ให้ใช้คำสั่งต่อไปนี้:

sudo ufw app info 'Nginx Full'

Profile: Nginx Full Title: Web Server (Nginx, HTTP + HTTPS) Description: Small, but very powerful and efficient web server Ports: 80, 443/tcp

ดังที่คุณเห็นจากผลลัพธ์ด้านบนโปรไฟล์ 'Nginx Full' จะเปิดพอร์ต 80 และ 443

อนุญาตการเชื่อมต่อ SSH

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

ในการกำหนดค่าไฟร์วอลล์ UFW ของคุณให้อนุญาตการเชื่อมต่อ SSH ขาเข้าให้พิมพ์คำสั่งต่อไปนี้:

sudo ufw allow ssh

Rules updated Rules updated (v6)

หากคุณเปลี่ยนพอร์ต SSH เป็นพอร์ตที่กำหนดเองแทนพอร์ต 22 คุณจะต้องเปิดพอร์ตนั้น

ตัวอย่างเช่นถ้า ssh daemon ของคุณฟังพอร์ต 4422 คุณสามารถใช้คำสั่งต่อไปนี้เพื่ออนุญาตการเชื่อมต่อบนพอร์ตนั้น:

sudo ufw allow 4422/tcp

เปิดใช้งาน UFW

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

sudo ufw enable

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup

คุณจะได้รับการเตือนว่าการเปิดใช้งานไฟร์วอลล์อาจขัดขวางการเชื่อมต่อ ssh ที่มีอยู่เพียงแค่พิมพ์ y และกด Enter

อนุญาตการเชื่อมต่อบนพอร์ตอื่น

ขึ้นอยู่กับแอปพลิเคชันที่ทำงานบนเซิร์ฟเวอร์ของคุณและความต้องการเฉพาะของคุณคุณจะต้องอนุญาตการเข้าถึงพอร์ตอื่น ๆ ด้วย

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

เปิดพอร์ต 80 - HTTP

การเชื่อมต่อ HTTP สามารถทำได้ด้วยคำสั่งต่อไปนี้:

sudo ufw allow

แทนที่จะเป็น http คุณสามารถใช้หมายเลขพอร์ตได้ 80:

sudo ufw allow 80/tcp

หรือคุณสามารถใช้โปรไฟล์แอปพลิเคชันในกรณีนี้ 'Nginx

sudo ufw allow 'Nginx

เปิดพอร์ต 443 - HTTPS

การเชื่อมต่อ HTTP สามารถทำได้ด้วยคำสั่งต่อไปนี้:

sudo ufw allow

เพื่อให้ได้ผลลัพธ์ที่เหมือนกันแทนที่จะเป็นโปรไฟล์ https คุณสามารถใช้หมายเลขพอร์ตได้ 443 :

sudo ufw allow 443/tcp

หรือคุณสามารถใช้โปรไฟล์แอปพลิเคชัน 'Nginx

sudo ufw allow 'Nginx

เปิดพอร์ต 8080

sudo ufw allow 8080/tcp

อนุญาตช่วงของพอร์ต

แทนที่จะอนุญาตให้เข้าถึงพอร์ตเดียว UFW อนุญาตให้เราอนุญาตการเข้าถึงช่วงพอร์ต เมื่ออนุญาตช่วงของพอร์ตด้วย UFW คุณต้องระบุโปรโตคอลไม่ว่าจะเป็น tcp หรือ udp ตัวอย่างเช่นหากคุณต้องการอนุญาตพอร์ตจาก 7100 ถึง 7200 บนทั้ง tcp และ udp รันคำสั่งต่อไปนี้:

sudo ufw allow 7100:7200/tcp sudo ufw allow 7100:7200/udp

อนุญาตที่อยู่ IP เฉพาะ

หากต้องการอนุญาตการเข้าถึงพอร์ตทั้งหมดจากเครื่องที่บ้านของคุณด้วยที่อยู่ IP 64.63.62.61 ให้ระบุ from ตามด้วยที่อยู่ IP ที่คุณต้องการรายการที่อนุญาตพิเศษ:

sudo ufw allow from 64.63.62.61

อนุญาตที่อยู่ IP เฉพาะบนพอร์ตเฉพาะ

หากต้องการอนุญาตการเข้าถึงพอร์ตที่เจาะจงสมมติว่าพอร์ต 22 จากเครื่องทำงานของคุณด้วยที่อยู่ IP 64.63.62.61 ใช้ to any port ตามด้วยหมายเลขพอร์ต:

sudo ufw allow from 64.63.62.61 to any port 22

อนุญาตเครือข่ายย่อย

คำสั่งสำหรับการอนุญาตการเชื่อมต่อกับซับเน็ตของที่อยู่ IP นั้นเหมือนกับเมื่อใช้ที่อยู่ IP เดียวความแตกต่างเพียงอย่างเดียวคือคุณต้องระบุ netmask ตัวอย่างเช่นหากคุณต้องการอนุญาตการเข้าถึงที่อยู่ IP ตั้งแต่ 192.168.1.1 ถึง 192.168.1.254 ถึงพอร์ต 3360 (MySQL) คุณสามารถใช้คำสั่งนี้:

sudo ufw allow from 192.168.1.0/24 to any port 3306

อนุญาตการเชื่อมต่อกับอินเตอร์เฟสเครือข่ายเฉพาะ

หากต้องการอนุญาตการเข้าถึงบนพอร์ตที่เจาะจงสมมติว่าพอร์ต 3360 เฉพาะกับอินเทอร์เฟซเครือข่ายเฉพาะ eth2 คุณต้องระบุ allow in on และชื่อของอินเทอร์เฟซเครือข่าย:

sudo ufw allow in on eth2 to any port 3306

ปฏิเสธการเชื่อมต่อ

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

สมมติว่าคุณเปิดพอร์ต 80 และ 443 และเซิร์ฟเวอร์ของคุณถูกโจมตีจากเครือข่าย 23.24.25.0/24 หากต้องการปฏิเสธการเชื่อมต่อทั้งหมดจาก 23.24.25.0/24 คุณสามารถใช้คำสั่งต่อไปนี้:

sudo ufw deny from 23.24.25.0/24

sudo ufw deny from 23.24.25.0/24 to any port 80 sudo ufw deny from 23.24.25.0/24 to any port 443

การเขียนกฎการปฏิเสธนั้นเหมือนกับการอนุญาตให้เขียนกฎคุณจะต้องแทนที่การ allow ด้วยการ deny

ลบกฎ UFW

มีสองวิธีที่แตกต่างกันในการลบกฎ UFW ตามหมายเลขกฎและโดยการระบุกฎจริง

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

sudo ufw status numbered

Status: active To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 80/tcp ALLOW IN Anywhere 8080/tcp ALLOW IN Anywhere

ในการลบกฎหมายเลข 3 กฎที่อนุญาตให้เชื่อมต่อกับพอร์ต 8080 ใช้คำสั่งต่อไปนี้:

sudo ufw delete 3

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

sudo ufw delete allow 8069

ปิดการใช้งาน UFW

หากด้วยเหตุผลใดก็ตามที่คุณต้องการหยุด UFW และยกเลิกกฎทั้งหมดที่คุณสามารถใช้:

sudo ufw disable

ในภายหลังหากคุณต้องการเปิดใช้งาน UTF อีกครั้งและเปิดใช้งานกฎทั้งหมดเพียงแค่พิมพ์:

sudo ufw enable

รีเซ็ต UFW

การรีเซ็ต UFW จะปิดการใช้งาน UFW และลบกฎที่ใช้งานอยู่ทั้งหมด สิ่งนี้มีประโยชน์หากคุณต้องการยกเลิกการเปลี่ยนแปลงทั้งหมดและเริ่มใหม่

หากต้องการรีเซ็ต UFW เพียงพิมพ์คำสั่งต่อไปนี้:

sudo ufw reset

ข้อสรุป

คุณได้เรียนรู้วิธีการติดตั้งและกำหนดค่าไฟร์วอลล์ UFW บนเซิร์ฟเวอร์ Ubuntu 18.04 ของคุณ ตรวจสอบให้แน่ใจว่าการเชื่อมต่อขาเข้าทั้งหมดที่จำเป็นสำหรับการทำงานของระบบของคุณเหมาะสมในขณะที่ จำกัด การเชื่อมต่อที่ไม่จำเป็นทั้งหมด

ไฟร์วอลล์ ufw iptables ความปลอดภัยของ Ubuntu