Ubuntu Server 18.04.1. Настройка файрвола UFW
สารบัญ:
- ข้อกำหนดเบื้องต้น
- ติดตั้ง UFW
- ตรวจสอบสถานะ UFW
- นโยบายเริ่มต้นของ UFW
- โปรไฟล์แอปพลิเคชัน
- อนุญาตการเชื่อมต่อ SSH
- เปิดใช้งาน UFW
- อนุญาตการเชื่อมต่อบนพอร์ตอื่น
- เปิดพอร์ต 80 - HTTP
- เปิดพอร์ต 443 - HTTPS
- เปิดพอร์ต 8080
- อนุญาตช่วงของพอร์ต
- อนุญาตที่อยู่ IP เฉพาะ
- อนุญาตที่อยู่ IP เฉพาะบนพอร์ตเฉพาะ
- อนุญาตเครือข่ายย่อย
- อนุญาตการเชื่อมต่อกับอินเตอร์เฟสเครือข่ายเฉพาะ
- ปฏิเสธการเชื่อมต่อ
- ลบกฎ UFW
- ปิดการใช้งาน UFW
- รีเซ็ต UFW
- ข้อสรุป
ไฟร์วอลล์ที่ตั้งค่าไว้อย่างเหมาะสมเป็นหนึ่งในส่วนที่สำคัญที่สุดของความปลอดภัยของระบบโดยรวม โดยค่าเริ่มต้น Ubuntu มาพร้อมกับเครื่องมือกำหนดค่าไฟร์วอลล์ที่เรียกว่า UFW (Uncomplicated Firewall) UFW เป็น front-end ที่ใช้งานง่ายสำหรับการจัดการกฎไฟร์วอลล์ iptables และเป้าหมายหลักคือการทำให้การจัดการ iptables ง่ายขึ้นหรือตามชื่อที่ไม่ซับซ้อน
ข้อกำหนดเบื้องต้น
ก่อนที่คุณจะเริ่มต้นด้วยบทช่วยสอนนี้ตรวจสอบให้แน่ใจว่าคุณได้ลงชื่อเข้าใช้เซิร์ฟเวอร์ด้วยบัญชีผู้ใช้ที่มีสิทธิ์ sudo หรือกับผู้ใช้รูท แนวปฏิบัติที่เหมาะสมที่สุดคือการรันคำสั่งการควบคุมดูแลในฐานะผู้ใช้ sudo แทนที่จะเป็นรูท หากคุณไม่มีผู้ใช้ sudo บนระบบ Ubuntu คุณสามารถสร้างได้โดยทำตามคำแนะนำเหล่านี้
ติดตั้ง UFW
ควรติดตั้งไฟร์วอลล์ที่ไม่ซับซ้อนโดยค่าเริ่มต้นใน Ubuntu 18.04 แต่หากไม่ได้ติดตั้งไว้ในระบบของคุณคุณสามารถติดตั้งแพ็คเกจโดยพิมพ์:
ตรวจสอบสถานะ 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
คุณสามารถใช้คำสั่งต่อไปนี้เพื่ออนุญาตการเชื่อมต่อบนพอร์ตนั้น:
เปิดใช้งาน 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
เปิดพอร์ต 443 - HTTPS
การเชื่อมต่อ HTTP สามารถทำได้ด้วยคำสั่งต่อไปนี้:
sudo ufw allow
เพื่อให้ได้ผลลัพธ์ที่เหมือนกันแทนที่จะเป็นโปรไฟล์
https
คุณสามารถใช้หมายเลขพอร์ตได้
443
:
sudo ufw allow 443/tcp
หรือคุณสามารถใช้โปรไฟล์แอปพลิเคชัน 'Nginx
เปิดพอร์ต 8080
อนุญาตช่วงของพอร์ต
แทนที่จะอนุญาตให้เข้าถึงพอร์ตเดียว 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
คุณสามารถลบได้ด้วย:
ปิดการใช้งาน UFW
หากด้วยเหตุผลใดก็ตามที่คุณต้องการหยุด UFW และยกเลิกกฎทั้งหมดที่คุณสามารถใช้:
sudo ufw disable
ในภายหลังหากคุณต้องการเปิดใช้งาน UTF อีกครั้งและเปิดใช้งานกฎทั้งหมดเพียงแค่พิมพ์:
รีเซ็ต UFW
การรีเซ็ต UFW จะปิดการใช้งาน UFW และลบกฎที่ใช้งานอยู่ทั้งหมด สิ่งนี้มีประโยชน์หากคุณต้องการยกเลิกการเปลี่ยนแปลงทั้งหมดและเริ่มใหม่
หากต้องการรีเซ็ต UFW เพียงพิมพ์คำสั่งต่อไปนี้:
ข้อสรุป
คุณได้เรียนรู้วิธีการติดตั้งและกำหนดค่าไฟร์วอลล์ UFW บนเซิร์ฟเวอร์ Ubuntu 18.04 ของคุณ ตรวจสอบให้แน่ใจว่าการเชื่อมต่อขาเข้าทั้งหมดที่จำเป็นสำหรับการทำงานของระบบของคุณเหมาะสมในขณะที่ จำกัด การเชื่อมต่อที่ไม่จำเป็นทั้งหมด
ไฟร์วอลล์ ufw iptables ความปลอดภัยของ UbuntuMicrosoft Tweaks Ad หลังจากที่ Apple บ่น

เรื่องราว "Laptop Hunter" ยังคงมีน้อยลงเล็กน้อย Apple-bashing
วิธีแสดงและลบกฎไฟร์วอลล์ ufw

UFW ย่อมาจากไฟร์วอลล์ที่ไม่ซับซ้อนและเป็น frontend ที่ใช้งานง่ายสำหรับการจัดการกฎไฟร์วอลล์ iptables (netfilter) ในบทช่วยสอนนี้เราจะกล่าวถึงวิธีแสดงและลบกฎไฟร์วอลล์ UFW
วิธีตั้งค่าไฟร์วอลล์ด้วย ufw บนเดเบียน 9

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