IPCop-Forum.de

www.ipcop-forum.de


IPCop-Community
CL-Systems
Home Home   Doku Doku   Links Links   Downloads Downloads
UnIPCop Der (Un)IPCop   IFS IPCop-ForumSpy
CopTime CopTime   Galerie IPCop-Galerie   IPCop Userkarte Userkarte
Aktuelle Zeit: 25.05.2018, 02:56

Alle Zeiten sind UTC+02:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 151 Beiträge ]  Gehe zu Seite Vorherige 1 2 3 4 511 Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 07:10 
Offline
Deputy Sergeant
Themenstarter
Deputy Sergeant

Registriert: 14.09.2005
Beiträge: 44
sehr nett...


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 07:38 
Offline
Superintendent
Superintendent

Registriert: 25.02.2005
Beiträge: 514
niels$ hat geschrieben:
Wenn das Script nun noch ein Log mitschreibt, dann kann man sich an der Funktion ja auch noch richtig erfreuen.


Uups, macht das Script schon, oder?

_________________
über mich
derzeit ohne Cop@home
(Onkel Fritz ist mit Kabel-D eingezogen, dafür endlich mal ordentliche Bandbreite)


Nach oben
   
 Betreff des Beitrags: eigenes LOG für Script
BeitragVerfasst: 30.01.2006, 08:49 
Offline
Superintendent
Superintendent

Registriert: 25.02.2005
Beiträge: 514
So, alle die sich mit Linux besser auskenne, mögen mich bitte korrigieren, jedoch habe ich mal hinter >logger -t IPSec "$CON: Tunnel IP : $TUNIP"< folgendes eingefügt:
Code:
echo "`date +%d.%m.%y' '%H:%M:%S`;$CON;$OLDIP;$REMOTEIP" >>/var/log/vpnreconnect.log


Gruß
Niels

_________________
über mich
derzeit ohne Cop@home
(Onkel Fritz ist mit Kabel-D eingezogen, dafür endlich mal ordentliche Bandbreite)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 09:09 
Offline
Superintendent
Superintendent

