# [SOLVED] [NET] Problemy z iptables

## canis_lupus

Zachciało mi się firewalla, no więc zainstalowałem sobie iptables, skonfigurowałem jajko i stworzyłem sobie takie oto regułki:

```
iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -s 213.134.160.3 -j ACCEPT

iptables -A INPUT -s 213.134.160.6 -j ACCEPT

iptables -A INPUT -p TCP --dport ! 80 --syn -j DROP

iptables -A INPUT -p TCP --dport ! 22 --syn -j DROP

iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

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

iptables -A INPUT -s 127.0.0.1 -j ACCEPT

iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT

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

```

Albo mam coś w nich źle, albo mam źle jajko skonfigurowane, bo wywala mi błąd:

```
iptables: No chain/target/match by that name

iptables: No chain/target/match by that name
```

Droga eksperymentów doszedłem że błędy dotyczą linii:

```

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

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

```

Co mam źle? Czy te moje regułki w ogóle mają sens?

----------

## arek.k

Nie znam się na iptables na tyle, żeby analozować twoje regułki (i decydować, czy sa ok), ale błąd ten wygląda tak, jakbyś nie miał wkompilowanego w jądro NETFILTER_XT_MATCH_STATE (lub IP_NF_MATCH_STATE dla starszych kerneli).

Podobny problem opisywany był opisany w tym wątku.

----------

## Belliash

https://forums.gentoo.org/viewtopic-t-560497-start-0-postdays-0-postorder-asc-highlight-iptables.html

wyglada podobnie?

to zastosuj sie do zawartych w tym watku wskazowek i bedzie ok  :Wink: 

----------

## tuniek

Innymi słowy na przykład: 

```

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

```

to nie to samo co:

```

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

```

...

----------

## canis_lupus

Możesz wyjaśnić? Z iptables dopiero zaczynam, ale wydawało mi się że to to samo. Czym to się różni?

A przekompilowanie jajka pomogło. Dzięki wielkie.

----------

## tuniek

W zadadzie nie ma co tłumaczyć.  :Smile: 

man iptables 

po -j podajesz cel, jeśli pakiet pasuje do reguły to trafia do takiego celu w tym wypadku do "ACCEPT" ...  nie ma takiego celu jak "ACCEPT -m  state --state ESTABLISHED, RELATED" ... 

to coś to jest określenie reguły a to ma być przed podaniem celu. I tyle. W manualu dokładnie o tym pisze. 

Z grubsza reguła: 

łańcuch na którym działasz, specyfikacja, cel 

ale tylko z grubsza :>

----------

## canis_lupus

TEraz moje regułki wyglądają tak:

```
# czyszczÄ regĂłĹy

iptables -F

# Ustawiam domyĹne polityki

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

#Dopuszczam ruch przychodzÄcy

iptables -A INPUT -p tcp --dport 80 -m limit --limit 2/s -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -m limit --limit 2/s -j ACCEPT

iptables -A INPUT -p tcp --dport 50024 -j ACCEPT

iptables -A INPUT -p udp --dport 50034 -j ACCEPT

iptables -A INPUT -p udp --dport 50027 -j ACCEPT

iptables -A INPUT -p tcp --dport 35000 -j ACCEPT

#Dopuszczam ruch na DNSach

#iptables -A INPUT -s 213.134.160.3 -j ACCEPT

#iptables -A INPUT -s 213.134.160.6 -j ACCEPT

iptables -A OUTPUT -p udp -o eth0 --dport 53 --sport 1024:65535 -j ACCEPT

iptables -A INPUT -p udp -i eth0 --sport 53 --dport 1024:65535 -j ACCEPT

#Dopuszczam powrĂłt pinga

iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#Dopuszczam do ruchu poĹÄczniua juĹź nawiÄzane i powiÄzane

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

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

#Dopuszczam ruch na interfejsie lokalnym

iptables -A INPUT -s 127.0.0.1 -j ACCEPT

iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT

#Odrzucam szyskie poĹÄczenie nie na portach 80 i 22

#iptables -A INPUT -p TCP --dport ! 80 --syn -j DROP

#iptables -A INPUT -p TCP --dport ! 22 --syn -j DROP

#BlokujÄ nieprawidĹowe pakiety

iptables -A INPUT -p tcp -j DROP -m state --state INVALID

```

