PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables check



craano
01.12.06, 15:51
Hallo,

ich habe einen FTP Server hinter einem Hardware Router. Bislang hatte ich nie eine Firewall laufen, doch nun möchte ich den Server etwas mehr absichern.

Meine Iptables:


iptables -F -v

iptables -v -A INPUT -s 192.168.1.33 -d 192.168.1.35 -p tcp --dport 22 -j ACCEPT

iptables -v -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -v -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -v -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -v -A INPUT -d 192.168.1.35 -p icmp -j ACCEPT
iptables -A INPUT -d 192.168.1.35 -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -d 192.168.1.35 -p tcp --dport 50000:50050 -j ACCEPT



Es wäre sehr nett, wenn ein Iptables Profi mal einen kurzen Blick drauf werfen würde und mir sagt, ob das so in Ordnung geht.

Auf dem Rechner läuft nur ein FTP - Server und ein SSH Server (soll nur von einem Rechner aus dem LAN erreichbar sein).

Alles andere (bis auf Ping) soll zu sein.

Erfüllen die obigen Iptables Regeln diesen Zweck?

Komisch finde ich nur, dass ein nmap scan von einem anderen Rechner sich immer aufhängt, wenn ich die Iptables setze.

Mit geflushten Iptables:

craano-desktop:~$ nmap -sT 192.168.1.35

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-01 16:48 CET
Interesting ports on localhost (192.168.1.35):
Not shown: 1676 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
111/tcp open rpcbind

Nmap finished: 1 IP address (1 host up) scanned in 0.213 seconds
craano-desktop:~$


MIt gesetzen Iptables Regeln muss ich den scan abbrechen (Strg+c), denn er reagiert einfach nicht mehr:


craano-desktop:~$ nmap -sT 192.168.1.35

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-01 16:48 CET
Interesting ports on localhost (192.168.1.35):
Not shown: 1676 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
111/tcp open rpcbind

Nmap finished: 1 IP address (1 host up) scanned in 0.213 seconds
craano-desktop:~$


und:


craano-desktop:~$ nmap -sT -P0 192.168.1.35
Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-01 16:50 CET
caught SIGINT signal, cleaning up
craano-desktop:~$


Ist das normal?

Grüße.
craano.

caspartroy
04.12.06, 16:37
sicher, dass nmap abstürzt? könnte auch einfach ne weile dauern, du kannst mit nmap -vvv oder -vvvv ... anzeigen lassen, was gerade passiert.
wozu die offenen ports ab 50000?

nocheiniggy
04.12.06, 22:17
wozu die offenen ports ab 50000?

Ich vermute mal deshalb?
http://www.iana.org/assignments/port-numbers
The Dynamic and/or Private Ports are those from 49152 through 65535

Ist das ein Router im Linux drauf?

Für mich siehts grad so aus, als ob alles im gleichen Netz hängt, mit einem Router zwischen LAN und Server und einer Firewall am Server.
Das ganze mit Netz 192.168.1.0/24

Ich mein, wozu dann überhaupt einen Router?
Warum nicht einfach die Firewall am Rechner aufdrehen und das spielchen mit dem Router sein lassen?
Oder fehlt hier noch der restliche Angabenteil mit dem NAT am Router?
Dann kannst du aber wirklich die entsprechenden Ports vom Router aus forwarden und gut?
Darüber hinaus, wärs vermutlich am Einfachsten und Effektiver, wenn der Router die Ports blockt bzw. durchlässt, und du die Firewall am Rechner abdrehst.

Aber hier fehlen noch ein bisschen die Details zum Netz...
Das war jetzt grade noch ein bisschen hingeschmissen, aus meinen Eindrücken, die ich hoffentlich richtig interpretiert habe.

Ansonsten, wenn der Verkehr "richtig" abgesichert werden soll, empfiehlt sich noch ein VPN-Tunnel vom erlaubten Rechner zum Server.
Der restliche Verkehr könnte dann komplett geblockt werden.
Freizugeben wäre nur ein Port. (zB UDP 500) und der Transfer erfolgt damit auch noch verschlüsselt.

caspartroy
05.12.06, 14:31
Ich vermute mal deshalb?
http://www.iana.org/assignments/port-numbers
The Dynamic and/or Private Ports are those from 49152 through 65535



inwiefern ist das ein grund?

craano
05.12.06, 15:34
Ja, der Rechner sitzt hinter einer Firewall auf einem Hardwarerouter im Netz 192.168.1.0/24.

Da habe ich auch nur den FTP Port weiter geleitet, da ich diesen Dienst von außen benötige.

[Ich weiß, dass FTP eh unsicher ist, aber zur Zeit geht es nicht anders. Mein vsFTPd ist hoffentlich sicher genug konfiguriert.]

Wozu dann die Firewall auf dem Rechner? Nenn' es paranoid!:ugly: Nein, im ernst, ich will mich jetzt endlich einmal mit der linux Firewall beschäftigen. Nach nunmehr 7 Jahren Linux wird es langsam Zeit.

