Sur un serveur Debian Wheezy installé "à minima" (SSH Server, Standard system utilities) :
Configuration des dépôts de paquets, fichier /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
deb http://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free
Ensuite :
aptitude upgrade && aptitude safe-upgrade
Installation des trousseaux de clefs GPG Debian :
aptitude install debian-archive-keyring debian-keyring debian-ports-archive-keyring
gpg --list-keys
Modification du shell par défaut (Bash à la place de Dash) :
dpkg-reconfigure dash
Répondre "non" permettra de passer à Bash.
Synchronisation de l’horloge :
aptitude install ntp ntpdate
Mise à jour automatique de l’horloge :
Dans le fichier /etc/crontab, il faut ajouter les lignes :
# Synchronisation à 2h00
0 2 * * * root /usr/sbin/ntpdate serveur.de.temps >/dev/null
Avec pour serveur.de.temps, un serveur de la liste disponible ici : http://www.pool.ntp.org/zone/europe
(ou chez OVH : ntp.ovh.net)
Installation de Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, binutils
aptitude install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve
Répondre ceci aux questions :
- General type of mail configuration : : Internet Site
- System mail name : : Le "nom" du serveur (ex : serveur.moi.fr)
- New password for the MySQL "root" user : : Un mot de passe "sécurisé"
- Repeat password for the MySQL "root" user : : Le même mot de passe que précédemment
Ouverture des ports TLS/SSL et submission dans Postfix :
nano /etc/postfix/master.cf
Dé-commentez les sections submission et smtps sections comme ci-dessous (laissez commenté -o milter_macro_daemon_name=ORIGINATING car on n’en a pas besoin) :
[...]
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
[...]
Relancez Postfix :
/etc/init.d/postfix restart
On veut que MySQL écoute sur toutes les interfaces, pas uniquement localhost, il faut donc modifier le fichier /etc/mysql/my.cnf et commenter la ligne bind-address = 127.0.0.1
#bind-address = 127.0.0.1
Et relancez MySQL :
/etc/init.d/mysql restart
Installation d’Amavisd-new, SpamAssassin et Clamav :
aptitude install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
ISPConfig 3 n’a pas besoin du service SpamAssassin donc on le stoppe pour libérer de la mémoire :
/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove
Installation de Nginx, PHP5 (PHP-FPM) et Fcgiwrap
aptitude install nginx
On démarre nginx :
/etc/init.d/nginx start
Utilisation de PHP5 avec nginx via PHP-FPM :
aptitude install php5-fpm
Installation du module MySQL pour php 5
aptitude install php5-mysql
Installation de modules php 5 supplémentaires :
aptitude install php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached
Installation d’APC
aptitude install php-apc
Il faut ensuite modifier le fichier /etc/php5/fpm/php.ini, en modifiant ces lignes :
[...]
cgi.fix_pathinfo=0
[...]
date.timezone="Europe/Paris"
[...]
On relance PHP-FPM :
/etc/init.d/php5-fpm reload
Pour le support de CGI dans nginx, il faut installer Fcgiwrap.
aptitude install fcgiwrap
Installation de phpMyAdmin
aptitude install phpmyadmin
Aux questions suivantes, répondre :
- Serveur web à reconfigurer automatiquement : ne rien sélectionner car les seules options sont apache2 et lighttpd. Nginx n’est pas disponible
- Faut-il configurer la base de données de phpmyadmin avec dbconfig-common ? : Non
phpMyAdmin se trouve dans le dossier /usr/share/phpmyadmin/
Le chemin d’accès sera par exemple :
http://serveur.moi.fr:8081/phpMyAdmin
If you want to use a /phpmyadmin or /phpMyAdmin alias that you can use from your web sites, this is a bit more complicated than for Apache because nginx does not have global aliases (i.e., aliases that can be defined for all vhosts). Therefore you have to define these aliases for each vhost from which you want to access phpMyAdmin.
To do this, paste the following into the nginx Directives field on the Options tab of the web site in ISPConfig :
Installation de BIND
aptitude install bind9 dnsutils
Installation de Jailkit (Chroot SSH
ATTENTION : Jailkit doit absolument être installé avant ISPConfig ! Il ne peut pas l’être ensuite.
aptitude install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold
Ensuite :
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
tar xvfz jailkit-2.16.tar.gz
cd jailkit-2.16
./debian/rules binary
Il faut installer le paquet créé :
cd ..
dpkg -i jailkit_2.16-1_*.deb
rm -rf jailkit-2.16*
rm -rf jailkit_2.16*
Installation de fail2ban
aptitude install fail2ban
La configuration se fait via : /etc/fail2ban/jail.local
Installation d’ISPConfig 3
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
php -q install.php