DNS Dynamique / VPN : Idées

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

DNS Dynamique / VPN : Idées

Messagepar mgth » 14 Avr 2005 14:45

Juste pour soumettre à la critique ces deux petits scripts :

Le premier permet la reconnexion du VPN à la maniere du GUI (largement pompé sur celui-ci).
En effet le script que l'on trouve sur le forum redemarre tous les vpn lorsque l'un d'eux est cassé
Ce qui fait que si un client n'est plus accessible le VPN redemarre constament.

Le script est appelé par une tache cron...

Le deuxieme est un test sur spamhaus pour verifier si l'adresse refilée par le fai n'est pas blacklistée
Je pense que ça devrait fonctionner.
Je l'appel en fin de rc.redupdated, je ne sais pas si c'est le meilleur endroit.

Debutant tant sous bash, que perl, qu'Ipcop vos critiques sont les bien venus.

Mathieu

------------------------

Code: Tout sélectionner
#!/usr/bin/perl
# Reconnexion VPN
# require '/var/ipcop/general-functions.pl'; # ipcop 1.4.5
require '/var/ipcop/header.pl'; # ipcop 1.4.2

my (%vpnsettings,%confighash);

my @status = `/usr/sbin/ipsec auto --status`;
my $active

    &readhash("/var/ipcop/vpn/settings", \%vpnsettings);
    &readhasharray("/var/ipcop/vpn/config", \%confighash);

   foreach my $key (keys %confighash) {

      if ($vpnsettings{'ENABLED'} eq 'on' ||
          $vpnsettings{'ENABLED_BLUE'} eq 'on') {

         if ($confighash{$key}[0] eq 'on') {
                $active ='off';
            foreach my $line (@status) {
            
               if ($line =~ /\"$confighash{$key}[1]\".*IPsec SA established/) {
                  $active = 'on';
                   }
            }
            if ($active eq 'off') {
                   system('/usr/local/bin/ipsecctrl', 'S', $key);
               
            }
         }
      }
   }


-----------------------------------------------------------------------


Code: Tout sélectionner
#!/bin/sh
# Test Spamhaus
DEBUG="yes"
msg() {
        if [ "z$DEBUG" != "z" ] ; then
                /usr/bin/logger -t red "SpamHaus: $*"
        fi
        echo "$*"
}

if [ -e /var/ipcop/red/local-ipaddress ]; then
   LocalIP=`/bin/cat  /var/ipcop/red/local-ipaddress`
   ReverseIP=`echo $LocalIP | awk -F\. '{ print $4"."$3"."$2"."$1 }'`

   Result=`host ${ReverseIP}.sbl-xbl.spamhaus.org | grep 127.0.0.[2-6]`
   
   echo $Result

   if [ "z$Result" != "z" ]; then
      msg "Local IP $LocalIP blacklisted trying to get a new one."
      /etc/rc.d/rc.red stop
      /etc/rc.d/rc.red clean
      sleep 3
      /etc/rc.d/rc.red start
   else
      msg "Local IP $LocalIP OK."
   fi

fi
[/code]
Avatar de l’utilisateur
mgth
Second Maître
Second Maître
 
Messages: 31
Inscrit le: 17 Fév 2005 16:09

Messagepar nl » 12 Avr 2006 16:47

J'ai testé ton 1er script et j'obtiens l'erreur suivante :

Undefined subroutine &main::readhash called at /usr/local/bin/reconn_vpn.pl line 9.

Est-ce que tu pourrais m'aider ?

Ps. : Je tourne sur une 1.4.10. J'ai donc modifié
Code: Tout sélectionner
require '/var/ipcop/general-functions.pl'; # ipcop 1.4.5
#require '/var/ipcop/header.pl'; # ipcop 1.4.2


Cordialement
Nicolas
Si l'automobile avait progressé de la même façon que l'informatique, une Rolls-Royce couterait aujourd'hui 100 dollars, ferait 300.000 kilomètres avec un seul litre d'essence et exploserait une fois par an en tuant tous ses passagers. (Cringely)
Avatar de l’utilisateur
nl
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 254
Inscrit le: 19 Déc 2002 01:00
Localisation: Suisse


Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron