Ubuntu: come aggiungere una regola iptables che UFW non può creare


15

UFW funziona davvero bene per me, tranne nei casi in cui non ...

Voglio essere in grado di aggiungere manualmente un'altra regola che verrà applicata all'avvio?

  • dove dovrei mettere questa regola?
  • come dovrei farlo partire all'avvio?
  • come faccio a farlo funzionare bene con UFW?

1
uww è una di quelle cose "quello che vedi è tutto ciò che ottieni" che rende più facile per i neofiti. Se hai bisogno di fare più di quello che può fare, considera di passare completamente a iptables. Che "funzioni davvero bene per me" è una buona prova del fatto che puoi provare qualcosa (iptables) più complicato (ma anche più flessibile).
halp

Risposte:


14

Secondo questa pagina wiki di Ubuntu (scorrere fino a "Funzionalità avanzate"), è possibile ottenere ciò che si desidera inserendo le proprie iptablesregole nei seguenti file:

  • /etc/ufw/before.rules
  • /etc/ufw/after.rules

Il beforefile viene valutato prima di ufwapplicare qualsiasi regola; il afterfile viene valutato dopo. (Esistono anche file corrispondenti before6e di after6regole, per le tue ip6tablesregole.)

Questi file di regole dovrebbero essere iptables-restoresintassi incompatibili, presumibilmente perché ufwsemplicemente li caricano usando iptables-restore. Infine, tieni presente che devi interrompere e riavviare ufwdopo aver apportato modifiche ai file delle regole.


3
Nota che puoi (forse involontariamente) cambiare la precedenza delle regole di iptables se dimentichi di standardizzare l'uso di -I o -A quando usi questi file. -I (inserire) aggiunge regole all'inizio della catena, valutate per prime, mentre -A (append) le aggiunge alla fine della catena. Ciò potrebbe causare risultati imprevisti se si utilizza -I nel file .after, ad esempio. Solo un pensiero.
Sam Halicke,

0

UFW eliminerà qualsiasi regola MANUALMENTE aggiunta in /etc/ufw/user.rulescui NON è preceduto da un commento:

### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 out
-A ufw-user-output -p tcp --dport 80 -j ACCEPT

Quando la sanità mentale di UFW verifica le regole all'avvio, si aspetta un commento di accompagnamento. Se NON è presente, anche se la sintassi della regola è corretta, UFW la eliminerà comunque.

E non usare semplicemente alcun commento arbitrario: DEVE essere il commento che UFW inserisce durante la creazione di una regola utente tramite cli, ovvero:

sudo ufw allow http/tcp

Quindi, se desideri pre-seeding di una serie di regole in un set di regole in un semplice file, dovrai comunque creare le regole tramite l'interfaccia CLI di UFW per apprendere la sintassi dei commenti che prevede che la regola passi la convalida e persista .

Prova quanto precede con e SENZA il commento e ricarica la regola HTTP di esempio sopra; noterai solo con il commento che la regola aggiunta manualmente sopravvive al riavvio ( abilitazione ufw ) di UFW.

Questo è un comportamento davvero controintuitivo e non documentato affatto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.