jabberwock
Goto Top

Anfragen nur von besitmmten IPs auflösen

Hi, ich hoffe ihr könnt mir ein bisschen helfen. Ich habe mir ein Projekt aufschwatzen lassen und nun komme ich nicht weiter. Bin ja auch noch in der Ausbildung, da kann das ja mal passieren.

Ich möchte, dass alle Anfragen die an den DNS gehen bei mir auf dem Lokalen Webserver landen.
Nur Anfragen von bestimmten IPs dürfen aufgelöst werden, leider werden die aber vom DHCP vergeben und da habe ich kein Einfluss drauf. Also müssten die erlaubten IPs auch noch schnell mit einem Script oder so änderbar sein.

Laufen soll das ganze auf einem Ubuntu Server 6

Hab ihr eine Idee wie man so was lösen könnte?
Über Tipps und Radschläge wäre ich euch sehr dankbar.

Mfg
Jabberwock

Content-Key: 42858

Url: https://administrator.de/contentid/42858

Printed on: April 24, 2024 at 20:04 o'clock

Mitglied: 27119
27119 Oct 24, 2006 at 03:50:54 (UTC)
Goto Top
Die DNS Anfragen gehen an den DNS Server, daher kann dein Webserver sie auch nicht abfangen. (UDP Port 53). Ist ja kein Broadcast sondern Unicast.
Wenn die Clients (oder Teile davon) keine DNS Anfragen mehr stellen können, können sie sich auch nicht mehr in der domäne anmelden und vieles mehr.
Der Sinn will sich mir nciht ganz erschliessen.
Gibt es einen? face-wink
Member: Jabberwock
Jabberwock Oct 24, 2006 at 04:21:58 (UTC)
Goto Top
Hm, ich weiß jetzt nicht so ganz was du meinst.
Hab mich vielleicht auch nicht so gut ausgedrückt.

Ich habe ein LAN und jedes mal wenn ein Client nach irgendeiner Internetadresse "www.domain.de" fragt, soll er auf 192.168.1.1 bei meinem Webserver landen der ihm dann die Index vom Intranet anzeigt. So das der Client nicht ins Internet kommen kann.
Aber ein paar Clients dürfen ganz normal die Adressen auflösen und die sollen dann auch die richtigen Seiten angezeigt bekommen.

Geht so was überhaupt?
Member: Xadis
Xadis Oct 24, 2006 at 04:51:33 (UTC)
Goto Top
Hallo!

Also da denke ich ist der DNS der falsche Ansatz.
Ich würde das ganze mit nem Proxy machen und ACLs setzen. Weiterhin würde ich eher LDAP nutzen und die ACLs auf die User setzen, nicht auf die IPs. Allerdings lassen sich die ACLs auch auf IPs anwenden.

Auf dem Proxy kannst Du dann ja imho explizit sagen, welcher User auf welche Seiten darf, und wer nicht. Wenns denn mal nen deny gibt kannst Du die entsprechende Fehlerseite auf den von Dir angesprochenen Webserver umleiten, bzw. direkt den Index des Intranets anzeigen lassen.

Gruß
Xadis
Member: cykes
cykes Oct 24, 2006 at 06:48:05 (UTC)
Goto Top
Hi,

alternativ zu der Lösung von Xadis kannst Du den Clients, die ins Internet dürfen auch über DHCP immer die gleiche IP geben lassen, dazu vergibst Du für die MAC Adressen der
Netzwerkkarten dieser Clients immer die gleich IP per DHCP.

Dann kannst Du mit einem Proxy, z.B. Squid unter Linux, entsprechende Regeln einführen,
einmal die globale, dass alle auf der Intranet- bzw. Firmenhomepage landen und eine
Ausnahme für die Clients, die ins Internet dürfen.

Über den DNS Server funktioniert das nicht.

Gruß

cykes
Member: hackfresse1703
hackfresse1703 Oct 24, 2006 at 07:40:33 (UTC)
Goto Top
Moin,

ich favoritisiere auch die IP-Adressreservierung anhand der MAC. Wenn du eine Domain hast, kannst du ja auch einfach eine Startseite per GPO definieren! Und die Internetoptionen sperren.


Stefan Tolksdorf
Mitglied: 27119
27119 Oct 24, 2006 at 10:48:27 (UTC)
Goto Top
Nunja, DHCP hat sich leider noch nie zur Durchsetzung von Richtlinien geeignet.
Um sich statisch eine freie IP selbst zu geben muss man kein Hacker sein.
Und die User sind sehr findig, wenn es um freies Surfen geht.
Vom Aufwand ganz zu schweigen.

Meine Meinung. face-wink
Member: hackfresse1703
hackfresse1703 Oct 24, 2006 at 11:04:43 (UTC)
Goto Top
also ich gehe hier einfach mal von einer domain aus. und dort schränke ich die nutzer dementsprechend ein. sie kommen nicht in die TCP/IP Eigenschaften oder auf die shell. und dann müssen sie schon sehr ambitioniert sein.
Member: Jabberwock
Jabberwock Oct 24, 2006 at 11:50:36 (UTC)
Goto Top
Hi, Danke schon mal für die vielen Antworten. Scheint so als wenn ich das noch mal überdenken muss.

