Operační systémy 2
Firewally, NFS Přednáška číslo 7b
Firewally a iptables
Firewall ●
síťové zařízení, které slouží k řízení a zabezpečování síťového provozu mezi sítěmi s různou úrovní důvěryhodnosti a/nebo zabezpečení.
Druhy firewallu ●
Podle konstrukce – –
●
Softwarové Hardwarové
Podle činnosti – – – –
Paketové filtry Aplikační brány Stavové paketové filtry Stavové paketové filtry s kontrolou paketů a IDS (Intrusion Detection Systems – systémy pro detekci útoků)
Iptables ●
● ● ● ●
Linuxový nebo UNIXový nástroj pro práci se síťovou komunikací Musí být podporován v jádře Umožňuje stavět firewally Kontrola paketů – adresy, protokoly … Paket který vyhoví jedné podmínce už není dále kontrolován, ale je propuštěn či zahozen
Ukázka firewallu ● ●
●
●
Napsaného pomocí iptables Tento skript je uložen v /etc/init.d a je nastaveno jeho automatické spuštění při startu Soubor blacklist.txt – seznam IP adres ze kterých je zakázán jakýkoliv přístup Soubor whitelist.txt – seznam adres ze kterých je povoleno vše
Ukázka firewallu #!/bin/sh # Firewall WHITELIST=/etc/firewall/whitelist.txt BLACKLIST=/etc/firewall/blacklist.txt ALLOWED="22 80" #Odstranění stávajících pravidel iptables -F iptables -t nat -F
Ukázka firewallu #Povoleni vseho z /etc/firewall/whitelist.txt for x in `grep -v ^# $WHITELIST | awk '{print $1}'`; do echo "Povoluji $x..." iptables -A INPUT -t filter -s $x -j ACCEPT done #Zakazat /etc/firewall/blacklist.txt for x in `grep -v ^# $BLACKLIST | awk '{print $1}'`; do echo "Blokuji $x..." iptables -A INPUT -t filter -s $x -j DROP done
Ukázka firewallu #Ktere porty se povoli tem co nejsou v blacklistu for port in $ALLOWED; do echo "Povoluji port $port..." iptables -A INPUT -t filter -p tcp --dport $port -j ACCEPT done #A vse ostatni zahodit iptables -A INPUT -p tcp --syn -j DROP
Další možnosti iptables # Vytvoreni retezu syn-flood pro detekci utoku s odeprenim sluzeb iptables -t nat -N syn-flood # Omezeni 12 novych spojeni za sekundu (po zjisteni narazu 24 za sek.) iptables -t nat -A syn-flood -m limit --limit 12/s --limit-burst 24 -j RETURN iptables -t nat -A syn-flood -j DROP
Další možnosti iptables # Kontrola utoku DoS s odeprenim sluzeb iptables -t nat -A PREROUTING -i eth0 -d 160.217.96.179 -p tcp --syn -j syn-flood iptables -t nat -A PREROUTING -i eth0 -d 160.217.96.178 -p tcp --syn -j syn-flood #Zahazovani paketu TCP "Vanocni stromecek" iptables -t nat -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP iptables -t nat -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP
Firehol ●
● ●
Velmi jednoduchý firewall založený na iptables Domácí stránka Návod na Root.cz
Firehol – ukázka konfigurace /etc/firehol/firehol.conf interface eth0 NET protection strong server "ssh" accept src "147.231.252.0/24" server icmp accept client all accept interface eth1 policy server client
LAN reject all accept all accept
router LAN2NET inface eth1 outface eth0 masquerade route all accept router NET2LAN inface eth0 outface eth1 route all accept
NFS
NFS ●
● ● ●
● ●
Slouží pro sdílení souborů a adresářů mezi dvěma počítači s UNIXem NFS = Network File systém Existují i jiné systémy, např. Coda FS NFS není příliš bezpečný systém, ale je běžně používaný a rozšířený. Musí mít podporu v jádře Na serveru musí běžet démon nfsd, portmap (nfslock, nfs-server...)
Nastavení NFS – server ●
●
Všechno nastavení je v souboru /etc/exports Struktura je:
/adresar seznam pocitacu(parametry) ●
Příklad:
/mnt/disk1 192.168.0.3(ro), 192.168.0.5 /mnt/disk2 160.217.96.0/255.255.255.0
NFS – parametry /etc/exports ● ● ●
●
●
ro – pouze pro čtení rw – čtení i zápis noacces – zákaz přístupu do konkrétního adresáře no_root_squash – root bude jako root i na sdíleném svazku squash_uids=seznam (seznam oddělený čárkami – seznam UID uživatelů se zakázaným přístupem
Nastavení NFS – klient ●
Připojení disku – musíme mít práva na připojení na serveru v /etc/exports
mount server:/adresar /kam ●
Příklad (může pouze root)
mount 192.168.0.1:/mnt/disk1 /home/sdileny ●
Lze zapsat zápis přímo do /etc/fstab
192.168.0.1:/mnt/disk1
/home/sdileny
nfs defaults,users 0 0
NFS – rizika ●
● ●
●
Uživatel s UID 100 má na serveru UID 65535 – 100 = 65435. (Rozsah_UID – UID) – říká se tomu squashování Stejně i pro GID (skupiny) Lze nastavit konkrétní UID na které se budou všichni přihlašovat – vytvoření public adresářů Pro roota je tohle implicitně vypnuté. Povolit přístup roota lze parametrem root_no_squash v /etc/exports. Pak ale má root přístup do všech adresářů – což může být bezpečnostní riziko
NFS rizika ●
●
●
Není li dostupný server a je-li uveden přípojný bod v /etc/fstab klient při startu může delší dobu čekat na server Pokud za běhu je odpojen server, a klient současně aktivně používá sdílený adresář (např je sdílený /home), klient zamrzne. Po opětovné zprovoznění serveru klient opět běží. Nelze jednoznačně říci co se stane s právě otevřenými soubory. Maximální velikost souboru v NFS do verze 2 je 2 GB!
Konec