Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Usługi sieciowe Wykład 7 Zapora sieciowa, NAT iptables- debian Jarosław Kurek WZIM SGGW 1.

Podobne prezentacje


Prezentacja na temat: "Usługi sieciowe Wykład 7 Zapora sieciowa, NAT iptables- debian Jarosław Kurek WZIM SGGW 1."— Zapis prezentacji:

1 Usługi sieciowe Wykład 7 Zapora sieciowa, NAT iptables- debian Jarosław Kurek WZIM SGGW 1

2 Jak zmienić UUID dla dysków vdi Zmiana UUID pozwala na uruchomienie dwóch instancji VirtualBoxa (dwóch Dysków vdi) VBoxManage internalcommands setvdiuuid c:\...\disk2.vdi VBoxManage – domyślnie w katalogu c:\program files\sun\virtualbox

3 Iptables –podstawy Reguła, łańcuch, tabela W celu zbadania danego pakietu netfilter/iptables wykorzystuje tzw. reguły. Jest to najmniejsza jednostka filtra netfilter. Zawiera ona zbiór warunków, jakie musi spełniać pakiet oraz akcję, która zostanie wykonana gdy warunki zostaną spełnione. Pojedyncze reguły grupowane są w łańcuchy. Zbiór łańcuchów natomiast tworzy tabelę. Istnieją trzy tabele: 1. filter domyślna tabela; filtrowanie pakietów 2. nat tabela używana przez pakiety nawiązujące połączenie; translacja adresów 3. mangle tabela służąca do modyfikacji przepływających pakietów Każda z tabel zawiera kilka predefiniowanych łańcuchów oraz łańcuchy zdefiniowane przez administratora. Istnieją następujące predefiniowane łańcuchy: INPUT - wywoływany dla pakietów przybywających z sieci przeznaczonych dla lokalnej maszyny. FORWARD - wywoływany dla pakietów routowanych przez lokalną maszynę, lecz pochodzących spoza niej i nie przeznaczonych dla niej. OUTPUT - wywoływany dla pakietów tworzonych lokalnie i wychodzących poza maszynę. PREROUTING - wywoływany dla pakietów z zewnątrz jeszcze przed ich routowaniem. POSTROUTING - wywoływany dla pakietów, które właśnie opuszczają maszynę

4 Iptables – konfiguracja reguł Konfiguracja reguł Do zarządzania regułami służy polecenie iptables. Można je wywołać na następujące sposoby: iptables -t tabela -A łańcuch opis_reguły Dodaje regułę na koniec wskazanego łańcucha we wskazanej tabeli. Parametr -t można pominąć, zostanie wtedy użyta tabela filter. iptables -t tabela -D łańcuch opis_reguły Usuwa zadaną regułę z łańcucha. iptables -t tabela -I łańcuch numer_reguły opis_reguły Dodaje regułę we wskazanym miejscu łańcucha. Jeśli pominie się numer_reguły, reguła zostanie wstawiona na początku łańcucha. iptables -t tabela -R łańcuch numer_reguły opis_reguły Zamienia regułę wskazaną numerem na opisaną w poleceniu. iptables -t tabela -D łańcuch numer_reguły Usuwa regułę o podanym numerze. iptables -t tabela -L łańcuch Listuje reguły we wskazanym łańcuchu. Pominięcie nazwy łańcucha spowoduje wylistowanie całej zawartości tabeli. iptables -t tabela -N łańcuch Tworzy łańcuch użytkownika o zadanej nazwie. iptables -t tabela -X łańcuch Usuwa łańcuch użytkownika. Warunkiem jest brak odwołań do wskazanego łańcucha w innych łańcuchach. iptables -t tabela -P łańcuch domyślny_cel Ustawia policy (domyślną akcję) zadanego łańcucha

