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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 42858
Url: https://administrator.de/contentid/42858
Ausgedruckt am: 26.11.2024 um 18:11 Uhr
13 Kommentare
Neuester Kommentar
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?
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?
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
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
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
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
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.
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.
@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....
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…
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
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>
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.
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
@Jabberwock,
Hi,
zwei Sachen noch:
Zu....
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....
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
Hi,
zwei Sachen noch:
Zu....
Dann suche in der Datei squid.conf nach "error_directory"
Stell' den Pfad um auf dein Squidverzeichnis.
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
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