Open sources

Howto Virtualisation Proxmox clusterisé sur serveur hébergé ou dédie


Auteur :
Farid Yahimi
Version supportée: Proxmox 1.3 /1.5

License: GPL
Dernière modification : Lundi, 20/02/2010

Prérequis 

2 serveurs A et B

1 ou 2 ip fail over

Préparez déjà votre connexion ssh avec connexion sans mot de passe

Un coup d’oeil sur nano /etc/ssh/sshd_config pour autoriser le root c’est plus simple, fermer la porte après le transfert des fichiers pour remettre la config secure.

Générer la cle ssh

ssh-keygen -t dsa -b 1024

ssh-copy-id -i /root/.ssh/id_dsa.pub Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir.

tester la connexion

a faire sur les deux serveur a et b

Nous allons maintenant mettre en place un firewall / routeur pour nos machines virtuelles, on aura une ip public et des règles de routage pour accéder a nos VM qui seront elles sur un lan 

 

1) Routage a activer sur serveur a et b

pico /etc/pve/kvm-networking.sh

echo 1 > /proc/sys/net/ipv4/conf/vmbr0/proxy_arp

Astuce pour le ftp, je n'ai pas réussi a router le ftp vers plusieurs machines du lan , voici comment je route vers une de mes machines qui fait serveur ftp

Preparer le serveur Host

nano /etc/vz/vz.conf

Rechercher la  section suivante  “## IPv4 iptables kernel modules”  et ajouter les extra modules pour iptables:

IPTABLES="ipt_REJECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat ip_nat_ftp"

Redémarrer votre serveur host

appliquer votre règle : iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to 192.168.0.xxx

 

2)configuration du réseau pico /etc/network/interfaces

Ci dessous une configuration incluant plusieurs ip virtuelles , ceci est un exemple à adapter a vos besoins

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

 

# The loopback network interface

auto lo

iface lo inet loopback

 

auto eth0

iface eth0 inet static

        address 9X.XXX.XXX175

        netmask 255.255.255.0

        network 9X.XXX.XXX0

        broadcast 9X.XXX.XXX255

        gateway 9X.XXX.XXX254

 

auto eth0:0

iface eth0:0 inet static

    address 85.XXX.2XX.220

    netmask 255.255.255.255

    network 85.XXX.2XX.0

    broadcast 85.XXX.2XX.220

    gateway 85.XXX.2XX.254

 

 

auto eth0:1

iface eth0:1 inet static

        address 18X.XXX.XXX99

        netmask 255.255.255.0

        network 18X.XXX.XXX0

        broadcast 18X.XXX.XXX255

        gateway 18X.XXX.XXX254

auto eth0:2

iface eth0:2 inet static

        address 8X.XXX.XXX.206

        netmask 255.255.255.0

        network 87.98.140

        broadcTst 8X.XXX.XXX.255

       gateway 8X.XXX.XXX.254

 

auto vmbr0

iface vmbr0 inet static

        address 192.168.0.2

        netmask 255.255.255.0

        post-up /etc/pve/kvm-networking.sh

        post-up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

        post-down iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

        bridge_ports dummy0

        bridge_stp off

        bridge_fd 0

 * ps: une chose étrange chez ovh , le serveur a ping b mais pas l'inverse

petite solution pas très propre , j'ai crée une route sur le serveur a,  route add ip_serveur_b gw ip_virtuelle

 

3) Installation de Fridu firewall, qui me parait simple d'utilisation et performant, rendez vous sur le lien ci dessous , c'est très pédagogique .

celui qui maîtrise iptables , peut zapper cette partie.

KVM/OpenVZ Proxmox firewall intégration

En synthèse:

avec vm-firewall c'est très simple il faut juste modifier les fichiers de conf et déclarer les deux interfaces

 # ls (dans le repertoire vm-firewall)

0_README  1st-common.conf  hypervisor.conf  tunning.conf  vz-dev.conf  vz-game.conf  vz-SFX.conf  vz-storage.conf  vz-tools.conf  vz-web.conf  zones.conf

 un fichier de conf par VM  ,un fichier pour configurer le réseau sur l'hyperviseur et deux fichier  1st-common pour les réglages généraux  et zones.conf pour assigner les ip à des zones

 Dans 1st-common , on renseignes les ip externes comme cela

