iptables pomoc w odczytaniu.

Masz problemy z siecią bądź internetem? Zapytaj tu
biolkell
Beginner
Posty: 110
Rejestracja: 06 sierpnia 2013, 21:34

iptables pomoc w odczytaniu.

Post autor: biolkell »

ucze się iptables trochę poczytałem man i poradników z neta ale złożone reguł dalej nie rozumiem:/

iptables -A INPUT -s 192.168.1.90 -p tcp --dport 22 --tcp-flags ALL SYN -j ACCEPT

akceptuje wejście z komputera 192.168.1.90 na protokole tcp docelowy port( port wejścia ) 22 [ --tcp-flags ALL SYN tu nie bardzo rozumiem mam być sprawdzana flaga ALL, SYN czyli powrotne pakiety z potwierdzenia transmisji tcp] [-j jump target zrozumiałem to że akceptuje cały łańcuch, czyli całą transmisje ].

iptables -P INPUT ACCEPT
akceptuje łańcuchy przychodzące ? ( o co chodzi z tym łańcuchami chain?) jak rozumieć definicje z man (-P) docelowy łańcuch.

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

tego wogóle nie rozumiem chyba że chodzi o zaakceptowanie połączeń już używanych ?
piroaa
Beginner
Posty: 324
Rejestracja: 11 kwietnia 2008, 14:46

Post autor: piroaa »

Dzień dobry.
Sprawdź sobie jak pakiety podróżują przez poszczególne tabele i łańcuchy. Jest tak pakiet przychodzi do ciebie "wpada w iptables" tam są tabele a w nich łańcuchy w łańcuchach masz reguły pakiety przechodzą przez to wszystko w określonej kolejności. W łańcuchach dodajesz reguły które są sprawdzane kolejno z "góry na dół" jeśli w danym łańcuchu jest reguła która pasuje do danego pakietu stosowana jest akcja zawarta w tej regułce jeśli pakiet nie pasuje do żadnej reguły w danym łańcuchu stosowana jest polityka domyślna dla łańcucha.
Jak pakiet przejdzie przez wszystko i nie zostanie po drodze odrzucony "opuszcza iptables" i dociera tam gdzie był początkowo adresowany.
iptables -P INPUT ACCEPT
sprawi że będziesz akceptował cały ruch przychodzący chyba że masz reguły które wycinają jakiś rodzaj połączeń gdzieś po drodze. A mówiąc bardziej precyzyjnie ustawienie domyślnej polityki na ACCEPT w łańcuchu INPUT tabeli filter.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
tego wogóle nie rozumiem chyba że chodzi o zaakceptowanie połączeń już używanych ?
Z grubsza tak.
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

W najprostszej konfiguracji są dwie tabele:
Standardowa - jest tam prawie wszystko
NAT - gdzie są składowane reguły NAT (czyli ingerujące w ramkę i podmieniające adres źródłowy i/lub docelowy)

Trzy łańcuchy:
INPUT (to co przychodzi do urządzenia) urządzenie <- komputer
OUTPUT (to co wychodzi z urządzenia) urządzenie -> komputer
FORWARD (to co przechodzi przez urządzenie) komputer <-> urządzenie <-> komputer2

Każdy łańcuch może mieć kilka akcji:
DROP (porzucenie)
ACCEPT (zaakceptowanie)
REJECT (odrzucenie - informujące nadawce o odrzuceniu)
DNAT (zaakceptowanie a następnie podmiana adresu docelowego)
SNAT (zaakceptowanie a następnie podmiana adresu źródłowego)

State:
różne statusy pakietu,
NEW - nowy,
ESTABLISHED/RELATED - urządzenie przez który przechodzi pakiet oznacza markerem pakiet który wychodzi/wraca , jak wraca odpowiedź na ten pakiet (albo więcej pakietów dotyczących tego samego połączenia) wówczas sprawdzany jest czy ten pakiet należy do takiej rodziny, i ten pakiet łączy się logicznie z poprzednim. Stąd oznaczenia E/R - ułatwiają logiczne przyjęcie pakietu w sesji w której już na początku zgodziliśmy się na jego przyjęcie.
Awatar użytkownika
dedito
Moderator
Posty: 3515
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Post autor: dedito »

Na tym forum jest obszerny 4-częściowy artykuł na tema filtrowania pakietów przez iptables.
Jest tam między innymi rysunek pokazujący przepływ pakietów, który wiele wyjaśnia.
Awatar użytkownika
Yampress
Administrator
Posty: 6366
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

https://pl.wikipedia.org/wiki/Transmiss ... l_Protocol
iptables -A INPUT -s 192.168.1.90 -p tcp --dport 22 --tcp-flags ALL SYN -j ACCEPT


akceptuj połączenia na wejściu z adresu żródłowego
192.168.1.90 na protokole tcp, do portu docelowego 22 na maszynie aktualnej z flagami stanu połączenia SYN
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
wpuszczaj na wejściu polączenia już nawiązane SYN/ACK ACK


arturdziki90
Posty: 15
Rejestracja: 09 marca 2015, 10:08

Post autor: arturdziki90 »

Witam czy ktoś może sprawdzić czy dobrze myśle:
iptables -A OUTPUT -p SSH -j DROP
Poleceniem tym zablokuje tylko wychodzące z mojego komputera połączenia SSH.
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Zerknij do helpa jakie wartości przyjmuje parametr "-p".
Awatar użytkownika
dedito
Moderator
Posty: 3515
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Post autor: dedito »

arturdziki90 pisze:Witam czy ktoś może sprawdzić czy dobrze myśle:
iptables -A OUTPUT -p SSH -j DROP
Poleceniem tym zablokuje tylko wychodzące z mojego komputera połączenia SSH.
Sama konstrukcja poprawna, ale parametr -p raczej nie dopuszcza protokołów z warstwy aplikacji.
arturdziki90
Posty: 15
Rejestracja: 09 marca 2015, 10:08

Post autor: arturdziki90 »

faktycznie parametr -p domuszcza tylko protokoły warstwy transportowej (ICMP, UDP, TCP, itp.). Jak dobrze rozumiem nie ma możliwości zablokowania protokołu SSH na wszystkich portach nie tylko 22, nie blokując innych przy tym innych rzeczy.
Awatar użytkownika
dedito
Moderator
Posty: 3515
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Post autor: dedito »

Przy użyciu Iptables nie spotkałem się z taką możliwością jakiej oczekujesz.
Jeżeli koniecznie musi być to za pomocą Iptables to można by coś pokombinować za pomocą skanu procesów i dynamicznego dodawania/usuwania regułek z użyciem modułu '-m owner --pid' lub coś w ten deseń.
ODPOWIEDZ