Tous les articles par Florian Cristina

kimsufi et munin

Va falloir mettre des petites stats système maintenant pour monitoré tout çà.
Je sais que je vais en faire hurler certain mais je vais utiliser munin et non cacti pour s’acquitter de cette tache. Beaucoup plus simple d’utilisation pour un besoin « classique », munin a donc ma préférence.

#sudo apt-get install munin munin-node smartmontools libwww-perl lm-sensors sensord ethtool

Par defaut munin va stocker ses fichiers dans

dbdir /var/lib/munin
htmldir /var/www/munin
logdir /var/log/munin
rundir /var/run/munin

Maintenant il faut s’attaquer a Apache, on creer donc un Alias :

#sudo nano /etc/apache2/apache2.conf

Alias /stat /var/www/munin

Et ensuite activé le server-status et l’autoriser uniquement pour le localhost toujours dans le meme fichier de configuration.

      SetHandler server-status
      Order deny,allow
      Deny from all
      Allow from 127.0.0.1

ExtendedStatus On

Aller maintenant on rajoute les petits plugins sympa. Tous les plugins sont rangé dans /usr/share/munin/plugins/

#sudo ln -s /usr/share/munin/plugins/fw_packets /etc/munin/plugins/fw_packets
#sudo ln -s /usr/share/munin/plugins/fw_forwarded_local /etc/munin/plugins/fw_forwarded_local
#sudo ln -s /usr/share/munin/plugins/fw_conntrack /etc/munin/plugins/fw_conntrack

#sudo ln -s /usr/share/munin/plugins/postfix_mailstats /etc/munin/plugins/postfix_mailstats
#sudo ln -s /usr/share/munin/plugins/postfix_mailvolume /etc/munin/plugins/postfix_mailvolume
#sudo ln -s /usr/share/munin/plugins/postfix_mailqueue /etc/munin/plugins/postfix_mailqueue

#sudo ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
#sudo ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
#sudo ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume

#sudo ln -s /usr/share/munin/plugins/netstat /etc/munin/plugins/netstat

Pour que netstat affiche des informations il faut configurer munin :

nano /etc/munin/plugin-conf.d/munin-node

Et rajouter

[netstat]
user root

et enfin un bon

#sudo /etc/init.d/munin-node restart

Kimsufi LAMP

Ma kim ne va ni me servir a gérer les DNS ni les MAIL. Pour la bonne raison que je considère ces services comme trop sensible pour que ce soit le même serveur qui les gère tous. Donc les DNS seront gérer par OVH et les mail par google avec son service personnalisé. La kim ne servira donc que de LAMP.

Alors on va commencer par le minimum vitale pour une bonne utilisation du serveur :

# sudo apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential

J’en profite aussi pour mettre ntp et maintenir mon serveur à l’heure automatiquement :

#sudo apt-get install ntp ntpdate

A présent je vais attaquer le LAMP.

Alors mysql :

#sudo apt-get install mysql-server mysql-client libmysqlclient15-dev

Ma kim possedant un noyau ovh qui n’a pas la gestion des modules activer je me retrouve avec ces erreurs :

grep: /proc/modules: Aucun fichier ou dossier de ce type
ls: ne peut accéder /sys/module/apparmor: Aucun fichier ou dossier de ce type
grep: /proc/modules: Aucun fichier ou dossier de ce type
ls: ne peut accéder /sys/module/apparmor: Aucun fichier ou dossier de ce type
grep: /proc/modules: Aucun fichier ou dossier de ce type
ls: ne peut accéder /sys/module/apparmor: Aucun fichier ou dossier de ce type
FATAL: Could not load /lib/modules/2.6.24.5-xxxx-std-ipv4-32/modules.dep: No such file or directory
$Loading AppArmor module: Failed.

Mais cela ne gène en rien l’installation et le bon fonctionnement du serveur mysql.

Enfin on verifie que mysql est bien lancé et écoute :

#sudo netstat -tap | grep mysql
tcp 0 0 localhost.localdo:mysql *:* LISTEN 11766/mysqld

Ensuite viens apache 2.2 (faut prononcé apachi) :

#sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Puis php5 et ruby (temps qu’a faire)

#sudo apt-get install libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Sans oublier phpmyadmin

#sudo apt-get install phpmyadmin

Allez à présent de la configuration pour faire marcher le bousin.
Je commence par modifier les fichiers index par défaut en rajoutant ceux qui manque :