Registriert: 25.02.2005
Beiträge: 514
:( Mhh, ich glaube, da ist noch was krumm im Script. Mein Log zeigt mir nun, dass die Verbindung bei jeder Ausführung des Scripts neu gestartet wird, obwohl die IPs gleich sind. Das sollte ja nicht so sein.

/Edit:
Ich habe mal die Variable TUNIP mitgeloggt - die ist leer. Das liegt vermutlich hier:
Code:
TUNIP=`ipsec whack --status | grep $CON | awk 'BEGIN{FS="["}{print $2}' | awk 'BEGIN{FS="---"}{print $3}'`

Der Fieldseperator "[" scheint mir nämlich auf Zertifikatsverbindungen ausgelegt zu sein, bei PSK´s taucht der nicht auf. Nun bin ich nur zu blöd, diesen Befehl komplett zu begreifen, aber ich lasse das noch einmal sacken.

/Edit2:
Code:
TUNIP=`ipsec whack --status | grep $CON | awk 'BEGIN{FS="==="}{print $2}' | awk 'BEGIN{FS="---"}{print $3}'`

funktiniert bei PSK aber nicht bei Zertifikaten. Somit kann ich das mit 2 Zertifikaten erschlagen. Nun brauchen wir jemanden, der mit Linux umgehen kann und vorher prüft, ob "[C=" oder "===" drinsteht um dann den richtigen Befehl zur Ermittlung der aktuell eingetragenen IP zu nutzen. Eigentlich kann man das auch schon früher im Script machen - mal sehen.

Gruß
Niels

_________________
über mich
derzeit ohne Cop@home
(Onkel Fritz ist mit Kabel-D eingezogen, dafür endlich mal ordentliche Bandbreite)


Zuletzt geändert von niels$ am 30.01.2006, 09:46, insgesamt 2-mal geändert.

Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 09:35 
Offline
IPCop-Entwickler, Site-Moderator, IPCop-Supporter 2006, 2007, 2008 und 2009
IPCop-Entwickler, Site-Moderator, IPCop-Supporter 2006, 2007, 2008 und 2009
Benutzeravatar

Registriert: 26.06.2005
Beiträge: 19149
Wohnort: LDK | Hessen
versuch's mal mit:
Code:
TUNIP=`/usr/sbin/ipsec whack --status | grep $CON | awk 'BEGIN{FS="["}{print $2}' | awk 'BEGIN{FS="---"}{print $3}'`

_________________
/* Gruß weizen_42 */

Bild
| IPCop Doku | IPCop Galerie | IPCop Uptime | Ärger vermeiden |


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 10:41 
Offline
Superintendent
Superintendent

Registriert: 25.02.2005
Beiträge: 514
weizen_42 hat geschrieben:
versuch's mal mit:
Code:
TUNIP=`/usr/sbin/ipsec whack --status | grep $CON | awk 'BEGIN{FS="["}{print $2}' | awk 'BEGIN{FS="---"}{print $3}'`


Nein, klappt leider nicht, das Problem ist nicht der Pfad, sondern das unterschiedliche Aussehen einer PSK und einer VPN-Zeile:
IPSECStatus hat geschrieben:
000 "einePSK": 192.168.2.0/24===XXX.XXX.XXX.XXX---XXX.XXX.XXX.XXX...XXX.XXX.XXX.XXX---XXX.XXX.XXX.XXX===192.168.1.0/24
000 "eineCERT": 192.168.2.0/24===XXX.XXX.XXX.XXX[C=DE, ST=SH, O=XXXXX, CN=XXX.XXX.XXX.XXX]---XXX.XXX.XXX.XXX...XXX.XXX.XXX.XXX---XXX.XXX.XXX.XXX[C=DE, ST=SH, O=XXX, CN=XXXX]===172.30.0.0/16


Ich stelle mir das so vor:
Code:
CON=$1
TYPE=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $6}'`
if [ "$TYPE" == "psk" ]; then
        FSEP="==="
else
        FSEP="["
fi
TUNIP=`ipsec whack --status | grep $CON | awk 'BEGIN{FS=$FSEP}{print $2}' | awk 'BEGIN{FS="---"}{print $3}'`
echo "`date +%d.%m.%y' '%H:%M:%S`;$CON;$TYPE;$FSEP;$TUNIP" >>/var/log/vpnreconnect.log


Doch leider bin ich zu doof dazu.
So funktioniert es:
Code:
TUNIP=`ipsec whack --status | grep $CON | awk 'BEGIN{FS="==="}{print $2}' | awk 'BEGIN{FS="---"}{print $3}'`
echo "`date +%d.%m.%y' '%H:%M:%S`;$CON;$TYPE;$FSEP;$TUNIP" >>/var/log/vpnreconnect.log


Sobald ich jedoch "===" durch $FSEP austausche, bekomme ich keine IP mehr. Da brauche ich jetzt jemanden, der sich damit auskennt - es kann ja nur ein Syntaxfehler sein.

Gruß
Niels

_________________
über mich
derzeit ohne Cop@home
(Onkel Fritz ist mit Kabel-D eingezogen, dafür endlich mal ordentliche Bandbreite)


Nach oben
   
 Betreff des Beitrags: noch ein Problem
BeitragVerfasst: 30.01.2006, 10:59 
Offline
Superintendent
Superintendent

Registriert: 25.02.2005
Beiträge: 514
Und das Script hat noch ein Problem:
Wenn meine Verbindung den Namen nielsprivat hat und eine 2. Verbindung zu nielsprivat.dyndns.org eingetragen ist, oder der String im Zertifikat vorkommt, dann kommt es zu Problemen, wenn die 2. Verbindung vor der 1. steht. Das ist logisch, da dann auf die falsche Position in der Datei gegreppt wird. Es müsste also nach der Zeichenkette >"nielsprivat":< gesucht werden. Nur wie bekomme ich die Anführungszeichen in das Script, da diese ja als Texterkennung vom Script gewertet werden. Kann man da irgendwie ASCII-Codes einfügen?

