Salut à tous!
J’ai mis en place un petit serveur Web récemment.
Dans l’optique de commencer la sécurisation de ce dernier, j’ai attaqué la mise en place
d’un petit script permettant de réglé les règles iptables.
N’ayant eu qu’un cours relativement light sur iptables, je n’ai pas une grande connaissance de l’outil.
Après avoir parcouru certain forum et document en ligne, mon fichier ressemble à celui ci-dessous.
Vous l’aurez comprit, malgré le fait qu’il soit question d’un simple petit réglage pour un serveur web,
je suis légèrement dans le doute quand à ma configuration. En espérant que vous puissiez m’apporter des
conseilles.
Salutation.
#! /bin/sh
### BEGIN INIT INFO
# Provides: bla bla
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: bla bla
# Description: bla bla
# placed in /etc/init.d.
### END INIT INFO
# Variables
PORT_SSH=22
PORT_SMTP=25
PORT_DNS=53
PORT_HTTP=80
start()
{
# Reset Tables
iptables -t filter -F
# Reset Personnal Rules
iptables -t filter -X
# Close All
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
# Allow loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# Allow ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# Allow SSH Connexion
iptables -t filter -A INPUT -p tcp --dport $PORT_SSH -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport $PORT_SSH -j ACCEPT
# Allow to Send E-Mail
iptables -t filter -A INPUT -p tcp --sport $PORT_SMTP -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport $PORT_SMTP -j ACCEPT
# Allow DNS Resolv
iptables -t filter -A INPUT -p tcp --sport $PORT_DNS -j ACCEPT
iptables -t filter -A INPUT -p udp --sport $PORT_DNS -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport $PORT_DNS -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport $PORT_DNS -j ACCEPT
#Allow HTTP
iptables -t filter -A INPUT -p tcp --dport $PORT_HTTP -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport $PORT_HTTP -j ACCEPT
echo "FireWall Started"
}
stop()
{
# Vider les tables actuelles
iptables -t filter -F
# Vider les regles personnelles
iptables -t filter -X
# Autoriser toutes les connexion entrantes et sortantes
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
echo "FireWall Stopped."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: firewall {start|stop|restart}"
exit 1
;;
esac
