Przenieś regułę iptables (bez usuwania i dodawania)

18

Czy istnieje sposób na przesunięcie reguły iptablesi zmianę jej pozycji? Wiem, że mogę użyć, -Iaby wstawić regułę w określonej pozycji, ale lubię też utrzymywać liczniki.

Rabin
źródło

Odpowiedzi:

7

Nie, nie możesz przenieść reguły. Można jednak ustawić licznik dla każdej dodawanej / wstawianej / zastępowanej reguły (za pomocą parametru -club --set-counters). Aby sprawdzić bieżącą liczbę, usunąć regułę i ponownie wprowadzić ją ze starą wartością zliczania.

itsbruce
źródło
29

Możesz także wykonać następujące czynności

  1. Zapisz dane wyjściowe w iptables-savepliku: iptables-save > /tmp/iptables.txt
  2. Edytuj ten plik za pomocą edytora tekstu i przesuń dowolną linię.
  3. Załaduj ponownie plik: iptables-restore < /tmp/iptables.txt
Vadim Sluzky
źródło
4

Aby zobaczyć, co masz i co chcesz zmienić, najpierw musisz wykonać badanie.

1) Sprawdź liczniki i zapisz je gdzieś, aby móc wprowadzić je później.

iptables-save -c

2) Sprawdź linię, której chcesz zastąpić / zmienić pozycję

iptables -L -v -n --line-n

3) Zapisz regułę w wyznaczonym ŁAŃCUCHU i dodaj liczniki wyjaśnione w kroku dalej. Na przykład.

iptables -R INPUT 5 -i virbr0 -p udp -m udp -c 3441 472271 --dport 53 -j ACCEPT -m comment --comment "Some comment"

Znaczenie -c

-c [packets:bytes]

Powyższa reguła iptables zostanie wprowadzona w linii 5.

Uwaga. Zapisz reguły iptables, dzięki iptables-save -c /somepath/iptrules-$(date +%F) którym zachowane zostaną liczniki.

Valentin Bajrami
źródło