• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

(gelöst) Netzzugriff für Kids sperren

Joy006

Newbie
Hallo zusammen,

Linux ist für mich noch ziemliches Neuland. Ich habe bei mir SUSE 11.1 installiert und einen User für meine Kids eingerichtet.
Für diesen User möchte ich nun das Internet sperren. Dazu hab ich den Befehl
iptables -I OUTPUT 1 -m owner --uid-owner 1002 -j REJECT in der Konsole als Root eingegeben.
Dann klappt dass auch mit der Netzsperre für User 1002. Leider liegt das ganze aber ja nur im RAM.
Also hab ich die Zeile in der Datei /etc/init.d/boot.local ergänzt (siehe unten).Damit sollte dass ganze beim
Booten automatisch mit ausgeführt werden. Leider klappt dass nicht.
Woran kann es denn liegen ? Hat jemand eine Idee für einen Frischling ?

Gruß
Joy006

#! /bin/sh
#
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. All rights reserved.
#
# Author: Werner Fink <werner@suse.de>, 1996
# Burchard Steinbild, 1996
#
# /etc/init.d/boot.local
#
# script with local commands to be executed from init on system startup
#
# Here you should add things, that should happen directly after booting
# before we're going to the first run level.
#
iptables -I OUTPUT 1 -m owner --uid-owner 1002 -j REJECT
 

framp

Moderator
Teammitglied
Hm ... das klingt irgendwie nach mir bekannten Problemen, die ich allerdings mittlerweile nicht mehr habe, da meine Kids volljährig sind ;)

Was ist Dein Problem und willst Du lösen?
 
OP
J

Joy006

Newbie
Hallo zusammen,

ich bin in der Zwischenzeit einen kleinen Schritt weiter.
Ich hab den Befehl iptables -I OUTPUT 1 -m owner -- uid-owner 1002 -j REJECT in die Datei boot.local kopiert.
Dann diese in die Datei nonet kopiert. Die Datei nonet liegt jetzt unter /etc/init.d/
Darauf hab ich einen symbolischen Link mit ln -s /etc/init.d/nonet /etc/init.d/rc5.d/S99nonet angelegt.
Hatte die Hoffnung, dass das Scribt beim booten als letztet gestartet wird. Leider kommt nach dem booten im Terminal für die Chain OUTPUT nur folgende raus:

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state NEW,RELATED,E
STABLISHED
LOG all -- anywhere anywhere limit: avg 3/min bu rst 5 LOG level warning tcp-options ip-options prefix `SFW2-OUT-ERROR '.

Wenn ich dann aber den Runlevel-Editor unter Yast starte und warte bis mir die Dienste angezeigt werden, kommt beim Script nonet aktiv.
Die Chain Output liefert dann auf einamal folgendes:

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere owner UID match non et reject-with icmp-port-unreachable
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state NEW,RELATED,E STABLISHED
LOG all -- anywhere anywhere limit: avg 3/min bu rst 5 LOG level warning tcp-options ip-options prefix `SFW2-OUT-ERROR '

Jetzt klappt dass mit der Netzsperre.

Aber warum klappt dass nicht beim booten und geht dann automatisch, wenn ich den Runleveleditor nur starte ?
nonet läuft in Runlevel 3 und 5.
Vielleicht kann mir ja einer helfen.
Gruß
Joy006
 

HBtux

Member
Vielleicht ist ein Pfad nicht richtig gesetzt....?
Wenn Du Dich am System grafisch anmeldest, bekommst Du ggf. noch mal einige Pfade gesetzt, die das System beim Durchlaufen der Runlevel-Scripts nicht hat.

Vielleicht kannst Du hilfsweise auch mal die Ausgabe des "iptables"-Befehl in eine Temp-Datei umleiten.
Zusätzlich im Runlevel-Script vorher noch "env > /tmp/env_runlevelscript" ausführen...
Auf der Shell dann manuell "env > /tmp/env_shell" ausführen und die beiden Files mit diff vergleichen...
 
Oben