1st-common

# 1st-common.conf defined shared variables use in order .conf

# WARNING: to make sure it is readed 1st check alphabetic order

# --------------------------------------------------------------

 

IP_ONE=xxxxx

IP_TWO=xxxxx

IP_sec=xxxxxx

IP_three=xxxxxx

 

dans  Zones.conf on y met nos zones

# Security Zones definition

# --------------------------

CreateZone NAME=zOne   NIC=eth0 EXT=$IP_ONE   BR=venet0 INT=192.168.10.0 MASK=255.255.255.0

CreateZone NAME=zTwo  NIC=eth0 EXT=$IP_TWO BR=venet0 INT=192.168.10.0 MASK=255.255.255.0

CreateZone NAME=sec    NIC=tun0 EXT=$IP_sec    BR=venet0 INT=192.168.20.0 MASK=255.255.255.0

CreateZone NAME=z3     NIC=eth0 EXT=$IP_three  BR=venet0 INT=192.168.10.0 MASK=255.255.255.0

 

et pour chaque VM un fichier de conf ou tu précise d'ou viennent les données  et ou elles vont  vz-web.conf

# vz-web

# ---------------------------------------------

CreateApp  NAME=WEB    ZONE=zOne    EXT=tcp:80        INT=192.168.0.6:80 # on renvoit les requetes de l'ip zOne vers notre serveur web interne 192.168.0.6

CreateApp  NAME=SSH    ZONE=zOne    EXT=tcp:xxxx      INT=192.168.0.6:22

CreateApp  NAME=FTP    ZONE=zOne    EXT=tcp:xxxx      INT=192.168.0.6:21

  Voila pour la partie routage et firewall

4) le proxying et l'interface de gestion proxmox

j'ai modifier le port d'écoute d'apache pour l'interface admin

Configuration Apache

pico  /etc/apache2/ports.conf and /etc/apache2/sites-available/pve.conf tout ce passe ici.

Pour le proxying des vms j'utilise nginxon peut utiliser pound mais la doc est peau de chagrin.

Configurer nginx, je vous renvoi a ce site

http://www.papygeek.com/software/optimiser-son-serveur-web-avec-nginx/

and voila, résumons

requête vers www.libertalia.info ----> Proxmox server A---> Fridu-firewall --->Nginx prends en charge ---->VM local serveur web ---> page d'accueil Libertalia

requête sur port ssh/mysql/vpn externe -->  Proxmox server A--->Fridu-firewall---->port ssh/mysql/vpn interne---->VM local serveur ssh/mysql/vpn --->connexion

 5) le Clustering Proxmox

Serveur a:/etc/pve# pveca -c
cluster master successfully created

Vérification de l'état du cluster:

Serveur a:/etc/pve# pveca -l
CID----IPADDRESS----ROLE-STATE--------UPTIME---LOAD----MEM---DISK
 1 : 192.168.0.10     M     A                             00:36   0.24    46%     5%
le serveur est master sur l'ip local,pour contourner le problème

a) nous avons échangés les clés ssh (rappelez vous en debut de tuto)

b) nous allons modifier le fichier /etc/pve/cluster.cfg  qui contient les infos de clustering

 sur le serveur a, pico /etc/pve/cluster.cfg on modifie l'ip local par l'ip externe.

 Serveur a:/etc/pve# pveca -l
CID----IPADDRESS----ROLE-STATE--------UPTIME---LOAD----MEM---DISK
 1 : 1    ip_externe                      M     A           00:34   0.16    46%     5%

so far, so good !

 Serveur b: pveca -a -h ip_externe_serveur_a

 cluster node successfully created

attention , les vms ne doivent pas etre porter un vmid identique sur a et b

Test migration vm no 102 du serveur a vers b

/usr/bin/ssh -t -t -n -o BatchMode=yes serveur a /usr/sbin/vzmigrate serveur b 102
OPT:serveur b
Starting migration of CT 102 to serveur b
Preparing remote node
Initializing remote quota
Syncing private

