คุณจะสร้างโปรไฟล์แอปสำหรับ ufw ได้อย่างไร


31

Ufw มีคำสั่งที่แสดงรายการโปรไฟล์ที่คุณสามารถสำรวจคำจำกัดความของโปรไฟล์เพิ่มเติม

$ ufw app list

และ

$ ufw app PROFILE {app profile title}

ฉันสงสัยว่าคุณจะสามารถสร้างโปรไฟล์สำหรับโปรแกรมที่ไม่ได้กำหนดได้อย่างไรเช่นกล่องเสมือนและให้โปรไฟล์นั้นเรียกใช้คำจำกัดความเดียวกันกับที่ฉันให้ iptables สำหรับ distro Ubuntu ของฉัน


ไม่เพียง แต่ฉันพยายามใช้ไฟร์วอลล์ Ubuntus เพื่อให้บริการเครื่องเสมือนของฉัน ฉันยังอยากรู้อยากเห็นอย่างจริงใจว่าจะสร้างโปรไฟล์ให้กับแอปพลิเคชันที่ไม่ได้มาด้วยได้อย่างไร

คำตอบ:


36

เพื่อตอบคำถามจริงเกี่ยวกับวิธีสร้างไฟล์แอปพลิเคชันของคุณเองคุณเพียงแค่ต้องรู้ว่ามันกำลังใช้รูปแบบไฟล์ windows INI (yuck)

[appname]
title=1-liner here
description=a longer line here
ports=1,2,3,4,5,6,7,8,9,10,30/tcp|50/udp|53

บรรทัดพอร์ตสามารถระบุหลายพอร์ตด้วย / udp หรือ / tcp เพื่อ จำกัด โปรโตคอลไม่เช่นนั้นค่าเริ่มต้นจะเป็นทั้งสองอย่าง คุณต้องแบ่งส่วนโปรโตคอลด้วย |

ดังนั้นสำหรับตัวอย่างชีวิตจริงฉันได้ทำ:

[puppet]
title=puppet configuration manager
description=Puppet Open Source from http://www.puppetlabs.com/
ports=80,443,8140/tcp

[AMANDA]
title=AMANDA Backup
description=AMANDA the Advanced Maryland Automatic Network Disk Archiver
ports=10080

คุณสามารถแสดงรายการแอพหลายเวอร์ชันในไฟล์เดียวเช่นแอพนี้จาก apache:

===start of apache2.2-common file===
[Apache]
title=Web Server
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=80/tcp

[Apache Secure]
title=Web Server (HTTPS)
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=443/tcp

[Apache Full]
title=Web Server (HTTP,HTTPS)
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=80,443/tcp

===end of file===

เมื่อคุณกำหนดไฟล์แอปพลิเคชันของคุณแล้วให้ใส่เข้าไป/etc/ufw/applications.dแล้วบอก ufw เพื่อโหลดคำจำกัดความของแอปพลิเคชันด้วย

ufw app update appname
ufw app info appname

ใช้กับสิ่งที่ชอบ:

ufw allow from 192.168.1.10 to any app amanda
ufw allow amanda

สมมติว่า 192.168.1.10 เป็น IP ของเซิร์ฟเวอร์ amanda ของคุณ


ไวยากรณ์ของคุณสำหรับการรวม udp และ tcp ไม่ถูกต้อง xx/tcp|yy/udpมันควรจะเป็น กล่าวอีกนัยหนึ่งการแยกระหว่างโปรโตคอลควรเป็น
ไพพ์

ตัวอย่างของฉันไม่ได้พยายามที่จะรวมเข้าด้วยกันมันเป็นรายการง่าย ๆ ของพอร์ตนี้กับพอร์ต UDP, พอร์ตอื่น ๆ บนพอร์ต TCP
user207998

ฉันลองใช้netstatเพื่อค้นหาชื่อแอปพลิเคชัน ... ใช่ไหม? มันใช้งานได้สำหรับฉันอย่างน้อย เป็นกรณีที่ละเอียดอ่อนหรือไม่ ฉันไม่แน่ใจจริงๆว่าความสัมพันธ์ระหว่าง "appname" ในไฟล์แอปพลิเคชันกับชื่อเรื่องกับชื่อกระบวนการ ฯลฯ
อย่างไร

Netstat จะแสดงรายการชื่อกระบวนการที่เชื่อมต่อกับพอร์ตเฉพาะ สิ่งนี้ไม่จำเป็นต้องตรงกับชื่อของแอปพลิเคชัน ตัวอย่างเช่นแอปพลิเคชัน postfix เปิดใช้งานกระบวนการที่หลากหลายรวมถึงกระบวนการ 'ต้นแบบ' ที่เปิดพอร์ต 25 ฉันตั้งชื่อไฟล์กำหนดค่าแอป ufw โดยอ้างอิงชื่อแพคเกจเช่น 'Postfix' หรือ 'AMANDA' ภายในไฟล์กำหนดค่ามีแอปอย่างน้อยหนึ่งนิยามที่แสดงพอร์ตที่เปิดโดยแพ็คเกจนั้น อาจมีหลายรายการดูแพ็คเกจ 'postfix' เป็นตัวอย่าง ชื่อแอพจะแตกต่างกันไปตามการตั้งค่า postfix
user207998

สำหรับพอร์ต tcp หลายอันมันเป็นพอร์ตเก่าหรือพอร์ตหลังหรือไม่? xx/tcp,xy/tcp,xz/tcpหรือxx/tcp|xy/tcp|xz/tcp
errolflynn

10

มันมีอยู่ใน manpage ภายใต้หัวข้อ "Application Integration"

ไวยากรณ์พื้นฐานคือ:

ufw allow <app_name>

หรือคุณสามารถใช้ไวยากรณ์เพิ่มเติมเพื่อให้เฉพาะเจาะจงมากขึ้น:

ufw allow from <some_address> to any app <app_name>

manpage บอกเป็นพิเศษว่าจะไม่ระบุหมายเลขพอร์ต:

คุณไม่ควรระบุโปรโตคอลด้วยไวยากรณ์อย่างใดอย่างหนึ่งและด้วยไวยากรณ์เพิ่มเติมให้ใช้แอปแทนประโยคของพอร์ต

นี่อาจหมายความว่ามันจะอนุญาตให้<app_name>ใช้พอร์ตใดก็ได้ที่ต้องการ ..

คำสั่งที่มีประโยชน์อื่น ๆ :

ufw app info <app_name>

ซึ่งแสดงรายการข้อมูลใน<app_name>โปรไฟล์ของ

ufw app update <app_name>  

<app_name>โปรไฟล์ของการอัพเดตใด คุณสามารถใช้allเพื่ออัปเดตโปรไฟล์แอปพลิเคชันทั้งหมด

คุณสามารถใช้:

ufw app update --add-new <app_name>  

คำสั่งที่จะเพิ่มรายละเอียดใหม่และปรับปรุงตามกฎที่คุณกำหนดไว้ด้วย <app_name>ufw app default <policy>

โปรไฟล์ App จะถูกเก็บไว้ในและบางครั้ง/etc/ufw/applications.d/etc/services

man ufwสำหรับข้อมูลเพิ่มเติมโปรดดูที่


ใช่คุณไม่ได้ระบุพอร์ตในไวยากรณ์ 'ufw allow' เนื่องจากมีการระบุโปรโตคอลหากจำเป็นในไฟล์นิยามแอป
user207998
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.