Retour : Page Principale > sommaire serveurs & domaines > Sequoia

Procédure de configuration de Debian Etch sur PowerEdge 1950


Informations générales
  • IP : 193.54.123.169
  • Distribution installĂ©e : Debian 2.6.18-6-amd64
  • Cable rĂ©seau Ă  brancher sur le port : Gb 1 (de la carte rĂ©seau) [pour Ă©viter de configurer shorewall avec plusieurs ports!]
  • État installation : juste avant installation d'apache

Système de fichier
df -h :
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/sda3             9,2G  659M  8,1G   8% /
tmpfs                 7,9G     0  7,9G   0% /lib/init/rw
udev                   10M   60K   10M   1% /dev
tmpfs                 7,9G     0  7,9G   0% /dev/shm
/dev/sda7             240G  188M  228G   1% /home
/dev/sda5             9,2G  150M  8,6G   2% /racine


fdisk -l :
Disk /dev/sda: 299.4 GB, 299439751168 bytes
255 heads, 63 sectors/track, 36404 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          10       80293+  de  Dell Utility
/dev/sda2              11         272     2104515    b  W95 FAT32
/dev/sda3   *         273        1488     9767520   83  Linux:
/dev/sda4            1489       36404   280462770    5  Extended
/dev/sda5            1489        2704     9767488+  83  Linux
/dev/sda6            2705        4649    15623181   82  Linux swap / Solaris
/dev/sda7            4650       36404   255072006   83  Linux


ifconfig :
eth2      Lien encap:Ethernet  HWaddr 00:22:19:52:59:1F
          inet adr:162.38.234.251  Bcast:162.38.234.255  Masque:255.255.255.0
          adr inet6: fe80::222:19ff:fe52:591f/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1008 errors:0 dropped:0 overruns:0 frame:0
          TX packets:300 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:129038 (126.0 KiB)  TX bytes:61543 (60.1 KiB)
          Interruption:169 MĂ©moire:f8000000-f8011100

lo        Lien encap:Boucle locale
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:HĂ´te
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b):


