Comme je l'avais expliqué lors de mon billet sur mon serveur privé virtuel de chez amen.fr, je n'ai pas eu le choix d'avoir un Plesk collé à ma CentOS ! Après quelques tentatives ratées, je donne ici la marche à suivre pour s'en débarrasser, et avoir une distribution proche de l'originale. Notez que cela me servira surtout d'aide mémoire, et que si vous suivez cette procédure, vous ne pourrez revenir en arrière (à moins d'une réinstallation), que vous n'aurez évidemment plus accès à Plesk (mais toujours au menu virtuozzo, donc aux statistiques, à la console de maintenance, etc ...) et qu'il vous faudra l'assumer (vous avez tout à fait le droit de le faire, il est cependant probable que si un jour vous posez une question au support, une réponse avec la "méthode Plesk" vous soit donnée). Il faut donc aussi que vous soyez surs de pouvoir administrer votre serveur sans Plesk (je ne le ferai pas pour vous ;) ). Le contexte étant fixé, on peut y aller.
Histoire de se rendre compte de ce qu'il y a à virer, on peut commencer par un
# yum list extras
Les paquets qui nous intéressent sont ceux commençant par "psa", mais pas seulement. Il y a énormément de chose à retirer. Ce n'est pas spécialement nécessaire, mais je commence par arrêter les services inutiles (certains seront automatiquement redémarrés ensuite) :
# service courier-imap stop
# service qmail stop
# service saslauthd stop
# service drwebd stop
# service mysqld stop
# service httpd stop
# service psa stop
# sh /etc/init.d/spamassassin stop
Il faut forcer la désinstallation des paquets psa-* sans se soucier des dépendances, car certains rpms semblent poser des soucis (les dépendances seront retirées ensuite). J'évite simplement le psa-appvault-gallery car sa désinstallation ne marche pas, fait monter la commande rpm à 100% CPU, et semble même corrompre la base RPM. Je le laisse donc et supprime ensuite le répertoire où étaient contenus les fichiers de tous ces paquets, car il en reste ....
# for i in $(rpm -qa psa*|sed '/appvault-gallery/d'); do echo "Removing "$i;rpm -e --nodeps $i;done
# rm -rf /usr/local/psa/
Une fois fait, on supprime tous les paquets qui étaient installés comme simple dépendance pour Plesk, ou qui ne proviennent pas des dépôts officiels :
# yum remove drweb\\* openssl097a
# yum remove perl-Apache-ASP.noarch perl-Apache-ASP.x86_64 perl-Font-AFM.x86_64 perl-Font-AFM.noarch perl-FreezeThaw.x86_64 perl-FreezeThaw.noarch perl-HTML-Format.x86_64 perl-HTML-Tree.x86_64 perl-MLDBM.x86_64 perl-MLDBM-Sync.x86_64 perl-Text-Iconv.x86_64 perl-TimeDate.x86_64
# yum remove PPWSE-1.1-cos5.build86080722.00.x86_64 sb-publish-3.0.1-200705230938.noarch php-sqlite2.x86_64 php5-ioncube-loader.x86_64 SSHTerm.noarch awstats.noarch courier-imap.x86_64 log4cpp-plesk.x86_64 miva-ssl-stub.i386 mod_bw.x86_64
# yum remove ruby-actionmailer.noarch ruby-actionpack.noarch ruby-actionwebservice.noarch ruby-activerecord.noarch ruby-activesupport.noarch ruby-fcgi.x86_64 # ruby-mysql.x86_64 ruby-rails.noarch ruby-rake.noarch
# yum remove sw-libxml2.x86_64 sw-libxml2-python.x86_64 sw-libxslt.x86_64 sw-xmlrpc-c.x86_64 plesk-skins.noarch
# yum remove vzdummy-apache.noarch vzdummy-glibc.noarch vzdummy-jre-el5.noarch vzdummy-kernel-el5.noarch
Pour terminer avec la désinstallation, je supprime les différents serveurs installés, pour obtenir un système minimal (quitte à en réinstaller ensuite). Les fichiers de configuration d'apache et les bases MySQL sont aussi supprimés au cas où il y aurait eu des choses particulières paramétrées pour Plesk. Certains scripts pour xinetd restant encore sont supprimés, ainsi que les fichiers de configuration conservés et les paquets i386 :
# yum groupremove "Base de données MySQL"
# rm -rf /var/lib/mysql/*
# yum groupremove "Serveur web"
# rm -rf /etc/httpd/conf.d/*
# yum groupremove "serveur de messagerie"
# yum groupremove "serveur de fichier windows"
# yum groupremove "ruby"
# yum remove samba-common php-*
# rm -f /etc/xinetd.d/*psa*
# find / -name *.rpmsave|xargs rm
# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH} "|grep i386|xargs yum -y remove
La désinstallation de tous ces services fait qu'il n'y a plus de MTA sur le système. Pour remédier à cela :
# yum install sendmail
# alternatives --config mta
Indiquez sendmail comme MTA.
S'en ai fini pour le nettoyage du système. Un petit redémarrage histoire de s'assurer que tout va bien. Notez qu'un "yum list extras" renverra toujours deux paquets :
- psa-appvault-gallery : impossible à désinstaller, mais ses fichiers ont été supprimés
- vzdev : paquet indispensable fournissant le nécessaire pour les connexions (ne pas oublier que l'on est sur un serveur virtuel !)
# reboot
Après le premier reboot, on peut constater qu'on se retrouve avec un serveur minimal. On peut d'abord commencer par une mise à jour du système :
# yum update
La suite concerne mes besoins, vous n'aurez donc pas forcément à installer tout ça. Je commence par installer le dépôt EPEL :
# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
Puis quelques logiciels nécessaires à mon sens. vnstat pour ne pas avoir à toujours me connecter sur l'interface virtuozzo pour contrôler ma consommation de bande passante, logwatch pour le rapport quotidien du système et system-config-securitylevel-tui pour la configuration du pare-feu :
# yum install vnstat logwatch system-config-securitylevel-tui nmap
Un autre logiciel dont je ne peux me passer est fail2ban. Au moment où j'écris ce billet, je dois prendre la version présente dans epel-testing, bien plus à jour :
# yum --enablerepo epel-testing install fail2ban
# chkconfig fail2ban on
Configuration pour ces différents logiciels :
# sed -i 's/Interface \\"eth0\\"/Interface \\"venet0\\"/' /etc/vnstat.conf
# sed -i 's/eth0/venet0/' /etc/sysconfig/vnstat
# sed -i '3s/^..//' /etc/cron.d/vnstat
# vnstat -u -i venet0
# echo "MailTo = monmail@mail.com" >> /etc/logwatch/conf/logwatch.conf
Je termine par l'installation des différents paquets dont j'ai besoins, pour mon blog et mon dépôt SVN :
# yum groupinstall "Base de données MySQL"
# yum groupinstall "Serveur Web"
# yum install php-xml subversion mod_dav_svn repoview createrepo perl-Text-Iconv
Voilà les différentes étapes nécessaires pour arriver à un serveur qui ne contient que ce dont j'ai besoins. Cela permet d'avoir un système propre, sans paquets superflus, ce qui est intéressant quand on sait le peu de ressources dont dispose le serveur.
Fabien (eponyme)
