Retour : Page Principale > sommaire serveurs & domaines > Sequoia
fdisk -l :
ifconfig :
apt-get update
apt-get upgrade
Redémarrer la machine si nécessaire (en cas d'upgrade d'un paquet linux-image...).
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)
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
apt-get install mc
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 :
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.
vi /etc/fstab :
Passer / et /home Ă noatime et supprimer "defaults" pour /.
Si pas de disque dur en reconstruction, rebooter le serveur avant de lancer la commande suivante :
reboot
mount :
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
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
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
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
su - admin
cd script/
scp -r root@193.54.123.216:/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 :
vi /usr/local/etc/suphp.conf
vi /httpd/conf
# Inclusions regles par defaut (pas obligatoire car tres lourd !!)
LoadModule security2_module modules/mod_security2.so
Include conf/modsecurity/*.conf
su - admin
cd script/
mysql_5.0.51_version_01.sh
Si probleme demarrage dĂ» au pid : redemarrer en tant que root.
Pour l'installation, utiliser le script : percona-toolkit_2.2.5.sh
vi /usr/local/lib/php.ini : a adapter (creer : safe_mode_include_dir = /usr/local/lib/php)
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/users
qmail-newu : pour regerer
cf /etc/init.d/qmail (cf pop)
(attention : installe db3 et desinstalle db4-devel ...)
# /home/vpopmail/bin/vadddomain sequoia.tela-botanica.org
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 :
Ceci :
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) :
Attention Ă bien configurer les domaines en : "Capture de email rejetes" (depuis qmailadmin)
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
useradd -c "Qmail-Scanner Account" -g qscand -s /bin/false qscand
cf script
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
vi /etc/shells
ajout : /bin/false
Fichier de configuration :
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
vi /etc/webmin/mysql/config
/etc/init.d/webmin restart
vi config.inc.php
chown -R admin:users config.inc.php
munin-node-configure :
mysql :
vi /etc/mysql/debian.cnf :
vi /etc/munin/plugin-conf.d/munin-node :
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.
/home/admin/src
wget http://www.dansteph.com/backupftpovh.sh
dans /home/admin/www
http://www.dansteph.com/listovh.txt
Pour installer un paquetage (par exemple) : pear install DB
Remplacer : etch vers lenny
apt-get update
apt-get dist-upgrade
Desinstallation mysql, installé par défaut par lenny ...
dpkg -P mysql-common libmysqlclient15off
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
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/logchmod -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 quotavi /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/scriptsu - 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 :hvi /usr/local/lib/php.ini : a adapter (creer : safe_mode_include_dir = /usr/local/lib/php)
Installation qmail
apt-get install procmailapt-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 scriptInstallation vpopmail
cf script(attention : installe db3 et desinstalle db4-devel ...)
# /home/vpopmail/bin/vadddomain sequoia.tela-botanica.org
Installation spamassassin
cf scriptvi /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 - admincf 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 scriptInstallation qmailadmin
cf scriptInstallation qmail-scanner
groupadd qscanduseradd -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 vsftpdvi /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 webalizercopie 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 scriptvi 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 listInstalled 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-listRemplacer : 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