![]() 
  | 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: |