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 :
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 .:
Avant que nous puissions commencer Mailman, créer votre première liste de diffusion :
newlist mailman
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)
/