DHCP kann ich leider nicht ändern und wenn ich jedem über die MAC eine zuteilen lasse dann kann ich auch gleich statische verwänden. Es sind halt viele wechselnde Clients (Wlan) und auch immer andere die in Internet dürfen. Die melden sich dann über die Webpage bei dem Radiusserver an und dann dürfen die ins Intenet. Solange sie nicht angemeldet sind muss immer die Anmelde Seite im Browser erscheinen, egal was eingegeben wird.
Member: hackfresse1703
hackfresse1703 Oct 24, 2006 at 11:57:31 (UTC)
Goto Top
okay wenn du am dhcp nicht darfst isses schlecht, dann doch besser statisch, und wenn die clients domänenmitglieder sind dann per gpo die startseite definieren.


Stefan Tolksdorf
Member: Xadis
Xadis Oct 24, 2006 at 16:01:05 (UTC)
Goto Top
Hmm.. Gibt es denn irgendwelche greifbaren Kriterien an denen festgemaht wird, wann ein User/PC ins Inet darf und wann nicht?

Das klingt so, als wärst Du irgendwo beschäftigt, wo viel Durchgangsverkehr herrscht..
Member: Guenni
Guenni Oct 24, 2006 at 18:11:10 (UTC)
Goto Top
@Jabberwock

Hi,

Voraussetzung für folg. Lösung ist, dass die Clients über deinen Server ins Internet
gehen müssen, das heißt, sie können weder einen Router erreichen, noch
ist auf deinem Server Routing aktiviert.

Du installierst auf deinem Server SQUID, und über den Proxy gehen
deine Clients ins Internet(oder auch nicht :-o ? )

In den Internetoptionen deiner Clients stellst du
manuelle Proxy-Konfiguration ein:

Http-Proxy: Servername_oder_ip
Port: 3128 // Squid-Standard

Nun zu Squid

Erstelle im Verz. /etc/squid zwei Dateien:

1. Datei "ERR_ACCES_DENIED", Inhalt....
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<HTML><HEAD>
<meta http-equiv="refresh" content="0; url=http://Adresse_deines_Webservers">  

</HEAD>
<BODY>
Der Zugriff zum Internet ist ihnen nicht gestattet.

Falls die Umleitung bei ihnen nicht funkioniert,
<a href="http://Adresse_deines_Webservers">Zur Startseite</a>  
WICHTIG: Kein </body>, kein </html>, das macht Squid
selber.

Dann suche in der Datei squid.conf nach "error_directory"
Stell' den Pfad um auf dein Squidverzeichnis.

2. Datei "internet.src", Inhalt…
#Format IP-Adresse/Subnetzmaske

192.168.xxx.xx1/255.255.255.255 // Ja, viermal 255 ist richtig!!!!
192.168.xxx.xx2/255.255.255.255
usw.
Das sind die Clients, die ins Internet dürfen

Als nächstes werden in der Datei /etc/squid/squid.conf die
Zugriffe definiert:

Suche in der Datei nach ACL bzw. http_access, da wirst du
irgendwo fündig, und da definierst du einfach deine Zugriffsregel:

acl all src 0/0
acl local dst 192.168.xxx.0/24 --> dein LAN
acl internet src "/etc/squid/internet.src" --> Diese Clients dürfen ins Internet
http_access allow local --> Zugriff zum Lan für Alle
http_access allow internet --> Zugriff aus's Internet
http_access deny all --> Alle anderen dürfen nix

Grüße
Günni
Member: Jabberwock
Jabberwock Oct 25, 2006 at 15:35:07 (UTC)
Goto Top
Hi, super vielen Dank Günni.
Das hört sich viel versprechend an. Werde das gleich mal (allerdings nur zu Hause) testen.
Vielen Dank auch allen anderen die geantwortet haben. Ohne euch stände ich ganz schön auf dem Schlauch. Scheint hier ein sehr kompetentes Forum zu sein. Denke hier werde ich bleiben.

Dankeschööööön

mfg
Jabberwock
Member: Guenni
Guenni Oct 25, 2006 at 16:07:58 (UTC)
Goto Top
@Jabberwock,

Hi,

zwei Sachen noch:

Zu....

Dann suche in der Datei squid.conf nach "error_directory"
Stell' den Pfad um auf dein Squidverzeichnis.

hab' ich festgestellt:

Jetzt gibt es ja im Squidverzeichnis nur diese eine Datei mit
der Weiterleitung zum lokalen Webserver.

Ich habe natürlich meinen lokalen Webserver lt. meiner Anleitung
konfiguriert, um sicher zu sein, dass es funkt..

Gebe ich nun eine Adresse ein, die nicht existiert,
so ist dies ja keine Zugriffsverletzung, also holt Squid sich anscheinend
aus seinem Default-Verzeichnis die richtige Seite raus und es gibt keine
Weiterleitung, sondern eine Fehlermeldung. Das war's.

Zu....

acl all src 0/0
acl local dst 192.168.xxx.0/24 --> dein LAN
acl internet src "/etc/squid/internet.src" --> Diese Clients dürfen ins Internet
http_access allow local --> Zugriff zum Lan für Alle
http_access allow internet --> Zugriff aus's Internet
http_access deny all --> Alle anderen dürfen nix

Mein Serversystem ist Debian 3.0 Sarge.
Installiere ich Squid, so ist erstmal grundsätzlich kein Zugriff
möglich, auch nicht lokal, ich weiß nicht, wie das bei Ubuntu ist.

Die letzte Zeile http_access deny all ist aber auf jeden Fall
schon da, nicht, dass du die doppelt schreibst.

Vielleicht hast du's aber schon selber festgestellt. Wie dem auch sei,
wollte dir nur noch 'nen Hinweis geben.

Viel Erfolg beim Testen.

Grüße
Günni