5 Iptables – przykłady iptables -P INPUT -j DROP blokujemy wszystko, co do nas dochodzi iptables -A INPUT -s /0 --dport 80 -j ACCEPT zezwalamy na ruch przychodzący z dowonego miejsca na nasz port :80 iptables -A INPUT -s dport 22 -j ACCEPT zezwalamy na połączenia ssh z maszyny o podanym adresie iptables -A INPUT -s j ACCEPT zezwalamy na połączenia od waldemara (DNS) iptables -A INPUT -p TCP -s ! syn -j DENY blokujemy dostęp do naszego komputera dla wszystkich adresów różnych od podanego, które mają ustawioną flagę SYN iptables -A INPUT -p icmp -j ACCEPT zaczynamy odpowiadać na ping (dotąd blokowała to pierwsza reguła) iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT przyjmujemy tylko odpowiedzi na nasze zapytania ping (usuń regułę powyżej, aby ta miała sens) iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT umożliwiamy korzystanie z portów 20, 21 przez klientów ftp (tylko passive mode) iptables -A INPUT -m state --state RELATED -j ACCEPT umożliwia korzystanie z klientów ftp w trybie aktywnym (potrzebne moduły: ip_conntrack i ip_conntrack_ftp) iptables -t nat -A POSTROUTING -s / o ppp0 -j MASQUERADE prosta maskarada czyli translacja adresów NAT umożliwiająca dostęp do ppp0 komputerom z sieci /8. UWAGA! Aby powyższe polecenie miało sens należy włączyć przekazywanie pakietów w jądrze linuxa: echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A PREROUTING -t nat -p tcp -d dport j DNAT --to :80 próba połączenia się z maszyną o wskazanym adresie i podanym porcie z maszyny w sieci lokalnej (w której działa NAT) spowoduje przekierowanie na :80 iptables -A OUTPUT -t nat -p tcp -d dport j DNAT --to :80 próba połączenia się z maszyną o wskazanym adresie i podanym porcie z komputera lokalnego spowoduje przekierowanie na :80

6 Iptables – warunki Najczęściej używane warunki to: -p protokół - protokół, do którego należy pakiet. Może być to tcp, udp, icmp lub all (wszystkie). Może być również użyta wartość numeryczna. Wykrzyknik przed nazwą protokołu odwraca znaczenie warunku. -s adres_źródłowy/maska - adres źródłowy pakietu. Maska może być zapisana tradycyjnie - w postaci czterech liczb oddzielonych kropkami, np bądź jako liczbę oznaczającą ilość bitów ustawionych po lewej stronie maski. W przypadku nie podania maski, przyjmowana jest wartość domyślna /32 - akceptowany jest więc tylko zadany adres. Wykrzyknik przed adresem odwraca znaczenie warunku. -d adres_źródłowy/maska - adres docelowy pakietu. Zasady zapisu adresu takie same, jak dla adresu źródłowego. -i interfejs - interfejs, z którego pakiet został przyjęty. Można użyć wykrzyknika dla odwrócenia znaczenia warunku. -o interfejs - interfejs, przez który pakiet zostanie wysłany. --source-port port - port źródłowy lub zakres portów wg. schematu port_minimalny:port_maksymalny. Użyteczne jedynie z -p tcp lub udp. --destination-port port - port docelowy lub zakres portów wg. schematu port_minimalny:port_maksymalny. Użyteczne jedynie z -p tcp lub udp.

7 Ćwiczenie 1 Udostępnianie połączenia internetowego Tworzymy sieć, którą można przedstawić następująco ----internet eth0-[serwer]--eth sieć lokalna----- eth0 - interfejs wychodzący/wchodzący internetowy eth1 - interfejs wychodzący/wchodzący na sieć lokalną

8 Ćwiczenie 1 Udostępnianie połączenia internetowego 1.) W przypadku gdy mamy adres IP przydzielany dynamicznie plik /etc/network/interfaces wygląda następująco: auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address netmask (Adres dla serwera w sieci lokalnej w powyższym przypadku to )