Syncing 2nd level quota
Turning quota off
Cleanup
Connection to serveur a closed.
VM 102 migration done

votre cluster est opérationnel !
 

 

 

 

 

 

 

How to  NtpDate + Cron ! (site http://www.crashdump.fr)
Pour connaitre l’heure il suffit taper la commande :
# date
Fri Jan 7 15:20:25 CET 2005

Pour mettre à jour la date et/ou l’heure, vous pouvez utiliser la commande :

# date -s

Lire la suite...
 
 

Methode pour sme 7 et le server fax dans le panel


wget ftp://ftp.hylafax.org/binary/linux/redhat/RPMS/i386/hylafax-4.2.5-1rhel4.i386.rpm
yum -y --enablerepo=base --enablerepo=updates localinstall hylafax-4.2.5-1rhel4.i386.rpm

rpm -ivh http://smerp.free.fr/fichiers/binaires/SMERPFax-0.8b1-1.noarch.rpm
dans le rep /tmp
supprime le rpm ghostscript-fonts-6.0 et hylafax-4.2.0-1rh7.i386.rpm
lance /tmp/SMERPFax.ins/SMERPFax_ins.sh

installation de plusieurs modem sur le serveur

faxaddmodem ttyACM0 pour un modem usb

 

 cd /etc/e-smith/templates-custom/etc/inittab

ou

pico /etc/e-smith/templates-custom/etc/inittab/S85hylafax

ajouter les lignes en respectant votre config ici un modem sur le port serie et l'autre en usb

fax0:23457:respawn:/usr/sbin/faxgetty ttyS0

fax1:23457:respawn:/usr/sbin/faxgetty ttyACM0

 

/sbin/e-smith/expand-template /etc/inittab

au cas ou

 init q

et service hylafax reload

on regarde avec faxstat le resultat

HylaFAX scheduler on serveur01: Running
Modem ttyACM0 (0399999999): Running and idle
Modem ttyS0 (0488888888): Running and idle
 

 

 

 Tutorial d'utilisation de FreeRadius et de MSCHAPv2



Auteur : Jérémie Peltier
Contributeur : Farid Yahimi
Version supportée: SME 7.1 ,2,3,4, CentOS 4.3 ....
License: GPL
Dernière modification : Lundi, 29 mai 2006 10:18

http://drupal.logiciel-libre.org/?q=node/189


Problème : Utilisation du serveur FreeRADIUS en mode MSCHAPv2.
Solution : Suivre ce tutorial.

ETAPE 1 : Un framework est deja en place pour la configuration du serveur FreeRADIUS. Pour l'utiliser,

il faut d'abord définir le nom d'hôte du client RADIUS (AP) et son adresse IP dans le serveur SME.

ETAPE 2 : Définir ensuite la clé RADIUS partagée pour ce nom d'hôte.

wifi.libertalia-test.info est un client AP et la clé RADIUS est une chaîne de caractères aléatoires.


[root@radio root]# db hosts setprop wifi.libertalia-test.info RadiusKey abcdefg123456789
[root@radio root]# signal-event remoteaccess-update

ETAPE 3 : Configurez le point d'accès (AP)

Indiquez l'adresse IP du serveur RADIUS ainsi que la clé définie à l'étape précédente.

ETAPE 4 : Ouvrir les ports 1812 et 1813 dans votre pare-feu.


[root@radio root]# config setprop radiusd access private TCPPort 1812
[root@radio root]# config set radius-acct service status enabled access private TCPPort 1813
[root@radio root]# signal-event remoteaccess-update


Configuration d'une station de travail sous XP Pro

ETAPE 5 : Dans les propriétés de votre connexion sans fil, cocher la case Utiliser Windows pour configurer mon réseau sans fil

ETAPE 6 : Sélectionner le bon réseau dans Réseaux favoris puis sur propriétés.

ETAPE 8 : Cliquez sur l'onglet Authentification puis choisir EAP protégé (PEAP) comme type EAP.

ETAPE 9 : Cliquez sur propriétés. Décochez la case Valider le certificat du serveur.

Sélectionner comme méthode d'authentication

Mot de passe sécurisé (EAP-MSCHAP version 2). Cliquez sur configurer et verifier que la case est bien cochée.

 
 

HTBWondershaper Traffic Shaping adapté a la voip

 

mkdir -p /opt/scripts/htbw
cd /opt/scripts/htbw

pico -w /opt/scripts/htbw/HTBWondershaper

#---------a copier coller --------

#!/bin/bash -x


#

# Reglage de la ligne adsl a gérer.

##adsl 1MB up et 2MB down.
DOWNLINK=1920
UPLINK=930
DEV=eth1

NOPRIOPORTSRC="20 25 989 1080 1194 1214 1412 2086 2234 3364 4444 4662 4666 4672 4949 6346 6347 6699 6881 6882 8436 9001 9030 9050 9100 9999 44646"

# low priority destination ports
#NOPRIOPORTDST=""
# petite facilité dst=src.
NOPRIOPORTDST=$NOPRIOPORTSRC


#
HIGHPRIOPORTSRC="2427 4569 5004 5060 5061"
# 2427 mgcp
# 4569 iax
# 5004 rtp
# 5060 sip
# 5061 sip-tls
#reglage specifique a la voip

#HIGHPRIOPORTDST=""
# petite facilité dst=src.
HIGHPRIOPORTDST=$HIGHPRIOPORTSRC


# Now remove the following two lines :-)


#########################################################

if [ "$1" = "status" ]
then
    tc -s qdisc ls dev $DEV
    tc -s class ls dev $DEV
    exit
fi


# Nettoie les gestionnaires de sortie et d'entrés, cache les erreurs

tc qdisc del dev $DEV root    2> /dev/null > /dev/null
tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null

if [ "$1" = "stop" ]
then
    exit
fi

###### Flux montant (uplink)


# install root CBQ mise en forme de trafic. On a une carte réseau à 100 Mbits/s

tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit

# Le trafic est mis en forme à une vitesse de $UPLINK. Ceci évite
# d'énormes files d'attente dans votre modem DSL qui pénalisent le temps de
# latence.
# Classe principale


tc class add dev $DEV parent 1: classid 1:1 cbq rate ${UPLINK}kbit \
allot 1500 prio 5 bounded isolated

# classe de priorité supérieure 1:10:


tc class add dev $DEV parent 1:1 classid 1:10 cbq rate ${UPLINK}kbit \
   allot 1600 prio 1 avpkt 1000
# la classe par défaut et pour le trafic de masse 1:20. Reçoit légèrement
# moins que le trafic et a une priorité plus faible :


tc class add dev $DEV parent 1:1 classid 1:20 cbq rate $[9*$UPLINK/10]kbit \
   allot 1600 prio 2 avpkt 1000

# 'traffic non desiré'

tc class add dev $DEV parent 1:1 classid 1:30 cbq rate $[8*$UPLINK/10]kbit \
   allot 1600 prio 2 avpkt 1000

# all get Stochastic Fairness:
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10


#voip prioritisation
# 'match ip protocol 0x11 0xff' means UDP

#petite routine pour accelerer le codage

U32rootfilter="tc filter add dev $DEV parent 1: protocol ip"

# high priority for VoIP traffic (by TOS)
$U32rootfilter prio 1 u32 \
   match ip tos 0x68 0xff \
   match ip protocol 0x11 0xff \
   flowid 1:10
$U32rootfilter prio 1 u32 \
   match ip tos 0xb8 0xff \
   match ip protocol 0x11 0xff \
   flowid 1:10

# high priority for VoIP traffic (by source port)
for port in $HIGHPRIOPORTSRC
do
   $U32rootfilter prio 1 u32 \
      match ip sport $port 0xffff \
      match ip protocol 0x11 0xff \
      flowid 1:10
done

# high priority for VoIP traffic (by destination port)
for port in $HIGHPRIOPORTDST
do
   $U32rootfilter prio 1 u32 \
      match ip dport $port 0xffff \
      match ip protocol 0x11 0xff \
      flowid 1:10
done


# Démarrage des filtres
# le bit Délai Minimum du champ TOS (ssh, PAS scp) est dirigé vers
# 1:10 :
$U32rootfilter prio 10 u32 \
      match ip tos 0x10 0xff  flowid 1:10

# ICMP (ip protocol 1) est dirigé vers la classe interactive 1:10 de telle
# sorte que nous pouvons réaliser des mesures et impressionner nos
# amis :
$U32rootfilter prio  11 u32 \
        match ip protocol 1 0xff flowid 1:10
# Pour accélérer les téléchargements vers l'aval lors de la présence d'un
# flux montant, les paquets ACK sont placés dans la classe
# interactive :


$U32rootfilter prio 12 u32 \
   match ip protocol 6 0xff \
   match u8 0x05 0x0f at 0 \
   match u16 0x0000 0xffc0 at 2 \
   match u8 0x10 0xff at 33 \
   flowid 1:10

   #match u8 0x10 0xff at 33 \ added by hansces.com
   #see
   #http://lartc.org/howto/lartc.adv-filter.html#LARTC.ADV-FILTER.U32

#  add some ports that are high prio
#HIGHPRIOPORTDST=voip by libertalia
for a in $HIGHPRIOPORTDST
do
   $U32rootfilter prio 1 u32 \
      match ip dport $port 0xffff flowid 1:30
done

for port in $NOPRIOPORTSRC
do
   $U32rootfilter prio 1 u32 \
      match ip sport $port 0xffff flowid 1:30
done

for port in $NOPRIOHOSTSRC
do
   $U32rootfilter prio 1 u32 \
      match ip src $port flowid 1:30
done

for port in $NOPRIOHOSTDST
do
   $U32rootfilter prio 1 u32 \
      match ip dst $port flowid 1:30
done


# Le reste est considéré 'non-interactif' cad 'de masse' et fini dans 1:20
$U32rootfilter prio 1 u32 \
   match ip dst 0.0.0.0/0 flowid 1:20

########## Flux descendant (downlink) #############
# Ralentir le flux descendant à une valeur légèrement plus faible que votre
# vitesse réelle de manière à éviter la mise en file d'attente chez notre
# FAI. Faites des tests pour voir la vitesse maximum à laquelle vous pouvez
# le configurer. Les FAI ont tendance à avoir *d'énormes* files d'attente
# pour s'assurer de la rapidité des gros téléchargements.
#
# attache la réglementation d'entrée (ingress policer) :



tc qdisc add dev $DEV handle ffff: ingress


# Filtre *tout* (0.0.0.0/0), rejette tout ce qui arrive trop
# rapidement :

tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \
   0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1

   logger "wshaper finished"

 

#------fin du copier/coller

sauvegarder le fichier 
Ctrl o
Ctrl x
rendez le executable
chmod +x HTBWondershaper  

 

integration dans le démarrage du serveur

pico -w /etc/rc.d/rc.local

 ajouter la ligne suivante qui lancera le script

/opt/scripts/htbw/HTBWondershaper
sauvegarder le fichier

Ctrl o
Ctrl x
 

 pour le lancer a la main

/opt/scripts/htbw/HTBWondershaper

 

/opt/scripts/htbw/HTBWondershaper status

un coup d'oeil sur

tc -s class show dev eth1

Suppression 

/opt/scripts/htbw/HTBWondershaper stop
rm /opt/scripts/htbw/HTBWondershaper

pico -w /etc/rc.d/rc.local
supprimer la ligne  
/opt/scripts/htbw/HTBWondershaper
sauvegarder le fichier

Ctrl o
Ctrl x

 Merci au site qui a servis de support  http://www.hanscees.com/sme7/wondershaperbeefedup.html

 

 
-   //// -      //// appels //// archivage //// archivista //// brother //// comme //// complete //// document //// documents //// données //// entreprise //// externe //// flowid //// gestion //// good //// interface //// jour //// leur //// match //// oneofficejet //// onephotosmart //// open //// pass //// peut //// port //// prestataire //// prio //// réseau //// scsi //// series //// serveur //// site //// solution //// système //// téléphonie //// untested ////       ////         //// 1200