firewall

Configuration d'iptables

Sécuriser son RPS

configuration iptables, linux iptables configuration, configurer iptables linux, iptables configuration linux, arreter iptable, iptables pour les nuls

Date de publication : 2008-11-27

Dans un premier temps il faut créer un script iptables :


root@monrps:~# vi /home/data/admin/firewall

Ensuite on y ajoute le contenu suivant :


#!/bin/sh
date
case "$1" in
start)
echo "[Démarrage du firewall]"
#################
# REMISE A ZERO #
#################
iptables -F
iptables -t nat -F
echo "Flush [OK]"

######################
# REGLES DE FILTRAGE #
######################

# Loopback
iptables -A INPUT -i lo -j ACCEPT

# Connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# HTTP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Ping
iptables -A INPUT -p icmp -j ACCEPT

# Rejet de tout le reste
iptables -A INPUT -j DROP
echo "Filtrages [OK]"

#########################
# POLITIQUE PAR DEFAUT #
#########################

# Connexions entrantes bloquées
iptables -P INPUT DROP
# Connexions forwardées bloquées
iptables -P FORWARD DROP
# Connexions sortantes autorisées
iptables -P OUTPUT ACCEPT
echo "Politiques [OK]"

#################
# OPTIMISATION #
#################

#SSH
iptables -A PREROUTING -t mangle -p tcp --sport 22 -j TOS --set-tos Minimize-Delay
echo "Optimisation [OK]"
exit 0
;;
stop)
echo "[Arret du firewall]"
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
exit 0
;;
*)
echo "Usage: firewall {start|stop}"
exit 1
;;
esac

On rend le script exécutable :


root@monrps:~# chmod u+x /home/data/admin/firewall

On vérifie que le script iptables fonctionne :


root@monrps:~# /home/data/admin/firewall
jeudi 27 novembre 2008, 21:07:25 (UTC+0100)
Usage: firewall {start|stop}
root@monrps:~# /home/data/admin/firewall start
[Démarrage du firewall]
Flush [OK]
Filtrages [OK]
Politiques [OK]
Optimisation [OK]
root@monrps:~# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT 0 -- anywhere anywhere
ACCEPT 0 -- anywhere anywhere state RELATED,ESTAB LISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:www
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT icmp -- anywhere anywhere
DROP 0 -- anywhere anywhere

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

On voit bien ici que des règles iptables ont été ajoutées et les polices par défaut modifiée.
On vérifie que l'arrêt du firewall fonctionne :


root@monrps:~# /home/data/admin/firewall stop
jeudi 27 novembre 2008, 21:13:20 (UTC+0100)
[Arret du firewall]
root@monrps:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Toutes les chaines sont vides c'est que cela fonctionne :D
Il ne reste plus qu'à ajouter le script iptables au démarrage :


root@monrps:~# ln -s /home/data/admin/firewall /etc/init.d/firewall && update-rc.d firewall defaults

Ensuite redémarrage du RPS :


root@monrps:~# reboot

Puis iptables -L pour voir que les régles sont présentes :


root@monrps:~# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT 0 -- anywhere anywhere
ACCEPT 0 -- anywhere anywhere state RELATED,ESTAB LISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:www
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT icmp -- anywhere anywhere
DROP 0 -- anywhere anywhere

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Voilà c'est fini :D
Source image : Blatch

 
 

b1n@sp1n