linuxaddict:administrer:securite

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
linuxaddict:administrer:securite [27/04/2018, 13:19] Claude Clerclinuxaddict:administrer:securite [27/02/2019, 23:50] – [Fail2ban] Claude Clerc
Ligne 15: Ligne 15:
   lsof -p NUMERO_PID   lsof -p NUMERO_PID
 Les dernières lignes de cette longue liste permettent de déterminer précisément ce que fait le programme. Les dernières lignes de cette longue liste permettent de déterminer précisément ce que fait le programme.
 +
 +==== Quels sont les paquets concernés par ce programme ? ====
 +  dpkg -S UNE_PARTIE_DU_NOM_DU_PROGRAMME
 +
 +===== Firewall =====
 +<sxh bash>
 +#!/bin/sh
 +### Firewall ###
 +
 +case "$1" in
 +
 +start|restart|reload|force-reload)
 +# Réinitialise les règles
 +iptables -t filter -F
 +iptables -t filter -X
 +
 +# Bloque tout le trafic
 +iptables -t filter -P INPUT DROP
 +iptables -t filter -P FORWARD DROP
 +iptables -t filter -P OUTPUT DROP
 +
 +# Autorise toute connexion avec l'IP VOTRE_IP_PUBLIQUE_PERSO
 +iptables -t filter -A INPUT -s VOTRE_IP_PUBLIQUE_PERSO -j ACCEPT
 +iptables -t filter -A OUTPUT -d VOTRE_IP_PUBLIQUE_PERSO -j ACCEPT
 +
 +# Limiter les risques de flood (limite à 1 connexion par seconde)
 +iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
 +iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
 +iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
 +
 +# Autorise les connexions déjà établies et localhost
 +iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 +iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 +iptables -t filter -A INPUT -i lo -j ACCEPT
 +iptables -t filter -A OUTPUT -o lo -j ACCEPT
 +
 +# ICMP (Ping) On autorise le ping
 +iptables -t filter -A INPUT -p icmp -j ACCEPT
 +iptables -t filter -A OUTPUT -p icmp -j ACCEPT
 +
 +# SSH (port 22)
 +iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
 +iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
 +
 +# DNS sortant
 +iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
 +iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
 +# DNS entrant
 +#iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
 +#iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
 +
 +# HTTP
 +iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
 +iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
 +
 +# HTTPS
 +iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
 +iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
 +
 +# MySQL
 +iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
 +#iptables -t filter -A INPUT -p tcp --dport 3306 -j ACCEPT
 +iptables -t filter -A OUTPUT -p udp --dport 3306 -j ACCEPT
 +#iptables -t filter -A INPUT -p udp --dport 3306 -j ACCEPT
 +
 +# MySQL-proxy
 +#iptables -t filter -A OUTPUT -p tcp --dport 6446 -j ACCEPT
 +#iptables -t filter -A INPUT -p tcp --dport 6446 -j ACCEPT
 +#iptables -t filter -A OUTPUT -p udp --dport 6446 -j ACCEPT
 +#iptables -t filter -A INPUT -p udp --dport 6446 -j ACCEPT
 +
 +# FTP
 +#iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
 +#iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
 +
 +# Mail SMTP
 +#iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
 +iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
 +
 +# Mail sSMTP
 +#iptables -t filter -A INPUT -p tcp --dport 465 -j ACCEPT
 +iptables -t filter -A OUTPUT -p tcp --dport 465 -j ACCEPT
 +#iptables -t filter -A INPUT -p tcp --dport 587 -j ACCEPT
 +iptables -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT
 +
 +# Mail POP3
 +#iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
 +#iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT
 +
 +# Mail sPOP3
 +#iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
 +#iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT
 +
 +# Mail IMAP
 +#iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
 +#iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
 +
 +# Mail sIMAP
 +#iptables -t filter -A INPUT -p tcp --dport 993 -j ACCEPT
 +#iptables -t filter -A OUTPUT -p tcp --dport 993 -j ACCEPT
 +
 +# NTP (horloge du serveur)
 +iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
 +;;
 +
 +stop)
 +# Réinitialise les règles
 +iptables -t filter -F
 +iptables -t filter -X
 +
 +# Autorise tout le trafic
 +iptables -t filter -P INPUT ACCEPT
 +iptables -t filter -P FORWARD ACCEPT
 +iptables -t filter -P OUTPUT ACCEPT
 +;;
 +
 +status)
 +RES=$(iptables -L | grep INPUT | awk '{print $4}' | sed 's/)//g')
 +[ "$RES" != "ACCEPT" ] && echo "Firewall actif" || echo "Firewall inactif"
 +;;
 +
 +*) echo "Usage: service firewall {start|stop|status|restart|reload|force-reload}"
 +;;
 +esac
 +exit 0
 +
 +</sxh>
  
 ===== Fail2ban ===== ===== Fail2ban =====
   * [[https://doc.ubuntu-fr.org/fail2ban]]   * [[https://doc.ubuntu-fr.org/fail2ban]]
  
 +Après installation de fail2ban et paramétrage pour sshd :
 +
 +Se connecter en root.
 +
 +Installer, si ce n'est déjà fait le paquet ''util-linux'' :
 +  apt install util-linux
 +
 +Créer le fichier ''/root/byebye.sh'' contenant :
 +<sxh bash>
 +#!/bin/bash
 +
 +for ip in $(lastb -i -s -5min | awk '{print $3}'); do {
 + if [[ $ip =~ ^[0-9] ]]; then
 + #echo $ip
 + /usr/bin/fail2ban-client set sshd banip $ip > /dev/null || true
 + fi
 +}; done
 +exit 0
 +</sxh>
 +Le rendre exécutable :
 +  chmod +x /root/byebye.sh
 +
 +Éditer la crontab :
 +  crontab -e
 +  
 +Ajouter les lignes :
 +  # Bye bye importuns !
 +  */5 * * * * /root/byebye.sh
 +
 +Quitter. La crontab se met en place.
 +
 +Lister les IP bloquées (et leur nombre) avec :
 +  fail2ban-client status sshd
 ===== Liens ===== ===== Liens =====
   * [[https://openclassrooms.com/courses/securiser-son-serveur-linux|Sécuriser un serveur Linux (OpenClassRooms)]]   * [[https://openclassrooms.com/courses/securiser-son-serveur-linux|Sécuriser un serveur Linux (OpenClassRooms)]]
  • linuxaddict/administrer/securite.txt
  • Dernière modification : 10/02/2024, 19:09
  • de Claude Clerc