ISPConfig (4) | Nginx | NAXSI

Suite de l’installation (Page 4)

10 Compilation de la mise à jour du paquet Nginx (avec l’intégration de NAXSI).

Distribution utilisé , Debian Wheezy.

Introduction sur le paquet (logiciel)

En informatique, et en particulier dans le contexte des systèmes UNIX, on appelle paquet (ou parfois paquetage, en anglais package) une archive (fichier compressé) comprenant les fichiers informatiques, les informations et procédures nécessaires à l’installation d’un logiciel sur un système d’exploitation au sein d’un agrégat logiciel, en s’assurant de la cohérence fonctionnelle du système ainsi modifié.

Dans ce tutoriel , on utilisera le paquet debian pour recompiler les sources de la dernière version de Nginx :

D’abort, créer un répertoire (sous l’utilisateur Root) qu’on va nommé compile.

mkdir compile
cd compile

Télécharger les sources de nginx et les dépendances pour la re-construction du paquet :

apt-get source nginx
apt-get build-dep nginx

Voyons qu’elle version télécharger avec la commande ls -l, pour lister les fichiers :

ls -l
total 1704
drwxr-xr-x 10 root root   4096 oct 26 11:17 nginx-1.6.2
-rw-r--r--  1 root root 926638 oct 13 12:05 nginx_1.6.2-2~bpo70+1.debian.tar.gz
-rw-r--r--  1 root root   2780 oct 13 12:05 nginx_1.6.2-2~bpo70+1.dsc
-rw-r--r--  1 root root 804164 sep 17 10:34 nginx_1.6.2.orig.tar.gz

Notre version de nginx est 1.6.2.
Allons dans le répertoire debian/modules qui va nous servir à téléchargé les sources NAXSI …

cd ~/compile/nginx-1.6.2/debian/modules

… Et télécharger les sources NAXSI :

git clone https://github.com/nbs-system/naxsi
Cloning into 'naxsi'...
remote: Counting objects: 2685, done.
remote: Total 2685 (delta 0), reused 0 (delta 0)
[...]

Modifions le fichier debian/rules :

cd ..
nano rules

Dans ce fichier, ajoutés ces 2 lignes, pour que la compilation du packet soit réalisable.

#!/usr/bin/make -f
export DH_VERBOSE=1
[...]
common_configure_flags := \
			--with-cc-opt="$(debian_cflags)" \
			--with-ld-opt="$(debian_ldflags)" \
			--prefix=/usr/share/nginx \
			--conf-path=/etc/nginx/nginx.conf \
			--http-log-path=/var/log/nginx/access.log \
			--error-log-path=/var/log/nginx/error.log \
			--lock-path=/var/lock/nginx.lock \
			--pid-path=/run/nginx.pid \
			--http-client-body-temp-path=/var/lib/nginx/body \
			--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
			--http-proxy-temp-path=/var/lib/nginx/proxy \
			--http-scgi-temp-path=/var/lib/nginx/scgi \
			--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
			--with-debug \
			--with-pcre-jit \
			--with-ipv6 \
			--with-http_ssl_module \
			--with-http_stub_status_module \
			--with-http_realip_module \
			--with-http_auth_request_module 

light_configure_flags := \
			$(common_configure_flags) \
			--with-http_gzip_static_module \
			--without-http_browser_module \
			--without-http_geo_module \
			--without-http_limit_req_module \
			--without-http_limit_zone_module \
			--without-http_memcached_module \
			--without-http_referer_module \
			--without-http_scgi_module \
			--without-http_split_clients_module \
			--without-http_ssi_module \
			--without-http_userid_module \
			--without-http_uwsgi_module \
			--add-module=$(MODULESDIR)/nginx-echo \
			--add-module=$(MODULESDIR)/naxsi/naxsi_src

full_configure_flags := \
			$(common_configure_flags) \
			--with-http_addition_module \
			--with-http_dav_module \
			--with-http_geoip_module \
			--with-http_gzip_static_module \
			--with-http_image_filter_module \
			--with-http_spdy_module \
			--with-http_sub_module \
			--with-http_xslt_module \
			--with-mail \
			--with-mail_ssl_module \
			--add-module=$(MODULESDIR)/nginx-auth-pam \
			--add-module=$(MODULESDIR)/nginx-dav-ext-module \
			--add-module=$(MODULESDIR)/nginx-echo \
			--add-module=$(MODULESDIR)/nginx-upstream-fair \
			--add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module \
			--add-module=$(MODULESDIR)/naxsi/naxsi_src

