Wdrażanie i zarządzanie serwerami zabezpieczającymi Koncepcja ochrony sieci komputerowej Marcin Kłopocki /170277/ Przemysła Michalczyk /170279/ Bartosz Połaniecki /170127/ Tomasz Skibiński /170128/
Styk z providerem adres: 212.89.51.75 Router (eth4) adres: 212.89.51.76 Punkt dostępowy zewnętrzny (eth2) adres: 192.168.1.5/24 Router połączenie podsieci (eth1) adres: 192.168.8.1/30 Serwer www (eth3) adres: 192.168.1.10/24 Podsieć wewnętrzna adresacja: 192.168.2.11+/24 Router połączenie podsieci (eth1) adres: 192.168.8.2/30 Punkt dostępowy wewnętrzny (eth2) adres: 192.168.2.5/24 Serwer WWW Serwer DNS Router połączenie podsieci (eth4) adres: 192.168.8.5/30 Switch (eth3) adres: 192.168.2.10/24 Serwer IDS Serwer DB Router połączenie podsieci (eth1) adres: 192.168.8.6/30 Podsieć wewnętrzna adresacja: 192.168.100.0/24 Grupa 1 Wdrażanie i zarządzanie serwerami zabezpieczeń Semestr zima 2011/2012
Założenia projektu Wszystkie urządzenia sieciowe oparte są na na bazie systemu operacyjnego Linux Każde z urządzeń potrafi obsłużyć podstawowy filtr pakietów iptables Urządzenia routujące ruch pakietów odpowiadają za: filtrowanie ruchu, podstawową ochronę przed najpopularniejszymi atakami, Założenia zewnętrzne (narzucone) WiFi zewnętrzne jest umieszczone w strefie DMZ- dostęp tylko do serwera WWW z DMZ WiFi wewnętrzne jest umieszczone w sieci peryferyjnej -.użytkownicy mają dostęp do usług wewnętrznych, ale nie do komputerów wewnętrznej Zaniedbujemy problem logowania się do sieci WiFi (można założyć jakiś sposób szyfrowania) Usługi wewnętrzne dostępne są tylko dla użytkowników sieci wewnętrznej oraz użytkowników WiFi wewnętrznego WiZSZ, Koncepcja ochrony sieci komputerowej 2 z 10
Reguły wspólne dla routerów sieci # ochrona przed atakiem typu Smurf echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # blokada ipspoofing echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter # ochrona przed atakami syn cookies echo 1 > /proc/sys/net/ipv4/tcp_syncookies # brak reakcji na fałszywe komunikaty o błędach echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses # nie akceptujemy pakietów "source route" echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route # nie przyjmujemy pakietów ICMP redirect echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects # włącza logowanie dziwnych (spoofed, source routed, redirects) echo 1 > /proc/sys/net/ipv4/conf/all/log_martians # wyłączamy odpowiedzi na pingi / PING OF DEATH echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # nie przyjmujemy pakietów ICMP redict, które mogą zmienić tablice routingu echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects # nie przyjmujemy pakietow z sieci innych niż te z tablicy routingu echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter # filtrowanie różnego typu skanowań portów wraz z logowaniem SYN,RST,ACK,FIN,URG,PSH SYN -j LOG --log-prefix "syn_scan" SYN,RST,ACK,FIN,URG,PSH SYN -j DROP SYN,RST,ACK,FIN,URG,PSH ACK -j LOG --log-prefix "flags_scan" SYN,RST,ACK,FIN,URG,PSH ACK -j DROP SYN,RST,ACK,FIN,URG,PSH FIN -j LOG --log-prefix "flags_scan" SYN,RST,ACK,FIN,URG,PSH FIN -j DROP SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j LOG --log-prefix "xmas_scan" SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP WiZSZ, Koncepcja ochrony sieci komputerowej 3 z 10
# otwarte porty do komunikacji SSH, ułatwiające konfigurację iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --sport 22 -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT # Ochrona przed atakami typu Land iptables -A INPUT -s 10.0.0.0/8 -j DROP iptables -A INPUT -s 172.16.0.0/12 -j DROP iptables -A INPUT -d 224.0.0.0/4 -j DROP iptables -A INPUT -s 240.0.0.0/5 -j DROP # klasa A # klasa B # multicast # reserved Router brzegowy Router posiada podstawowe mechanizmy ochrony przed zagrożeniami, filtruje pakiety, dokonuje podstawowej obrony przed sfałszowanymi pakietami i najpopularniejszymi atakami. Posiada także otwarty dostęp do usługi SSH (secure shell). Połączenia z tą usługą są akceptowane zarówno z sieci Internet jak i bezpośrednio przyłączonych urządzeń sieciowych. Uruchomione usługi: serwer DHCP na porcie eth2 i eth3 (vswitch lub bridge group) Opis interfejsów: eth1 połączenie do podsieci podrzędnej eth2 punkt dostępowy zewnętrzny eth3 serwer www dla podsieci zewnętrznej i internetu eth4 styk z usługodawcą dostarczającym usługę dostępu do internetu # reguła prywatna dla land iptables -A INPUT -i eth4 -s 192.168.0.0/16 -j DROP # atak land # wycięcie ruchu z punktu dostępowego poza swoją sieć iptables -A FORWARD -i eth2 -o!eth3 -j REJECT # przekierowanie połączeń do serwera www iptables -t nat -I PREROUTING -p tcp -m multiport --dports 53,80,443 -j DNAT --to 192.168.1.10 # Reguły wspólne (...) WiZSZ, Koncepcja ochrony sieci komputerowej 4 z 10
Punkt dostępowy zewnętrzny Punkt dostępowy o otwartym dostępie, podłączenie się do niego umożliwia jedynie komunikację z serwerem www zewnętrznym, znajdującym się w tym samym segmencie sieci. iptables -P OUTPUT ACCEPT iptables -A INPUT -i wlan0 -p tcp -m multiport --dports 22,53,80,443 -j ACCEPT iptables -A INPUT -i wlan0 -p udp --dport 67 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT Serwer www zewnętrzny Zadaniem urządzenia jest serwowanie treści w postaci stron www klientom z sieci wewnętrznej bezprzewodowej, oraz z sieci internet w postaci przekierowania ruchu z poziomu routera brzegowego. # zmiana polityki na DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # wpuszczenie pakietów ze stanem ESTABLISHED (ustanowione) iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT # bezpieczna reguła dla serwerów DNS iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -s 192.168.8.1 -p tcp --dport 53 -m state --state NEW -j ACCEPT iptables -A INPUT -s 192.168.1.0 -p tcp --dport 53 -m state --state NEW -j ACCEPT iptables -A INPUT -m state --state INVALID -j DROP # umożliwienie użytkownikom zewnętrznym na korzystanie z usług WWW (HTTP i HTTPS) iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT WiZSZ, Koncepcja ochrony sieci komputerowej 5 z 10
Router dławiący dla usług sieciowych Zadaniem tego routera jest selekcjonowanie ruchu do strefy DMZ (części serwerowej). Z drugiej strony jest on odpowiedzialny za wycinanie niepożądanego ruchu pochodzącego z punktu dostępowego wewnętrznego. Uruchomione usługi: serwer DHCP na porcie eth2 i eth3 (vswitch lub bridge group) Opis interfejsów: eth1 połączenie do podsieci nadrzędnej eth2 punkt dostępowy zewnętrzny eth3 strefa DMZ: serwery WWW, DB, DNS i IDS eth4 połączenie do podsieci podrzędnej # dopuszczenie ruchu z podsieci klienckiej iptables -t filter -A FORWARD -s 192.168.2.0/255.255.255.0 -d 192.168.100.0 -j ACCEPT # Reguły wspólne (...) Punkt dostępowy wewnętrzny Punkt dostępowy o dostępie zabezpieczonym hasłowo oraz przy użyciu autoryzacji tylko zaufanych adresów MAC, podłączenie się do niego umożliwia jedynie komunikację z serwerami zlokalizowanymi w strefie DMZ wewnętrznej, znajdującymi się w tym samym segmencie sieci. iptables -P OUTPUT ACCEPT iptables -A INPUT -i wlan0 -p tcp -m multiport --dports 22,53,80,443,50012 -j ACCEPT iptables -A INPUT -i wlan0 -p udp --dport 67 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT WiZSZ, Koncepcja ochrony sieci komputerowej 6 z 10
Serwer www wewnętrzny Zadaniem serwera jest dostarczanie żądanych treści w postaci stron internetowych dla klientów podłączonych przewodowo z podsieci 192.168.100.0/24 bądź bezprzewodowo za pośrednictwem punktu dostępowego wewnętrznego. # zmiana polityki na DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # wpuszczenie pakietów ze stanem ESTABLISHED (ustanowione) iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT # bezpieczna reguła dla serwerów DNS iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -s 192.168.2.12 -p tdp --dport 53 -m state --state NEW -j ACCEPT iptables -A INPUT -m state --state INVALID -j DROP # umożliwienie użytkownikom zewnętrznym na korzystanie z usług WWW (HTTP i HTTPS) iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT WiZSZ, Koncepcja ochrony sieci komputerowej 7 z 10
Serwer DNS wewnętrzny Zadaniem serwera jest translacja nazw domenowych na adresy fizyczne w środowisku sieciowym wewnetrznym. Serwer jest niepowiązany z serwerami DNS w sieci internet. # zmiana polityki na DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # wpuszczenie pakietów ze stanem ESTABLISHED (ustanowione) iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT # bezpieczna reguła dla serwerów DNS iptables -A INPUT -p udp -s 0/0 --sport 1024:65535 -d 192.168.2.12 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p udp -s 192.168.2.12 --sport 53 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -s 0/0 --sport 53 -d 192.168.2.12 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p udp -s 192.168.2.12 --sport 53 -d 0/0 --dport 53 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -m state --state INVALID -j DROP WiZSZ, Koncepcja ochrony sieci komputerowej 8 z 10
Serwer bazodanowy wewnętrzny Zadaniem serwera jest dostarczanie API dostępu do danych zawartych w tabelach baz danych, ponadto na maszynie realizowane są operacje tworzenie kopii zapasowych składowanych danych. # zmiana polityki na DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # wpuszczenie pakietów ze stanem ESTABLISHED (ustanowione) iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT # umożliwienie użytkownikom wewnętrznym na korzystanie z MySQL, DB2 iptables -A INPUT -p tcp -m multiport --dport 3306,50012 -j ACCEPT iptables -A OUTPUT -p tcp -m multiport --sport 3306,50012 -j ACCEPT Router dławiący dla sieci pracowniczej Zadaniem tego urządzenia jest przekazywanie ruchu z podsieci pracowniczej przewodowej do routera nadrzędnego. Jest to realizowane za pomocą ustawionej trasy domyślnej na routerze do interfejsu routera nadrzędnego (192.168.8.5/30) Uruchomione usługi: serwer DHCP na porcie eth2 Opis interfejsów: eth1 połączenie do podsieci nadrzędnej eth2 połączenie ze switchem eth3 nieużywane eth4 nieużywane Domyślna trasa dla pakietów z tego urządzenia ustawiona jest na adres interfejsu nadrzędnego, który rozpoznaje i kieruje pakiety do odpowiednich segmentów sieci. WiZSZ, Koncepcja ochrony sieci komputerowej 9 z 10
# Zmiana polityki na drop iptables -P OUTPUT DROP # Umożliwienie komputerom wewnętrznym korzystanie z serwerów WWW, DNS, DB2 iptables -A INPUT -i eth1 -p tcp -m multiport --dport 22,53,80,443,50012 -j ACCEPT iptables -A OUTPUT -i eth1 -p tcp -m multiport --dport 22,53,80,443,50012 -j ACCEPT iptables -A INPUT -i eth2 -p tcp -m multiport --dport 67,22,53,80,443,50012 -j ACCEPT iptables -A OUTPUT -i eth2 -p tcp -m multiport --dport 68,22,53,80,443,50012 -j ACCEPT Host sieci pracowniczej iptables -P OUTPUT ACCEPT iptables -A INPUT -p tcp -m multiport --dport 68,22,53,80,443,50012 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT WiZSZ, Koncepcja ochrony sieci komputerowej 10 z 10