Sziasztok!
Elkezdtem foglalkozni alapszintű iptables beállítássokkal.
Amit szeretnék elérni: először is mindent tiltani, majd a pár szolgáltatásomat engedni kifelé-befelé.
(web[80], ssh[22], openvpn[1194])
A scriptemet több létező scriptből ollóztam össze, szabilinux és társai, és bizonyára a hozzáértő szem elsőre kiszúrja, mi nem jó. Természetesen távolról elindítottam... ki is dobott azon nyomban az ssh-ról és a vpn-ről is :)
Tudnátok segíteni, hogy mit javítsak rajta, hogy jó legyen?
(Van benne egy pár sor, amivel alapszinten blokkolok pár próbálkozót. Legalábbis ezt is szeretném elérni a felsoroltak mellett.)
Köszönöm!
- 1973 megtekintés
Hozzászólások
Első ránézésre: DNS se ki, se be?
FORWARD-ba biztos nem kell semmi és minden átmehet?
szerk.: kifelé miért csak azt a néhány portot engeded?
Egy tipp: ha kézzel indítod a scriptet (nem boot-kor indul), akkor a tűzfal beállítása után várjon 10 másodpercet, ami alatt le tudod Ctrl-C-zni. Ha nem lövöd le, akkor állítson be egy olyan tűzfalat, ami csak az ssh-t engedi be, hogy ne tudd kizárni magad ;-) (és ha módosítod a script-et, akkor ehhez a végéhez ne nyúlj)
- A hozzászóláshoz be kell jelentkezni
/etc/rc.local
én ide szoktam berakni.
- A hozzászóláshoz be kell jelentkezni
Ok, DNS-t hozzáadom, kösz.
Kifelé mit érdemes még engednem? Vagy engedjek alapból mindent?
- A hozzászóláshoz be kell jelentkezni
Attól függ mi a célod.
Jól gondolom, hogy lényegében van 3 interface-ed:
egy amivel az internetre kapcsolódsz,
a VPN tun0-ja,
és egy amire a proxyserver csatlakozik?
- A hozzászóláshoz be kell jelentkezni
A célom, hogy egy nagyon alap szervervédelem fusson. A fent megjelölt szolgáltatásokat szeretném csak engedni / használni, és hogy felesleges támadási felületet ne adjak a szervernek. Pl vpn-en rendeznék mindent, amivel éppen bajlódom. A három számomra alapvető szolgáltatásnak mindig mennie kell (web, ssh, vpn). A többi meg had csússzon át VPN-en. Ha megtanulom, hogy hogyan kell kinyitni és elzárni a csapokat, akkor már a vpn-nel is el fogok boldogulni. A későbbiekben szeretnék magamnak egy multimédia szervert is csinálni, de azt is szigorúan vpn alatt. Tanítási célokat szolgál, s mindig jó, ha kéznél van.
- A hozzászóláshoz be kell jelentkezni
Én valahogy így csinálnám:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT DROP
iptables -P INPUT FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
# az összes többi bejövő csomag DROP-olva lesz, a -P INPU DROP miatt
Még nem teljesen világos, hogy a tun0-ról mit akarsz elérni és hogyan.
Ha akarsz NAT/PAT -ot, akkor
iptables -t nat -A POSTROUTING -o internet_fele_nezo_iface -j MASQUERADE
echo 1 > /proc/....../ip_forward
És ilyenkor az átmenő forgalmat is szabályoznod kell (a tun0-ról mondjuk az eth0-felé engedsz mindent de vissza nem):
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
Nem árt, ha a lo -ról engedsz:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
- A hozzászóláshoz be kell jelentkezni
Két interface van benne, egy fizikai, amivel az internetre járok ki, és azon járok befelé is. A másik a vpn. Közvetlen elérem a gépet, de van a hálózatban proxy szerver is, amin keresztül adatbázisokat tudok elérni, s nagyon jól jönnek azok a külföldi olvasmányok.
- A hozzászóláshoz be kell jelentkezni
nmap localhost
- A hozzászóláshoz be kell jelentkezni
Starting Nmap 5.00 ( http://nmap.org ) at 2012-02-23 23:35 CET
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
3306/tcp open mysql
5900/tcp open vnc
VNC-t is csak vpn-en keresztül használom, kézzel indítom, amikor szükséges, s rögtön le is állítom. Mondjuk, nem tudom, miért van akkor most nyitva. Vagy ha jól sejtem, ezek az alapjában ellenőrzött portok az nmap által?
- A hozzászóláshoz be kell jelentkezni
1. Elején vannak szabályok, majd törlöd őket.
2. Először az adott portot ACCEPT aztán DROP
pl.:
# MYSQL
iptables -A INPUT -s localhost -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -s xx.xx.xx.xx -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 3306 -j DROP
- A hozzászóláshoz be kell jelentkezni
gázgéza.. kiszedtem a törléseket :)
A 2. pontot nem értem. Mit csináljak?
A mysql sor bekerült, köszönöm!
- A hozzászóláshoz be kell jelentkezni
A törlés jó volt, csak rossz helyen.
Tűzfalat mindig törléssel kezdj.
2.
Sorrend:
x ENGED
y ENGED
MINDENKI MAS TILT
erre volt példa a mysql-es rész
- A hozzászóláshoz be kell jelentkezni
Akkor ezeket a sorokat betehetem az elejére?
echo "Leállítom a tűzfalat, kiürítek minden szabályt..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Így jó?
- A hozzászóláshoz be kell jelentkezni
echo "Leállítom a tűzfalat, kiürítek minden szabályt..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
echo "Létre hozom a szabályokat..."
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# MYSQL
iptables -A INPUT -s localhost -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -s xx.xx.xx.xx -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 3306 -j DROP
# SSH
iptables -A INPUT -s localhost -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s xx.xx.xx.xx -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 22 -j DROP
- A hozzászóláshoz be kell jelentkezni
Igen, így akartam csoportosítani, köszönöm!
- A hozzászóláshoz be kell jelentkezni
Szerintem rakj fel egy arno-iptables-firewall-t és egy fail2ban-t, azokkal kezdőként egyszerűbb boldogulni!
<= Powered By Ubuntu & Gentoo Linux =>
'Software is like sex: It's better when it's free!'
By Linus Torvalds
- A hozzászóláshoz be kell jelentkezni