extras_configure_flags := \
			$(common_configure_flags) \
			--with-http_addition_module \
			--with-http_dav_module \
			--with-http_flv_module \
			--with-http_geoip_module \
			--with-http_gzip_static_module \
			--with-http_image_filter_module \
			--with-http_mp4_module \
			--with-http_perl_module \
			--with-http_random_index_module \
			--with-http_secure_link_module \
			--with-http_spdy_module \
			--with-http_sub_module \
			--with-http_xslt_module \
			--with-mail \
			--with-mail_ssl_module \
			--add-module=$(MODULESDIR)/headers-more-nginx-module \
			--add-module=$(MODULESDIR)/nginx-auth-pam \
			--add-module=$(MODULESDIR)/nginx-cache-purge \
			--add-module=$(MODULESDIR)/nginx-dav-ext-module \
			--add-module=$(MODULESDIR)/nginx-development-kit \
			--add-module=$(MODULESDIR)/nginx-echo \
			--add-module=$(MODULESDIR)/ngx-fancyindex \
			--add-module=$(MODULESDIR)/nginx-http-push \
			--add-module=$(MODULESDIR)/nginx-lua \
			--add-module=$(MODULESDIR)/nginx-upload-progress \
			--add-module=$(MODULESDIR)/nginx-upstream-fair \
			--add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module \
			--add-module=$(MODULESDIR)/naxsi/naxsi_src

%:
	dh $@ --with systemd
[...]

Maintenant, nous allons construire nos nouveaux paquets Nginx :

cd ~/compile/nginx-1.6.2/ && dpkg-buildpackage -b

Ensuite, nous allons jeter un regard sur les paquets générés :

cd ~/compile
ls -l
total 15152
drwxr-xr-x  3 root root    4096 oct 26 11:31 .
drwx------  4 root root    4096 oct 26 10:32 ..
drwxr-xr-x 10 root root    4096 oct 26 11:17 nginx-1.6.2
-rw-r--r--  1 root root   71336 oct 26 11:31 nginx_1.6.2-2~bpo70+1_all.deb
-rw-r--r--  1 root root    3767 oct 26 11:31 nginx_1.6.2-2~bpo70+1_amd64.changes
-rw-r--r--  1 root root  926638 oct 13 12:05 nginx_1.6.2-2~bpo70+1.debian.tar.gz
-rw-r--r--  1 root root    2780 oct 13 12:05 nginx_1.6.2-2~bpo70+1.dsc
-rw-r--r--  1 root root  804164 sep 17 10:34 nginx_1.6.2.orig.tar.gz
-rw-r--r--  1 root root   85890 oct 26 11:31 nginx-common_1.6.2-2~bpo70+1_all.deb
-rw-r--r--  1 root root   83334 oct 26 11:31 nginx-doc_1.6.2-2~bpo70+1_all.deb
-rw-r--r--  1 root root  734824 oct 26 11:31 nginx-extras_1.6.2-2~bpo70+1_amd64.deb
-rw-r--r--  1 root root 5638176 oct 26 11:31 nginx-extras-dbg_1.6.2-2~bpo70+1_amd64.deb
-rw-r--r--  1 root root  520166 oct 26 11:31 nginx-full_1.6.2-2~bpo70+1_amd64.deb
-rw-r--r--  1 root root 3658710 oct 26 11:31 nginx-full-dbg_1.6.2-2~bpo70+1_amd64.deb
-rw-r--r--  1 root root  398630 oct 26 11:31 nginx-light_1.6.2-2~bpo70+1_amd64.deb
-rw-r--r--  1 root root 2550620 oct 26 11:31 nginx-light-dbg_1.6.2-2~bpo70+1_amd64.deb

Nous pouvons maintenant installer nginx avec NAXSI intégré ​​comme suit :

dpkg --install nginx-extras_1.6.2-2~bpo70+1_amd64.deb nginx-common_1.6.2-2~bpo70+1_all.deb nginx-doc_1.6.2-2~bpo70+1_all.deb nginx_1.6.2-2~bpo70+1_all.deb

