bagaimana Anda membuat profil aplikasi untuk ufw?

31

Ufw memiliki perintah yang mencantumkan profil yang dapat Anda jelajahi lebih lanjut definisi profilnya

$ ufw app list

Dan

$ ufw app PROFILE {app profile title}

Saya bertanya-tanya bagaimana Anda dapat membuat profil untuk program yang tidak ditentukan, seperti kotak virtual dan memiliki profil yang menjalankan definisi yang sama dengan yang saya berikan iptables untuk distro Ubuntu saya.


Saya tidak hanya mencoba menggunakan firewall Ubuntus untuk melayani mesin virtual saya. Saya juga sangat ingin tahu bagaimana cara membuat profil untuk aplikasi yang tidak datang dengan satu.

Miphix
sumber

Jawaban:

36

Untuk menjawab pertanyaan sebenarnya, tentang cara membuat file aplikasi Anda sendiri, Anda hanya perlu tahu bahwa itu menggunakan format file 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

Baris ports dapat menentukan banyak port, dengan / udp atau / tcp, untuk membatasi protokol, jika tidak maka defaultnya adalah keduanya. Anda harus membagi bagian protokol dengan |.

Jadi, untuk serangkaian contoh kehidupan nyata yang saya buat:

[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

Anda dapat mendaftar beberapa versi aplikasi dalam satu file, seperti ini dari 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===

Setelah Anda menentukan file aplikasi Anda, masukkan /etc/ufw/applications.d, lalu katakan ufw untuk memuat ulang definisi aplikasi

ufw app update appname
ufw app info appname

Gunakan dengan sesuatu seperti:

ufw allow from 192.168.1.10 to any app amanda
ufw allow amanda

dengan asumsi 192.168.1.10 adalah IP dari server amanda Anda.

pengguna207998
sumber
sintaks Anda untuk menggabungkan udp dan tcp salah. Seharusnya begitu xx/tcp|yy/udp. Dengan kata lain, pemisahan antara protokol harus berupa pipa, bukan koma seperti pada contoh Anda
Hilikus
Contoh saya tidak mencoba untuk menggabungkan mereka, ini adalah daftar sederhana dari port-on-udp ini, beberapa-port-on-tcp lainnya.
user207998
Saya baru saja mencoba menggunakan netstatuntuk menemukan nama aplikasi ... apakah itu benar? Setidaknya itu berhasil untuk saya. Apakah ini case sensitif? Saya tidak benar-benar yakin apa hubungan antara "appname" di file aplikasi vs judul vs nama proses, dll.
intcreator
Netstat hanya mencantumkan nama proses yang terhubung ke port tertentu. Ini belum tentu cocok dengan nama aplikasi. Sebagai contoh, aplikasi postfix meluncurkan berbagai proses, termasuk proses 'master' yang membuka port 25. Saya memberi nama file konfigurasi aplikasi ufw berdasarkan, katakanlah, nama paket, yaitu 'Postfix' atau 'AMANDA'. Di dalam file konfigurasi ada satu atau lebih definisi aplikasi yang mewakili port yang dibuka oleh paket itu. Mungkin ada banyak, lihat paket 'postfix' sebagai contoh. Di sana nama-nama aplikasi bervariasi berdasarkan pada bagaimana postfix dikonfigurasikan.
user207998
untuk beberapa port tcp, apakah itu sebagai yang pertama atau yang terakhir? xx/tcp,xy/tcp,xz/tcpatauxx/tcp|xy/tcp|xz/tcp
errolflynn
10

Sebenarnya semua ada di halaman manual di bawah bagian "Integrasi Aplikasi".

Sintaks dasarnya adalah:

ufw allow <app_name>

Atau Anda dapat menggunakan sintaks yang diperluas untuk lebih spesifik:

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

Halaman manual secara khusus mengatakan tidak menyebutkan nomor port:

Anda tidak boleh menentukan protokol dengan sintaksis mana pun, dan dengan sintaks yang diperluas, gunakan aplikasi sebagai pengganti klausa port.

Ini mungkin berarti ia akan membiarkan <app_name>menggunakan port apa pun yang diinginkannya ..

Perintah lain yang bermanfaat:

ufw app info <app_name>

Yang mencantumkan informasi <app_name>di profil.

ufw app update <app_name>  

Yang memperbarui <app_name>profil. Anda dapat menggunakan alluntuk memperbarui semua profil aplikasi.

Anda dapat menggunakan:

ufw app update --add-new <app_name>  

perintah untuk menambahkan profil baru untuk <app_name>dan memperbaruinya, mengikuti aturan yang Anda tetapkan ufw app default <policy>.

Profil aplikasi disimpan di /etc/ufw/applications.ddan kadang-kadang /etc/services.

Untuk informasi lebih lanjut, lihat man ufw.

Seth
sumber
Ya, Anda tidak menentukan port di sintaks 'ufw allow' karena protokolnya seharusnya ditentukan, jika perlu, dalam file definisi aplikasi itu sendiri.
user207998