Erik Tews: Steuern einer Firewall ueber HTML

Beitrag lesen

Ich suche eine Lösung:
ein Benutzer soll sich von einer Win98 Station über einen Linux 6.2  Server
(SQUID) im Internet serven können. Allerding soll die Freischaltung des Internets
abhängig vom Benutzer sein und automatisch erfolgen.Wenn das Internet
freigeschalten ist sollen nur berechtigte Benutzer Daten aus dem Internet
bekommen.
Dabei soll egal sein an welchem Client der Benutzer angemeldet ist.
Die Clients haben eine feste IP-Adresser.
Wenn es nicht Benutzer bezogen geht dann sollte es nur IP bezogen sein.

Das freischalten des Benutzers oder der IP  soll ueber einen Browser funktionieren.
z.B. wenn ein cgi skript folgendes ausfuerhren soll

ipchains -D input -j DENY -p tcp -s 192.168.0.2 -d 192.168.0.3 3128
sleep 300 &
ipchains -A -j input -j DENY -p tcp -s 192.168.0.2 -d 192.168.0.3 3128

zweite Problem: Der Browser wartet bis der sleep ausgefuehrt ist, trotz &.
wie kann ich das umgehen.

Hm, erklär das nochmal. Wie genau soll das gehen. Zu deinem Script, dass musst du erst mal als Root ausführen. Dazu brauchst du z. B. nen gepatchtes suexec.

Versuch doch mal folgendes Sub aufzurufen:

sub daemonize {
               chdir '/'               or die "Can't chdir to /: $!";
               open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
               open STDOUT, '>/dev/null'
                                       or die "Can't write to /dev/null: $!";
               defined(my $pid = fork) or die "Can't fork: $!";
               exit if $pid;
               setsid                  or die "Can't start a new session: $!";
               open STDERR, '>&STDOUT' or die "Can't dup stdout: $!";
           }

Dann koppelt sich das CGI vom Browser ab.