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