PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables eth1



boom123
06.08.10, 09:45
hey leute,

bin grade dabei nen packetfilter firewall script für unseren rooti (debian lenny) zu schreiben. da bei uns aber ma das erste interface (eth0) geschrottet wurde, und das anschließend der hoster auf eth1 umgestellt hat, weiss ich jetzt nicht ob das so hinhaut!
hier mal mein script:



#!/bin/sh
# Firewall Script by B00M

echo "Initialisiere Firewall ..."

# Banliste für blacklisted Users
BLACKLIST=/etc/blacklist.txt

# Module laden ...
modprobe ip_conntrack_ftp

# Firewall Regeln löschen
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -Z

# Eigene Chains erstellen
iptables -N DROPIT
iptables -N ACCEPTIT

# Loopback-Kommunikation
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Stateful Inspection
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROPIT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Eigene Chains DROPIT und ACCEPTIT konfigurieren
iptables -A DROPIT -j LOG --log-prefix "FW-DROP: "
iptables -A DROPIT -j DROP
iptables -A ACCEPTIT -j LOG --log-prefix "FW-ACCEPT: "
iptables -A ACCEPTIT -j ACCEPT

# SSH (in)
iptables -A INPUT -p tcp --dport ssh -j ACCEPTIT
# SSH (out)
#iptables -A OUTPUT -p tcp --dport ssh -j ACCEPTIT

# ICMP
iptables -A INPUT -p icmp -j ACCEPTIT
iptables -A OUTPUT -p icmp -j ACCEPTIT

# DNS
#iptables -A INPUT -p udp --dport 53 -j ACCEPTIT
#iptables -A INPUT -p tcp --dport 53 -j ACCEPTIT
#iptables -A OUTPUT -p udp --dport 53 -j ACCEPTIT
#iptables -A OUTPUT -p tcp --dport 53 -j ACCEPTIT

# WWW (Port80)
iptables -A INPUT -p tcp --dport 80 -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPTIT
# WWW (Port443 - SSL/HTTPS)
#iptables -A INPUT -p tcp --dport 443 -j ACCEPTIT
#iptables -A OUTPUT -p tcp --dport 443 -j ACCEPTIT

# MAIL
iptables -A INPUT -p tcp --dport 25 -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPTIT
#iptables -A INPUT -p tcp --dport 110 -j ACCEPTIT
#iptables -A INPUT -p tcp --dport 143 -j ACCEPTIT

# Webmin
iptables -A INPUT -p tcp --dport xxxx -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport xxxx -j ACCEPTIT

# FTP
iptables -A INPUT -p tcp --dport xx -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport xx -j ACCEPTIT

# Ban blacklisted IPs
for x in `grep -v ^# $BLACKLIST | awk '{print $1}'`; do
echo "Blocking $x..."
iptables -A INPUT -t filter -s $x -j DROP
done


da bei uns zwar ein mailserver läuft, der aber NUR zum senden, und nicht zum empfangen benutzt wird, bräuchte ich glaub ich auch das "iptables -A OUTPUT -p tcp --dport 25 -j ACCEPTIT" nicht, oder? oder sollte eher DROPIT sein? das die firewall ankommende packete gleich verwirft?

den code für die blackliste hab ich mal irgendwo im netz gefunden. kann ich das so übernehmen?

thx schonmal!

eule
06.08.10, 11:24
da bei uns aber ma das erste interface (eth0) geschrottet wurde, und das anschließend der hoster auf eth1 umgestellt hat

Hast du dich mal in /etc/udev/rules.d/ umgesehen?
Braucht die Kiste keine Namenaufloesung oder wie geht das bei dir?

muell200
06.08.10, 12:32
Hast du dich mal in /etc/udev/rules.d/ umgesehen?
Braucht die Kiste keine Namenaufloesung oder wie geht das bei dir?

namen sind was fuer anfaenger!
ein richtiger linuxer merkt sich zahlen :)

warum braucht ein rootserver eine firewall?

[modus=eigene_meinung]
die dienste wo du nicht brauchst abschalten.
die dienste wo du brauchst, sind sowie offen...
[/modus=eigene_meinung]

HirschHeisseIch
06.08.10, 12:40
Glaubens-Frage. ;)


Ansonsten sollte das Script - wie ich es auf nen kurzen Blick sehe - auch auf eth1 funktionieren. Es wird nirgendwo das Interface direkt angegeben und so bezieht sich alles auf alle Interfaces.

TheDarkRose
06.08.10, 12:48
Weitere Glauben-Frage: REJECT statt DROP

boom123
07.08.10, 17:06
vielen dank schonma für eure hilfe!!! :)

doch, braucht namensauflösung ;)!
hab das script ma am home-server getestet, da hat alles problemlos funktioniert. ausser wie du schon sagtest, die namensauflösung. bzw. apt-get update konnte nicht ausgeführt werden. nach anschließendem ent-auskommentieren der dns zeilen hats gefunzt :).

also das mit reject bzw. drop ist sone sache! einerseits finde ich es net toll, wenn die gegenseite irgendeine antwort zurückbekommt. andererseits ists aber auch net gut, wenn die gegenstelle wegen keiner rückmeldung noch länger versucht irgendwas auf diesem port zu tun. kann man festlegen was als rückmeldung an den host zurückgesendet wird?

hm, und wie sieht das nu mit dem mailserver also sendmail aus? wie gesagt benutzen wir diesen NUR zum senden von emails (über die funktion des forums). werden da in- und output für port 25 benötigt oder nur output? bzw. port 110 u. 143? eigentlich brauch ich kein pop bzw. imap!

haut das mit der banliste so hin? das hab ich lokal noch net getestet.

also unbedingt brauch ich ne firewall net! ich hab sie hauptsächlich zum bannen gewisser ip´s geschrieben. solche die versuchen zu flooden etc, falls die offenen ports (bis auf die standards natürlich), gefunden werden sollten ;).


btw: ich hab da noch so seltsame meldungen in der console seid ich color support aktiviert hab! ich finde aber in keiner betroffenen datei netma annähernde einträge, vlt. wisst ja ihr wie ich das wegbekomm. hab dazu auch schon gegoogelt, aber leider nur einen thread dazu gefunden. dieser besagt, das es solche einträge in der ~h/bashrc bzw. /etc/bash.bashrc geben sollte, aber wie gesagt, bei mir net lol. glotzt ma:


-sh: enable: color: not a shell builtin
-sh: enable: support: not a shell builtin
-sh: enable: of: not a shell builtin
-sh: enable: ls: not a shell builtin
-sh: enable: and: not a shell builtin
-sh: enable: also: not a shell builtin
-sh: enable: add: not a shell builtin
-sh: enable: handy: not a shell builtin
-sh: enable: aliases: not a shell builtin

HirschHeisseIch
07.08.10, 17:19
Guck Dir die entsprechende Datei die Du da geändert hast nochmal genau an...
Sie enthält auch Kommentare, welche mit ner # am Zeilenanfang gekennzeichnet werden. Das ist nicht ganz grundlos so. ;)

boom123
08.08.10, 22:30
rofl! hab tatsächlich ne kommentzeile auskommentiert lol... :o danke :)

hm, seltsamerweise musste ich für meinen ftp server (pureftpd-mysql) trotz modprobe ip_conntrack_ftp, noch einen passiven port range freigeben um durch die firewall verbinden zu können! ist das normal bei pure-ftpd? oder vlt. weil der bei mir nicht über inetd sondern standalone läuft?