Narzędzia użytkownika

Narzędzia witryny


bio-sk:iptables

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
bio-sk:iptables [2024/12/11 20:59]
jkonczak [Filtracja pakietów]
bio-sk:iptables [2025/12/04 00:48] (aktualna)
jkonczak
Linia 7: Linia 7:
 Do konfiguracji mechanizmów kernela składających się na netfilter służą Do konfiguracji mechanizmów kernela składających się na netfilter służą
 [[https://​upload.wikimedia.org/​wikipedia/​commons/​d/​dd/​Netfilter-components.svg|programy]]:​ [[https://​upload.wikimedia.org/​wikipedia/​commons/​d/​dd/​Netfilter-components.svg|programy]]:​
-  ​- **''​iptables''​**,​ **''​ip6tables''​**,​ <​small> ​ ''​ebtables'',​ ''​arptables''</​small>​ (starsze) +<​html><​div style="​margin-top:​-1.2em"></​div></​html>​ 
-  ​- <​small>​**''​nft''​**</​small> ​(nowszy) +  * **''​iptables''​**,​ **''​ip6tables''​**,​ <​small> ​ ''​ebtables'',​ ''​arptables''</​small>​ (starsze) 
 +  ​**''​nft''​** (nowszy) 
 +<​html><​div style="​margin-top:​-1.2em"></​div></​html>​
 [[http://​netfilter.org/​|Netfilter project]] jest zbiorem projektów związanych [[http://​netfilter.org/​|Netfilter project]] jest zbiorem projektów związanych
 z frameworkiem do filtrowania pakietów, w tym ''​iptables''​ i ''​nftables''​. z frameworkiem do filtrowania pakietów, w tym ''​iptables''​ i ''​nftables''​.
Linia 23: Linia 24:
 umie wykorzystać tylko pierwszy z tych mechanizmów. umie wykorzystać tylko pierwszy z tych mechanizmów.
 \\ \\
-Do użycia nowego mechanizmu zachowując bez zmiany składni i działania poleceń ​+Do użycia nowego mechanizmu zachowując bez zmiany składnię i działania poleceń ​
 przygotowano nową implementację komendy ''​ipables'',​ wcześniej dostępną jako przygotowano nową implementację komendy ''​ipables'',​ wcześniej dostępną jako
 ''​ipables-nft'',​ teraz często już jako ''​iptables''​. ''​ipables-nft'',​ teraz często już jako ''​iptables''​.
Linia 92: Linia 93:
 ==== [Ekstra] Trwałość reguł (persistance) ==== ==== [Ekstra] Trwałość reguł (persistance) ====
  
-Iptables ​nie dostarcza mechanizmu automatycznego zapisywania ustawień – po+''​iptables'' ​nie dostarcza mechanizmu automatycznego zapisywania ustawień – po
 ponownym uruchomieniu lista reguł jest pusta, a polityki domyślne. ponownym uruchomieniu lista reguł jest pusta, a polityki domyślne.
 Dla odtworzenia reguł przy starcie dystrybucje Linuksa dostarczają odpowiedni Dla odtworzenia reguł przy starcie dystrybucje Linuksa dostarczają odpowiedni
Linia 124: Linia 125:
   * **''​-j ACCEPT''​** – przepuszcza pakiet   * **''​-j ACCEPT''​** – przepuszcza pakiet
   * **''​-j DROP''​** – ignoruje (wyrzuca do śmieci) pakiet   * **''​-j DROP''​** – ignoruje (wyrzuca do śmieci) pakiet
-  * **''​-j REJECT''​** – dodatkowa akcja, symuluje zamknięte gniazdo (wysyła ICMP //​destination unreachable//​)+  * **''​-j REJECT''​** – dodatkowa akcja, symuluje zamknięte gniazdo (np. odsyła ICMP //​destination unreachable// czy odpowiada segmentem TCP z flagą //RST//)
 <​html><​div style="​margin-top:​-1.2em"></​div></​html>​ <​html><​div style="​margin-top:​-1.2em"></​div></​html>​
 Są też dostępne inne akcje, np. ''​LOG'',​ ''​MARK''​ i ''​SET''​. Więcej szczegółow w ''​man iptables-extensions''​ Są też dostępne inne akcje, np. ''​LOG'',​ ''​MARK''​ i ''​SET''​. Więcej szczegółow w ''​man iptables-extensions''​
Linia 148: Linia 149:
 Przykładowe rozszerzenia:​ Przykładowe rozszerzenia:​
 <​html><​div style="​margin-top:​-1.2em"></​div></​html>​ <​html><​div style="​margin-top:​-1.2em"></​div></​html>​
-  * ''​-m tcp/​udp''​ jest **automatycznie** ładowany razem z ''​-p udp/​tcp'';​ pozwala ustalić m. inn. port źródłowy i docelowy ''​--sport / --dport'',​+  * ''​-m tcp/​udp''​ jest **automatycznie** ładowany razem z ''​-p udp/​tcp''; ​\\ pozwala ustalić m. inn. port źródłowy i docelowy ''​--sport / --dport'',​
   * ''​-m conntrack'' ​ wybiera stan połączenia ''​--ctstate'',​ m. inn.: ''​INVALID,​NEW,​ESTABLISHED,​RELATED'',​   * ''​-m conntrack'' ​ wybiera stan połączenia ''​--ctstate'',​ m. inn.: ''​INVALID,​NEW,​ESTABLISHED,​RELATED'',​
   * ''​-m comment'' ​ pozwala na dowolny komentarz ''​--comment <​tekst>'',​   * ''​-m comment'' ​ pozwala na dowolny komentarz ''​--comment <​tekst>'',​
Linia 172: Linia 173:
  
 Najczęściej stosowana do wpuszczania tylko pożądanego ruchu. \\ Najczęściej stosowana do wpuszczania tylko pożądanego ruchu. \\
-Typowe podejście to zabronienie wszystkiego,​ co nie jest wprost dozwolone.+Typowe podejście to zabronienie wszystkiego,​ co nie jest wprost dozwolone. ​\\
  
 Przykładowe polecenia: \\ Przykładowe polecenia: \\
Linia 179: Linia 180:
 ''​iptables -A INPUT -m conntrack --ctstate RELATED,​ESTABLISHED -j ACCEPT'' ​ – pozwala przychodzić pakietom nawiązanych wcześniej połączeń \\ ''​iptables -A INPUT -m conntrack --ctstate RELATED,​ESTABLISHED -j ACCEPT'' ​ – pozwala przychodzić pakietom nawiązanych wcześniej połączeń \\
 ''​iptables -A INPUT -p tcp --dport 22 -j ACCEPT'' ​ – pozwala na dostęp do ssh ''​iptables -A INPUT -p tcp --dport 22 -j ACCEPT'' ​ – pozwala na dostęp do ssh
 +
 +__Uwaga__: konfigurując zdalnie firewall trzeba najpierw dodać regułę która
 +wpuszcza połączenie użyte do konfiguracji,​ przetestować że działa, a dopiero
 +potem dodawać reguły ograniczające ruch.
  
 === Filtracja pakietów przechodzących === === Filtracja pakietów przechodzących ===
Linia 208: Linia 213:
 [[iptables-filter-asciinema|Przykładowe komendy iptables ustawiające filtrację i ich działanie]] [[iptables-filter-asciinema|Przykładowe komendy iptables ustawiające filtrację i ich działanie]]
  
-==== Manipulowanie pakietami ====+==== [Ekstra] ​Manipulowanie pakietami ====
  
 Przykłady na manipulację pakietami: ​ \\ Przykłady na manipulację pakietami: ​ \\
Linia 320: Linia 325:
  
 Inne moduły: Inne moduły:
-  *''​ recent''​ pozwala filtrować biorąc pod uwagę wcześniejszą aktywność danego IP/ danej sieci, np: \\ ''​iptables -A INPUT -p tcp --dport 139 -m recent --name unwanted --set --seconds 15 -j DROP''​ \\  ''​iptables -A INPUT -m recent --update --seconds 15 -j DROP''​+  *''​ recent''​ pozwala filtrować biorąc pod uwagę wcześniejszą aktywność danego IP / danej sieci, np: \\ ''​iptables -A INPUT -p tcp --dport 139 -m recent --name unwanted --set --seconds 15 -j DROP''​ \\  ''​iptables -A INPUT -m recent --update --seconds 15 -j DROP''​
   * ''​string''​ pozwalający dopasowywać tekst i moduł ''​u32''​ pozwalający dopasowywać dana na podanej pozycji, np: \\ ''​iptables -A FORWARD -p udp --dport domain -m string --algo bm --hex-string '​|08|facebook|03|com|00|'​ -j LOG --log-prefix '​facebook ' ''​   * ''​string''​ pozwalający dopasowywać tekst i moduł ''​u32''​ pozwalający dopasowywać dana na podanej pozycji, np: \\ ''​iptables -A FORWARD -p udp --dport domain -m string --algo bm --hex-string '​|08|facebook|03|com|00|'​ -j LOG --log-prefix '​facebook ' ''​
   * ''​mac''​ pozwala filtrację adresów MAC, np: \\ ''​iptables -A input -m mac ! --mac-source 00:​12:​34:​56:​78:​ab -j DROP''​   * ''​mac''​ pozwala filtrację adresów MAC, np: \\ ''​iptables -A input -m mac ! --mac-source 00:​12:​34:​56:​78:​ab -j DROP''​
bio-sk/iptables.txt · ostatnio zmienione: 2025/12/04 00:48 przez jkonczak