linux-l: Offene Ports

Steffen Dettmer steffen at dett.de
Mo Sep 4 11:20:09 CEST 2000


* Jan-Benedict Glaw wrote on Sun, Sep 03, 2000 at 19:41 +0200:
> On Sun, Sep 03, 2000 at 03:26:00PM +0200, Rolf Buenning wrote:

[kein SMTP von "außen"]
> ipchains -A input -i ppp0 -p tcp -d 0/0 smtp -j REJECT

Wenn Du dem Internet keine Server anbietest, dann einfach

ipchains -A input -i ppp0 -y -j REJECT

Davor kann man evtl. noch Ausnahmen akzeptieren. Aber ich finde
es meistens übersichtlicher, nach der Device "was nicht
ausdrücklich erlaubt ist, ist verboten" zu konfigurieren. Also
erlaubte aufführen, dann default deny, z.B. (alles aus'm Kopf):

ipchains -P input REJECT
ipchains -F input
ipchains -A input -b -i ppp0 -p tcp -d 0/0 ssh ACCEPT
ipchains -A input -b -i ppp0 ! -y ACCEPT
ipchains -A input -l -j REJECT

> ...in Deiner /etc/inetd.conf ist, wenn denn noch vorhanden, eine
> Zeile mit "auth" oder "ident" am Anfang. Einfach auskommentieren.
> ...oder eben auch ipchains benutzen. Das sollte mit Beispielen
> oben ja jetzt nicht mehr so das Problem sein;)

Aber REJECT, nicht DENY verwenden, sonst kann's langsam werden :)

> Leafnode sollte sich eigentlich ganz gut über tcpd absichern lassen.
> Ich halte es für sauberer, keine DENY/REJECT Regeln aufzustellen,
> wenn sich das Problem im userspace lösen läßt. 

Kannst Du das mal bitte erklären?
Ich halte es für sauber, nur zu erlauben, was notwendig ist (für
zu Hause natürlich egal, aber für Production mach ich das meist
so). Wenn niemand zu nntp connecten darf, dann darf von außen ja
eh kein Connection-packet kommen (also SYN, no ACK, no FIN). Wenn
so eines sowieso nicht kommen kann, kann man das auch REJECTEN
(falls man mal z.B. durch einen Vertipper oder weiß ich was seine
hosts.allow um die Ecke gebracht hat oder sowas). Zusätzlich wird
das entsprechende in hosts.allow konfiguriert. hosts.deny enthält
im einfachsten Fall nur ein ALL:ALL...
 
> > Das will ich auch nicht.
> 
> Die diversen lpd's sind leider nicht so flexibel in ihrer
> Konfiguration. Entweder auch über den inetd starten lassen
> (zusemmen mit dem tcpd, um das Ding abzusichern), oder
> mit ipchains dichtmachen...

Oder (laut manpage):

FILES

     /etc/hosts.equiv      lists machine names allowed printer access
     /etc/hosts.lpd        lists machine names allowed printer access, 
                           but not under same administrative control.

> > Tja, dann weiss ich jetzt nicht weiter(ausser ipchains vielleicht).
> > Meine Massnahmen blieben ohne Erfolg.

netstat -an --inet 
sagt Dir, was auf Deiner Maschine an offenen Ports vorhanden ist
(außer Trojaner natürlich :) )

> > root at Sirius:/etc > cat hosts.deny
> > leafnode  : ALL EXCEPT LOCAL

Du also machst deny (ablehnen) aller außer lokal...

> Das ist bei Dir genau falschherum;)

Na ja, sollte aber auch gehen (bloß die anderen Dienste sind dann
erlaubt, schade...)

> /etc/hosts.deny:
> 	ALL:ALL
> /stc/hosts.allow:
> 	leafnose: 127.0.0.1/255.0.0.0,192.168.0.0/255.255.0.0

Finde ich auch übersichtlicher. Dann muß man nicht in .deny
nachschauen, was impliziet erlaubt ist (das klingt schon so
furchtbar IMO)

> > Eine Frage noch, was ist mit Ports > 1024 bis 64k?
> > Der Check hat nicht geklappt, Connect's starben ab (T-Online :(( .

Das sind die "userports". Wenn Du irgentwohin connectest, braucht
Dein client ja einen Port. Dafür werden i.d.R. ports > 1024
verwendet. Also nicht generell blocken, also blocken mit "-y".
Wenn Du ein ganz wichtigen Router hast, kann Du von der Liste
noch die gängigen Trojanerports blocken (sind aber dann fast 200
zusätzliche Regeln :)). Das werde ich mal probieren. Dabei muß
man beobachten, ob so ein Port zufällig auch im Normalbetrieb
verwendet wird (65000 z.B. sollte bei Masquerierten Verbindungen
auftreten können IIRC), den kann man ja dann nicht einfach so
verbieten... Aber das ist ein anderer Thread.

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.



Mehr Informationen über die Mailingliste linux-l