Jak PRZYGOTOWAĆ reguły zamiast DODAWAĆ za pomocą iptables?

65

Dość podstawowe pytanie: jak PRZYGOTOWAĆ reguły do ​​IPTABLES zamiast DOŁĄCZAĆ?

Mam DROPstwierdzenia na dole moich zasad. Mam oprogramowanie do dodawania nowych reguł, ale dodawanie reguł po DROPinstrukcjach nie jest dobre. Za każdym razem, gdy chcę dodać nową regułę, muszę opróżnić tabelę (co jest nieefektywne).

Czy istnieje sposób na dodanie reguły, tj. Dodanie reguły na górze tabeli, a nie na dole?

Wielkie dzięki.

ale
źródło

Odpowiedzi:

84

Użyj -Iprzełącznika:

sudo iptables -I INPUT 1 -i lo -j ACCEPT

To wstawiłoby regułę na pozycji nr 1 w łańcuchu INPUT.

Yanick Girouard
źródło
2
Dang! Pokonałeś mnie o 18 sekund ... Nie byłem wystarczająco szybki :(
Yanick Girouard
1
Hehehehehehehe :)
cjc
2
@YanickGirourad, hah, masz zaznaczenie!
cjc
5
Należy również pamiętać, że przy użyciu opcji -I INPUT 1 żadna reguła nie zostanie nadpisana. Zamiast tego wszystkie zasady zostaną przesunięte o jedną pozycję w górę.
Abdull
1
Ważna uwaga od Abdulla.
Halsafar
19

-Iwstawi. Prawdopodobnie używasz -Ado dołączania.

Możesz także iptables -I chain rulenumwstawić regułę jako liczbę „rulenum” w łańcuchu „łańcuch”. -R chain rulenummoże być użyty do zastąpienia określonej reguły pod numerem „rulenum” w łańcuchu „łańcuch”. iptables -L -n --line-numberspokaże numery reguł w lewej kolumnie.

cjc
źródło
W tej chwili jestem w pośpiechu, inaczej bym to rozejrzał, ale fajnie byłoby zobaczyć przykład działania „łańcucha” lub link.
PJ Brunet
//, zobacz fedoraproject.org/wiki/…, aby uzyskać więcej informacji na temat prawidłowego wstawiania reguły IPTables.
Nathan Basanese
2

Aby pomóc w ustaleniu, który numer wiersza dodać nową regułę, używam iptables-savedo wyprowadzenia istniejących reguł do konsoli.

Dla początkujących mogę również zasugerować kartę oszukiwającą, używając webmina, administrowania twoimi regułami. Jest bardzo przyjazny i można łatwo ręcznie zmienić kolejność reguł na liście. Poradzi sobie również z „niewielkimi” wariantami implementacji iptables opartych na redhat w porównaniu z Debianem.

AngryWombat
źródło
2
iptables -L --line-numbersjest trochę bardziej niezależny od platformy
Sirex
1
Nie jestem pewien, dlaczego należy do tego (lub cokolwiek innego) używać webmina. O wiele lepiej jest nauczyć się wiersza poleceń niż używać kuli.
Falcon Momot,
2

Istnieje program o nazwie, iptables-persistentktóry sprawia, że ​​reguły iptable są trwałe jako usługa systemu operacyjnego. ta usługa zawiera plik konfiguracyjny jako iptables-saveeksport.

Możesz więc zmienić kolejność wierszy w pliku konfiguracyjnym i ponownie uruchomić usługę.

sudo service iptables-persistent restart

Tak łatwo!!!!!

shgnInc
źródło