Get Adobe Flash player
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

Le script suivant permet de pourvoir :

– Installer proxmox de manière automatique

– Définir un master et un node

– Supprimer un node



#!/bin/bash
# KDE 2011 - kilian@desroches.net

# Script d'installation automatique de proxmox





function menu() {

clear

echo "####################################################"
echo "#                                                  #" 
echo "# Script d’installation PROXMOX / v1.xx            #"
echo "# KDE - kilian@desroches.net                       #"
echo "####################################################"


echo "1 – Installation de PROXMOX"
echo "2 – Definir un MASTER"
echo "3 – Definir un NODE et joindre le MASTER"
echo "4 – Supprimer un NODE"
echo "0 – Quitter"
echo ""
echo "Choix : "
read CHOIX


case $CHOIX in

1) install_central && menu;;
2) define_master && menu;;
3) define_node && menu;;
4) del_node && menu;;
0) exit;;

esac
}


function install_central() {

echo "INSTALLATION DE PROXMOX : "

echo "Vérification support VT"

SUPPORTVT=$(egrep '(vmx|svm)' /proc/cpuinfo)

if test -z '$SUPPORTVT'; then

echo "/!\ Le processeur de ne supporte pas KVM"
echo "Voulez vous installer OpenVZ ? [y]"
read OPENVZ
case $OPENVZ in
  [yYoO]*) install_ovz ;;
  [nN]*)  menu;;
esac

else
clear 
echo "Vérification support VT : OK"
install_proxmox

fi


}


function install_ovz(){

echo "INSTALLATION OPENVZ"

echo "Ajout des paramètres sources.list"

mv /etc/apt/sources.list /etc/apt/sources.list.bak

echo  "deb http://ftp.fr.debian.org/debian/ lenny main
deb-src http://ftp.fr.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main" >> /etc/apt/sources.list

echo "Installation OpenVZ"

aptitude install linux-image-openvz-686

echo "Installation de Proxmox"

install_proxmox


}



function install_proxmox() {

echo "Insérer la version du kernel proxmox :"
read kernprox


if test -z $kernprox; then

echo "Version invalide"
sleep 3
install_proxmox

else


echo "Renommage du sources.list"
mv /etc/apt/sources.list /etc/apt/sources.list.bak

echo "Mise en place du nouveau sources.list"

echo -e "\ndeb http://ftp.debian.org/debian lenny main
\ndeb http://download.proxmox.com/debian lenny pve
\ndeb http://security.debian.org/ lenny/updates main" >> /etc/apt/sources.list

echo "Recuperation de la cle proxmox"
wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -

echo "Update et upgrade"
apt-get update && apt-get -y upgrade

echo "Installation DRBD - LVM2"
apt-get -y install drbd8-utils lvm2

echo "Mise en place du Kernel Proxmox $1"
aptitude safe-upgrade
aptitude install proxmox-ve-$1

echo "Mise en place d'openiscsi"
apt-get -y install open-iscsi iscsi-scst

echo "Relance du service PVEDAEMON et APACHE2"
/etc/init.d/pvedaemon restart && /etc/init.d/apache2 restart

echo "Update du grub"
update-grub

echo "Listing du boot"
echo "ls -l /boot"

echo "Rebooter la machine pour prise en compte du nouveau Kernel"

exit 0
fi

}



function define_master() {
echo "DEFINI LE MASTER : "
echo "Définition du master "
pveca -c

sleep 3


echo "Vérification de la definition du master "
pveca -l


sleep 3

menu

}





function define_node() {
echo "AJOUT NODE : "
echo "Insérer l'IP du serveur master :"
read IPMASTER

if test -z $IPMASTER; then
    echo "IP invalide"
    define_node

    else
    echo "Ajout de IP : $IPMASTER"
    pveca -a -h $IPMASTER
        echo "Vérification de synchro "
        pveca -l

sleep 3
#Retour au menu
menu


fi




}

function del_node() {
echo "SUPPRESSION NODE : "

echo "Affichage des nodes existantes : "
pveca -l


echo "Insérer le CTID du node à supprimer :"
read CTID

if test -z $CTID; then
    echo "CTID invalide"
    del_node

    else
    echo "Suppression : $CTID"
    pveca -d $CTID
        echo "Vérification des nodes "
        pveca -l

sleep 3
#Retour au menu
menu


fi


}


# Vérication du root
if [ "$(id -u)" != "0" ]; then
   echo "Le script doit etre execute en root"
   exit 1
    else
    menu
fi