Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
firewall [2012/11/22 17:21] nicolas Ajout du log et de la white list |
firewall [2019/04/02 11:14] (Version actuelle) |
||
---|---|---|---|
Ligne 46: | Ligne 46: | ||
# | # | ||
# List of IP to allow | # List of IP to allow | ||
- | IPV4_ALLOWED="x.x.x.251 x.x.x.252 x.x.x.253" | + | IPV4_ALLOWED="x.x.x.251" |
# | # | ||
##### END USER CONFIG | ##### END USER CONFIG | ||
Ligne 129: | Ligne 129: | ||
iptables -A INPUT -j LOGGING | iptables -A INPUT -j LOGGING | ||
iptables -A OUTPUT -j LOGGING | iptables -A OUTPUT -j LOGGING | ||
- | iptables -A LOGGING -m limit --limit 1/min -j LOG --log-prefix "iptables dropped: " --log-level 4 | + | iptables -A LOGGING -p udp --sport 67 --dport 68 -j DROP # Do not log DHCP requests from bad admins |
+ | iptables -A LOGGING -m limit --limit 4/hour --limit-burst 2 -j LOG --log-prefix "iptables dropped: " --log-level 4 | ||
iptables -A LOGGING -j DROP | iptables -A LOGGING -j DROP | ||
+ | |||
# IPv6 | # IPv6 | ||
ip6tables -N LOGGING | ip6tables -N LOGGING | ||
ip6tables -A INPUT -j LOGGING | ip6tables -A INPUT -j LOGGING | ||
ip6tables -A OUTPUT -j LOGGING | ip6tables -A OUTPUT -j LOGGING | ||
- | ip6tables -A LOGGING -m limit --limit 1/min -j LOG --log-prefix "ip6tables dropped: " --log-level 4 | + | ip6tables -A LOGGING -p icmpv6 -j DROP # Do not log dropped icmpv6 paquets |
+ | ip6tables -A LOGGING -m limit --limit 4/hour --limit-burst 2 -j LOG --log-prefix "ip6tables dropped: " --log-level 4 | ||
ip6tables -A LOGGING -j DROP | ip6tables -A LOGGING -j DROP | ||
fi | fi | ||
Ligne 143: | Ligne 146: | ||
* Si vous voulez logger les paquets droppés dans ''/var/log/messages'' (0=Non et 1=Oui) | * Si vous voulez logger les paquets droppés dans ''/var/log/messages'' (0=Non et 1=Oui) | ||
* La liste des ports autorisés (n'oubliez pas d'autoriser l'accès SSH en entrée sinon votre serveur ne sera plus accessible) | * La liste des ports autorisés (n'oubliez pas d'autoriser l'accès SSH en entrée sinon votre serveur ne sera plus accessible) | ||
- | * Les adresses IP qui seront automatiquement autorisés (dans cet exemple il s'agit d'autoriser le serveur de monitoring MRTG d'OVH et deux routeurs pour pouvoir recevoir leurs requêtes DHCP) | + | * Les adresses IP qui seront automatiquement autorisés (dans cet exemple il s'agit d'autoriser le serveur de monitoring MRTG d'OVH) |
Ensuite il faut lui attribuer les bonnes permissions : | Ensuite il faut lui attribuer les bonnes permissions : | ||
Ligne 156: | Ligne 159: | ||
==== Exécution au démarrage du système ==== | ==== Exécution au démarrage du système ==== | ||
- | |||
En l'état actuel le firewall filtre bien vos connexions aussi bien en IPv4 qu'en IPv6. Cependant si vous redémarrez le serveur les règles iptables seront remises à zéro. Pour éviter cela il faut enregistrer le script en tant que script de démarrage avec la commande : | En l'état actuel le firewall filtre bien vos connexions aussi bien en IPv4 qu'en IPv6. Cependant si vous redémarrez le serveur les règles iptables seront remises à zéro. Pour éviter cela il faut enregistrer le script en tant que script de démarrage avec la commande : | ||
''insserv firewall'' | ''insserv firewall'' | ||
Ligne 164: | Ligne 166: | ||
''insserv -r firewall'' | ''insserv -r firewall'' | ||
+ | ==== Filtrage des logs ==== | ||
+ | Même si iptables est configuré pour ne mettre que quatre enregistrements par heure dans le fichier de log pour une même requête, le journal peut grossir considérablement à cause de requêtes inoffensives qu'il n'est pas utile de garder. C'est le cas des broadcasts DHCP que certains serveurs font à tort. Pour éviter d'enregistrer ces requêtes une règle supplémentaire est disponible dans la partie logging du script. | ||
+ | Vous pouvez consulter les logs à l'aide de : | ||
+ | ''grep "iptables dropped:" /var/log/messages | tail -n 20'' ou ''grep "ip6tables dropped:" /var/log/messages | tail -n 20'' |