Transcript Itt
Tűzfal beállítása Ubuntuban Készítette: Nemes Krisztián Lássuk először a teljes szkriptet: • #--------------------------------- firewall.sh • #!/bin/bash • • #modulok betoltese modprobe ip_conntrack_ftp • • • • • iptables -F #Minden szabaly torlese iptables -X #Ures lancok torlese iptables -P INPUT DROP #Default policy beallitasa iptables -P OUTPUT DROP iptables -P FORWARD DROP • • • • • • • • • • • • • • #INPUT lanc iptables -A INPUT -i lo -j ACCEPT #rogton eldobando csomagok: iptables -A INPUT -p tcp -m multiport --dport 67,135,137,138,139,445,1026,1027,5900,6881 -j DROP iptables -A INPUT -p udp -m multiport --dport 67,135,137,138,139,445,1026,1027,5900 -j DROP iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --dport 22 -m mac --mac-source 11:11:11:11:11:11 -j ACCEPT #ssh iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/m --limit-burst 1 -j ACCEPT iptables -A INPUT -j LOG --log-prefix "INPUT_DROP: " iptables -A INPUT -j DROP • • • • • • • • • • • • #OUTPUT lanc iptables -A OUTPUT -o lo -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -p tcp -m multiport --dport 20,21,43,80,443 -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -j ACCEPT #DNS iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT #ftp iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT #ftp iptables -A OUTPUT -p tcp --dport 2379 -j ACCEPT #KGS iptables -A OUTPUT -j LOG --log-prefix "OUTPUT_DROP: " iptables -A OUTPUT -j DROP • • • if test -r /etc/iptables.rules; then rm -f /etc/iptables.rules fi • • • • • • #Tűzfal mentése iptables-save -c > /etc/iptables.rules if test -r /etc/iptables.rules; then echo "A Tuzfal mentese sikeres!" fi #--------------------firewall.sh A tűzfal működési elve: • A be- és kimenő adatok csomagok formájában jelennek meg. • Ezeket a csomagokat kell ellenőrizni, majd átengedni, vagy letiltani. • Ezt láncok segítségével tudjuk a legegyszerűbben megoldani. • A 3 alapértelmezett lánc az INPUT, OUTPUT és FORWARD. A láncok működési elve: • A láncokat láncszabályokkal tudjuk pontosítani. • Ennek lényege, hogy több szabályt is létrehozunk pl. az INPUT-on belül. Ezek legyenek: 1. szabály, 2.szabály, 3. szabály… • Minden szabály más-más méretű csomagokat kezel. Az 1. a legkisebbet, a 2. nagyobbat, a 3. mégnagyobbat… • Ha valamelyik csomagot egyik szabály sem tudja kezelni, akkor az a házszabályhoz kerül. A házszabály előre beállított, pl. a hozzá kerülő csomagokat eldobja. Láncok és láncszabályok: • Input: - 1. szabály - 2. szabály - 3. szabály -… - házszabály • Output: - 1. szabály - 2. szabály - 3. szabály -… - házszabály • Forward: - 1. szabály -… - házszabály Most nézzünk egy példát INPUT-ra: • 1. szabály (< 3kb) • 2. szabály (< 8kb) • 3. szabály (< 30kb) • 4. szabály (< 50kb) • házszabály (eldobás) Csomag (75kb) A szkript értelmezése • Modulok betöltése: modprobe ip_conntrack_ftp • Szabályok/láncok törlése: iptables -F iptables -X • Alaphelyzetbe állítás: iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -P „BÁRMI” DROP Itt bármyilen új láncot hozzáadhatunk! INPUT lánc házszabályának beállítása: • Gépen belüli kommunikáció engedélyezése: iptables -A INPUT -i lo -j ACCEPT lo interface(loopback) • Azonnal eldobandó csomagok: iptables -A INPUT -p tcp -m multiport --dport 67,135,137,138,139,445,1026,1027,5900,6881 -j DROP iptables -A INPUT -p udp -m multiport --dport 67,135,137,138,139,445,1026,1027,5900 -j DROP iptables -A INPUT -j LOG --log-prefix "INPUT_DROP: " iptables -A INPUT -j DROP Különböző portok • Engedélyezett csomagok: iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Saját iptables -A INPUT -p tcp --dport 22 -m mac --mac-source kérések Távoli asztali 11:11:11:11:11:11 -j ACCEPT #ssh kapcsolat iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/m --limit-burst 1 -j ACCEPT Pingelés tesztelése INPUT lánc házszabályának beállítása: • Érkezett csomagok „loggolása”: iptables -A INPUT -j LOG --log-prefix "INPUT_DROP: " • Maradék eldobása: iptables -A INPUT -j DROP Ugyanezt a folyamatot megcsináljuk a többi láncra is! A Tűzfal mentése: • Mentési hely megadás: if test -r /etc/iptables.rules; then rm -f /etc/iptables.rules fi Ha a fájl már létezik, töröljük! • Mentés: iptables-save -c > /etc/iptables.rules if test -r /etc/iptables.rules; then echo "A Tuzfal mentese sikeres!" fi #--------------------firewall.sh • Automatikus indítás: - /etc/rc.local fájl megnyitása - A fájl végén levő „exit 0” parancs elé iptables-restore < /etc/iptables.rules Szól, ha sikerült a mentés. Fontosabb port-ok: 20, 21: 43, 80, 443: 67: 135, 137, 138, 139, 445: 2379: 5900: 6881: FTP Böngésző DHCP szerver címe Windows-portok Játék-szerverek VNC-szerver Bittorrent Köszönöm a figyelmet!