คำตอบสั้น ๆ :
sudo ufw อนุญาตจาก <ที่อยู่ IP>/<ซับเน็ตมาสก์> ไปยังแอปใดๆ <ชื่อโปรไฟล์>
อย่าลืมอ้างอิง 'Dovecot IMAP' ในกรณีของคุณ
คำตอบที่ยาว:
ฉันลอง: $ sudo ufw อนุญาต "Dovecot IMAP" จาก 1.1.1.1
แม้ว่านั่นจะเป็นคำสั่งที่ใช้งานง่ายที่สุด ไวยากรณ์นั้นซับซ้อนกว่าเล็กน้อย
ฉันไม่รู้ว่าอะไร โดฟคอต IMAP คือ ดังนั้นฉันจะใช้ OpenVPN เป็นตัวอย่าง
เราต้องการอนุญาตโปรไฟล์แอปผ่าน ufw เท่านั้น หากมาจาก IP/subnet ที่แน่นอน
พิจารณาว่าเรามีดังต่อไปนี้ โปรไฟล์แอป ufw ในชื่อ /etc/ufw/applications.d/ เปิด VPN (ชื่อไฟล์โปรไฟล์มีความสำคัญที่นี่):
[โอเพ่นVPN]
ชื่อ = เซิร์ฟเวอร์ OpenVPN
Description=กฎนี้อนุญาตการเชื่อมต่อกับเซิร์ฟเวอร์ VPN ที่ <servername>
พอร์ต=8880/udp
บันทึก: เรากำลังใช้พอร์ตที่กำหนดเองที่นี่สำหรับ OpenVPN
ตอนนี้เพิ่มกฎเพื่อ ufw ด้วย:
sudo ufw อนุญาตจาก 10.0.0.0/24 ไปยังแอป openvpn ใด ๆ
นี่จะ เปิดพอร์ต ระบุไว้ใน /etc/ufw/applications.d/openvpn สำหรับขาเข้า สายสัมพันธ์จาก 10.0.0.0/24.
และตรวจสอบ:
sudo ufw สถานะ verbose
หากใช้งานได้คุณควรมีผลลัพธ์เช่น:
สถานะ: ใช้งานอยู่
การบันทึก: เปิด (ต่ำ)
เริ่มต้น: ปฏิเสธ (ขาเข้า), อนุญาต (ขาออก), อนุญาต (กำหนดเส้นทาง)
โปรไฟล์ใหม่: ข้าม
ถึงการดำเนินการจาก
-- ------ ----
8880/udp (OpenVPN) อนุญาตใน 10.0.0.0/24
ระวังชื่อไฟล์โปรไฟล์และชื่อบริการ
sudo ufw อนุญาตจาก 10.0.0.0/24 proto udp ไปยังพอร์ต openvpn ใด ๆ
นี่เป็นไวยากรณ์ที่คล้ายกันมากและถูกต้องเช่นกัน แต่จะใช้กับการกำหนดค่าพอร์ตของบริการใน /etc/services ซึ่งอาจไม่ใช่พอร์ตที่คุณต้องการอนุญาต (เช่น เราเปลี่ยนพอร์ต OpenVPN เป็น 8880)
ในกรณีนี้ เรายังมีรายการต่อไปนี้ใน /etc/services :
openvpn 1194/tcp
openvpn 1194/udp
Ufw รับรู้ เปิด VPN เป็นบริการเว้นแต่เราจะพูดเป็นอย่างอื่น
openvpn พอร์ตใด ๆ (<- บริการ)
แอพ openvpn ใด ๆ (<- โปรไฟล์แอพ)
ดังนั้นการออก sudo ufw อนุญาตจาก 10.0.0.0/24 proto udp ไปยังพอร์ต openvpn ใด ๆ
ผลลัพธ์ใน:
สถานะ: ใช้งานอยู่
การบันทึก: เปิด (ต่ำ)
เริ่มต้น: ปฏิเสธ (ขาเข้า), อนุญาต (ขาออก), อนุญาต (กำหนดเส้นทาง)
โปรไฟล์ใหม่: ข้าม
ถึงการดำเนินการจาก
-- ------ ----
1194/udp อนุญาตใน 10.0.0.0/24
ทางนี้ เราเปิดพอร์ตได้อย่างมีประสิทธิภาพ สำหรับ OpenVPN แต่ไม่ใช่พอร์ตที่เราระบุ ในโปรไฟล์แอป /etc/ufw/applications.d/openvpn ของเรา
ไม่เคยลอง แต่ควรใช้งานได้หากคุณเปลี่ยนพอร์ตใน /etc/services (เสี่ยงที่จะทำให้สิ่งอื่นพัง)
คุณสามารถตรวจสอบ manpage ของ Ubuntu นี้ สำหรับข้อมูลโดยละเอียดเกี่ยวกับคำสั่ง ufw
หวังว่ามันจะช่วยได้