Gruß
Niels

_________________
über mich
derzeit ohne Cop@home
(Onkel Fritz ist mit Kabel-D eingezogen, dafür endlich mal ordentliche Bandbreite)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 12:31 
Offline
IPCop-Entwickler, Site-Moderator, IPCop-Supporter 2006, 2007, 2008 und 2009
IPCop-Entwickler, Site-Moderator, IPCop-Supporter 2006, 2007, 2008 und 2009
Benutzeravatar

Registriert: 26.06.2005
Beiträge: 19149
Wohnort: LDK | Hessen
Code:
TUNIP=`ipsec whack --status | grep $CON | awk 'BEGIN{FS="'$FSEP'"}{print $2}' | awk 'BEGIN{FS="---"}{print $3}'`


das sollte tun. Hab allerdings keine VPN Tunnels zum 100% verifizieren.

Anführungszeichen können i.d.R. mit \" angegeben werden.

_________________
/* Gruß weizen_42 */

Bild
| IPCop Doku | IPCop Galerie | IPCop Uptime | Ärger vermeiden |


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 13:21 
Offline
Deputy Sergeant
Themenstarter
Deputy Sergeant

Registriert: 14.09.2005
Beiträge: 44
Hi,

könnt ihr mir vielleicht kurz sagen, was ich falsch mache?

Wär nett, wenn ihr das Script nochmal vollständig posten könnt.


Danke


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 16:48 
Offline
Superintendent
Superintendent

Registriert: 25.02.2005
Beiträge: 514
wotschy hat geschrieben:
Hi,
könnt ihr mir vielleicht kurz sagen, was ich falsch mache?
Wär nett, wenn ihr das Script nochmal vollständig posten könnt.

Das Script kommt natürlich, sobald ich die Ausführungen von Weizen erfolgreich getestet habe.
Aber wo ist mit dem ursprünglich genannten Script Dein Problem? Poste doch mal ein ls von Deiner Datei. Vielleicht stimmen die Atribute nur nicht. Dazu kannst Du mal nach chmod googeln, das ist besser als wenn ich hier mein gefährliches Halbwissen niederschreibe.

Gruß
Niels

_________________
über mich
derzeit ohne Cop@home
(Onkel Fritz ist mit Kabel-D eingezogen, dafür endlich mal ordentliche Bandbreite)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 17:23 
Offline
Deputy Superintendent
Deputy Superintendent

Registriert: 09.09.2005
Beiträge: 368
Wohnort: Hohengehren | BW
Wow - doch ein grösseres Echo als ich angenommen hatte. Das spricht mal wieder für die Qualität des Forums :D

Ich muss zugeben, die Host2Net-Verbindungen hatte ich nicht abgeprüft - das kommt bei mir nicht so oft vor. Meine Variante sieht jetzt so aus:

Code:
#!/bin/bash
#
# check for changed IP (dynamic DNS)
ipsec=/usr/sbin/ipsec
ipsecctrl=/usr/local/bin/ipsecctrl

CON=$1
file=/var/tmp/${CON}.remoteip

VPN=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $2}'`
if [ "$VPN" == "on" ]; then
   DYNHOST=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $12}'`
   CONNR=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $1}'`
   CONNTYPE=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $6}'`
   REMOTEIP=`ping -c 1 $DYNHOST 2>/dev/null | head -n1 | awk '{print $3}' | tr -d '()' | tr -d ':'`
   
   if ! test -f $file; then
      cat $REMOTEIP > $file
   fi

   OLDIP=`cat $file`
   TUNIP=`ipsec whack --status | grep $CON`
   if [ "$TUNIP" != "" ]; then
      if [ "$CONNTYPE" = "psk"]; then
         TUNIP=`ipsec whack --status | grep WXP | awk 'BEGIN{FS="["}{print $2}' | awk 'BEGIN{FS="==="}{print $2}' | awk 'BEGIN{FS=":"}{print $1}'`
      else if [ "$CONNTYPE" = "net"]; then
         TUNIP=`ipsec whack --status | grep $CON | awk 'BEGIN{FS="["}{print $2}' | awk 'BEGIN{FS="---"}{print $3}'`
      fi   
      if [ x$REMOTEIP != x$TUNIP ]; then
         echo $REMOTEIP > $file
         logger -t IPSec "$CON: Remote IP : $REMOTEIP"
         logger -t IPSec "$CON: Tunnel IP : $TUNIP"
         $ipsecctrl D $CONNR
         $ipsecctrl R
         $ipsecctrl S $CONNR
      fi
   fi
