Get Adobe Flash player
Pré requis : ssh soit fonctionner normalement avec PuTTY

Exécuter vncserver sur le serveur si celui-ci n'est pas déjà lancé.

Dans PuTTY => Connection => SSH => Tunnels

Add new forwarded port :
Source port : 5901
Destination : 127.0.0.1:5901
==> Add

Executer vncviewer sur 127.0.0.1::5901
Faire un backup du serveur maître sur l'esclave.

Sur le maitre :
 GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY '<password>';

Dans my.ini : (section mysqld)
 log-bin
 server-id=1


Sur l'esclave :
Dans my.ini : (section mysqld)

 server-id=2
 # nom d'hote du maitre
 master-host=serveur_maitre
 # port sur lequel écoute le serveur maitre
 master-port=3306
 # nom utilisé pour se connecter au maitre
 master-user=repl
 # mot de passe pour se connecter au maître
 master-password=<password>

Dans un client mysql :

 SLAVE START ;
/* À copier dans userChrome.css */
/* === Barre de menu === */
/* Règle la hauteur de la barre */
#toolbar-menubar {
    height: 33px !important;
}
/* Boutons suivant et précédent */
#back-button[disabled=« true »],
#forward-button[disabled=« true »] {
    display: none;
}
/* Fais disparaitre le menu « Historique » et le menu « Aide » */
#navigator-toolbox menu[label=« Historique »],
#navigator-toolbox menu[label=« Aide »] {
    display: none !important;
}
/* === Barre de menu === */
/* Par exemple, vous ne verrez plus « précédente » dans le menu contextuel
s’il n’y a pas de page précédente dans l’onglet*/
menuitem[disabled=« true »] {
   display: none;
}
/*  Si vous ne voulez AUCUN dropmarker */
.tabbrowser-arrowscrollbox + stack,
.toolbarbutton-menubutton-dropmarker {
    display: none !important;

}

smtp-source -s 20 -l 5120 -m 15 -c -f user1@domain.tld -t user2@domain.tld serveurdemail:25
# -s Nombre de thread
# -l Taille du message
# -m Nombre de message
# -c affiche un compteur
# -f expediteur
# -t destinataire

Comme tout CDN (Content Delivery Network), Cloudfare réplique les données statiques des sites web au travers d’un réseau mondial pour être toujours au plus prêt des utilisateurs finaux et ainsi optimiser le chargement de ses fichiers.

Il peut également bloquer les menaces, robots et autres crawlers abusifs pour faire économiser de la bande passante et les ressources de vos serveurs.

Je recommande cette solution qui est très intéressante : https://www.cloudflare.com

 

Petit hack sur VMWare Workstation 8.0 pour utiliser le « | » :

Sous linux :

– Fermer toutes les VM et VMWare Workstation
– echo « xkeymap.usekeycodeMap = true » > /etc/vmware/config
– service vmware restart

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1022454

Nécessite :  Un serveur avec un proxy SQUID ou autre .

La solution suivante est un exemple fonctionnel pour passer à travers un proxy par le port 443 . Le serveur suivant supervision.prestafute.net peux être utiliser en guise de solution technique , mais ne pourra absolument pas être utilisé pour naviguer sur internet ou se connecter en ssh dessus . Le serveur SQUID comme le serveur SSH sont protégés par une authentification .

Sous windows : bitvise Tunnelier (A télécharger)

Exemple de configuration :

supervision.prestafute.net port SSH 443

Partie C2S :

127.0.0.1  8080 (port local)  localhost 443 (port distant SSH)

127.0.0.1   20 (port local)      localhost 3128 (port distant Proxy)

Sous Linux:

I) Installation de corkscrew pour la reconnaissance HTTP

Manière automatique :

apt-get install corksrew ou yum install corkscrew

Manière manuel :
export http_proxy=http://mon-proxy:port
wget http://pkgs.fedoraproject.org/repo/pkgs/corkscrew/corkscrew-2.0.tar.gz/35df77e7f0e59c0ec4f80313be52c10a/
tar xvf corkscrew-2.0.tar.gz
cd corkscrew-2.0
./configure
make && make install

II) Configuration

