====== Un peu de sécurité : fail2ban & firewall ====== On installe **ufw** : apt-get install ufw On vérifie que IPv6 est bien pris en charge dans le fichier : nano /etc/default/ufw Contient bien la ligne suivante, sinon on l'ajoute/modifie : IPV6=yes On met à jour les règles de base, et on le relance : ufw allow from {ip locale} to any port {port ssh} ufw default deny incoming ufw default allow outgoing ufw allow 80 ufw allow 443 ufw disable ufw enable On vérifie l'état : ufw status Status: active To Action From -- ------ ---- 22022 ALLOW Anywhere 80 ALLOW Anywhere 443 ALLOW Anywhere 22022 ALLOW Anywhere (v6) 80 ALLOW Anywhere (v6) 443 ALLOW Anywhere (v6) Visualisez les règles existantes : ufw status verbose Lister les règles avec numérotation : ufw status numbered Pour pouvoir simplement supprimer une règle via son ID : ufw delete Pour du ''iptables'', on sera vers du : iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 22022 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -P INPUT DROP Et on installe et active le paquet ''iptables-persistent'' pour rendre les règles persistantes après redémarrage (d'où le nom) : apt-get install iptables-persistent On installe ensuite **fail2ban** : apt install fail2ban On édit la config : nano /etc/fail2ban/jail.local Et on ajoute/modifie : [DEFAULT] destemail = liandri@libox.fr sendername = "Libox Fail2Ban" sender = fail2ban@libox.fr banaction = ufw Aller configurer les différentes jails liées aux services : nano /etc/fail2ban/jail.conf [...] #Exemple pour SSH [ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 [...] Éditer le fichier contenant les chemins vers les fichiers de log, pour décommenter la ligne d'auth (commentée sous Debian 9) : nano /etc/fail2ban/paths-debian.conf [DEFAULT] [...] syslog_auth = /var/log/auth.log [...] Voir les cons bloqués : iptables -L -n Si dans le rapport Logwatch, vous retrouvez la ligne : ''Jail sshd is not a JournalFilter instance'', il suffit juste de modifier la façon d'agir de Fail2ban.\\ On commence par modifier/ajouter la ligne ''backend = auto'' dans le fichier ''/etc/fail2ban/jail.local'' : nano /etc/fail2ban/jail.local [DEFAULT] [...] #backend auto backend gamin [...] On installe ensuite le paquet ''gamin'' si pas installé, et on relance Fail2ban : apt-get install gamin service fail2ban restart ==== Débloquer une IP ==== fail2ban-client set JAIL unbanip IP Exemple : fail2ban-client set nextcloud unbanip 45.21.98.65 ==== Tester une regex ==== fail2ban-regex /mon/fichier/log.log /etc/fail2ban/filter.d/mon-filtre.conf regex Exemple : fail2ban-regex /var/www/nextcloud/data/nextcloud.log /etc/fail2ban/filter.d/nextcloud.conf ====== Un peu plus de sécurité : logwatch ====== On installe : apt-get install logwatch On configure logwatch : nano /usr/share/logwatch/default.conf/logwatch.conf On ajoute/modifie les infos suivantes : Format = html MailTo = liandri@libox.fr MailFrom = logwatch@libox.fr Detail = High On configure la tâche : nano /etc/cron.daily/00logwatch Et on ajoute/édite la ligne : /usr/sbin/logwatch --mailto liandri@libox.fr --detail high ==== Bonus log : logrotate ==== On édite le fichier de l'application à suivre (FreshRSS par exemple) : nano /etc/logrotate.d/freshrss /var/www/freshrss/data/users/Liandri/log.txt { weekly missingok rotate 8 compress notifempty create 640 www-data www-data } ====== Sécurité : recevoir un mail lorsque quelqu’un se connecte ====== Pour être averti dès que quelqu’un se connecte en ''ssh'', via https://framacloud.org/fr/auto-hebergement/divers.html#recevoir-un-mail-lorsque-quelquun-se-connecte nano /etc/ssh/sshrc #!/bin/sh # source: http://blog.uggy.org/post/2009/06/05/... DATE=`date "+%d.%m.%Y--%Hh%Mm"` IP=`echo $SSH_CONNECTION | awk '{print $1}'` REVERSE=`dig -x $IP +short` echo "Connexion de $USER sur $HOSTNAME IP: $IP ReverseDNS: $REVERSE Date: $DATE " | mail -s "Connexion de $USER sur $HOSTNAME" test@libox.fr Avec ''Sendmail'' : #!/bin/sh # source: http://blog.uggy.org/post/2009/06/05/... DATE=`date "+%d.%m.%Y--%Hh%Mm"` IP=`echo $SSH_CONNECTION | awk '{print $1}'` REVERSE=`dig -x $IP +short` echo "To: test@libox.fr Subject: Connexion de $USER sur $HOSTNAME From: test@libox.fr Connexion de $USER sur $HOSTNAME IP: $IP ReverseDNS: $REVERSE Date: $DATE " | sendmail -v test@libox.fr ====== AppArmor ====== apt-get install apparmor-utils Checkup : apparmor_status Plus : https://www.howtogeek.com/118328/how-to-create-apparmor-profiles-to-lock-down-programs-on-ubuntu/ ====== Paquets bonus ====== Quelques paquets sécurité/monitoring supplémentaires : apt-get install iotop htop sysstat net-tools Avec accès rapide à : # Qui est log w # derniers logins last # kernel logs dmesg # Utilisation RAM free -m # uptime uptime # Processus htop # disk IO iotop # Connexions réseau netstat -pant # Utilisation disque df -h ====== RAR & 7zip pour la compression ====== wget http://www.rarlab.com/rar/rarlinux-x64-5.5.b5.tar.gz tar xvf rarlinux-x64-5.5.b5.tar.gz cd rar/ make On peut compléter avec : ln -s /usr/local/bin/rar /usr/bin/rar ln -s /usr/local/bin/unrar /usr/bin/unrar 7z : apt-get install p7zip-full