Archives de catégorie : Système

Le backup c’est la santé

Aller en vue d’une migration dedibox vers kimsufi je me lance dans un grand backup. Youpi !

Mais pour tout backup bien réussis il me faut toujours mes amis :

Pour bien compresser :

tar -czvf fichier.tar.gz /home/repertoire

Pour la BDD

mysqldump –all-databases -uroot -p > backupall.sql et/ou mysqldump -uroot -p database > backup.sql

Pour l’envois

scp -Pport fichier.tar.gz login@addresse:fichier.tar.gz

Pour la décompression

tar -zxvf fichier.tar.gz

Pour le remettre avec les bon droits

cp -Rp repertoire/* /repertoire/repertoire/
chown -R user.group repertoire/ parce qu’il faut donner les bons droits

Pour remetre la base

mysql -uroot -p base_de_donnees < backup.sql

Firefox et X-Chat 2

Il y a quelques jours j’ai désinstallé X-chat (http://www.xchat.org/) qui est devenue un shareware pour installer xchat 2 (http://www.silverex.org/news/) qui est toujours un freeware.

A mon grand dam, mon bon Vista sp1 ne considere pas X-chat 2 comme le client IRC par defaut, bilan c’est finis pour moi les gentils liens de type irc://irc.recycled-irc.net/toto. Firefox me renvoie a ce gentil message d’erreur : « firefox ne sait pas ouvrir cette adresse car le protocole (irc) lié n’est associé a aucun programme. » blablablabla

Mozillazine me propose cette solution :
http://kb.mozillazine.org/Register_protocol

REGEDIT4

[HKEY_CLASSES_ROOT\foo]
@="URL:foo Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\foo\shell]

[HKEY_CLASSES_ROOT\foo\shell\open]

[HKEY_CLASSES_ROOT\foo\shell\open\command]
@="\"C:\\Program Files\\Application\\program.exe\" \"%1\""

Alors j’avais beau changer les variables dans tous les sens, pas moyen de le faire fonctionner. J’ai finalement trouver une piste quand un utilisateur de Clubic m’a donner ça version de sa clés registre x-chat. Et en la modifiant un peu alléluia ça marche :

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\irc]
@="URL:IRC Protocol"
"BrowserFlags"=dword:00000008
"EditFlags"=dword:00000002
"URL Protocol"=""

[HKEY_CLASSES_ROOT\irc\DefaultIcon]
@="C:\\Program Files\\X-Chat 2\\xchat.exe,0"

[HKEY_CLASSES_ROOT\irc\shell]
@="open"

[HKEY_CLASSES_ROOT\irc\shell\open]

[HKEY_CLASSES_ROOT\irc\shell\open\command]
@="C:\\Program Files\\X-Chat 2\\xchat.exe \"%1\""

Donc par étape :
1 / Verifier qu’il n’y a plus de clés registre irc dans HKEY_CLASSES_ROOT
2 / Copier/Coller ce que je viens d’écrire plus haut dans le bloc note.
3 / Enregistrer le fichier en temps que .reg
4 / Double cliquez sur le fichier.

PS : il faut vérifier que le PATH de x-chat est le bon pour votre configuration.

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.

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.