Narzędzia użytkownika

Narzędzia witryny


sk1:nf

Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
sk1:nf [2018/05/22 21:43]
jkonczak [Komendy]
sk1:nf [2020/06/09 12:20] (aktualna)
jkonczak [[Ekstra] Appendix]
Linia 113: Linia 113:
 ''​iptables -t mangle -A POSTROUTING -p tcp --sport 5222 -j TOS --set-tos Minimize-Delay''​ \\ ''​iptables -t mangle -A POSTROUTING -p tcp --sport 5222 -j TOS --set-tos Minimize-Delay''​ \\
  
-==== NAT (Network Address Translation) – translacja adresów ====+===== NAT (Network Address Translation) – translacja adresów ​=====
  
 Ze względu na niewystarczającą ilość adresów IPv4 zwykle komputery w sieciach lokalnych używają adresów //z bloków prywatnych//​. Ze względu na niewystarczającą ilość adresów IPv4 zwykle komputery w sieciach lokalnych używają adresów //z bloków prywatnych//​.
Linia 125: Linia 125:
 Jeśli zachodzi konieczność by ruch z sieci publicznej trafiał do komputera wewnątrz sieci lokalnej, trzeba zmienić adres docelowy (destination address), stąd nazwa //​Destination NAT// (//DNAT//). Naturalnie urządzenie na styku sieci musi zmienić adres zanim podejmie decyzję o routingu (tj. decyzję gdzie pakiet ma trafić). Jeśli zachodzi konieczność by ruch z sieci publicznej trafiał do komputera wewnątrz sieci lokalnej, trzeba zmienić adres docelowy (destination address), stąd nazwa //​Destination NAT// (//DNAT//). Naturalnie urządzenie na styku sieci musi zmienić adres zanim podejmie decyzję o routingu (tj. decyzję gdzie pakiet ma trafić).
  
 +++++ Ilustracja do NATów |
 +<​html><​div style="​border:​ 1px gray solid"></​html>​
 +{{:​sk1:​nat.svg|}}
 +SNAT:
 +  - PC1 chce wysłać pytanie DNS pod jakim adresem znajdzie serwer put.poznan.pl
 +  - PC1 adresuje wiadomość:​
 +    * w polu odbiorcy wpisuje 1.1.1.1 (znany adres serwera DNS)
 +    * w polu nadawcy wpisuje 192.168.0.2 (swój adres IP)
 +  - PC1 wysyła wiadomość przez bramę domyślną - router R1, adres 192.168.0.1
 +  - R1 wybiera trasę dla pakietu (wykonuje routing) i kieruje pakiet w stronę internetu
 +  - R1 po wykonaniu trasowania (POSTROUTING) dokonuje **translacji adres źródłowego**:​ \\ zamienia adres źródłowy z 192.168.0.2 na 93.184.216.34
 +  - R1 wysyła wiadomość w intenet
 +  - Serwer DNS (pod adresem 1.1.1.1) dostaje wiadomość adresowaną do niego z adresu 93.184.216.34 i odpowiada na nią adresując ją:
 +    * od 1.1.1.1 (od siebie)
 +    * do 93.184.216.34 (do adresu, z którego otrzymał pytanie)
 +  - R1 otrzymuje wiadomość z adresu 1.1.1.1 kierowaną na adres 93.184.216.34
 +  - Przed wykonaniem trasowania R1 sprawdza, czy pakiet należy do połączenia dla którego już wykonuje translację adresów. W tym przypadku tak – zamienia więc adres //​docelowy//​ z 93.184.216.34 na 192.168.0.2
 +  - R1 wykonuje trasowanie i określa, że pakiet kierowany do 192.168.0.2 ma trafić do PC1
 +  - PC1 otrzymuje odpowiedź z adresem źródłowym 1.1.1.1 i docelowym 192.168.0.2
 +DNAT:
 +  - PC1 wysyła żądanie nawiązania połączenia TCP na port 443 ze swojego do adresu 150.254.5.114
 +  - R1 wykonuje translację SNAT i wysyła w internet pakiet:
 +    * z adresu 93.184.216.34
 +    * do adresu 150.254.5.114
 +    * protokołu TCP, na port docelowy 443
 +  - R2 dostaje wiadomość z 93.184.216.34 na swój adres IP
 +  - Przed wykonaniem trasowania (PREROUTING) R2 sprawdza czy dla tego pakietu powinien wykonać trasowanie
 +  - R2 znajduje regułę: //pakiety TCP adresowane na port 443 tego komputera mają trafiać do 192.168.0.3//,​ więc dokonuje **translacji adresu docelowego**:​ zmienia adres docelowy 150.254.5.114 na 192.168.0.3
 +  - R2 wykonuje trasowanie i określa, że pakiet kierowany do 192.168.0.3 ma trafić do //Serwer WWW//
 +  - //Serwer WWW// otrzymuje pakiet:
 +    * z adresu 93.184.216.34
 +    * do adresu 192.168.0.3
 +  - //Serwer WWW// generuje w odpowiedzi pakiet i adresuje go:
 +    * od 192.168.0.3 (od siebie)
 +    * do 93.184.216.34 (do adresu, z którego otrzymał pytanie)
 +  - //Serwer WWW// przesyła odpowiedź do bramy domyślnej 192.168.0.1 (R2)
 +  - R2 określa, że pakiet kierowany do 93.184.216.34 ma iść do internetu i go tam kieruje
 +  - R2 po wykonaniu trasowania sprawdza, czy pakiet należy do połączenia dla którego już wykonuje translację adresów. W tym przypadku tak – zamienia więc adres //​źródłowy//​ z 192.168.0.3 na 150.254.5.114.
 +  - R2 wysyła pakiet do internetu
 +  - R1 otrzymuje pakiet ​
 +    * z adresu 150.254.5.114
 +    * do adresu 93.184.216.34
 +  - R1 wykonuje translację SNAT, wysyła pakiet do PC1
 +<​html></​div></​html>​
 +++++
  
 === iptables i stanowość firewalla === === iptables i stanowość firewalla ===
Linia 155: Linia 200:
 ===== [Ekstra] Appendix ===== ===== [Ekstra] Appendix =====
  
-Bardzo dobry artykuł o nftables, z wstępem opisującym historię filtrowania pakietów w Linuksie: https://badsector.pl/w-praktyce/artykuly/​nftables-nowy-firewall-linuksa-cz-1.195.html?full=1+Dobry artykuł o nftables, z wstępem opisującym historię filtrowania pakietów w Linuksie:​https://​randomseed.pl/pub/analizy/​nftables-nowy-firewall-linuksa/ ([[http://​www.cs.put.poznan.pl/​jkonczak/​archive/​Nftables_nowy_firewall_Linuksa_BADSECTOR_PL.html|kopia]])
  
 Inne moduły: Inne moduły:
Linia 163: Linia 208:
   *''​-p icmp''​ pozwala na filtrowania icmp, np: \\ ''​iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT''​   *''​-p icmp''​ pozwala na filtrowania icmp, np: \\ ''​iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT''​
  
-API systrmów ​Windows do tworzenia firewalli: https://​msdn.microsoft.com/​en-us/​library/​aa366510%28v=vs.85%29.aspx+API systemów ​Windows do tworzenia firewalli: https://​msdn.microsoft.com/​en-us/​library/​aa366510%28v=vs.85%29.aspx
  
  
sk1/nf.1527018194.txt.gz · ostatnio zmienione: 2018/05/22 21:43 przez jkonczak