9 Ćwiczenie 1 Udostępnianie połączenia internetowego 2.) Posiadamy stały, zewnętrzny adres IP (posiadamy dane dotyczące zewnętrznego adresu ip, masce sieci, adres sieci, bramie) plik /etc/network/interfaces będzie wyglądal tak: auto lo iface lo inet loopback auto eth0 iface eth0 inet static address adres_ip_z_umowy netmask maska_sieci_z_imowy network adres_sieci_Z_umowy gateway brama_z_umowy auto eth1 iface eth1 inet static address netmask

10 Ćwiczenie 1 Udostępnianie połączenia internetowego nasz plik /etc/resolv.conf będzie wyglądał np. tak nameserver nameserver Po umieszczeniu prawidłowych wpisów restartujemy ustawienia interfejsów internetowych poleceniem /etc/init.d/networking restart

11 Ćwiczenie 1 Udostępnianie połączenia internetowego Teraz udostępnimy połączenie internetowe dla komputerów w sieci lokalnej – tworzymy plik /etc/init.d/firewall poleceniem: touch /etc/init.d/firewall i nadajemy mu uprawnienia do uruchamiania chmod +x /etc/init.d/firewall

12 Ćwiczenie 1 Udostępnianie połączenia internetowego edytujemy powyższy plik wpisując do niego poniższą zawartość (przykład) # uruchomienie przekazywania pakietów echo 1 > /proc/sys/net/ipv4/ip_forward #kasowanie starych reguł iptables -F iptables -X iptables -t nat -X iptables -t nat -F # polityka działania iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # polaczenia nawiazane iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # udostepniaie internetu dla sieci lokalnej iptables -t nat -A POSTROUTING -s /24 -j MASQUERADE iptables -A FORWARD -s /24 -j ACCEPT

13 Ćwiczenie 1 Udostępnianie połączenia internetowego Zapisujemy plik. Sprawdzamy czy działa: /etc/init.d/firewall Wydajemy polecenie za pomocą którego skrypt będzie uruchamiał się przy starcie systemu update-rc.d firewall defaults 20

14 Ćwiczenie 1 Udostępnianie połączenia internetowego Konfiguracja stanowisk w sieci Stanowisko 1 IP Maska Sieci Brama DNS'y Stanowisko 2 IP Maska Sieci Brama DNS'y

15 Ćwiczenie 1 Udostępnianie połączenia internetowego Jeżeli wszystko poprawnie wykonaliśmy sprawdzamy działanie ze stanowisk: Np. traceroute I potem traceroute

16 Ćwiczenie 2 Instalowanie skanera portów nmap Apt-get install nmap Użycie: nmap

17 Ćwiczenie 3 Włączenie ICMP na firewallu: SERVER_IP=" " iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d $SERVER_IP -m state - -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type 0 -s $SERVER_IP -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT Wyłączenie: iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP lub iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP

18 Ćwiczenie 4 Przepuszczenie WWW:

19 Ćwiczenie 5 Forwarding SSH do innego hosta w sieci lokalnej:

20 Ćwiczenie 6 Filtrowanie pakietów po MAC Aby dopuścić połączenia z internetem dla komputera z sieci lokalnej o adresie MAC: 4C:00:10:53:D5:47 należy wydać polecenie iptables -I FORWARD -m mac --mac-source 4C:00:10:53:D5:47 -j ACCEPT

21 Ćwiczenie 7 Filtrowanie pakietów po MAC Jeśli chcielibyśmy np dopuścić tylko połączenia na porcie 80 (protkół HTTP) to uczynimito poleceniem: # iptables -I FORWARD -p tcp --destination-port 80 -m mac --mac-source 4C:00:10:53:D5:47 -j ACCEPT

22 Ćwiczenie 8 Filtrowanie pakietów po MAC Jeśli chcielibyśmy np dopuścić tylko połączenia na porcie 80 (protkół HTTP) to uczynimito poleceniem: # iptables -I FORWARD -p tcp --destination-port 80 -m mac --mac-source 4C:00:10:53:D5:47 -j ACCEPT


Pobierz ppt "Usługi sieciowe Wykład 7 Zapora sieciowa, NAT iptables- debian Jarosław Kurek WZIM SGGW 1."

Podobne prezentacje


Reklamy Google