Ubuntu: Jak dodać regułę iptables, której UFW nie może utworzyć

15

UFW działa dla mnie naprawdę dobrze, z wyjątkiem przypadków, w których nie ...

Czy mogę ręcznie dodać kolejną regułę, która zostanie zastosowana podczas uruchamiania?

  • gdzie powinienem umieścić tę zasadę?
  • jak mam zacząć od uruchomienia?
  • jak sprawić, by gra ładnie działała w UFW?
Arthur Ulfeldt
źródło
1
ufw to jedna z tych rzeczy, które „widzisz, to wszystko, co dostajesz”, które ułatwiają początkującym. Jeśli potrzebujesz zrobić więcej, niż jest to w stanie zrobić, rozważ całkowite przejście na iptables. To, że „działa dla mnie naprawdę dobrze” jest dobrym dowodem na to, że możesz spróbować czegoś (iptables) bardziej skomplikowanego (ale także bardziej elastycznego).
halp

Odpowiedzi:

14

Zgodnie z tą stroną wiki Ubuntu (przewiń w dół do „Zaawansowanej funkcjonalności”), możesz osiągnąć to, co chcesz, umieszczając własne iptablesreguły w następujących plikach:

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

beforePlik jest oceniana zanim jakiekolwiek ufwsą stosowane zasady; afterplik jest oceniany po. (Istnieją również odpowiednie before6i after6reguły plików dla twoich ip6tablesreguł.)

Pliki reguł powinny mieć iptables-restoreniekompatybilną składnię, prawdopodobnie dlatego, że ufwpo prostu ładuje je iptables-restore. Na koniec pamiętaj, że musisz zatrzymać i uruchomić ponownie ufwpo wprowadzeniu jakichkolwiek zmian w plikach reguł.

Steven Monday
źródło
3
Zauważ, że możesz (być może nieumyślnie) zmienić pierwszeństwo reguł iptables, jeśli zapomnisz ustandaryzować użycie -I lub -A podczas korzystania z tych plików. -I (wstaw) dodaje reguły do ​​GÓRY łańcucha, najpierw oceniane, podczas gdy -A (dołącz) dodaje je do dolnej części łańcucha. Może to powodować nieoczekiwane wyniki, jeśli na przykład użyjesz -I w pliku .after. Tylko myśl.
Sam Halicke,
0

UFW usunie każdą RĘCZNIE dodaną regułę, w /etc/ufw/user.rulesktórej NIE jest poprzedzony komentarzem:

### 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

Kiedy rozsądek UFW sprawdza reguły przy uruchamianiu, oczekuje komentarza towarzyszącego. Jeśli NIE jest obecny, nawet jeśli składnia reguły jest poprawna, UFW nadal ją wyczyści.

I nie używaj tylko dowolnych komentarzy: MUSI to być komentarz, który UFW wstawiłby podczas tworzenia reguły użytkownika za pomocą cli, tj .:

sudo ufw allow http/tcp

Więc jeśli chcesz wstępnie zaszczepić serię reguł w zestawie reguł w prostym pliku, nadal musisz utworzyć reguły za pomocą interfejsu CLI UFW, aby poznać składnię komentarzy, których oczekuje, że reguła przejdzie sprawdzanie poprawności i będzie trwała .

Wypróbuj powyższe z komentarzem BEZ komentarza i BEZ, a następnie ponownie załaduj przykładową regułę HTTP powyżej; zauważysz tylko z komentarzem, czy ręcznie dodana reguła przetrwa restart ( UFW ) UFW.

Jest to naprawdę sprzeczne z intuicją zachowanie i wcale nie udokumentowane.

F1Linux
źródło