Allons voir si le module NAXSI​​ a été construit avec succès:

nginx -V
nginx version: nginx/1.6.2
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_secure_link_module --with-http_spdy_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --add-module=/root/compile/nginx-1.6.2/debian/modules/headers-more-nginx-module --add-module=/root/compile/nginx-1.6.2/debian/modules/nginx-auth-pam --add-module=/root/compile/nginx-1.6.2/debian/modules/nginx-cache-purge --add-module=/root/compile/nginx-1.6.2/debian/modules/nginx-dav-ext-module --add-module=/root/compile/nginx-1.6.2/debian/modules/nginx-development-kit --add-module=/root/compile/nginx-1.6.2/debian/modules/nginx-echo --add-module=/root/compile/nginx-1.6.2/debian/modules/ngx-fancyindex --add-module=/root/compile/nginx-1.6.2/debian/modules/nginx-http-push --add-module=/root/compile/nginx-1.6.2/debian/modules/nginx-lua --add-module=/root/compile/nginx-1.6.2/debian/modules/nginx-upload-progress --add-module=/root/compile/nginx-1.6.2/debian/modules/nginx-upstream-fair --add-module=/root/compile/nginx-1.6.2/debian/modules/ngx_http_substitutions_filter_module --add-module=/root/compile/nginx-1.6.2/debian/modules/naxsi/naxsi_src

11 Installation de PHP

(Si les deux Apache2 et nginx sont installés, durant l’installation de ISPConfig va vous demander lequel que vous voulez souhaitez utiliser. SI Nginx est seul dans ce cas, ISPConfig fera la configuration nécessaire automatiquement.)

Pour cela , nous allons utiliser PHP-FPM (PHP-FPM (FastCGI Process Manager) est une implémentation alternative de FastCGI de PHP avec quelques fonctionnalités supplémentaires utiles pour les sites de toute taille, que nous installons comme suit:

apt-get install php5-fpm

Pour obtenir le support de MySQL en PHP, nous pouvons installer le paquet php5-mysql. Mais, pour installer d’autres packages PHP5 que vous auriez besoin pour vos applications. Exécuter cette commande pour effectuer la recherche :

apt-cache search php5

Choisissez celles dont vous avez besoin et de les installer comme ceci:

apt-get install php5-mysql 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

APC (pour Alternative PHP Cache) est une extension PECL (PHP Extension Community Library, voir PEAR) libre et gratuite destinée à améliorer les performances des applications écrites en langage PHP en précompilant le code intermédiaire et en le plaçant dans un cache. Il est semblable à d’autres géo-caches, comme eAccelerator et XCache. Il est fortement recommandé d’installé pour accélérer votre page PHP Web.
Le package APC peut être installé de la façon suivante:

apt-get install php-apc

Editer le fichier suivant :

nano /etc/php5/fpm/php.ini

et modifier cgi.fix_pathinfo=0 et votre fuseau horaire :

[...]
cgi.fix_pathinfo=0
[...]
date.timezone="Europe/Berlin"
[...]

(Vous pouvez trouver tous les fuseaux horaires disponibles dans le répertoire /usr/share/zoneinfo répertoires et sous-répertoires.)
Redémarrez PHP-FPM:

/etc/init.d/php5-fpm reload

Pour obtenir CGI dans nginx, nous devons installer fcgiwrap. Fcgiwrap est un wrapper CGI qui permet aux scripts CGI complexes et peut être utilisé pour les environnements d’hébergement partagés, car il permet à chaque serveur virtuel à utiliser son propre répertoire cgi-bin.
Installez le package de fcgiwrap:

apt-get install fcgiwrap

12 Versions de PHP supplémentaires

Depuis ISPConfig 3.0.5, il est possible d’utiliser plusieurs versions de PHP sur un serveur (sélectionnables depuis le Panel de ISPConfig) qui peut être exécuté par PHP-FPM. Pour apprendre à réaliser ces versions de PHP supplémentaires (PHP-FPM) et comment à les configurées sur ISPConfig, cliquez sur le lien de ce tutoriel : Comment utiliser les versions de PHP multiples (PHP-FPM et FastCGI) Avec ISPConfig 3 (Debian Wheezy).

13 Installation de phpMyAdmin

Installer phpMyAdmin

apt-get install phpmyadmin

Configurer les options suivantes :

image64
image63

Vous pouvez trouver phpMyAdmin dans le répertoire /usr/share/phpmyadmin/. Après avoir installé ISPConfig 3, vous pouvez accéder à phpMyAdmin comme suit :

Soit sur le port 8081, vous pouvez donc utiliser, dans mon cas, sous http://nginx.local:8081/phpmyadmin ou http://nginx.local:8081/phpMyAdmin pour accéder à phpMyAdmin.

Si vous souhaitez utiliser l’alias de /phpmyadmin ou /phpMyAdmin, que vous voulez l’utiliser à partir de vos sites Web, c’est un peu plus compliqué que sur Apache parce que, nginx n’a pas alias globaux (c’est l’alias qui peux être définis pour tous les hôtes virtuels). Par conséquent, vous devez définir ces alias pour chaque serveur virtuel à partir duquel vous souhaitez accéder à phpMyAdmin.

Pour ce faire, collez les directives Nginx dans l’onglet des Options du site Web dans ISPConfig:

 location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php5-fpm.sock;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }

Si vous utilisez https au lieu de http pour votre serveur virtuel, vous devrez ajouter cette la ligne fastcgi_param HTTPS on; à votre configuration phpMyAdmin comme ceci :

location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php5-fpm.sock;
                       fastcgi_param HTTPS on; #

Si vous utilisez à la fois HTTP et HTTPS pour votre serveur virtuel, vous pouvez utiliser la variable $https. Aller au champ de nginx Directives et au lieu de fastcgi_param HTTPS on; vous ajoutez cette ligne fastcgi_param HTTPS $https; de sorte que vous pouvez utiliser phpMyAdmin pour les requêtes http et https :

location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php5-fpm.sock;
                       fastcgi_param HTTPS $https; #

14 Installation de Mailman

Depuis la version 3.0.4, ISPConfig vous permet de gérer (créer / modifier / supprimer) des listes de diffusion Mailman. Si vous souhaitez faire usage de cette fonction, installer Mailman comme ceci :

apt-get install mailman

Sélectionnez au moins une langue, e.g .:

image62
image61

Avant que nous puissions commencer Mailman, créer votre première liste de diffusion :

newlist mailman
image60

Modifier le fichier /etc/aliases :

nano /etc/aliases

… et ajouter les lignes suivantes

[...]
## mailman mailing list
mailman:              "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Exécuter cette commande pour ajouter des aliases supplémentaires :

newaliases

Redémarrer le serveur mail Postfix :

/etc/init.d/postfix restart

Ensuite lancer Mailman :

/etc/init.d/mailman start

Après avoir installé ISPConfig 3, vous pouvez accéder Mailman comme ceci :

Via sur le port 8081 soit comme ceci http://nginx.local:8081/cgi-bin/mailman/admin/ ou http://nginx.local:8081/cgi-bin/mailman/listinfo/ pour accéder Mailman.

Si vous souhaitez utiliser Mailman de vos sites web, c’est un peu plus compliqué que sur Apache, parce que nginx n’a pas alias globaux (c.-à-alias qui peuvent être définis pour tous les hôtes virtuels). Par conséquent, vous devez définir ces alias pour chaque serveur virtuel à partir duquel vous souhaitez accéder à Mailman.

Pour ce faire, collez les directives Nginx dans l’onglet des Options du site Web dans ISPConfig:

location /cgi-bin/mailman {
               root /usr/lib/;
               fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$;
               include /etc/nginx/fastcgi_params;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_param PATH_INFO $fastcgi_path_info;
               fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
               fastcgi_intercept_errors on;
               fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }

        location /images/mailman {
               alias /usr/share/images/mailman;
        }

Ceci définit l’alias /cgi-bin/mailman/ pour votre serveur virtuel, ce qui signifie que vous pouvez accéder à l’interface d’administration de Mailman pour une liste à l’adresse http:///cgi-bin/mailman/admin/, et la page Web pour les utilisateurs d’une liste de diffusion peut être trouvé à http:///cgi-bin/mailman/listinfo/.

Sous http:///pipermail vous pouvez trouver la liste de diffusion de vos archives.