fi



@wotschy:

a) Ist das script ausführbar ?
b) hast Du im cron Deinen Eintrag mit vollem Pfad angegeben ?
(z.B. */5 * * * * /usr/local/bin/vpnrecon meinTunnel)

Gruss
Rüdiger


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 17:30 
Offline
Deputy Superintendent
Deputy Superintendent

Registriert: 09.09.2005
Beiträge: 368
Wohnort: Hohengehren | BW
Sorry, Skriptfehler :oops: ...hier nochmal:

Code:
#!/bin/bash
#
# check for changed IP (dynamic DNS)
ipsec=/usr/sbin/ipsec
ipsecctrl=/usr/local/bin/ipsecctrl

CON=$1
file=/var/tmp/${CON}.remoteip

VPN=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $2}'`
if [ "$VPN" == "on" ]; then
   DYNHOST=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $12}'`
   CONNR=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $1}'`
   CONNTYPE=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $6}'`
   REMOTEIP=`ping -c 1 $DYNHOST 2>/dev/null | head -n1 | awk '{print $3}' | tr -d '()' | tr -d ':'`
   
   if ! test -f $file; then
      cat $REMOTEIP > $file
   fi

   OLDIP=`cat $file`
   TUNIP=`ipsec whack --status | grep $CON`
   if [ "$TUNIP" != "" ]; then
      if [ "$CONNTYPE" = "psk"]; then
         TUNIP=`ipsec whack --status | grep $CON | awk 'BEGIN{FS="["}{print $2}' | awk 'BEGIN{FS="==="}{print $2}' | awk 'BEGIN{FS=":"}{print $1}'`
      fi
      if [ "$CONNTYPE" = "net"]; then
         TUNIP=`ipsec whack --status | grep $CON | awk 'BEGIN{FS="["}{print $2}' | awk 'BEGIN{FS="---"}{print $3}'`
      fi   
      if [ x$REMOTEIP != x$TUNIP ]; then
         echo $REMOTEIP > $file
         logger -t IPSec "$CON: Remote IP : $REMOTEIP"
         logger -t IPSec "$CON: Tunnel IP : $TUNIP"
         $ipsecctrl D $CONNR
         $ipsecctrl R
         $ipsecctrl S $CONNR
      fi
   fi
fi


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 17:58 
Offline
Deputy Sergeant
Themenstarter
Deputy Sergeant

Registriert: 14.09.2005
Beiträge: 44
Hi,

also ich habe in cron den kompletten pfad angegeben.
Dort steht
Code:
*/5 * * * * /usr/local/bin/vpn_check VPNCert4


Steht "meinTunnel" bei dir für den Namen der Verbindung oder für ipsec# ? Als ich zum Test
Code:
vpn_check.sh VPNCert4

bzw
Code:
vpn_check.sh ipsec3
(es zählt ja von 0)
eingegeben habe kam beides mal
Code:
No such file oder directory


Das Script ist 100% das, was dummy auf der 1. Seite gepostet hat.
Ich habe es mit
Code:
chmod DATEI u+x

ausführbar gemacht. Ich hoffe das stimmt so.

Das neue Script von dummy werd ich gegen später mal testen.

Grüße


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 18:31 
Offline
Deputy Superintendent
Deputy Superintendent

