PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Iptables erstellen (anfänger)



Same
28.11.06, 19:54
Nabend zusammen,

habe mir gerade frisch Fedora Core 5 installiert und wollte mir direkt iptables setzen. Hab davon aber recht wenig Ahnung. Mit Hilfe eines Freundes habe ich die ersten Schritte bewältigt.
Da ich ein Anfänger bin würde ich mich über Vorschläge freuen.
Also hab jetzt erstmal meine Iptables so gesetzt...


Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain benni (0 references)
target prot opt source destination

Das sollte laut Gentooseite (http://gentoo-wiki.com/HOWTO_Iptables_and_stateful_firewalls#A_basic_fire wall_script) erstmal funktionieren. Jetzt würde ich aber gerne ein bisschen Feintuning machen und hab vor dieses veränderte Script zu verwenden.


#! /bin/bash
# basic stateful firewall for a workstation or laptop that isn't running any
# network services like a web server, SMTP server, ftp server, etc.

if [ "$1" = "start" ]
then
echo "Starting firewall..."
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -i ! eth0 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT --sport 80 -j ACCEPT
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A OUTPUT -i ! eth0 -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
elif [ "$1" = "stop" ]
then
echo "Stopping firewall..."
/sbin/iptables -F INPUT
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -F OUTPUT
/sbin/iptables -P OUTPUT ACCEPT
fi

Mein Ziel ist es mit diesem Script alle Verbindungen die von außen kommen sollen gedroppt werden. Es sei den ich baue eine Verbindung auf nach draußen und erwarte eine Antwort.
Der Port 80 soll offen sein, da er nur für den Webbrowser genutzt wird.
Ich will aber auch nicht das sich eine Verbindung nach draußen aufbaut ohne das ich das akzeptiere, also eigentlich genau das Gegenteil von Regelnr.1. Bei dem letzten Punkt bin ich mir nicht sicher wie ich das realisieren soll. Die letzte Regel hört sich blöd an, aber gibts den Output nur um bestimmten Programmen keine Verbindung nach außen zu erlauben?

Bitte um Hilfe habe gerade einen tierischen Logikfehler ^^

DaGrrr
28.11.06, 21:17
Ich verschiebe den Thread ins passende Unterforum, da dieses Thema nicht in "System installieren und konfigurieren" passt.

Mit mehr als 90 Postings solltest du das aber wissen!

DaGrrr

Same
28.11.06, 21:42
Tut mir leid, hatte nicht bis nach ganz unten gescrollt. Ist auch das erste mal das ich mich mit Sichereit auseinander setze.
Hab übrigens das hier noch an meine Iptables angehangen


/sbin/iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset
/sbin/iptables -A INPUT -p udp -i eth0 -j REJECT --reject-with icmp-port-unreachable

Same
30.11.06, 11:15
Also ich habe mal weiter getestet mit den iptables. Momentan sieht mein Script für die firewall ETWA so aus.


#! /bin/bash
# basic stateful firewall for a workstation or laptop that isn't running any
# network services like a web server, SMTP server, ftp server, etc.

if [ "$1" = "start" ]
then
echo "Starting firewall..."
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -i ! eth+ -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
elif [ "$1" = "stop" ]
then
echo "Stopping firewall..."
/sbin/iptables -F INPUT
/sbin/iptables -P INPUT DROP
/sbin/iptables -F FORWARD
/sbin/iptables -P FORWARD DROP
/sbin/iptables -F OUTPUT
/sbin/iptables -P OUTPUT DROP
fi

Hab gestern ein wenig rumprobiert und hatte plötzlich nach dem start der firewall keine Internetverbindung mehr. Hab dann wieder alles in den iptables so eingestellt, wie oben im ersten Beitrag, und Internet ging immer noch nicht.

Hab vorhin meinen Rechner neu hochgefahren und Internet ging wieder, dass lag aber daran das die alte Firewall (CHAIN RH-Firewall-1-INPUT/FORWARD/OUTPUT) geladen wurde. Hab das dann wieder geändert und es ging eine Zeit.

Meine Frage, dauert das ein wenig wenn ich dir Firewall hochfahre bis alles wieder geht?
Und kann mir bitte jemand helfen und sagen was in den iptables erstmal sinnvoll wäre?

Ich will später alles blocken und ausnahmen für bestimmte ports machen, aber ich weiß noch nicht Recht wie FORWARD und OUTPUT sich auswirkt. Auch nach dem lesen von einigen HowTos etc. Praxis und Theorie ist doch schon irgendwie anders ^^.

Wäre sehr dankbar für ein wenig hilfe

P.S.: Sorry für doppelpost

edit:
wie siehts denn hiermit aus?


iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i ! eth0 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Kann man das auf dauer so verwenden und sicher sein dass man nicht auf seinem Rechner gestöhrt wird?

caspartroy
04.12.06, 16:43
mein vorschlag wäre, ein frontent zu nutzen, z.B. fwbuilder.
iptables regeln werden quasi sofort wirksam, du machst wahrscheinlich fehler (hab mir die regeln aber nicht angeschaut...)

framp
04.12.06, 20:27
mein vorschlag wäre, ein frontent zu nutzen, z.B. fwbuilder.
iptables regeln werden quasi sofort wirksam, du machst wahrscheinlich fehler (hab mir die regeln aber nicht angeschaut...)
Full ACK. Der Vorteil ist, dass Du erst einmal siehst wie gute rules erstellt werden bzw worauf zu achten ist und kannst daraus lernen und dann eigene Erweiterungen vornehmen.