Hosts auschlie?en

Georg Zetzsche georg at tlug.de
Mit Jul 19 07:30:33 CEST 2000


On Wed, Jul 19, 2000 at 01:52:37PM +0200, Johannes Vieweg wrote:
> Hallo Leute,
> 
> ich habe ein Problem mit dem Ausschlie?en von bestimmten
> IP-Adressbereichen. Das regelt man bei SuSE ja ?ber die hosts.allow und
> hosts.deny. Da ich nur 5 IP's zulassen will, bin ich wie folgt
> herangegangen:
> 
> 1.) Ich habe kurzerhand in die hosts.deny ein ALL gesetzt.
> 2.) In der hosts.allow steht jetzt drinne:
> 
> 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4 192.168.0.5
> 
> Allerdings kann ein Rechner mit der IP 192.168.0.10 in meinen PC zugreifen.
> Ich hab's dann mal so versucht: (hosts.deny)
> 
> ALL: EXCEPT 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.3 usw.
> 
> Das hat auch nicht den gew?nschten Erfolg gebracht. 
> Kann mir jemand helfen? SuSE Handbuch & Supportdatenbank waren nicht
> hilfreich. Mein Ziel ist, alle IP's auszusperren, au?er 192.168.0.1 bis
> 192.168.0.5.
> 

Hallo Johannes,
in die /etc/hosts.allow schreibst du am Besten gar nichts rein 
, in diese Datei schaut der portmapper zuerst hinein;
In dieser Datei sind alle hosts aufgeführt, die exklusiv Zugriff
bekommen, der Eintrag vor dem Doppelpunkt ist allerdings der zu
erlaubende Dienst, z.B.
ALL EXCEPT in.telnetdt : 192.168.50.1 192.168.50.2
ALL : 192.168.50.3

würde heißen, dass 192.168.50.3 alle Dienste nutzen kann, die anderen
beiden alle außer telnet.

Wird der angeforderte Dienst und der zugehörige Host in dieser Datei 
gefunden, erlaubt der portmapper den gewünschten Zugriff OHNE
vorher in der /etc/hosts.deny nachzuschauen.

Ein Rechner darf sich trotzdem an den von ihm angefordernden Dienst 
verbinden, wenn er sich nicht (oder nicht mit den entsprechenden
Rechten) in der /etc/hosts.allow befindet UND ihm der gewünschte Zugriff
in der /etc/hosts.deny nicht explizit verboten worden ist, z.B.

ALL: ALL EXCEPT 192.168.50.1 192.168.50.2 

würde heißen, dass nur diese beiden hosts sich verbinden dürfen.
Die 192.168.50.3 ist hier zwar nicht aufgeführt worden, dadurch, dass
ihr aber in der /etc/hosts.allow schon explizit Zugang verschafft worden
ist, guckt der portmapper gar nicht mehr in diese Datei. Nach diesen
Angaben dürfen nun auch die 192.168.50.1 und die 192.168.50.2 den 
in.telnetd service nutzen, da es ihnen hier nicht explizit verboten
worden ist. Sie haben zwar keine explizite Erlaubnsi in der 
/etc/hosts.allow dafür erhalten, bekommen hier aber kein Verbot und
sind damit legitimiert.
Aus diesem Grunde schreiben viele ind die /etc/hosts.deny nur:
ALL : ALL #verbietet jedem alle
und erlauben dann explizit in der /etc/hosts.allow einigen Rechnern den
Zugriff (wenn der portmapper zuerst in der /etc/hosts.allow nachschaut
und darin ihre explizite Erlaubnis sieht, erlaubt er ja es diesen
sofort und liest gar nicht erst die /etc/hosts.deny). Alle
anderen Rechner bekommen keine explizite Erlaubnis und es wird in der /etc/hosts.deny geguckt, wo alle Rechner ein explizites Verbot erhalten; sie sind damit
nicht autorisiert.

Puuh, ich wollte das nur so ausführlich erklären, weil ich selbst meine
Probleme damit hatte. 

Du hast also jetzt 2 Möglichkeiten um dein Problem zu lösen:

1.
/etc/hosts.allow:
#gar nichts
/etc/hosts.deny
ALL : EXCEPT <deine Hosts mit Spaces getrennt>

2. 
/etc/hosts.allow
ALL: <deine Hosts mit Spaces voneinander getrennt>
/etc/hosts.deny
ALL : ALL

Hoffe, du hast verstanden.

Viel Spaß beim Konfigurieren.

--
Johannes Nicolai (von anderer Adresse gesendet)
<johannes at tlug.de>