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! 