130 likes | 346 Views
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
E N D
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: • 1. szabály • 2. szabály • 3. szabály • … • házszabály • Input: • Output: • Forward: • 1. szabály • 2. szabály • 3. szabály • … • házszabály • 1. szabály • … • házszabály
Most nézzünk egy példát INPUT-ra: Csomag (75kb) • 1. szabály (< 3kb) • 2. szabály (< 8kb) • 3. szabály (< 30kb) • 4. szabály (< 50kb) • házszabály (eldobás)
A szkript értelmezése modprobe ip_conntrack_ftp • Modulok betöltése: • 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 Itt bármyilen új láncot hozzáadhatunk! iptables -P „BÁRMI” DROP
Gépen belüli kommunikáció engedélyezése: iptables -A INPUT -i lo -j ACCEPT lo interface(loopback) INPUT lánc házszabályának beállítása: • 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 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 Saját kérések Távoli asztali kapcsolat Pingelés tesztelése
Érkezett csomagok „loggolása”: iptables -A INPUT -j LOG --log-prefix "INPUT_DROP: " INPUT lánc házszabályának beállítása: • Maradék eldobása: iptables -A INPUT -j DROP Ugyanezt a folyamatot megcsináljuk a többi láncra is!
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! A Tűzfal mentése: • Mentés: iptables-save -c > /etc/iptables.rules if test -r /etc/iptables.rules; then echo "A Tuzfal mentese sikeres!" fi #--------------------firewall.sh Szól, ha sikerült a mentés. • 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
20, 21: FTP 43, 80, 443: Böngésző 67: DHCP szerver címe 135, 137, 138, 139, 445: Windows-portok 2379: Játék-szerverek 5900: VNC-szerver 6881: Bittorrent Fontosabb port-ok: