Aby odpowiedzieć na prawdziwe pytanie, jak utworzyć własny plik aplikacji, wystarczy wiedzieć, że używa on formatu pliku Windows INI (fuj).
[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
Linia portów może określać wiele portów za pomocą / udp lub / tcp, aby ograniczyć protokół, w przeciwnym razie domyślnie oba. Musisz podzielić sekcje protokołu za pomocą |.
Tak więc dla prawdziwego zestawu przykładów stworzyłem:
[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
Możesz wyświetlić wiele wersji aplikacji w jednym pliku, na przykład tę z 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===
Po zdefiniowaniu pliku aplikacji włóż go /etc/ufw/applications.d
, a następnie powiedz ufw, aby ponownie załadował definicje aplikacji
ufw app update appname
ufw app info appname
Użyj go z czymś takim jak:
ufw allow from 192.168.1.10 to any app amanda
ufw allow amanda
zakładając, że 192.168.1.10 to adres IP twojego serwera amanda.
xx/tcp|yy/udp
. Innymi słowy, oddzielenie protokołów powinno być potokiem, a nie przecinkiem, jak w twoim przykładzienetstat
znaleźć nazwę aplikacji ... prawda? Przynajmniej mi to działało. Czy wielkość liter ma znaczenie? Nie jestem do końca pewien, jaki jest związek między „nazwą aplikacji” w pliku aplikacji a tytułem vs. nazwą procesu itp.xx/tcp,xy/tcp,xz/tcp
lubxx/tcp|xy/tcp|xz/tcp
Wszystko to znajduje się na stronie podręcznika w sekcji „Integracja aplikacji”.
Podstawowa składnia to:
Lub możesz użyć rozszerzonej składni, aby być bardziej szczegółowym:
Strona podręcznika wyraźnie mówi, aby nie podawać numeru portu:
Prawdopodobnie oznacza to, że pozwoli
<app_name>
użyć dowolnego portu, który chce…Inne przydatne polecenia:
Która zawiera informacje o
<app_name>
profilu.Który
<app_name>
profil aktualizuje . Możesz użyćall
do aktualizacji wszystkich profili aplikacji.Możesz użyć:
polecenie, aby dodać nowy profil
<app_name>
i zaktualizować go, zgodnie z ustalonymi regułamiufw app default <policy>
.Profile aplikacji są
/etc/ufw/applications.d
czasami przechowywane/etc/services
.Aby uzyskać więcej informacji zobacz
man ufw
.źródło