Outils pour utilisateurs

Outils du site


firewall

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
firewall [2012/11/22 11:55]
nicolas created
firewall [2019/04/02 11:14] (Version actuelle)
Ligne 34: Ligne 34:
 ### END INIT INFO ### END INIT INFO
  
 +
 +##### START USER CONFIG
 +# Do you want to log dropped packets in /​var/​log/​messages ?
 +LOG_DROPPED=1
 +#
 # List of ports to open # List of ports to open
 TCP_INPUT_PORTS="​22 53 25 465 143 993" TCP_INPUT_PORTS="​22 53 25 465 143 993"
Ligne 39: Ligne 44:
 UDP_INPUT_PORTS="​53"​ UDP_INPUT_PORTS="​53"​
 UDP_OUTPUT_PORTS="​53 123" UDP_OUTPUT_PORTS="​53 123"
 +#
 +# List of IP to allow
 +IPV4_ALLOWED="​x.x.x.251"​
 +#
 +##### END USER CONFIG
  
 # Delete tables # Delete tables
Ligne 78: Ligne 88:
  ip6tables -A INPUT -p icmpv6 --icmpv6-type $type -j ACCEPT  ip6tables -A INPUT -p icmpv6 --icmpv6-type $type -j ACCEPT
  ip6tables -A OUTPUT -p icmpv6 --icmpv6-type $type -j ACCEPT  ip6tables -A OUTPUT -p icmpv6 --icmpv6-type $type -j ACCEPT
 +done
 +
 +# Allow selected IP
 +for ip in $IPV4_ALLOWED
 +do
 + iptables -t filter -A INPUT --source $ip -j ACCEPT
 + iptables -t filter -A OUTPUT --destination $ip -j ACCEPT
 done done
  
Ligne 104: Ligne 121:
         ip6tables -t filter -A OUTPUT -p udp --dport $port -j ACCEPT         ip6tables -t filter -A OUTPUT -p udp --dport $port -j ACCEPT
 done done
 +
 +# Logging
 +if test $LOG_DROPPED -eq 1
 +then
 + # IPv4
 + iptables -N LOGGING
 + iptables -A INPUT -j LOGGING
 + iptables -A OUTPUT -j LOGGING
 +        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
 +
 + # IPv6
 +        ip6tables -N LOGGING
 +        ip6tables -A INPUT -j LOGGING
 +        ip6tables -A OUTPUT -j LOGGING
 +        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
 +fi
 </​code>​ </​code>​
  
-Après avoir créé ce fichier il faut adapter à vos besoin ​la liste des ports (n'​oubliez pas d'​autoriser l'​accès SSH en entrée sinon votre serveur ne sera plus accessible)Ensuite il faut lui attribuer les bonnes permissions :+Après avoir créé ce fichier il faut l'adapter à vos besoin ​en configurant : 
 +  * 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) 
 +  * 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 :
 ''​chown root:root /​etc/​init.d/​firewall && chmod 755 /​etc/​init.d/​firewall''​ ''​chown root:root /​etc/​init.d/​firewall && chmod 755 /​etc/​init.d/​firewall''​
  
Ligne 117: 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 125: 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''​
firewall.1353581731.txt.gz · Dernière modification: 2019/04/02 11:14 (modification externe)