ubuntuusers.de

LAN innerhalb einer Benutzerverwaltung

Status: Gelöst | Ubuntu-Version: Ubuntu 8.04 (Hardy Heron)
Antworten |

schnuffiman

Anmeldungsdatum:
28. Juni 2005

Beiträge: 93

Hallo Ihr, ich habe hinter meinem DSL Anschluss einen Router mit einem eingebautem Switch für 4 Computer. Auf deren Computer befindet sich wiederum eine Benutzerverwaltung für 4 Personen.

NUR - sollen nicht alle ins Internet "dürfen" ☺

Ich verstehe im Moment nicht wie ich das realisieren soll, bzw. finde ich nicht die entsprechende Stelle. Person A den Internetzugang zu erlauben, Person B auch, Person C und D aber nicht. Die Benutzerverwaltung regelt nur den Internetzugang per Modem aber nicht per LAN über Ethernet. Der Computer ist organisatorisch dauerhaft mit dem Internet verbunden.

Kann mir jemand bitte dabei helfen?

firus

Anmeldungsdatum:
3. Februar 2007

Beiträge: 267

Naja, dass ist so ne Sache. Eigentlich sollte man für sowas einen Proxy aufsetzen, aber ich rate mal: da iss der Aufwand zu groß.

Eine weitere Möglichkeit ist OpenKiosk (http://wiki.ubuntuusers.de/OpenKiosk) damit lassen sich verschiedenste Einstellungen anpassen, was wer wie darf. Hab es selbst noch nicht getestet, aber soll wohl ganz gut funktionieren.

Ansonsten kann man noch mit der Unbedarftheit der Anwender arbeiten. Stell einfach eine sinnlose lokale IP-Adresse als Proxy ein. Die Programme versuchen es über diesen und das wird nicht funktionieren. IST ABER ALLES ANDERE ALS SICHER !!!

mreczio

Avatar von mreczio

Anmeldungsdatum:
1. Mai 2006

Beiträge: 1820

Wohnort: Essen

Eine andere Möglichkeit wäre noch, ein paar IPTABLES-Regel zu basteln, welche beim Start des Rechners aktiv werden.
Beispiel:
Vorhanden ist User1, User2, User3, root.

  • User1 (UID=1000) soll Vollzugriff auf das Internet haben.

  • User2 (UID=1002) soll nur Zugriff auf sein Mailkonto haben

  • User3 (UID=1003) soll nur Zugriff auf das Interne Netzwerk haben

  • root (UID=0) darf alles

  • Das Interne Netzwerk 192.168.10.0/24

iptables -F # alle Regeln löschen
iptables -P OUTPUT DROP # alles was den Rechner verlassen soll wird verboten.
iptables -A OUTPUT -o lo -j ACCEPT # wird benötigt für die interne Kommunikation 
iptables -A OUTPUT -m owner --uid-owner user1 -j ACCEPT # Zugriff auf das ganze Netz plus Internet
iptables -A OUTPUT -p udp --dport 53 -m owner --uid-owner user2 -j ACCEPT # Zugriff DNS über UDP für USER2
iptables -A OUTPUT -p tcp --dport 53 -m owner --uid-owner user2 -j ACCEPT # Zugriff DNS über TCP für USER2
iptables -A OUTPUT -p tcp --dport 113 -m owner --uid-owner user2 -j REJECT # ID-Port für den Verbindungsaufbau Mail  für USER2
iptables -A OUTPUT -p tcp --dport 25 -m owner --uid-owner user2 -j ACCEPT # Zugriff auf SMTP (Mailserver)  für USER2
iptables -A OUTPUT -p tcp --dport 110 -m owner --uid-owner user2 -j ACCEPT # Zugriff auf pop3  für USER2
iptables -A OUTPUT -d 192.168.10.0/24 -m owner --uid-owner user3 -j ACCEPT # Vollzugriff auf das Interne Netz  für USER3
iptables -A OUTPUT -m owner --uid-owner root -j ACCEPT # Vollzugriff für root

Ist nicht perfekt aber ein Ansatz.

firus

Anmeldungsdatum:
3. Februar 2007

Beiträge: 267

Den Ansatz muss ich sogar mal richtig dolle loben ! Soweit stecke ich nicht in den iptables-rules drin - das mit der UID ist mir bis jetzt nicht bekannt gewesen 😀

Sollte aber so nicht von iptables-Neulingen angewandt werden, iptables ist ein sehr komplexes Thema... Man kann nur hoffen, dass es unter Ubuntu (oder gern auch für alle Linuxe 😀 ) endlich mal eine grafische Oberfläche geschaffen wird, die zugleich komfortabel und auch bei erweiterter Konfiguration komplex ist - Firestarter empfinde ich bestenfalls als netten Ansatz (iss aber meine persönliche und absolut subjektive Meinung).

schnuffiman

(Themenstarter)

Anmeldungsdatum:
28. Juni 2005

Beiträge: 93

Wow, ich bekomme mein Kinn gar nicht mehr hoch 😲

Was habe ich mir die Finger wund getippt. Nun gut ich werde beides ausprobieren, aber erst am Wochenende. Ich melde mich dann nochmal.

@mreczio: heisst das im Einzelnen, wenn ich jedem das Internet verbieten, nur User 1, 4 ,5 erlauben möchte, das es ungefähr so aussehen müsste?

iptables -F
iptables -P OUTPUT DROP
iptables -A OUTPUT -m owner --uid-owner user1 -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner user4 -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner user5 -j ACCEPT

mreczio

Avatar von mreczio

Anmeldungsdatum:
1. Mai 2006

Beiträge: 1820

Wohnort: Essen

schnuffiman schrieb:

Wow, ich bekomme mein Kinn gar nicht mehr hoch 😲

Was habe ich mir die Finger wund getippt. Nun gut ich werde beides ausprobieren, aber erst am Wochenende. Ich melde mich dann nochmal.

@mreczio: heisst das im Einzelnen, wenn ich jedem das Internet verbieten, nur User 1, 4 ,5 erlauben möchte, das es ungefähr so aussehen müsste?

iptables -F
iptables -P OUTPUT DROP
iptables -A OUTPUT -m owner --uid-owner user1 -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner user4 -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner user5 -j ACCEPT

Jepp. Die Zeile iptables -P OUTPUT DROP verbietet alles was das Interface verlassen will. Die nächsten Zeilen erlauben dann eben den Zugriff für User1,4,5.
Früher war es sogar möglich, einer bestimmten Anwendung den Verkehr zu erlauben bzw. zu verbieten. Leider wurde diese Funktion entfernt, da sie zu Problemen auf Multiprozessor-Systemen führte. Wichtig ist aber das du dem Interface lo (localhost) den Zugriff erteilst, da es sonst zu Problemen führen könnte.

schnuffiman

(Themenstarter)

Anmeldungsdatum:
28. Juni 2005

Beiträge: 93

mreczio schrieb:

Jepp. Die Zeile iptables -P OUTPUT DROP verbietet alles was das Interface verlassen will. ...

Leider leider funktioniert das überhaupt nicht. ☹

ich habe folgende Befehle ausgeführt:

iptables -F
iptables -P OUTPUT DROP
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner user1 -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner root -j ACCEPT

anschliessend den Rechner neu gestartet und User 2, 3, 4 hatten genauso einen perfekten Zugang wie User 1. Ich frag mich warum nur. Arbeitet Hardy Heron nicht mit Iptables? Irgendwo ist dort der Wurm drin.

Vielleicht gibt es noch eine andere Möglichkeit. 😕

mreczio

Avatar von mreczio

Anmeldungsdatum:
1. Mai 2006

Beiträge: 1820

Wohnort: Essen

schnuffiman schrieb:

mreczio schrieb:

Jepp. Die Zeile iptables -P OUTPUT DROP verbietet alles was das Interface verlassen will. ...

Leider leider funktioniert das überhaupt nicht. ☹

ich habe folgende Befehle ausgeführt:

iptables -F
iptables -P OUTPUT DROP
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner user1 -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner root -j ACCEPT

anschliessend den Rechner neu gestartet und User 2, 3, 4 hatten genauso einen perfekten Zugang wie User 1. Ich frag mich warum nur. Arbeitet Hardy Heron nicht mit Iptables? Irgendwo ist dort der Wurm drin.

Vielleicht gibt es noch eine andere Möglichkeit. 😕

Das ist vollkommen normal, das es nach einem Neustart alles weg ist. Entweder packt du die Befehle in einem Script und rufst sie beim Start auf,oder aber zB. in der rc.local

schnuffiman

(Themenstarter)

Anmeldungsdatum:
28. Juni 2005

Beiträge: 93

Hallo Leute nochmal zu meiner Bastelei 😕

firus schrieb:

...

Ansonsten kann man noch mit der Unbedarftheit der Anwender arbeiten. Stell einfach eine sinnlose lokale IP-Adresse als Proxy ein. Die Programme versuchen es über diesen und das wird nicht funktionieren. IST ABER ALLES ANDERE ALS SICHER !!!

Was aber durchaus funktioniert und leider im Moment die einzigste Lösung ist. Das System "OpenKiosk" geht zu weit an meinem Bedarf an vorbei. Trotzdem danke für den Tip.

schnuffiman

(Themenstarter)

Anmeldungsdatum:
28. Juni 2005

Beiträge: 93

Der nächste Schritt funktionierte leider auch nicht:

mreczio schrieb:

...

Das ist vollkommen normal, das es nach einem Neustart alles weg ist. Entweder packt du die Befehle in einem Script und rufst sie beim Start auf,oder aber zB. in der rc.local

Ich habe sowohl das eine wie auch das andere ausprobiert, also im Script und in der rc.local. Alle hatten einen perfekten Internetzugang. Ich denke fast schon das mein rumeditiere gar nix ändert. Ich versuche morgen mal alles zu verbieten. Mal gucken wer trotzdem alles ins Internet darf. 😕

mreczio

Avatar von mreczio

Anmeldungsdatum:
1. Mai 2006

Beiträge: 1820

Wohnort: Essen

Die Zeile iptables -P OUTPUT DROP verbietet schon den Ausgehenden Verkehr. Somit verstehe ich nicht, das die User trotzdem Zugriff haben. Passiert das nach einem Neustart oder ist es generell so das nach der Eingabe der Regeln die Benutzer trotzdem Zugriff haben? Wie, wo hast du die Regel eingebunden, so das sie nach dem Rechnerstart abgearbeitet werden?
Ob die Regeln aktiv sind, kannst du prüfen, indem du in der Konsole/Terminal mal "iptables -L" ausführst. Die Ausgabe müsste dann bei aktivem Regelwerk so aussehen:

 iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            OWNER UID match martin

schnuffiman

(Themenstarter)

Anmeldungsdatum:
28. Juni 2005

Beiträge: 93

mreczio schrieb:

Die Zeile iptables -P OUTPUT DROP verbietet schon den Ausgehenden Verkehr. Somit verstehe ich nicht, das die User trotzdem Zugriff haben. Passiert das nach einem Neustart oder ist es generell so das nach der Eingabe der Regeln die Benutzer trotzdem Zugriff haben? Wie, wo hast du die Regel eingebunden, so das sie nach dem Rechnerstart abgearbeitet werden?
Ob die Regeln aktiv sind, kannst du prüfen, indem du in der Konsole/Terminal mal "iptables -L" ausführst. Die Ausgabe müsste dann bei aktivem Regelwerk so aussehen: [...]

In der Tat es sieht wirklich so aus. Zu Deiner Frage - alle Änderungen sind in der Root Konsole gemacht worden.

iptables -F -v liefert folgendes:

Flushing chain `INPUT'
Flushing chain `FORWARD'
Flushing chain `OUTPUT'
Flushing chain `INBOUND'
Flushing chain `LOG_FILTER'
Flushing chain `LSI'
Flushing chain `LSO'
Flushing chain `OUTBOUND'

iptables -P OUTPUT DROP gibt keine Rückmeldung.

iptables -L

Chain INPUT (policy DROP)
target     prot opt source               destination         
Chain FORWARD (policy DROP)
target     prot opt source               destination         
Chain OUTPUT (policy DROP)
target     prot opt source               destination         
Chain INBOUND (0 references)
target     prot opt source               destination         
Chain LOG_FILTER (0 references)
target     prot opt source               destination         
Chain LSI (0 references)
target     prot opt source               destination         
Chain LSO (0 references)
target     prot opt source               destination         
Chain OUTBOUND (0 references)
target     prot opt source               destination

Nachdem ich die ersten Rechte vergeben hatte, bekam ich folgende Meldung:

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            OWNER UID match verwaltung 
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            OWNER UID match root

Die anderen Benutzer hatten zu diesem Zeitpunkt keinen Zugang zum Internet. Genau was ich wollte. Allerdings fingen jetzt die Schwierigkeiten erst richtig an. User 1 dufte ins Internet. Die anderen nicht. Richtig. User 1 meldet sich ab und User 2 meldet sich an. Macht seine Arbeit und will sich abmelden - geht nicht. Panel hängt. User 3 meldet sich an und erlebt das gleiche. User 1 meldet sich wieder an und - geht nicht. Bekommt eine Fehlermeldung das die Internetverbindung nicht korrekt funktioniert und mindestens 1 Dienst die Arbeit verweigert. Er kann somit seinen Desktop nicht erreichen. Nach einem Warmstart läuft wieder alles normal.

Ich habe dieses Thema als gelöst gesetzt da es ja funktioniert. Allerdings mit erneuten Schwierigkeiten. Ich muss erstmal prüfen was passiert ist. So komme ich nicht weiter. Es sei denn einer von Euch hat eine Lösung für das Problem.

Soweit erst einmal einen schönen Dank für Eure Mühe.

Antworten |