#sudo nano /etc/apache2/mods-available/dir.conf
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml

Ensuite j’active les modules suplémentaire dont j’ai besoin :

#sudo a2enmod ssl
#sudo a2enmod rewrite
#sudo a2enmod suexec
#sudo a2enmod include

Allez un petit reload d’apache pour vérifier que tout est ok avant de continuer la configuration.

#sudo /etc/init.d/apache2 force-reload

Maintenant on va plonger les doigts dans le apache2.conf

#sudo nano /etc/apache2/apache2.conf

La grande question du prefork et du worker. Pour ma part j’ai toujours lut que le worker était moins stable et plus gourmand que le prefork, je vais donc commenter le worker et configurer le prefork. Je vais mettre 150 client max ce qui est emplement suffisant pour une kim, ainsi que starter 20 server ce qui permetra de lisser le load en cas d’afflux de visiteurs. mon Spare est assez proche toujours pour lisser mon load et je donne 1000 request par child. Si j’avais un superplan j’aurais donné 4000 maxrequests et 250 maxclient.

StartServers       20
MinSpareServers      25
MaxSpareServers      30
MaxClients      150
MaxRequestsPerChild  1000

Décommenter le server-status et ne laisser l’accès que au localhost.


SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1

##
# Stat Systeme
##
Alias /tutu /var/www/munin

##
# Alias pour Phpmyadmin
##
Alias /toto /var/www/phpmyadmin

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

##
# Config tuning
##
ServerTokens Prod
ServerName EMAX
ServerSignature Email
ServerAdmin root@artiflo.net
ExtendedStatus On

Un dernier reload

#sudo /etc/init.d/apache2 force-reload

Cela devrait être bon à présent vous pouvez tester.

A présent je m’occupe des virtual host pour gérer les sites qui vont etre hebergé sur le serveur. Je vais prendre le cas de artiflo.net.

Je creer un fichier dans /etc/apache2/sites-available/ que je nomme artiflo.net, je ferais un fichier par site pour facilité la configuration. Et ensuite je créer un liens symbolique entre ce fichier et /etc/apache2/sites-enabled/. Sans oublié de supprimer le liens symbolique de default. Petite précision apache définis la priorité d’affichage des hôte virtuel par ordre alphabétique. C’est a dire que si vous voulez que votre site toto.com apparaisse avant titi.net il faut créer un liens symbolique de ce type :

#sudo nano /etc/apache2/sites-available/artiflo.net
#sudo ln -s /etc/apache2/sites-available/artiflo.net /etc/apache2/sites-enabled/000-artiflo.net

Je creer le repertoire qui sera accessible du web et je met les bon droits dessus.

#sudo mkdir /home/artiflo/www
#sudo chown -R artiflo.artiflo /home/artiflo/www

Alors écrivons le contenue du virtual host.

NameVirtualHost *

        ServerName www.florian-cristina.fr
        ServerAlias *.florian-cristina.fr
        ServerAdmin admin@florian-cristina.fr

        DocumentRoot /home/artiflo/www/florian-cristina.fr/

                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all

        ErrorLog /var/log/apache2/florian-cristina.fr.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

C’est mieux aussi si ceci est placé dans un des vhost :

Order deny,allow
Deny from all

Les mail a présent. Meme si ma kim ne va pas servir de pop elle va tout de meme pouvoir envoyé des mail avec le bon postfix :

#sudo apt-get install postfix

Enfin il reste a verifier que les configuration du serveur de mail sont bien celle que vous vouliez.

#sudo nano /etc/postfix/main.cf

A présent changer le nom d’host et aussi le relay pour pas quelle prenne pour elle les message de son propre domaine.

Stout.

kimsufi, ubuntu 8.04 et locale

Encore en BETA chez ovh la release 8.04 de ubuntu soufre d’une petite erreur de configuration sur la version française.

Cela produit cette erreur :

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "fr_FR"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

La solution est assez simple, il suffit de changer dans le parametre des locales /etc/default/locale la bonne version du charset puis de le recompiler.

#sudo nano /etc/default/locale

LANG=fr_FR.UTF-8

#sudo dpkg-reconfigure locales

A présent il suffit de configurer votre putty avec le bon charset dans Windows/translation/UTF-8

Kimsufi et proftpd TLS

Aller un bon ubuntu 8.04 LTS tout neuf et c’est le début de l’installation des applicatifs. Let’s go pokemon !

