Surveillance
Logwatch analysera quotidiennement les journaux du serveur et en générera un résumé de l’activité envoyé par e-mail.
aptitude install -y logwatch
Création de la configuration :
echo "LogDir = /var/log
Output = mail
Format = text
Encode = none
MailTo = $EXTERNAL_EMAIL
MailFrom = Logwatch
Range = yesterday
Detail = Low
Service = All
Mailer = \"/usr/sbin/sendmail -t\"" > /etc/logwatch/conf/logwatch.conf
Filtrage de quelques requêtes récurrentes qui ne viendront plus charger inutilement le rapport :
echo 'cpanel
favicon
mysqladmin
mysqlmanager
phpMyAdmin
phpmyadmin
PMA
pma
roundcube
sqlmanager
typo
w00tw00t
webadmin
websql
xampp' > /etc/logwatch/conf/ignore.conf
Iptables
Ce dispositif de filtrage des connexions limitera les tentatives d’accès à des services non utilisés ou ne devant pas être visibles à partir de l’extérieur :
Création du fichier de configuration :
mkdir -p /etc/iptables
echo '*filter
# connexions refusees
#-A INPUT -s 123.123.123.123 -j DROP
# boucle locale
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable
# connexions etablies
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
# ftp
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 64000:64999 -j ACCEPT
# ssh
-A INPUT -p tcp -m tcp --dport '"$SSH_PORT"' -j ACCEPT
# http, https
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
# smtp
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
# pop, pops, imap, imaps
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
# rsync
-A INPUT -p tcp -m tcp --dport 873 -j ACCEPT
# reponse au ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# journal des tentatives refusees
#-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 4
# rejet par defaut
-A INPUT -j REJECT
-A FORWARD -j REJECT
-A OUTPUT -j ACCEPT
COMMIT' > /etc/iptables/iptables-start-source
Pour activer les nouvelle règles du pare-feu :
- on charge le fichier souce dans Iptables
- on conserve une copie de la configuration compilée
Celle-ci sera ensuite re-chargée dès le démarrage de la connexion réseau lors du lancement du serveur.
iptables-restore < /etc/iptables/iptables-start-source
iptables -L
iptables-save > /etc/iptables/iptables-start
echo '#!/bin/bash
/sbin/iptables-restore < /etc/iptables/iptables-start' > /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
Voir aussi
Fail2ban
Cette sécurité limitera le nombre de tentatives de connexions erronées afin d’en bannir temporairement les origines :
aptitude install -y fail2ban
Activation des filtres et modification de quelques-uns :
echo '[DEFAULT]
ignoreip = 127.0.0.1
maxretry = 3
[dovecot]
enabled = true
filter = dovecot
port = smtp,ssmtp,pop3,pop3s,imap,imaps
logpath = /var/log/mail.log
[postfix]
enabled = true
port = smtp,ssmtp,submission
filter = postfix
logpath = /var/log/mail.log
[pure-ftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = pure-ftpd
logpath = /var/log/syslog
[ssh]
enabled = true
port = ssh,10666
filter = sshd
logpath = /var/log/auth.log' > /etc/fail2ban/jail.local
echo "[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<HOST>\S*),.*
ignoreregex =" > /etc/fail2ban/filter.d/dovecot.local
echo "[Definition]
_daemon = postfix/(submission/)?smtp(d|s)
failregex = .reject: RCPT from (.*)\[<HOST>\]: 554
.+lost connection after (.*) from.+\[<HOST>\]$
.+\[<HOST>\]. SASL LOGIN authentication failed.+
ignoreregex =" > /etc/fail2ban/filter.d/postfix.local
echo "[Definition]
__errmsg = (?:Sorry, cleartext sessions are not accepted on this server)
failregex = pure-ftpd(?:\[\d+\])?: \(.+?@<HOST>\) \[WARNING\] %(__errmsg)s.*$
ignoreregex =" > /etc/fail2ban/filter.d/pure-ftpd.local
service fail2ban restart