Services (le minium, parfait !).
netstat -vaptn :
Connexions Internet actives (serveurs et Ă©tablies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     2485/portmap
tcp        0      0 0.0.0.0:113             0.0.0.0:*               LISTEN     2858/inetd
tcp        0      0 0.0.0.0:48372           0.0.0.0:*               LISTEN     2906/rpc.statd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     2845/exim4
tcp6       0      0 :::22                   :::*                    LISTEN     2887/sshd
tcp6       0      0 ::ffff:162.38.234.25:22 ::ffff:82.65.176.:58901 ESTABLISHED3002/1
tcp6       0    144 ::ffff:162.38.234.25:22 ::ffff:162.38.234:59671 ESTABLISHED2990/0


Serveur de nom
Pas besoin de serveur de nom (c'est mon choix !). Désinstallation si nécessaire.

Mise à jour générale
Lancement de la commande de mise à jour générale :

apt-get update
apt-get upgrade

Redémarrer la machine si nécessaire (en cas d'upgrade d'un paquet linux-image...).

Vérification différence vi et vim
Si en Ă©ditant un fichier avec la commande vi, l'appui sur la touche "INSER" ne bascule pas en mode insertion, il faut alors utiliser vim.
Vous pouvez aussi lancer la commande suivante pour résoudre le problème :

apt-get install vim
update-alternatives --config vi (doit contenir : vim.basic)
update-alternatives --display vi (en cas de problème mais normalement fait pas l'install de vim)


Ajout de sources logicielles
VĂ©rifions les sources logicielles et ajoutons contrib non-free.
vi /etc/apt/source.list :

deb ftp://mir1.ovh.net/debian/ etch main contrib non-free
deb-src ftp://mir1.ovh.net/debian/ etch main contrib non-free

deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free


Installation de MC
Je ne peux pas me passer de midnight commander :
apt-get install mc

Installation de la vérification du raid
Récupération et installation de l'utilitaire pour le raid :

wget http://www.awerner.homeip.net/lib/exe/fetch.php?media=it-artikel:linux:lsi-megaraid:4.00.11_linux_megacli.zip -O linux_megacli.zip
apt-get install unzip

apt-get install rpm

Puis avec mc, rĂ©cupĂ©rer ./ MegaCli64 et le copier dans /usr/sbin

Documentation Megacli :
http://tools.rapidsoft.de/perc/perc-cheat-sheet.pdf

Commande de base :
  • MegaCli64 -AdpAllInfo -aALL : toutes les information sur le Raid. Rechercher la chaine Degraded : 1 pour dĂ©tecter un problème.
  • MegaCli64 -PDList -aAL : pour visualiser l'Ă©tat des unitĂ©s disques. Rebuild indique une reconstruction en cours, Online un fonctionnement normal.

Notes : il a fallut 45mn, une fois le disque raid remis, pour que MegaCli64 indique un statut Degraded : 0 . Les voyants sur le disque indiquaient pourtant un fonctionnement normal.
TODO : installer une alerte sur problème raid.

Optimisation du système de fichier
Un peu d'optimisation :
vi /etc/fstab :
Passer / et /home Ă  noatime et supprimer "defaults" pour /.
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0:
/dev/sda3       /               ext3    noatime,errors=remount-ro 0       1
/dev/sda7       /home           ext3    noatime,defaults        0       2
/dev/sda5       /racine         ext3    noatime,defaults        0       2
/dev/sda6       none            swap    sw              0       0
/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0


Si pas de disque dur en reconstruction, rebooter le serveur avant de lancer la commande suivante :
reboot

mount :
/dev/sda3 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda7 on /home type ext3 (rw)
/dev/sda5 on /racine type ext3 (rw)


Réorganisation des répertoires
Création d'un lien : /var/log --> /home/log

chmod -R -s /home
chown root:root /home
# ArrĂŞt des demons qui Ă©crivent dans /var/log
/etc/init.d/sysklogd stop
#Si sysklogd n'existe pas : /etc/init.d/rsyslogd stop
/etc/init.d/cron stop
mkdir /home/log
(cd /var/log; tar -cvf - .) | (cd /home/log;tar -xvf -) # Pouquoi pas faire un mv dans /home/log?
rm -Rf /var/log
ln -s /home/log /var/log
/etc/init.d/cron start
/etc/init.d/sysklogd start


Mise en place des quotas
apt-get install quota

vi /etc/fstab :

/dev/sda7 /home ext3 noatime,usrquota,defaults 0 2


DĂ©marrer la gestion des quotas :
/etc/init.d/quota start
(sera lancé ensuite systématiquement depuis rcS.d)

touch /home/quota.user

Un peu de ménage :
update-rc.d -f quotarpc remove

Redémarage pour prendre en compte les quota sur la partition home :
reboot

Voir le quota d'un utilisateur :
quota nomUtilisateur
Voir les quotas des utilisateurs :
repquota -a

Création espace administration / gestion des scripts / mise à jour du système

apt-get install sudo
useradd -g users admin
mkdir /home/admin
chown admin:users /home/admin/
vi /etc/sudoers
(laisser en place :
root ALL=(ALL) ALL )
# modifier la ligne : admin ALL=(ALL) ALL
# le fichier est en lecture seule. Pour sauver avec vi utiliser :w!
su - admin
mkdir src
mkdir src/targz
mkdir script
mkdir save
mkdir www


Installation shorewall
Installation du Pare-feu :
apt-get install shorewall

RĂ©cuperer /usr/share/doc/shorewall/default-config dans /etc/shorewall :
cp -r /usr/share/doc/shorewall/default-config/* /etc/shorewall/

Adaptation du contenu :

vi /etc/shorewall/interfaces
# net eth2 detect

vi /etc/shorewall/policy
# $FW net ACCEPT
# net all DROP info
# all all REJECT info

vi /etc/shorewall/rules
# #SECTION NEW
# ACCEPT net $FW tcp ssh,www,ftp,110,25,3306,143,389
# ACCEPT net $FW udp ssh,www,110,389
# ACCEPT net $FW tcp 10000
# ACCEPT net $FW udp 10000
# ACCEPT net $FW icmp 8

vi /etc/shorewallzones
# fw firewall
# net ipv4

vi /etc/default/shorewall
# startup=1

#Shorewall sera lancé ensuite systématiquement depuis rcS.d pour l'instant on le lance à la main :
/etc/init.d/shorewall start


Récupération des scripts
Récupération depuis Sequoia (l'ancien) :

su - admin
cd script/
scp -r root@193.54.123.216:/home/admin/script/ ./


Installation apache
Voir script dans /home/admin/script :

su - admin
cd script/
./apache_2.2.9_version_02.sh


Retour en root :

ln -s /usr/local/apache/conf/httpd.conf /httpd.conf
/etc/init.d/httpd stop
mkdir /home/log/httpd
(cd /usr/local/apache/logs/; tar -cvf - .) | (cd /home/log/httpd;tar -xvf -)
rm -Rf /usr/local/apache/logs
ln -s /home/log/httpd /usr/local/apache/logs
/etc/init.d/httpd start


vi /etc/logrotate.d/apache :
/usr/local/apache/logs/*log {
        notifempty
        weekly
        rotate 20
        compress
        postrotate
                /usr/bin/killall -HUP httpd
        endscript
}


vi /usr/local/etc/suphp.conf
[global]
;Path to logfile
logfile=/var/log/httpd/suphp_log

;Loglevel
loglevel=info

;User Apache is running as
webserver_user=nobody

;Path all scripts have to be in
docroot=/home/

; Security options
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false

;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=false

;Send minor error messages to browser
errors_to_browser=true

;PATH environment variable
env_path=/bin:/usr/bin

;Umask to set, specify in octal notation
umask=0033

; Minimum UID
min_uid=89

; Minimum GID
min_gid=89

[handlers]
;Handler for php-scripts
x-httpd-php4=php:/usr/local/bin/php4
x-httpd-php5=php:/usr/local/bin/php5

;Handler for CGI-scripts
x-suphp-cgi=execute:!self


vi /httpd/conf
# Inclusions regles par defaut (pas obligatoire car tres lourd !!)
 LoadModule security2_module modules/mod_security2.so
Include conf/modsecurity/*.conf

Installation mysql
Voir le script dans /home/admin/script

su - admin
cd script/
mysql_5.0.51_version_01.sh

Si probleme demarrage dĂ» au pid : redemarrer en tant que root.

Installation de pt-query-digest (Percona Toolkit)
Script Perl permettant de faire l'analyse des slow-query.
Pour l'installation, utiliser le script : percona-toolkit_2.2.5.sh

Installation php
Voir script dans /home/admin/script :h

vi /usr/local/lib/php.ini : a adapter (creer : safe_mode_include_dir = /usr/local/lib/php)

Installation qmail
apt-get install procmail
apt-get install daemontools-installer
apt-get install ucspi-tcp-src
build-daemontools (Reponse par defaut à tous, N à création de liens vers /service, Y à purge)
build-ucspi-tcp (Reponse par defaut Ă  tous Y Ă  purge)
apt-get install qmail-src (reponse par defaut
build-qmail (Reponse par defaut Ă  tous, Y Ă  purge)

Fichiers de configuration :
/etc/qmail :
 - defaultdomain : domaine par defaut (on peut laisser vide, le domaine par defaut est alors le domaine indiqué dans le fichier "me")
 - locals  : les domaines pours lequels le courrier est délivré localement : vide, nous utiliserons les domaines virtuels, on peut y mettre localhost
 - me : par defaut c'est le FDQN de la machine (fully domain qualified name) : par exemple sequoia.tela-botanica.org, on laisse. 
 - plusdomain  : default : me (feature geek)
 - rcpthosts : domaine pour lesquels on accepte des mails : ce seront les domaines virtuels, contient au debut : localhost et  sequoia.tela-botanica.org par exemple
 - concurrencyincoming : nombre de connection mails  silmutanées : 20 
 - virtualdomains : domaines virtuels  geres par vopmail

/etc/qmail/users
  • assign : correspondance nom d'utilisateurs : boite au lettre, var servir pour les domaines virtuels et la redirection de mail dans les boĂ®tes pop par domaine.

qmail-newu : pour regerer

cf /etc/init.d/qmail (cf pop)

Installation ezmlm
cf script

Installation vpopmail
cf script
(attention : installe db3 et desinstalle db4-devel ...)
# /home/vpopmail/bin/vadddomain sequoia.tela-botanica.org

Installation spamassassin
cf script
vi /etc/init.d/spamd
DOPTIONS="-u qmaild -d --pidfile=$PIDFILE"
vi /etc/spamassassin.conf
ENABLED=1
OPTIONS="--round-robin"
installation : http://qmail.jms1.net/patches/validrcptto.cdb.shtml

apt-get install qmail-src
patch sur /tmp/qmail/qmail (paquetage qmail-src)

build-qmail
sortie sans purger /tmp/qmail

cd /tmp/qmail/qmail-1.03
wget http://qmail.jms1.net/patches/validrcptto.cdb.patch
patch < validrcptto.cdb.patch

Hunk #1 FAILED at 1535.
1 out of 2 hunks FAILED -- saving rejects to file Makefile.rej : OK
patching file qmail-smtpd.c
Hunk #1 FAILED at 23.
Hunk #2 succeeded at 72 with fuzz 1 (offset 11 lines).
Hunk #3 succeeded at 124 with fuzz 2 (offset 23 lines).
Hunk #4 FAILED at 148.
Hunk #5 succeeded at 288 (offset 68 lines).
Hunk #6 succeeded at 429 (offset 94 lines).
Hunk #7 succeeded at 592 (offset 94 lines).
2 out of 7 hunks FAILED -- saving rejects to file qmail-smtpd.c.rej

Correction :
vi qmail-smtpd.c

Ajouter :
#include "cdb.h" dans les entetes

Ajouter après :

  • bmfok = control_readfile(&bmf,"control/badmailfrom",0);
  • if (bmfok
    -1) die_control();


Ceci :

  • vrtfd = open_read("control/validrcptto.cdb");
    • if (-1 vrtfd) if (errno != error_noent) die_control();


Make et copie du binaire seulement. 'qmail-smtpd' dans /usr/bin/ :
cp /tmp/qmail/qmail-1.03/qmail-smtpd /usr/sbin

Rajout des bibliotheques CDB pour Perl :

# perl -MCPAN -e shell (configurer si c'est la première fois, repondre par defaut, choisir un dépot en fonction de son pays).
install CDB_File
quit

cd /usr/local/bin
wget http://qmail.jms1.net/scripts/mkvalidrcptto
chmod 755 mkvalidrcptto

vi /usr/local/bin/update.validrcptto

#!/bin/sh
PATH=/usr/bin:/bin:/usr/local/bin:/var/qmail/bin
umask 022
mkvalidrcptto -c /var/qmail/control/validrcptto.cdb


Sauver, puis :
chmod 755 /usr/local/bin/update.validrcptto

# crontab -e

Ajouter (version du 2016-03-25) :
# Mise a jour liste des utilisateurs de mail :
*/10 * * * *    /usr/local/bin/update.validrcptto 1>/dev/null 2>/dev/null
54 11 * * *     /etc/webmin/cron/tempdelete.pl

# Automatisation de l'envoie de la lettre d'actualites a liste actu@tela-botanica.org
# via le script /home/telabotap/www/actu/envoi_mail.php
1 14 * * thu    /usr/local/bin/php-cli-52 /home/telabotap/www/actu/envoi_mail.php

# Calcul des statistiques de l'appli projet de Tela (Alex mai 2008)
#0 */2 * * *    /usr/local/bin/php-cli-52 -d safe_mode=Off /home/telabotap/www/client/projet/services/projet_statistiques.php

# Nettoyage repertoire squirellmail attach > 2 jours
0 4 * * *   /usr/bin/find /var/local/squirrelmail/attach/ -atime +2 -print0 | xargs -0 rm -f 1>/dev/null 2>/dev/null
# * * * * * /usr/local/bin/php-cli-52 /home/telabotap/www/eflore/efloreId/eflore_bench/services/parcourir.php

# Verification du RAID
35 23 * * * /usr/local/sbin/check-raid 1 > /dev/null 2 > /dev/null 

# Copie du nombre d'observations des especes principales de sauvagesdepaca.fr
30 0  * * * /usr/local/php/5.4/bin/php /home/sauvages/www/drupal/sites/all/modules/import_json_obs_cel/import-json-obs-sauvages-cel.php >/dev/null 2>&1

# CRON de Moodle - toutes les deux minutes (Moodle recommande 1 minute) - Mathias, 2016-03-25
0/2  *  * * * su mooc -s /bin/bash -c "/usr/local/php/5.4/bin/php /home/mooc/www/moodle/admin/cli/cron.php"

Attention Ă  bien configurer les domaines en : "Capture de email rejetes" (depuis qmailadmin)

Installation imap (pour lecteur de courrier)
su - admin
cf script courier-imap-4.1.3_version_01.sh (+patch)
mkdir -p /var/lock/subsys/

echo " Modifier /usr/local/courier-imap/etc/imapd "
echo " MAXDAEMONS=40 "
echo " MAXPERIP=40"
echo "IMAP_EMPTYTRASH=Trash:7 (interwiki inconnu)"
echo "IMAPDSTART=YES"

/etc/init.d/courier-imap start

vi /usr/local/etc/authlib/authdaemonrc :
remplacer :

authmodulelist="authpipe"
par :
authmodulelist="authvchkpw authpipe"

et authmodulelistorig="authpipe"
par :
authmodulelistorig="authvchkpw authpipe"

cp /home/admin/src/courier-authlib-0.59.3/courier-authlib.sysvinit /etc/init.d/courier-authlib
chmod 755 /etc/init.d/courier-authlib

/etc/init.d/courier-authlib start

Installation ezmlm
cf script

Installation qmailadmin
cf script

Installation qmail-scanner
groupadd qscand
useradd -c "Qmail-Scanner Account" -g qscand -s /bin/false qscand
cf script
  • vi /etc/tcp.smtp
127.0.0.1:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-queue"
:allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"

tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
qmailctl cdb

mkdir -p /home/qscand/.spamassassin
chown qscand:users /home/qscand/ -R

Installation de vsftpd
apt-get install vsftpd
vi /etc/shells
ajout : /bin/false
Fichier de configuration :
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone?  vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
#listen_ipv6=YES
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
idle_session_timeout=2000
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=ftp
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=YES
#
#
# Debian customization
#
# Some of vsftpd's settings don't fit the Debian filesystem layout by
# default.  These settings are more Debian-friendly.
#
# This option should be the name of a directory which is empty.  Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/vsftpd.pem


Installation de webmin + ovhm
apt-get install webalizer

copie ovhm dans /usr/local/webmin
modification /etc/webmin/webmin.acl : ajout ovhm

ln -s /home/admin /home/ovh
ln -s /home/admin /home/ovhm

vi /etc/webmin/webmin.acl
ajout : ovhm

vi /usr/local/webmin/ovhm/module.info :
On garde name et desc

vi /usr/local/webmin/ovhm/ovhmlib.pl
On supprime le contenu des fonctions relatives Ă  bind

vi /usr/local/webmin/ovhm/ovhmlib.pl
our $distrib = "gentoo"; (au lieu de redhat)

remplacer /usr/local/bin/webalizer par /usr/bin/webalizer

vi /usr/local/webmin/ovhm/creer.cgi
remplacer adduser par useradd
system("/usr/sbin/useradd -c \"$login\" -m -k /usr/libexec/webmin/ovhm/skel -s $shell -g users -p $cpass $login\n");

vi /etc/webmin/apache/config
link_dir=
test_manual=0
show_list=0
mime_types=
access_conf=
auto_mods=1
stop_cmd=
virt_file=
test_apachectl=1
max_servers=100
srm_conf=
httpd_dir=/usr/local/apache
start_cmd=
show_order=0
test_always=0
httpd_conf=
defines_file=
apachectl_path=
test_config=1
httpd_path=/usr/local/apache/bin/httpd
virt_name=
defines_mods=
pid_file=
graceful_cmd=
show_names=
httpd_version=
apply_cmd=
apache_docbase=
defines_name=


vi /etc/webmin/mysql/config
date_subs=0
max_text=1000
perpage=25
stop_cmd=/etc/init.d/mysql stop >/dev/null 2>&1
mysqldump=/usr/local/mysql/bin/mysqldump
nodbi=0
mysql_libs=/usr/local/mysql/lib
max_dbs=50
start_cmd=/etc/init.d/mysql start >/dev/null 2>&1 &
mysql_data=/var/lib/mysql
mysqlimport=/usr/local/mysql/bin/mysqlimport
access=*: *
style=0
my_cnf=/etc/mysql/my.cnf
mysqlshow=/usr/local/mysql/bin/mysqlshow
mysql=/usr/local/mysql/bin/mysql
add_mode=1
passwd_mode=0
blob_mode=0
mysqladmin=/usr/local/mysql/bin/mysqladmin
sock=
encoding=
charset=
port=
mysqld=
host=
login=root
pass=""*******""

/etc/init.d/webmin restart


Installation de Phpmyadmin
cf script
vi config.inc.php
""
<?php
/* Servers configuration */
$i = 0;

/* Server localhost (http) [1] */
$i++;
$cfg['Servers'][\$i]['host'] = 'localhost';
$cfg['Servers'][\$i]['extension'] = 'mysql';
$cfg['Servers'][\$i]['connect_type'] = 'tcp';
$cfg['Servers'][\$i]['compress'] = false;
$cfg['Servers'][\$i]['auth_type'] = 'http';

/* End of servers configuration */
?>""

chown -R admin:users config.inc.php

Installation munin
  • apt-get install munin munin-node
  • Ajouter un module Perl via le CPAN : install LWP::UserAgent
  • CrĂ©er un lien pour placer Munin sur le compte admin : ln -s /var/www/munin /home/admin/www/munin
  • Ajouter l'utilisateur munin au sudo : sudo -u munin bash
  • Edtier le crontab pour y ajouter une entrĂ©e munin :
    • crontab -e
    • */5 * * * * /usr/bin/munin-cron 1 > /dev/null 2 > /dev/null

munin-node-configure :
mysql :
vi /etc/mysql/debian.cnf :
[client]
host     = localhost
user     = root
password = ""******""
socket   = /tmp/mysql.sock

vi /etc/munin/plugin-conf.d/munin-node :
[mysql*]
user root
env.mysqladmin /usr/local/mysql/bin/mysqladmin
env.mysqlopts --defaults-extra-file=/etc/mysql/debian.cnf


ln -s /usr/share/munin/plugins/mysql_* /etc/munin/plugins/.
ln -s /usr/share/munin/plugins/apache_* /etc/munin/plugins/.

munin-node-configure --suggest : pour verifier si toutes les sondes munins sont configurés.

Mise en place des sauvegardes
wget http://www.dansteph.com/backup_exclude.txt
/home/admin/src
wget http://www.dansteph.com/backupftpovh.sh

dans /home/admin/www
http://www.dansteph.com/listovh.txt


Services au démarrage
rcconf :
  • [*] acpid
  • [*] atd
  • [*] courier-authlib
  • [*] courier-imap
  • [*] cron
  • [*] httpd
  • [*] klogd
  • [*] makedev
  • [*] mysql
  • [*] openbsd-inetd
  • [*] qmail
  • [*] spamd
  • [*] ssh
  • [*] sysklogd
  • [*] vsftpd
  • [ ] bootclean
  • [ ] quotarpc

Installation librairies PEAR

Lister les packags installés : pear list
Installed packages, channel pear.php.net:
""=========================================""
Package              Version State
Archive_Tar          1.3.2   stable
Auth                 1.6.1   stable
Auth_SASL            1.0.2   stable
Console_Getopt       1.2.3   stable
DB                   1.7.13  stable
HTML_Common          1.2.4   stable
HTML_QuickForm       3.2.10  stable
HTML_Template_IT     1.1     stable
HTTP_Request         1.4.4   stable
Log                  1.11.4  stable
Mail                 1.1.14  stable
Mail_Mime            1.5.2   stable
Mail_mimeDecode      1.5.0   stable
Net_SMTP             1.3.2   stable
Net_Socket           1.0.9   stable
Net_URL              1.0.15  stable
Net_UserAgent_Detect 2.0.1   stable
PEAR                 1.7.1   stable
Structures_Graph     1.0.2   stable
XML_Util             1.2.1   stable


Pour installer un paquetage (par exemple) : pear install DB

Mise Ă  jour Etch vers Lenny

Modification /etc/apt/source-list
Remplacer : etch vers lenny

apt-get update
apt-get dist-upgrade

Desinstallation mysql, installé par défaut par lenny ...
dpkg -P mysql-common libmysqlclient15off

TODO

logrotate qscan (fichier log)
logrotate mod_security OK
sauvegarde base de donnees
sauvegarde ftp
reglage liste de diffusion (cc ...)
relgage wembail (traduc) OK
quota.cgi pour les utilisateurs ... et ameliorations