Bon comme je suis pas demi-geek on va mettre du bon TLS avec le proftpd pour eviter que des kikoolol récupere mes login/pass ftp.

Alors dans la première partie on install proftpd normalement et dans la seconde avec TLS toussa.

#apt-get install proftpd

#sudo nano /etc/proftpd/proftpd.conf

ServerName "Kimounette"
Defaultroot ~
#Utilisateur Virtuel
AuthUserFile /etc/proftpd/ftpd.passwd
RequireValidShell off

#Optimisation du serveur FTP
UseReverseDNS off
IdentLookups off

#Activation de la reprise
AllowRetrieveRestart on
AllowStoreRestart on
AllowOverwrite on

Voila, enregistrez puis redémarrer proftpd.

Aller maintenant du bon TLS des familles

#sudo mkdir /etc/proftpd/ssl

Hop on creer le certificats SSL maison signé et reconnus par moi même tout seul.

#sudo openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem

Maintenant je vais dire a proftpd d’accepter les connexion TLS

#sudo nano /etc/proftpd/proftpd.conf

Dans mon cas j’ai deja un fichier tls de créer il me suffit de le décommenter. Mais comme je suis super feignant je préfère rajouter directement ceci dans le proftpd.conf sans rien décommenter :

TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired off

J’ai mis en off le TLSRequired comme cela si je suis chez moi bien au chaud et que je n’ai pas envie de faire des connexion sécurisé je peux aussi. C’est vachetement bien toussa.
C’est toujours le meme port simplement il va falloir dire à filezilla que c’est du FTPES (FTP sur TLS/SSL chiffrement explicite) et lui faire accepter le certificats que vous vous êtes créer un peut plus tôt.

Aller dernière étape pour ceux qui voudrait se creer des utilisateurs virtuel. Placez vous dans /etc/proftpd/ et adaptait cette commande a votre besoin:

# ftpasswd --passwd --name=toto --uid=1000 --home=/home/artiflo --shell=/bin/false

Gentoo et ovhm 2

Bon après plusieurs jour, je me suis rendus a l’évidence que gentoo sur un serveur web c’est pas ce que l’on fait de plus judicieux.

La moindre mise a jour de sécurité des applicatifs me prenait plusieurs heures sur ma kimsufi avec 256mo de ram :/. Et avec un processeur a 100% et un load montant a 3-4 pendant plusieurs heures c’est pas terrible terrible.

Donc j’ai compris que la ovhm est fait pour ceux qui veulent la puissance d’un serveur dédié avec la facilité d’utilisation d’une interface de management bien faite et un serveur plutôt bien configurer de base.

Je ne vais pas encore retourner sur mon etch avant d’avoir fait des test avec de l’ubuntu hardy heron server et desktop.

VMServer pour dedibox et superplan

Un brouillon publique de l’installation de VMServer 1

    1 / Kernel

debian etch :

# apt-get install bzip2 make gcc binutils-doc gcc-4.1-locales libc6-dev-amd64 lib64gcc1 lib64ssp0 cpp-2.95-doc manpages-dev autoconf automake1.9 libtool flex bison gdb glibc-doc ncurses-bin libncurses5-dev zip unzip arj mc libglib2.0-data autoconf2.13 automake1.4 binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev linux-kernel-headers lynx m4 make ncftp nmap perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ vim lm-sensors smartmontools debhelper modutils kernel-package libncurses5-dev fakeroot screen

debian etch :

#apt-get install g++ libx11-6 libx11-dev x-window-system-core x-window-system xspecs libxtst6 module-init-tools libice6 libxrender1 libxt6 libxi6

debian sarge :

apt-get install bzip2 make gcc binutils-doc lib64gcc1 cpp-2.95-doc manpages-dev autoconf automake1.9 libtool flex bison gdb glibc-doc ncurses-bin libncurses5-dev zip unzip arj mc libglib2.0-data autoconf2.13 automake1.4 binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev linux-kernel-headers lynx m4 make ncftp nmap perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ vim lm-sensors smartmontools debhelper modutils kernel-package libncurses5-dev fakeroot screen

debian sarge :

#apt-get install g++ libx11-6 libx11-dev x-window-system-core x-window-system xspecs libxtst6 module-init-tools libice6 libxrender1 libxt6 libxi6

ubuntu dapper :

