====== 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