Registriert: 09.09.2005
Beiträge: 368
Wohnort: Hohengehren | BW
wie heisst denn nun Dein Skript ?

"vpn_check" oder "vpn_check.sh"

Lt. Deinem letzten Posting steht im cron als Dateiname "vpn_check" während Du das Skript manuell mit "vpn_check.sh" aufrufst.

Welcher Name auch immer der richtige ist - nur einer wird zum Ziel führen!

Gruss
Rüdiger


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.01.2006, 21:24 
Offline
Superintendent
Superintendent

Registriert: 25.02.2005
Beiträge: 514
dummy hat geschrieben:
Wow - doch ein grösseres Echo als ich angenommen hatte. Das spricht mal wieder für die Qualität des Forums :D

Ich muss zugeben, die Host2Net-Verbindungen hatte ich nicht abgeprüft - das kommt bei mir nicht so oft vor. Meine Variante sieht jetzt so aus:


Bei mir gings gar nicht so um Host2Net weil ich da keine Probleme habe. Es ging nur um den Unterschied zwischen PSK & CERT. Aber nett, dass Du das auch noch eingebaut hast.
Du solltest übrigens mal Deinen Namen ändern, dass passt hier nicht zu Deinen Postings :wink: . <Edit>Aus Dummy ist Scripterix geworden - er hat auf mich gehört! :mrgreen: </Edit>
Hier mal meine Scriptversuche - eigentlich genau das Gleiche, nur etwas anders angepackt. Dazu mein Wunsch nach einem eigenen Log:
Code:
#!/bin/bash 
#
# check for changed IP (dynamic DNS)
ipsec=/usr/sbin/ipsec
ipsecctrl=/usr/local/bin/ipsecctrl
CON=$1
TYPE=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $6}'`
if [ "$TYPE" == "psk" ]; then
   FSEP="==="
else
   FSEP="["
   TYPE="cert"
fi
file=/var/tmp/${CON}.remoteip
VPN=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $2}'`
if [ "$VPN" == "on" ]; then
   DYNHOST=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $12}'`
   CONNR=`grep $CON /var/ipcop/vpn/config| awk 'BEGIN{FS=","}{print $1}'`
   REMOTEIP=`ping -c 1 $DYNHOST 2>/dev/null | head -n1 | awk '{print $3}' | tr -d '()' | tr -d ':'`
   if ! test -f $file; then
      cat $REMOTEIP > $file
   fi
   OLDIP=`cat $file`
   TUNIP=`ipsec whack --status | grep $CON`
   if [ "$TUNIP" != "" ]; then
    TUNIP=`ipsec whack --status | grep "$CON": | awk 'BEGIN{FS= "'$FSEP'"}{print $2}' | awk 'BEGIN{FS="---"}{print $3}'`
      if [ x$REMOTEIP != x$TUNIP ]; then
         echo $REMOTEIP > $file
         logger -t IPSec "$CON: Remote IP : $REMOTEIP"
         logger -t IPSec "$CON: Tunnel IP : $TUNIP"
         echo "`date +%d.%m.%y' '%H:%M:%S`;$CON;$CONNR;$DYNHOST;$TUNIP;$REMOTEIP" >>/var/log/vpnreconnect.log
         $ipsecctrl D $CONNR
         $ipsecctrl R
         $ipsecctrl S $CONNR
      fi
   fi
fi


Kombiniert mit meiner Idee hört sich das schon recht rund an.
Nun brauchen wir nur noch einen Modder, der das in die GUI einbaut - das wäre ein Knaller.

Gruß
Niels

_________________
über mich
derzeit ohne Cop@home
(Onkel Fritz ist mit Kabel-D eingezogen, dafür endlich mal ordentliche Bandbreite)


Zuletzt geändert von niels$ am 07.04.2006, 09:01, insgesamt 1-mal geändert.

Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 151 Beiträge ]  Gehe zu Seite Vorherige 1 2 3 4 511 Nächste

Alle Zeiten sind UTC+02:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu Forum:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de