Bonjour,
je vous propose un script pour ajouter quelques règles à votre pare-feu ainsi que d'activer certains filtres.
Les règles de filtrages sont: les transmissions sont acceptées que si elles sont avec les protocoles de contrôle
tcp ou
udp. Les transmissions locales sont toutes acceptées ainsi que le ping.
- le script
#!/bin/bash
# Enable IP Forwarding, if it isn't already
echo 1 > /proc/sys/net/ipv4/ip_forward
# Enable broadcast echo Protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Enable bad error message Protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Enable IP spoofing protection
# turn on Source Address Verification
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
# Disable ICMP Redirect Acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $f
done
for f in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo 0 > $f
done
# Disable Source Routed Packets
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done
# Log Spoofed Packets, Source Routed Packets, Redirect Packets
for f in /proc/sys/net/ipv4/conf/*/log_martians; do
echo 1 > $f
done
# Incoming
# Deny all ports
iptables -P INPUT DROP
# Unlimited traffic on the loopback interface.
iptables -A INPUT -i lo -j ACCEPT
# Only tcp and udp protocols for all ports
iptables -A INPUT -p tcp -j ACCEPT
iptables -A INPUT -p udp -j ACCEPT
# Accept already connections established
iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
# Forward only with tcp and udp
iptables -P FORWARD DROP
iptables -A FORWARD -p tcp -j ACCEPT
iptables -A FORWARD -p udp -j ACCEPT
# Requests only with tcp and udp
iptables -P OUTPUT DROP
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -p tcp -j ACCEPT
iptables -A OUTPUT -p udp -j ACCEPT
# Ping accepted
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
- lancement à chaque démarrage
Il faut conserver ce script dans un fichier puis le rendre exécutable.
Supposons que le fichier se nomme monparefeu et rendons le exécutable.
chmod u+x monparefeu
Puis plaçons le dans /etc/init.d pour qu'il soit lancer au prochain démarrage.
sudo cp monparefeu /etc/init.d/
Maintenant nous lui affectons sa priorité. Celle par défaut est suffisante.
sudo update-rc.d monparefeu defaults
- vérification
En effectuant
sudo iptables -L -v -n , vous devrez voir ceci:
Chain INPUT (policy DROP 10 packets, 532 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
125 7808 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0
16 5566 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
212 254K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0
15 1877 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
- liens externes
http://www.firewall-net.com/fr/linux/iptables.php
http://fr.wikipedia.org/wiki/Liste_des_ports_logiciels
http://doc.ubuntu-fr.org/iptables