# apt-get install bzip2 make gcc binutils-doc gcc-4.0-locales libc6-dev-amd64 lib64gcc1 cpp-2.95-doc manpages-dev autoconf automake1.9 libtool flex bison gdb glibc-doc ncurses-bin libncurses5-dev zip unzip arj mc libglib2.0-data autoconf2.13 automake1.4 binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev linux-kernel-headers lynx m4 make ncftp nmap perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ vim lm-sensors smartmontools debhelper modutils kernel-package libncurses5-dev fakeroot screen

ubuntu dapper :

#apt-get install g++ libx11-6 libx11-dev libxtst6 module-init-tools libice6 libxrender1 libxt6 libxi6

Ajouter les headers ou recompiler le kernel avec les modules activé.

    Dedibox

#mkdir kernel
#cd kernel
#wget ftp://ftp.dedibox.fr/pub/dedibox/kernel/r7/src/src-dedibox-r7-beta1.tar.gz
#tar zxvf src-dedibox-r7-beta1.tar.gz
#cd linux-2.6.20.6/
#wget ftp://ftp.dedibox.fr/pub/dedibox/kernel/r7/src/config-dedibox-r7.txt

    kimsufi

#mkdir kernel
#cd kernel
#wget ftp://ftp.free.fr/pub/linux/kernel/v2.6/linux-2.6.20.3.tar.bz2
#tar jxvf linux-2.6.20.3.tar.bz2
#cd linux-2.6.20.3/
#wget http://www.artiflo.org/Kernel/OVH/Superplan2007/2.6.20.3-artiflo-core2duo.conf

    Compilation

#make clean
#make-dpkg clean
#make menuconfig
« Load an Alternate Configuration File » > config-dedibox-r7.txt
#make bzImage
#make modules
#make modules_install
#make install

# cp arch/i386/boot/bzImage /boot/bzImage-2.6.20.3-core2duo-artiflo-v2
# cp -R linux-2.6.20.6/ /usr/src/linux-2.6.20.6

# nano /boot/grub/menu.lst

title           Ubuntu, kernel 2.6.20.6
root            (hd0,0)
kernel          /vmlinuz root=/dev/sda2 ro quiet splash
savedefault
boot

#nano /etc/lilo.conf
#/sbin/lilo

    2 / Install VMWARE server

#mkdir /var/vm
#mkdir vmware
#cd vmware
#wget http://download3.vmware.com/software/vmserver/VMware-server-1.0.4-56528.tar.gz

#tar zxvf VMware-server-1.0.4-56528.tar.gz

#cd vmware-server-distrib
#./vmware-install.pl

#/usr/src/linux-2.6.20.6/include/

    3 / Install patch VMWARE server

# http://knihovny.cvut.cz/ftp/pub/vmware/
# cd ..
# cd ..
#wget http://www.artiflo.org/VMSERVER/vmware-any-any-update113.tar.gz

#tar -zxvf vmware-any-any-update113.tar.gz
#cd vmware-any-any-update113
#./runme.pl

Récupérer les clés gratuite sur le site de vmware server.

4 / Install VMWARE MUI

# cd ..
#wget http://download3.vmware.com/software/vmserver/VMware-mui-1.0.4-56528.tar.gz
#tar -zxvf VMware-mui-1.0.4-56528.tar.gz
#cd vmware-mui-distrib

#./vmware-install.pl

Vous pouvez tester

https://88.191.34.xxx:8333

    5 / NAT

# nano /etc/vmware/vmnet8/nat/nat.conf

[incomingtcp]
3389 = 192.168.225.128:3389

/usr/lib/vmware/net-services.sh restart

    6 / Source

http://wattazoum.fr/spip.php?article57

http://bilfous.free.fr/Datas/vmware-any-any-update108.tar.gz

http://www.howtoforge.com/debian_sarge_vmware_server_howto

/sbin/killall5

Do you want to be able to use host-only networking in your virtual machines?
[yes] no

    TROUBLESHOOT :
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libpng12.so.0/libpng12.so.0: no version information available (required by /usr/lib/libcairo.so.2)
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6)

#cd /usr/lib/vmware/lib/libgcc_s.so.1/
#sudo mv libgcc_s.so.1 libgcc_s.so.1.bkp
#sudo ln -s /lib/libgcc_s.so.1 .
#sudo ldconfig