Warum ich die oberen Ports freigegeben habe, weiß ich selbst nicht mehr genau. Ich muss mal in meine Kommentare des scriptes schauen.

Es ging mir hier in diesem thread auch nur um Grundsätzlichkeiten. Das ist das erste Iptables script und ich suchte noch nach wertvollen Tipps erfahrener Anwender. Die sind nämlich meistens Gold wert.
Einfach menschlicher Input, ob ich etwas wichtiges übersehen, nicht verstanden habe oder ich mal wieder den Wald vor lauter Bäumen nicht sehe.

Grüße.
craano.

nocheiniggy
05.12.06, 16:07
OK, wenn du SSH durchlässt, kannst du eigentlich SFTP verwenden.
Das ist verschlüsselter FTP-Verkehr.
Du musst dann keinen FTP-Server mehr aufsetzen.
Ansonsten würd ich einfach alle Ports blocken und nur die Ports durchlassen, die du wirklich benötigst.

Was ich eigentlich zu mehr Details zum Netz gemeint habe ist: Wie sieht der Rest vom Netz aus?
Aus welchem Netz kommen die Clients.
Wenn du Portforwarding (NAT/PAT) am Router konfigurierst, solltest du bedenken, dass du am Server nicht mehr siehst, von wo aus sich jemand effektiv verbunden hat.
Die Quelladresse ist dann immer der Router.
Deshalb bringts auch eher nichts/wenig, wenn du am Server zusätzlich die Firewall mit Sourceadresse konfigurierst, ausser dass der Datendurchsatz etwas sinkt und du eventuelle Angriffe eben nicht zuordnen kannst.

nocheiniggy
05.12.06, 21:53
Nachtrag: Wenn du dich mit der Linuxfirewall einfach nur beschäftigen willst, leg dir einen Router zu, auf dem Linux läuft und konfigurier die Firewall da drauf.
Es gibt viele Möglichkeiten: IPCop hab ich mal kurz ausprobiert, war garnicht so übel.
Läuft auf beinahe jedem PC und kann zur Not auch von Diskette booten (glaub ich)

Andere Möglichkeit wäre OpenWRT auf zB einem LinksysWRT54GL WLAN-Router
der bringt dir zusätzliche Möglichkeiten dich zB auch mit WLAN und VLANs zu beschäftigen.
Zwar kann auch hier die Firewall über Webinterface konfiguriert werden, aber nicht zwingend.

In jedem Fall ist ein FTP-Server ein Server, eine Firewall eine Firewall und ein Router ein Router (evtl. mit Firewall onBoard)
Das ist Paranoid!

Harry
09.12.06, 10:17
iptables -F -v

iptables -v -A INPUT -s 192.168.1.33 -d 192.168.1.35 -p tcp --dport 22 -j ACCEPT
Naja ... das geht im Falle der vorigen Regel besser mit:
iptables -v -A INPUT -d 192.168.1.35 -p tcp --dport 22 -m state --state NEW -j ACCEPT

iptables -v -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -v -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPTDie vorherige Regel auf dem Server ist Schmarrn -> streichen

iptables -v -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -v -A INPUT -d 192.168.1.35 -p icmp -j ACCEPTDie vorherige Regel ist überflüssig -> streichen.

iptables -A INPUT -d 192.168.1.35 -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -d 192.168.1.35 -p tcp --dport 50000:50050 -j ACCEPTDie letzten beiden vorhergehenden Regeln sind überlüssig und zudem noch viel zu offen. Ersetze sie durch die folgende:
iptables -v -A INPUT -d 192.168.1.35 -p tcp --dport 21 -m state --state NEW -j ACCEPT
Tja - und wo stehen die Regeln, die jetzt überhaupt irgendwas nicht zulassen? Ohne Default-Policies kannst du dir die obigen Regeln auch direkt sparen, denn dann ist doch eh alles erlaubt.
Also sowas wie ein:
iptables -P INPUT DROP
iptables -P OUTPUT DROP

Wobei das "DROP" auch wieder ein ziemlicher "Schmutz" ist. Richtig gut wird der Paketfilter erst, wenn quasi manuell definierte "Pre-Default-Policies" hinzukommen, die eine Reaktion auslösen, als wäre der Zielport einfach nicht besetzt.
Vielleicht magst du dir mal meinen iptables Generator (s. Sig.) anschauen. Damit kannst du schon alles umsetzen, was du beabsichtigst.


Es wäre sehr nett, wenn ein Iptables Profi mal einen kurzen Blick drauf werfen würde und mir sagt, ob das so in Ordnung geht.
Hiermit getan ;)

caspartroy
09.12.06, 17:02
...
Warum ich die oberen Ports freigegeben habe, weiß ich selbst nicht mehr genau. Ich muss mal in meine Kommentare des scriptes schauen.
...
ich suchte noch nach wertvollen Tipps erfahrener Anwender
...

wenn du nicht weißt, wozu die ports offen sind, dann mach sie zu (wertvoller tip ;-) )