| IN-Verbindungsverwaltung via Web-SeitenWie kann ich bestimmten Benutzern eines Intranets ermöglichen, über den Linux-Server eine Wählverbindung in das Internet herzustellen bzw. zu beenden? |
.htaccess
-Dateien.htaccess
verwendet werden, um eine Identifikation und Authentifikation zu verlangen. Dazu habe ich unterhalb von documentroot ein Verzeichnis namens secure
mit den Zugriffsrechten 755 angelegt (der Eigentümer spielt bei diesen Zugriffsrechten keine Rolle). In diesem Unterverzeichnis befindet sich eine Datei namens .htaccess
mit folgenden Inhalt:
AuthUserFile /etc/httpd/user |
office.msdatec.de
wird dabei im Paßwortdialog angezeigt (wobei dort auch Hallo Welt stehen könnte)./etc/httpd/user
:
lehrer:jHd635KJMsjd9 |
/etc/shadow
. Wer mutig ist, kann AuthUserFile
auf /etc/passwd
setzen und dann den Webserver zum Besitzer von /etc/shadow
machen, wovon die Apache-FAQ aber dringendst abrät. In einem Schulungsnetz, das meistens offline ist, habe ich da aber keine Bedenken. :-) Der Vorteil besteht dabei darin, daß bei Paßwortänderungen AuthUserFile
nicht geändert werden braucht.Zu beachten ist noch, daß die besondere Bedeutung der .htaccess
-Dateien nicht etwa in /etc/httpd/httpd.conf
durch einen Eintrag wie etwa AllowOverride None
für das entsprechende Verzeichnis deaktiviert ist.
Nun sollte der Zugriff auf das Verzeichnis nur noch bei Kenntnis von Benutzerkennung und Paßwort gelingen.
Weitere Infos zur Paßwortverwaltung mit Apache gibt es unter http://httpd.apache.org/docs/misc/FAQ.html#user-authentication [1].
<HTML> <HEAD> <TITLE>Administration</TITLE> </HEAD> <BODY> <H1>Administration</H1> <H2>Internetverbindung</H2> (Öffnet ein neues Browserfenster) <A HREF="/cgi-bin/ppp-up.sh" TARGET="_new">Verbindung herstellen</A><P> <A HREF="/cgi-bin/ppp-down.sh" TARGET="_new">Verbindung beenden</A> </BODY> </HTML> |
/etc/httpd/httpd.conf
richtig konfiguriert sein, was in einer Apache-Standardkonfiguration gegeben ist. Desweiteren müssen die Shell-Scripte natürlich das Attribut ausführbar aufweisen./cgi-bin/ppp-up.sh
:#!/bin/bash BASENAME=/usr/bin/basename SU1=/usr/bin/su1 PING=/bin/ping CAT=/bin/cat $CAT << EOT Content-type: text/html <HTML> <HEAD> <META HTTP-EQUIV=\"expires\" content=\"0\"> <TITLE>Internetverbindung verwalten</TITLE> </HEAD> <BODY> EOT SCRIPTNAME=$($BASENAME $0) if [ "$SCRIPTNAME" == "ppp-up.sh" ]; then echo "Stelle Internet-Verbindung her. Die Ausgabe des Scripts\ ist<BR><HR><PRE>" $SU1 /etc/ppp/ppp-up echo "</PRE><HR>" echo "Teste auf Netzwerkverbindung...<BR /><PRE>" $PING -c 2 129.70.4.55 LASTERROR=$? echo "</PRE><BR>" if [ "$LASTERROR" == "0" ] ; then echo "Ok, Internetverbindung hergestellt, Verbindung steht<BR>\ Sofern innerhalb der angegebenen Timeout-Zeit keine \ Internet-Anforderung durchgeführt wird, legt der Server wieder \ auf. Oder der Provider trennt die Leitung schon vorher.<P>\ <A HREF="/cgi-bin/ppp-down.sh">\ Internetverbindung wieder trennen</A>" else echo "keine Netzwerkverbindung?!" fi else echo "Beende Internet-Verbindung. Die Ausgabe des Scripts lautet:<BR>\ <HR><PRE>" $SU1 /etc/ppp/ppp-down echo "</PRE><HR>" fi echo -e "</BODY></HTML>\n" |
/cgi-bin/ppp-down.sh
nur ein (Soft- oder Hard-)link auf /cgi-bin/ppp-up.sh
./etc/su1.priv
genau festgelegt werden können:
logfile /var/log/su1.log |
Das war's dann schon...
1) | Frequently Asked Questions (FAQ) und ihre Antworten zum Apache-Server: http://httpd.apache.org/docs/misc/FAQ.html |
2) | su1 - ein erweitertes superuser-Programm: ftp://sunsite.unc.edu/pub/Linux/system/admin/su/ |
Letzte inhaltliche Änderung: 12. Aug 2001 | Kontakt: |