Mam tylko problem ze Skype'm. Nie mogę nawiązać zadnej rozmowy. Cały czas mam "Ringing". Wkonfiguracji mam żeby skype pracował na porcie 35000.

Ok, poradziłem sobie. Dodałem:

```
iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
```

bo skype po udp pracuje.

----------

## Mr Adam

przy okazji spytam się, gdzie iptables przechowuje regułki? 

wydaje mi się ze iptables nie działa poprawnie, jak mogę to sprawdzić?

----------

## Raku

 *tuniek wrote:*   

> W zadadzie nie ma co tłumaczyć. 
> 
> man iptables 
> 
> 

 

jak już odsyłasz kogoś i pouczasz, proponuję samemu sprawdzić, czy aby na pewno masz rację. Zaoszczędzisz sobie wstydu i zbłaźnienia...

```

piglet:/home/raczkow # iptables -A INPUT -p tcp -j ACCEPT -m state --state ESTABLISHED,RELATED

piglet:/home/raczkow # iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

ACCEPT     tcp  --  anywhere             anywhere            state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

piglet:/home/raczkow #                                                    

```

 *Quote:*   

> po -j podajesz cel, jeśli pakiet pasuje do reguły to trafia do takiego celu w tym wypadku do "ACCEPT" ...  nie ma takiego celu jak "ACCEPT -m  state --state ESTABLISHED, RELATED" ... 
> 
> to coś to jest określenie reguły a to ma być przed podaniem celu. I tyle. W manualu dokładnie o tym pisze. 
> 
> Z grubsza reguła: 
> ...

 

z grubsza to ziemia jest płaska... ale tylko z grubsza...

Żeby kogoś odsyłać do mana, trzeba mieć ze sobą wsparcie w postaci wiedzy i doświadczenia...   :Twisted Evil: 

----------

## arek.k

 *Mr Adam wrote:*   

> przy okazji spytam się, gdzie iptables przechowuje regułki?

  U mnie jest to /var/lib/iptables/rules-save i myślę, że dla gentoo domyślnie tam zapisuje tablicę.

 *Mr Adam wrote:*   

> wydaje mi się ze iptables nie działa poprawnie, jak mogę to sprawdzić?

  No tu już nie pownienem się wymądrzać, ale chodzi ci o iptables -L  :Wink: ? Chyba nie do końca rozumiem pytanie (jakiej odpowiedzi oczekujeszz)  :Wink: .

IMHO możesz sprawdzić, czy wszystko działa ok sprawdzając bezpośrednio - jak blokujesz ssh "z zewnątrz", to spróbuj się łączyć przez ssh "z zewnątrz". Jak możesz się połączyć, to nie działa.

Inny pomysł - skanowanie portów nmap'em. Np. mam publiczny ip 83.8.120.102, więc 

```
# nmap -p 22 83.8.120.102

# nmap -p 10-200 83.8.120.102
```

 sprawdzi, czy otwarty jest/są odpowiednio port 22 i porty z zakresu 10-200  :Wink: .

Pewnie jeszcze inne ciekawe pomysły miał by ktoś z większym doświadczeniem.

EDIT: poprawa literówek.

----------

## canis_lupus

 *Quote:*   

> jak już odsyłasz kogoś i pouczasz, proponuję samemu sprawdzić, czy aby na pewno masz rację. Zaoszczędzisz sobie wstydu i zbłaźnienia...
> 
> 

 

Czyli jednak moje regułki były ok?

----------

## tuniek

przepraszam Cie Raku kajam się przed Tobą i Twoim doświadczeniem. 

Errate Humanum Est. 

To że się pomyliłem, nie znaczy że nie mam wiedzy i doświadczenia. O guru Ty nasz Panie i Wybawco.

----------

## Raku

 *canis_lupus wrote:*   

> Czyli jednak moje regułki były ok?

 

tak - jak najbardziej były poprawne pod względem składni iptables. Czy generują poprawnie działający firewall - nie wiem, bo za bardzo nie mam czasu analizować skryptu.

 *tunek wrote:*   

> 
> 
> przepraszam Cie Raku kajam się przed Tobą i Twoim doświadczeniem.
> 
> Errate Humanum Est.
> ...

 

Popatrz na styl twoich wypowiedzi: te "..." na końcu pierwszej , ten "man iptables" w drugiej. Fajnie było zacfaniakować, gorzej, jak trafiło się na większego od siebie cfaniaka, prawda? (niech to pytanie pozostanie retorycznym)

----------

