#1 Le 21/04/2008, à 08:01
- ogaby
[IPTABLES] Personaliser son pare-feu
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
Hors ligne
#2 Le 13/05/2008, à 22:11
- Koshie-2.0
Re : [IPTABLES] Personaliser son pare-feu
Moi qui n'y connais rien, à quoi ça sert?
#3 Le 14/05/2008, à 18:25
- ogaby
Re : [IPTABLES] Personaliser son pare-feu
A pas grand chose.
Sur le net, des robots cherchent au hasard des machines puis essaient de se connecter avec des utilisateurs "Administrator" ou "Administrateur" ou "root", etc... Comme sur une Ubuntu "root" est désactivé, ce genre d'attaques n'a aucun effet.
Ensuite le pare-feu intégré dans le noyau empêche aussi toute intrusion non sollicitée. Maintenant ce script permet de renforcer un peu plus le pare-feu (ou plutôt de le personnaliser). Il n'accepte que des paquets avec le protocole tcp ou udp. Ces protocoles permettent une communication sûre entre deux machines car la transmission se fait avec des accusés de réceptions.
Une explication d'une partie du script:
# Deny all ports
iptables -P INPUT DROP -> fermer toutes les transmissions entrantes
# Only tcp and udp protocols for all ports
iptables -A INPUT -p tcp -j ACCEPT -> accepter en tcp les transmissions entrantes sur tous les ports
iptables -A INPUT -p udp -j ACCEPT -> accepter en udp les transmissions entrantes sur tous les ports
Dernière modification par ogaby (Le 14/05/2008, à 18:29)
Hors ligne
#4 Le 14/05/2008, à 18:54
- Ski-lleR
Re : [IPTABLES] Personaliser son pare-feu
Personnellement j'ai bloqués toutes transmissions entrante, et j'ouvre au cas pas cas (les cas étant pas nombreux c'est rapide)
# 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
# Accepter au cas par cas
iptables -A INPUT -p tcp --dport 6891 -j ACCEPT
iptables -A INPUT -p tcp --dport 15000 -j ACCEPT
iptables -A INPUT -p udp --dport 15000 -j ACCEPT
iptables -A INPUT -p tcp --dport 20000 -j ACCEPT
iptables -A INPUT -p udp --dport 20000 -j ACCEPT
Debian *lenny* hybride
SIP/Ekiga 'Test Welcome' (Debian *lenny* hybride)
SIP:skiller@ekiga.net
Hors ligne
#5 Le 29/05/2008, à 20:32
- tiboti09
Re : [IPTABLES] Personaliser son pare-feu
Personnellement j'ai bloqués toutes transmissions entrante, et j'ouvre au cas pas cas (les cas étant pas nombreux c'est rapide)
# 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# Accepter au cas par cas
iptables -A INPUT -p tcp --dport 6891 -j ACCEPTiptables -A INPUT -p tcp --dport 15000 -j ACCEPT
iptables -A INPUT -p udp --dport 15000 -j ACCEPTiptables -A INPUT -p tcp --dport 20000 -j ACCEPT
iptables -A INPUT -p udp --dport 20000 -j ACCEPT
Bonsoir, j'aimerais paramétrer certains ports avec la ps3, linux etant ma passerelle en ethernet.
quelles seraient les commandes a taper, il y a par exemple les ports:
* TCP : 80, 443, 5223 et 5523
* UDP : 3478 à 3479 et 3658
#6 Le 29/05/2008, à 23:28
- Ski-lleR
Re : [IPTABLES] Personaliser son pare-feu
C'est facile, pour les ports tcp tu copie cette ligne>
iptables -A INPUT -p tcp --dport 15000 -j ACCEPT
Donc pour le port 80 tu tape : iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Idem pour udp>
iptables -A INPUT -p udp --dport 3478 -j ACCEPT
Voila voila
Debian *lenny* hybride
SIP/Ekiga 'Test Welcome' (Debian *lenny* hybride)
SIP:skiller@ekiga.net
Hors ligne
#7 Le 13/01/2009, à 12:38
- Gajel
Re : [IPTABLES] Personaliser son pare-feu
Salut ogaby.
Je vois que tu as l'air de maitriser iptables. Aurais-tu une réponse à mon problème par hasard ?
Merci d'avance.
#8 Le 13/01/2009, à 16:22
- Compte0
Re : [IPTABLES] Personaliser son pare-feu
# 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
Toute cette partie n'est pas très clair pour moi. Pourquoi tu forward?? Tu pourrais expliquer l'intérêt de tout ça...
Q-DOS ( Quick & Dirty Operating System) + MS (MicroSoft) = MS-DOS (MicroSoft Dirty Operating System)
Hors ligne