iptables
offre de nombreuses possibilités pour bloquer, transformer ou router des trames réseaux. Cet article présente 2 techniques :
- La première consiste à rediriger les trames IP à destination d’une adresse vers une autre. Pour les utilisateurs Oracle, cela permet de déplacer une base de données sans changer la configuration client; par exemple, si vous avez un programme java avec une URL JDBC codée dans le programme.
- La seconde permet de bloquer l’ensemble des accès réseaux d’un serveur
Ces 2 techniques combinées permettent d’isoler un serveur après l’avoir cloné et sans utiliser d’équipement physique.
Re-router les trames émises sur un serveur
Dans l’exemple ci-dessous, vous configurerez iptables
pour que les trames à destination de l’adresse 1.1.1.1
soient dirigées vers 209.85.229.99
une des adresses de www.google.com
:
iptables -t nat -A OUTPUT -d 1.1.1.1
-j DNAT --to 209.85.229.99
Vous pouvez tester le résultat de votre configuration avec le script ci-dessous :
iptables -t nat -L OUTPUT
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DNAT all -- anywhere 1.1.1.1 to:209.85.229.99
wget http://1.1.1.1
Bloquer toutes les connexions
Pour bloquer toutes les connexions, utilisez -j REJECT
comme ci-dessous :
iptables -t filter -A OUTPUT -j REJECT
iptables -t filter -I OUTPUT -j ACCEPT -d 209.85.229.99
iptables -t filter -L OUTPUT
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere 209.85.229.99
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Dans le script précédent, le fait d’insérer une règle
-j ACCEPT
permet de laisser passer les trames vers209.85.229.99
malgré la restriction
Supprimer les règles iptables
Le script ci-dessous supprime les règles iptables
:
iptables -t filter -D OUTPUT 1
iptables -t filter -D OUTPUT 1
iptables -t nat -D OUTPUT 1
Vous apprécierez !