Dec 5 03:00:24 geronimo vmware-authd[11426]: PAM unable to dlopen(/lib/security/pam_unix2.so)
Dec 5 03:00:24 geronimo vmware-authd[11426]: PAM [dlerror: /lib/security/pam_unix2.so: cannot open shared object file: No such file or directory]
Dec 5 03:00:24 geronimo vmware-authd[11426]: PAM adding faulty module: /lib/security/pam_unix2.so

#auth sufficient /lib/security/pam_unix2.so shadow nullok
#auth required /lib/security/pam_unix_auth.so shadow nullok
#account sufficient /lib/security/pam_unix2.so
#account required /lib/security/pam_unix_acct.so

https://bugs.launchpad.net/ubuntu/+bug/112937

hammer ~ # cat /etc/pam.d/vmware-authd
#%PAM-1.0
auth sufficient pam_unix.so shadow nullok
auth required pam_unix_auth.so shadow nullok
account sufficient pam_unix.so
account required pam_unix_acct.so

/etc/pam.d/vmware-authd

#%PAM-1.0

@include common-auth
@include common-account

Xen et etch

Toujours dans la série des articles sur la virtualisation en version brut de décoffrage. C’est inutilisable, c’est un brouillon publique.

aliasing IP

    Install Xen

# apt-get install xen-linux-system-2.6.18-4-xen-686 xen-tools libc6-xen xen-hypervisor-3.0.3-1-i386-pae xen-linux-system-2.6.18-4-xen-vserver-686 bridge-utils

# reboot

# mkdir /home/xen

    Setup

#nano /etc/xen-tools/xen-tools.conf

dir = /home/xen
dist   = etch
mirror = http://mirror.ovh.net/ftp.debian.org/debian
    Setup DomU

# xen-create-image –dir /home/xen –hostname tutu –ip 88.191.202.xxx –gateway 88.191.202.www –netmask 255.255.255.224 –debootstrap –dist etch –boot

ou

# xen-create-image –dir /home/xen –hostname srv2 –ip 88.191.34.sss –gateway 88.191.34.1 –netmask 255.255.255.0 –debootstrap –dist etch –boot

# nano /etc/xen-tools/xen-tools.conf

kernel = /boot/vmlinuz-2.6.18-4-xen-686
initrd = /boot/initrd.img-2.6.18-4-xen-686

# xen-delete-image
# xen-list-images

IP supplémentaire

inet adr:88.191.34.xxx Bcast:88.191.34.255 Masque:255.255.255.0
dhcp : 88.191.34.85

# xen-create-image –dir /home/xen –hostname tutu –ip 88.191.54.89 –gateway 88.191.54.87 –netmask 255.255.255.0 –debootstrap –dist etch –boot

    Source

https://wiki.alio.fr/doku.php?id=fr:informatique:quickref:xen

http://www.debian-administration.org/articles/396

http://tcweb.org/mediawiki/index.php/Xen_dedibox

http://www.howtoforge.com/debian_etch_xen_from_debian_repository

http://www.howtoforge.com/debian_etch_xen_3.1

http://www.punknix.com/?q=virtualization_xen

Et une petite kim de plus

Je viens d’acquérir une nouvelle kimsufi juste avant le reload (forcement), j’ai commencé à travailler avec gentoo et l’ovhm. Bon venant de debian cela fait un peu bizarre mais je commence à prendre la main.

Lors de la première mise à jour de la gentoo il va y a avoir tout un tas d’erreur alors voici les commandes pour les éviter :

Aller une petite synchronisation histoire de bien commencer

# emerge –sync

Pour que cracklib arrête de faire son embêtante

# FEATURES=-unmerge-orphans emerge cracklib

La toute puissante glibc à aussi décidé de ne plus pouvoir ce passer de nptl alors on va lui donner. http://gentoo-wiki.com/NPTL

#USE= »nptl » emerge -pv glibc
#USE= »nptl » emerge glibc

Curl n’est pas en reste, il faut donc démasquer certain paquet et réinstaller curl

# nano /etc/portage/package.keywords
=net-misc/curl-7.18.1 ~*
# emerge –unmerge curl && emerge curl

GNUPG propose aussi son lot de blocage dans les dépendances. Une petite réinstallation règle tout cela.

# emerge –unmerge gnupg && gnupg

Aller on est des fou, on lance l’update et on laisse tourner la kimsufi toute seule les 4 prochaines heures le temps qu’elle compile tout ça.

# emerge -uavDN world

A oui, n’oubliez pas d’aller allumer un cierge/bâton d’encens/récitation de la cora/ou prière sur le mur des lamentations pour que tout ce passe bien.