Meine IPtables - könnt Ihr mal drüberschauen?
Meine IPtables - könnt Ihr mal drüberschauen?
Hi,
ich habe eine Firewall mit Snort-Inline für meine Diplomarbeit geschreiben.
Das ganze wird so aussehen:
Bestimmter Zugriff soll also nur aus dem FH-NET erlaubt sein.
Auch von innen herraus gibt es jede Menge restriktionen.
Sie läuft gut, und macht das wass sie soll.
Aber könnt Ihr mal drüberschauen, ob man etwas verbessern kann?
Ich weis, die ist ganz schön lang, aber vieleicht gibts ja noch ein paar Kniffe die sie verbessern.
Vielen Dank
Holger (Ganeymed)
(der LOG beim RTP-Verkehr fliegt noch raus, der ist nur zum testen. Alle 20ms ein Packet ist doch etwas arg viel zum loggen)
verschoben nach http://nopaste.debianforum.de/1023
Bitte Forumsregeln beachten.
TCA
ich habe eine Firewall mit Snort-Inline für meine Diplomarbeit geschreiben.
Das ganze wird so aussehen:
Bestimmter Zugriff soll also nur aus dem FH-NET erlaubt sein.
Auch von innen herraus gibt es jede Menge restriktionen.
Sie läuft gut, und macht das wass sie soll.
Aber könnt Ihr mal drüberschauen, ob man etwas verbessern kann?
Ich weis, die ist ganz schön lang, aber vieleicht gibts ja noch ein paar Kniffe die sie verbessern.
Vielen Dank
Holger (Ganeymed)
(der LOG beim RTP-Verkehr fliegt noch raus, der ist nur zum testen. Alle 20ms ein Packet ist doch etwas arg viel zum loggen)
verschoben nach http://nopaste.debianforum.de/1023
Bitte Forumsregeln beachten.
TCA
Re: Meine IPtables - könnt Ihr mal drüberschauen?
Also die Qualiät deiner Frage is ziemlich dürftig, aber du wolltest ja ne Meinung zu der Firewall, habe mal ein paar Auszüge gewählt und dazu muss ich sagen: Kommentare sind sinnlos und erhöhen bei sowas die Verwirrung nur noch mehr ....Ganeymed hat geschrieben:Code: Alles auswählen
#$IPTABLES -A FORWARD -p tcp -s $INTERN_NET --sport 1024:65535 -o $EXTERN_ETH --dport 22 -m state --state NEW -j ACCEPT
Code: Alles auswählen
#$IPTABLES -A FORWARD -p tcp -s $FH_NET --sport 1024:65535 -d $fwclient --dport 22 -m state --state NEW -j ACCEPT
Code: Alles auswählen
#$IPTABLES -t mangle -A FORWARD -i $EXTERN_ETH -p tcp -d $FTP_Server --dport 22 -m state --state NEW -j MARK --set-mark 1 #$IPTABLES -t mangle -A FORWARD -i $EXTERN_ETH -p tcp -d $FTP_Server --dport 22 -m state --state ESTABLISHED -j MARK --set-mark 2
Ketten hingegen sind sinnvoll, auch wenn es dadurch länger wird, weil so kann man jede Kette auf ihre Korrektheit überprüfen und das macht den Gesamtüberblick viel einfacher... Im Bezug auf's Studium fällt mir da so direkt folgendes ein: Modules, SwQA
Für mich als Admin wäre deine Firewall schon durchgefallen, weil ich da viel zu wenig Überblick habe... Ich empfehle ein Redesign
Re: Meine IPtables - könnt Ihr mal drüberschauen?
Danke an TCA fürs NoPasten - irgendwie hab ich das voll missverstanden -
Und auch erst jetzt verstanden was NoPaste ist. Sorry.
@ Bluestar
erste eigene Firewall. Und ich will es ja auch richtig machen.
Danke für die Hinweise.
Ach ja, die Firewall und die DMZ sollen nur FTP Zugriff nach außen haben,
solange ich noch am Rumbasteln bin.
Ich muß ja noch ab und zu was Nachinstalliern bis alles perfekt ist (sein soll)
Danach wird das augeknippst.
Nochmal zu den Ketten.
Ich verstehe nicht ganz, wie die zur Übersichtlichkeit beitragen.
Könntest Du das mal an dem FTP Beispiel verdeutlichen (nett frag).
Oder ist die Ordnung nach Protokollen dann eher schlecht?
Ich hab auch eine Firewall mit fwbuilder gebaut, da wurden jede Menge Ketten
verbaut, aber es wurde nach "Ein und Ausgängen" sortiert.
Und das war Megaunübersichtlich. Nicht zuletzt weil fwbuilder so sinnvolle
Kettennamen wie "Cid409F78F6.0" verwendet.
Außerdem konnte fwbuilder das QUEUE nicht, was ich für Snort-Inline brauche.
Die Vorgabe ist halt ein ganz bestimmtes Regelwerk nach Protokollen.
Daher fand ich die Idee, das nach Protokollen zu ordnen, eigentlich gut.
Bin für jeden Hinweis und auch Kritik dankbar. Soll ja auch gut werden.
Danke und viele Grüße
Holger (Ganeymed)
Und auch erst jetzt verstanden was NoPaste ist. Sorry.
@ Bluestar
Deswegen wollt ich ja mal nachfragen was Ihr davon haltet. Das ist nämlich meinebluestar hat geschrieben: Für mich als Admin wäre deine Firewall schon durchgefallen, weil ich da viel zu wenig Überblick habe... Ich empfehle ein Redesign
erste eigene Firewall. Und ich will es ja auch richtig machen.
Danke für die Hinweise.
Ach ja, die Firewall und die DMZ sollen nur FTP Zugriff nach außen haben,
solange ich noch am Rumbasteln bin.
Ich muß ja noch ab und zu was Nachinstalliern bis alles perfekt ist (sein soll)
Danach wird das augeknippst.
Nochmal zu den Ketten.
Ich verstehe nicht ganz, wie die zur Übersichtlichkeit beitragen.
Könntest Du das mal an dem FTP Beispiel verdeutlichen (nett frag).
Oder ist die Ordnung nach Protokollen dann eher schlecht?
Ich hab auch eine Firewall mit fwbuilder gebaut, da wurden jede Menge Ketten
verbaut, aber es wurde nach "Ein und Ausgängen" sortiert.
Und das war Megaunübersichtlich. Nicht zuletzt weil fwbuilder so sinnvolle
Kettennamen wie "Cid409F78F6.0" verwendet.
Außerdem konnte fwbuilder das QUEUE nicht, was ich für Snort-Inline brauche.
Die Vorgabe ist halt ein ganz bestimmtes Regelwerk nach Protokollen.
Daher fand ich die Idee, das nach Protokollen zu ordnen, eigentlich gut.
Bin für jeden Hinweis und auch Kritik dankbar. Soll ja auch gut werden.
Danke und viele Grüße
Holger (Ganeymed)
Re: Meine IPtables - könnt Ihr mal drüberschauen?
Ich würde dir folgende Ketten empfehlen:Ganeymed hat geschrieben: Nochmal zu den Ketten.
Ich verstehe nicht ganz, wie die zur Übersichtlichkeit beitragen.
INPUT Chains auf der Firewall:
- intern2firewall
fhnet2firewall
dmz2firewall
badnet2firewall
- firewall2intern
firewall2fhnet
firewall2dmz
firewall2badnet
- dmz2intern
dmz2fhnet
dmz2badnet
intern2dmz
intern2fhnet
intern2badnet
fhnet2dmz
fhnet2intern
fhnet2badnet
badnet2fhnet
badnet2intern
badnet2dmz
Ganeymed hat geschrieben: Ach ja, die Firewall und die DMZ sollen nur FTP Zugriff nach außen haben,
solange ich noch am Rumbasteln bin.
Ich muß ja noch ab und zu was Nachinstalliern bis alles perfekt ist (sein soll)
Danach wird das augeknippst.
Code: Alles auswählen
DMZ = Netz der DMZ
DMZ_ETH = Interface
INTERN = Netz Intern
INTERN_ETH = Interface intern
FH_NET = Netz der FH
FH_ETH = Interface für FH-Netz und Bad-Net
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $DMZ_ETH -o $INTERN_ETH -s $DMZ_NET -d $INTERN -j dmz2intern
$IPTABLES -A FORWARD -i $DMZ_ETH -o $FH_ETH -s $DMZ -d $FHNET -j dmz2fh
$IPTABLES -A FORWARD -i $DMZ_ETH -o $FH_ETH -s $DMZ -d 0.0.0.0 -j dmz2badnet
So würde ein Teil deines Forward-Chains aussehen und jetzt zu deinem FTP Beispiel:
Code: Alles auswählen
# DMZ FTP freischalten überall hin
$IPTABLES -A dmz2intern -p tcp -m tcp --dport 21 -j ACCEPT
$IPTABLES -A dmz2fhnet -p tcp -m tcp --dport 21 -j ACCEPT
$IPTABLES -A dmz2badnet -p tcp -m tcp --dport 21 -j ACCEPT
# Firewall selbst freischalten für FTP überall hin
$IPTABLES -A firewall2intern -p tcp -m tcp --dport 21 -j ACCEPT
$IPTABLES -A firewall2fhnet -p tcp -m tcp --dport 21 -j ACCEPT
$IPTABLES -A firewall2badnet -p tcp -m tcp --dport 21 -j ACCEPT
Übrigens:
FTP = Port 21
SSH = Port 22
Noch eine Anmerkung zum Thema localhost - ich würde genrell keine Firewallregeln für das Pseudodevice einrichten.
Code: Alles auswählen
$IPTABLES -i lo -j ACCEPT
$IPTABLES -o lo -j ACCEPT
Code: Alles auswählen
#
# Forwarding aktivieren
#
echo "1" > /proc/sys/net/ipv4/ip_forward
#
# Syncookies aktivieren - gegen flood Attacken
#
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
Kein Problem, ich geh mal davon aus das du selbst in meinem Beispiel gesehen hast, wie schön einfach und übersichtlich das mit eigenen Ketten werden kann.Ganeymed hat geschrieben: Super erklärt - Vielen Dank für Deine Mühe.
Ja und wenn du die überarbeitete Fassung fertig hast, dann lass mich mal nen Blick drauf werden....Ganeymed hat geschrieben: Ich werde das mal überarbeiten und versuchen das umzusetzen.