15 Installation de PureFTPd et QUOTA

PureFTPd et quota peuvent être installés avec la commande suivante :

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool

Editer le fichier /etc/default/pure-ftpd-common

nano /etc/default/pure-ftpd-common

… et assurez-vous que le mode de démarrage est réglée sur standalone et mettre la activer la variable True comme ceci VIRTUALCHROOT = true :

[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

Configurons PureFTPd et permettre des sessions FTP en TLS. FTP est un protocole très précaire parce que tous les mots de passe et toutes les données sont transférées en clair. En utilisant TLS, toute communication peut être crypté, rendant ainsi FTP beaucoup plus sûr.

Si vous voulez permettre des sessions FTP et TLS, exécutez

echo 1 > /etc/pure-ftpd/conf/TLS

Pour utiliser TLS, nous devons créer un certificat SSL. Je crée dans /etc/ssl/private/, crée ce répertoire d’abord :

mkdir -p /etc/ssl/private/

Ensuite, nous pouvons générer le certificat SSL comme suit :

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Country Name (2 letter code) [AU]: <-- Entrez le nom de votre Pays (e.g., "BE").
State or Province Name (full name) [Some-State]: <-- Entrez le nom de l'État ou province.
Locality Name (eg, city) []: <-- Entrez le nom de votre Ville.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Entrez le nom de votre organisation (par exemple, le nom de votre entreprise).
Organizational Unit Name (eg, section) []: <-- Entrez l'unité de votre organisation (par exemple «service informatique»).
Common Name (eg, YOUR name) []: <-- Entrez le nom de votre domaine complet du Host (par exemple, "nginx.local").
Email Address []: <-- Entrez votre adresse email.

Modifiez les autorisations du certificat SSL :

chmod 600 /etc/ssl/private/pure-ftpd.pem

Puis redémarrez PureFTPd :

/etc/init.d/pure-ftpd-mysql restart

Modifier /etc/fstab. Cela ressemble à ceci (Rajouté, ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 à la partition avec le point de montage /) :

nano /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#              
/dev/mapper/nginx-root /               ext4    errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0       1
# /boot was on /dev/sda1 during installation
UUID=bb9cc66f-2207-4ac2-afa3-e5759f049120 /boot           ext2    defaults        0       2
/dev/mapper/nginx-swap_1 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

Pour activer le quota, exécuter ces commandes :

mount -o remount /
quotacheck -avugm
quotaon -avug

16 Installation de BIND9

BIND9 peut être installé comme ceci :

apt-get install bind9 dnsutils

17 Installation de Vlogger, Webalizer, et AWstats

Vlogger, webalizer, et AWStats peut être installé comme ceci :

apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl

Editer ce fichier /etc/cron.d/awstats

nano /etc/cron.d/awstats

… Et ajouter des commentaires sur toutes les lignes dans ce fichier :

#MAILTO=root

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

18 Installation de Jailkit

Jailkit est nécessaire, si vous voulez utiliser chroot de SSH. Il peut être installé comme ceci (important: Jailkit doit être installé avant ISPConfig ) :

apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.15.tar.gz
tar xvfz jailkit-2.15.tar.gz
cd jailkit-2.15
./debian/rules binary

Vous pouvez maintenant installer le paquet .deb Jailkit comme ceci:

cd ..
dpkg -i jailkit_2.15-1_*.deb
rm -rf jailkit-2.15*

19 Installation de fail2ban

Cette option est facultative mais recommandée, mais le moniteur ISPConfig montre les logs de celui-ci :

apt-get install fail2ban

Pour créer un moniteur fail2ban pour surveiller PureFTPd et Dovecot, créer le fichier /etc/fail2ban/jail.local :

nano /etc/fail2ban/jail.local
[pureftpd]
enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5

[sasl]
enabled  = true
port     = smtp
filter   = sasl
logpath  = /var/log/mail.log
maxretry = 3

Ensuite, créez deux fichiers supplémentaires suivants :

nano /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =
nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*
ignoreregex =

Redémarrez fail2ban :

/etc/init.d/fail2ban restart

Suite de l’installation (page 5)

nginx Naxsi-logo

fail2ban-logo webalizer bind9 pure-ftpd awstats_setup jk4/