Ajout dans `./ssh/config
ProxyCommand /usr/local/bin/corkscrew IP_PROXY PORT %h %p ~/.ssh/auth

Ajout dans ./ssh/auth
login:password du proxy
test  : ssh root@supervision.prestafute.net -p 443 => OK

Redirection de port pour SSH et HTTP sans proxy :
ssh -C2qTnN -L 20:localhost:3128 root@supervision.prestafute.net -p 443
ssh -C2qTnN -L 30:localhost:443 root@supervision.prestafute.net -p 443

III) Utilisation

Dans firefox : Manuel HTTP Proxy : 127.0.0.1 sur le port 20

Pour la connexion SSH : ssh root@localhost -p 30

Ci-dessous un script de monitoring FTP permettant de pouvoir superviser n’importe quel serveur FTP .  Celui-ci ce veux autonome en cas d’un échec détecté, permettant de pouvoir exécuter des commandes PHP CLI avec exec() par exemple .

Celui-ci nécessite :

– Création d’un dossier :

mkdir -p /home/automate/ftpmonit/alerte
chmod o+x /home/automate/ftpmonit/alerte

– Création d’un fichier  connect.txt dans /home/automate/ftpmonit du format suivant :

<SERVEUR>|<UTILISATEUR>|<PASSWORD>

– Copie du code suivant dans le fichier : /home/automate/ftpmonit/monit.php

– Création d’un cron pour qui soit répétitif ( http://fr.wikipedia.org/wiki/Crontab )

 

<?php
function restore($user,$server){


$file = "/home/automate/ftpmonit/alerte/$user.$server.txt";
$num = file_get_contents($file);
$numc = trim($num)+1;
file_put_contents($file,$numc);

if ($numc > 2 ){

if ($numc < 4 ){
        echo "Trop de tentative : echec des relances\n";
        $daten = date("d/m/Y H:i:s");
        $message = "Panne du serveur : $user@$server a $daten \n ECHEC DES 3 TENTATIVES :  \n\n Status : en attente d'une OPERATION MANUELLE";

                mail("< VOTRE EMAIL >","[URGENT ALERTE FTP : $user]",$message,"From:< VOTRE EMAIL >");

}else{
        echo "Trop de tentative - Message deja effectif\n";
}

}else{

    < VOS EXÉCUTIONS >

}



}

function alerte($user,$server){

$file = "/home/automate/ftpmonit/alerte/$user.$server.txt";

        if (! file_exists($file)){
                file_put_contents($file,"ALERTE");
                $daten = date("d/m/Y H:i:s");
                $message = "Panne du serveur : $user@$server a $daten \n\n Status : en attente d'un RECOVERY";

                mail("< VOTRE EMAIL >","[ALERTE FTP : $user]",$message,"From:< VOTRE EMAIL >");

                restore($user,$server);
        }else{

                echo "\nFile Lock d<E9>ja present pour $user \n";

                restore($user,$server);

        }


}

function recovery($user,$server){

$file = "/home/automate/ftpmonit/alerte/$user.$server.txt";

        if (file_exists($file)){

                unlink($file);
                $daten = date("d/m/Y H:i:s");
                $message = "Restauration du serveur : $user@$server a $daten";
                mail("< VOTRE EMAIL >","[RECOVERY FTP : $user]",$message,"From:< VOTRE EMAIL >");


        }


}

// Mise en place d'une connexion basique

$lines = file('/home/automate/ftpmonit/connect.txt');
/*On parcourt le tableau $lines et on affiche le contenu de chaque ligne pr<E9>c<E9>d<E9>e de son num<E9>ro*/
foreach ($lines as $lineContent)
{

list($ftpd,$user,$passwd)=explode("|",$lineContent);

$ftp_server = $ftpd;
$ftp_user = $user;
$ftp_pass = $passwd;

echo "CONNEXION : $ftpd - AVEC $user \n";


if (@ftp_connect(trim($ftpd))){

$conn_id = @ftp_connect(trim($ftpd)) or die("Couldn't connect to $ftp_server");

}else{
echo "\nEchec de connexion $ftpd\n";
$no = 1;
alerte($ftpd,$user);


}

if ($no != 1){
// Tentative d'identification
if (@ftp_login($conn_id, trim($ftp_user), trim($passwd))) {

echo "OK";

$file = "/home/automate/ftpmonit/alerte/$ftp_user.$ftp_server.txt";

   if (file_exists($file)){
                echo " Recovery : $ftp_user@$ftp_server\n";
                recovery($user,$ftpd);
        }else{

                 echo " Connect $ftp_user@$ftp_server\n";

        }

} else {
    echo "NOK $ftp_user\n";
    alerte($user,$ftpd);

}

}

// Fermeture de la connexion
@ftp_close($conn_id);


unset($ftpd);
unset($user);
unset($passwd);
unset($no);

sleep("10");

echo "\n\n=========================================\n\n";

}


?>






 

Le script suivant permet de surveiller le contenu d’un site par un mot clé insérer dans la source du site . Le script suivant utilise CURL (apt-get install curl) pour effectuer des requêtes HTTP permettant de récupérer la source du site dans une liste et vérifier que le mot clé existe bien .

Le script est très utile si celui-ci est hacké ou si celui-ci ne répond plus

 

 

Etape 1 : Préparation de l’environnement 

mkdir /home/automates
cd /home/automates && mkdir alert index param

Etape 2 : Mise en place du script bash 

vim monitsite.sh

Copier coller le script suivant :

#!/bin/sh
BASEDIR="/home/automates"
FILE="$BASEDIR/liste.txt"
GETPARAM="$BASEDIR/param"
GETAL="$BASEDIR/alert"
MAILD="VOTRE EMAIL"
while read ligne
do
SITE=$(echo $ligne|awk -F"|" '{print($1)}')
KEY=$(echo $ligne|awk -F"|" '{print($2)}')
PRM=$(echo $ligne|awk -F"|" '{print($3)}')
echo "=== SITE $SITE ==="


if test -z $PRM; then
 DATA=$(curl -s http://$SITE)
else
if test -e $GETPARAM/$SITE.txt; then
 MPARAM=$(less $GETPARAM/$SITE.txt)
 echo "curl --request $PRM 'http://$SITE' --data '$MPARAM'"
 DATA=$(curl --request $PRM 'http://$SITE' --data '$MPARAM' )
 fi
fi

if echo $DATA | grep $KEY > /dev/null; then
 echo "$SITE = OK"
 if test -e "$GETAL/$SITE"; then
 rm -f $GETAL/$SITE
 fi
else
if test -e "$GETAL/$SITE"; then
 echo "Flag exist"
else
 SUBJECT="[ALERT] $SITE NOK"
 EMAIL=$MAILD
 EMAILMESSAGE="/tmp/email$SITE.txt"
 DATEEX=$(date '+%d/%m/%y %H:%M')
 echo "Site $SITE inaccessible le $DATEEX" > $EMAILMESSAGE
 echo "$SITE = NOK"
mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE
 touch $GETAL/$SITE
 rm -f $EMAILMESSAGE
fi
fi
echo ""
echo "----------------"
echo ""
done < $FILE

Etape 3 : 

Créer un fichier texte : liste.txt avec le listing des sites et le mot clé a rechercher

Exemple :

site1.fr|key1
site2.fr|key2

Etape 4 : Créer un cron toutes les minutes de monitsite.sh