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)