Toon posts:

[PPTPd] Netjes 'neerhalen' van een VPN/PPP interface

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem:
Ik heb hier een server staan met daarop een PoPToP server. Nu is het zo dat een VPN/PPP verbinding wel eens wegvalt en daarom moet een gebruiker opnieuw inloggen. Het probleem is dan dat de VPN verbinding op de server nog niet weg is en pptpd zorgt er dan voor dat de nieuwe interface geblokkeerd wordt tot dat de oude weg is (wat niet meer kan omdat deze nergens 'echt' actief meer is).

Ik heb daarop de volgende workaround gevonden: in het /etc/ppp/ip-up script worden de oude ppp* interfaces opgezocht die bij de account/vpn-ip horen. Vervolgens moet deze oude verbinding worden verbroken. Dit is dan het probleem waar dit topic over gaat: hoe verbreek ik de oude verbinding juist?

Nu doe ik bijvoorbeeld gewoon "ifconfig ppp0 down", maar dit verbreek de verbinding niet compleet, omdat er ook nog processen achter zitten e.d. Het werkt deels, maae het gaat in ieder gavel niet op de manier hoe dat pptpd de verbindingen normaal verbreekt (als de gebruik van uit zijn eigen client de verbinding verbreekt). Ik heb wel een script gevonden uit Webmin die ppp verbindingen wel op de juiste manier kan verbreken, maar hier kan ik weinig wijs uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/local/bin/perl
# disc.cgi
# Disconnect a VPN connection

require './pptp-server-lib.pl';
&ReadParse();
&error_setup($text{'disc_err'});
$access{'conns'} || &error($text{'conns_ecannot'});
@conns = &list_connections();
($conn) = grep { $_->[0] eq $in{'pid'} } @conns;
$conn || &error($text{'disc_egone'});
&kill_logged('TERM', $conn->[0]) || &error($text{'disc_ekill'});
&kill_logged('TERM', $conn->[1]);
sleep(2);   # wait for it to quit
&webmin_log("disc", undef, $conn->[2]);
&redirect("list_conns.cgi");


Ook via dit forum en via Google kan ik niet echt wat concreets vinden, wie helpt mij uit de brand, want ik denk zelf dat het niet erg moeilijk kan zijn.

Verwijderd

Topicstarter
Niemand die een ingeving en/of idee heeft?

Verwijderd

Topicstarter
Echt niemand?

  • Herby
  • Registratie: Januari 2004
  • Laatst online: 17-01-2022

Herby

Stalknecht

Als ik dat shell-script bekijk lijkt het dat hij een lijst heeft met alle actieve verbinden waar hij er vervolgens 1 van sluit (via term gewoon het pid neerknallen).

Werkt dit script niet bij jou ? Zoniet moet je eens even kijken wat voor logs/overzichten PoPToP heeft en kijk welke variabelen daarin gebruikt worden zodat je dit script aan kan passen.

Compromis? Hoezo heb ik het mis dan?! | Geluk = gelul met een K | з=(•̪●)=ε


Verwijderd

Topicstarter
Bedankt voor je reactie! Ik zal kijken of het lukt, want ik heb geen PID, alleen de interface. Ik moet dus nog even een koppeling weten te leggen tussen beide.

  • Herby
  • Registratie: Januari 2004
  • Laatst online: 17-01-2022

Herby

Stalknecht

Ik denk wel dat je het proces ID weet hoor ;)
Verwijderd schreef op zaterdag 18 november 2006 @ 17:37:
Nu doe ik bijvoorbeeld gewoon "ifconfig ppp0 down", maar dit verbreek de verbinding niet compleet, omdat er ook nog processen achter zitten e.d.
Schijnbaar blijft er dus een proces draaien of kill je alleen de moeder en houd je zombies over. Mijn linux kennis rijkt niet zo ver. Met uname zou je het PID moeten kunnen vinden.

Compromis? Hoezo heb ik het mis dan?! | Geluk = gelul met een K | з=(•̪●)=ε


  • JackBol
  • Registratie: Maart 2000
  • Niet online

JackBol

Security is not an option!

gewoon de pppd met de juiste PID een SIGHUP geven. Daar is het SIGHUP signaal zelfs origineel voor bedoelt. HUP staat namelijk voor hang-up, een term origineel voor modems, maar nu bruikbaar voor alle Dial on Demand verbindingen.

Het PID kan je achterhalen met ps -ef|grep pppd. Als je meerdere pppd's tegelijkertijd gebruikt, bijv. op een PPP server, moet je PIDs gaan managen. Dat kan heel eenvoudig met bijv. een pidfile in /var/run.

[ Voor 30% gewijzigd door JackBol op 27-11-2006 15:02 ]

Opbrengst van mijn Tibber Homevolt met externe kWh meter. | Opbrengst van mijn Tibber Homevolt volgens de Tibber Data API.

Pagina: 1