Verder Terug Inhoud

5. Extra mogelijkheden.

5.1 creatief met ip-up en ip-down.

Je kunt een hoop (leuke ?) dingen doen met met het ``/etc/ppp/ip-up'' en ``/etc/ppp/ip-down'' scripts.

Loggen van de verbindings tijden.

Dit zet je in je /etc/ppp/ip-up script erbij:


# Hou een log file bij met connectie gegevens.
echo "$(date)           \
      $IFNAME $IFTTY    \
      speed $IFSPEED    \
      local:$LOCALIP    \
      remote:$REMOTEIP  \
      Started." >>/var/log/dial.log

Dit zet je vervolgens in het /etc/ppp/ip-down script erbij:


# Hou een log file bij met connectie gegevens.
echo "$(date)           \
      $IFNAME $IFTTY    \
      speed $IFSPEED    \
      local:$LOCALIP    \
      remote:$REMOTEIP  \
      Stopped." >>/var/log/dial.log

Je krijgt dan zo'n soort ``/var/log/dial.log'' file:


Tue Feb  2 11:49:07 CET 1999 ppp0 /dev/ttyS1 speed 115200 local:194.159.231.103 remote:194.159.73.222 Started.
Tue Feb  2 11:57:55 CET 1999 ppp0 /dev/ttyS1 speed 115200 local:194.159.231.103 remote:194.159.73.222 Stopped.

Configureren van een firewall.

Helaas shijnt het nodig te zijn om sommige vervelende figuren buiten ons eigen vertrouwde thuisnetwerk te houden...

Je zou dit bijvoorbeeld alleen willen doen als je online bent, dan zou je zo'n soort IP-chains combinatie in het ``/etc/ppp/ip-up'' script kunnen zetten.


# Pas dit aan je eigen netwerk 
MYLAN=10.76.12.0/24

ipchains -F 
ipchains -N ppp-in
ipchains -A input -i $IFNAME -j ppp-in
# Geen IP spoofing op mijn LAN...
ipchains -A ppp-in -s $MYLAN -l -j DENY
ipchains -A ppp-in -d $MYLAN -l -j DENY
etc...etc...

In je ``/etc/ppp/ip-down'' script kun je dan alle firewall rules weer verwijderen.


ipchains -F 

Zie voor gebruik van IP-chains de IPCHAINS-HOWTO.

5.2 Normale users verbinding laten starten.

sudo

Met het programma ``sudo'' kun je gewone users bepaalde commando's als de root user laten uitvoeren. Hieronder staat een voorbeeld hoe je dat zou kunnen doen. Voeg aan de regel ``PPPERS = jw-smaal,...'' de users toe welke ``ppp-on'' en ``ppp-off'' mogen starten. ``helium'' is mijn lokale hostname, deze naam moet je aanpassen aan je eigen sitatie, type ``hostname'' in om te zien wat je in je eigen situatie moet invullen.

Aanpassen van de configuratie file van sudo kan alleen met het commando ``visudo''. Voor het formaat van het programma sudo zie ``man sudoers''.


  # This file MUST be edited with the 'visudo' command as root.
  #
  # See the man page for the details on how to write a sudoers file.
  #
  # Host alias specification
  # User alias specification
  User_Alias      PPPERS = jw-smaal,smaal,marcel,willem
  # Cmnd alias specification
  Cmnd_Alias      PPP=/usr/local/sbin/ppp-on,/usr/local/sbin/ppp-off
  # User privilege specification
  root            ALL=(ALL) ALL
  PPPERS          helium = NOPASSWD: PPP
  

SUID wrapper zelf maken

De kernel weigert om zogenaamde SUID (Set User ID) shell-scripts te runnen. Je kunt hieromheen werken door een klein C programma te schrijven welke wel SUID gezet mag worden en vervolgens het ppp-on/ppp-off script runt. Let op deze programma's kunnen onveilig zijn, gebruik bij voorkeur de ``sudo'' methode. Op eigen risico de C source:

``suid-ppp-on.c''


  #include <unistd.h>
  void main()
  {
        setreuid(0, 0);
        execl("/usr/local/sbin/ppp-on", "", "");
  }
  

``suid-ppp-off.c''


  #include <unistd.h>
  void main()
  {
        setreuid(0, 0);
        execl("/usr/local/sbin/ppp-off", "", "");
  }
  

Compilen van beide programma's:


  gcc -o suid-ppp-on  suid-ppp-on.c
  gcc -o suid-ppp-off suid-ppp-off.c
  

Copieer ``suid-ppp-on'' en ``suid-ppp-off'' naar ``/usr/local/bin'' en geef deze commando's om deze SUID te maken:


  [root@koala ~]# cd /usr/local/bin/
  [root@koala /usr/local/bin]# chown root:jw-smaal suid-ppp-on suid-ppp-off 
  [root@koala /usr/local/bin]# chmod u=srx,g=rx,o-srwx suid-ppp-on suid-ppp-off 
  

Als je nu ``suid-ppp-on'' als user ``jw-smaal'' typt dan wordt als het goed is de verbinding gestart.

5.3 Relevante HOWTO's


PPP-HOWTO
ISP-Hookup-HOWTO
ISP-Connectivity  (mini-HOWTO)

5.4 Aanvullingen en verbeteringen.

Aanvullingen en verbeteringen van dit document zijn van harte welkom graag opsturen naar J-W Smaal < J-W@Smaal.Demon.NL> .


Verder Terug Inhoud