Bonjour,
Je voudrais mettre en place le firewall avec iptables sur mon serveur debian Lenny.
Avec mon firewall désactivé mon serveur apache fonctionne tres bien, ainsi que ssh, le ping, no-ip, les DNS.
Avec mon firewall activé:
- J’arrive à envoyé mon IP dynamique à noip. (Test réaliser: commenter l’autorisation donc l’envoi de l’IP est bloqué [TEST OK])
- A faire un ping. (Test réaliser: commenter l’autorisation et le ping est bloqué [TEST OK])
- Je n’arrive pas à me connecter à mon serveur apache et à SSH
Les autres règles non pas été testé puisque deux des principaux ne fonctionne pas.
Je suis ouvert à toute amélioration!!! D’avance Merci.
Voici mon script:
#!/bin/sh
#
# Config firewall
# Mickael DURJEAU
#
#### Gestion start-up ####
NAME=iptables
DAEMON=/sbin/$NAME
test -x $DAEMON || exit 0
IFACE="eth0,eth1"
IPSERVER=192.168.1.101
IPCLASS_C="192.168.0.0/16"
BROADCAST="255.255.255.255"
LOOPBACK="127.0.0.0/8"
IPTABLES="/sbin/iptables"
case "$1" in
start)
##### Debut Initialisation #####
echo .:: Setting Firewall Rules... ::.
#Vider les tables actuelles, les règles personnelles, zero counters
$IPTABLES -t filter -F
$IPTABLES -t filter -X
$IPTABLES -t filter -Z
echo - Vidage des tables [OK]
# Interdire toute connexion entrante et sortante
$IPTABLES -t filter -P INPUT DROP
$IPTABLES -t filter -P FORWARD DROP
$IPTABLES -t filter -P OUTPUT DROP
echo - Interdire toute connexion entrant et sortante [OK]
# Ne pas casser les connexions établies
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo - Ne pas casser les connexions établies [OK]
##### Fin Initialisation #####
##### Debut regles #####
# Autoriser le traffic sur le reseau local
$IPTABLES -t filter -A INPUT -i lo -j ACCEPT
$IPTABLES -t filter -A OUTPUT -o lo -j ACCEPT
echo - Autoriser le traffic sur réseau local [OK]
# ICMP (ping) TEST OK
$IPTABLES -t filter -A INPUT -i $IFACE -s $IPSERVER -p icmp -j ACCEPT
$IPTABLES -t filter -A OUTPUT -o $IFACE -s $IPSERVER -p icmp -j ACCEPT
echo - Autoriser le ping ICMP [OK]
# NOIP TEST OK
$IPTABLES -t filter -A OUTPUT -o $IFACE -s $IPSERVER -p tcp --dport 8245 -j ACCEPT
echo - Autoriser NOIP [OK]
# HTTP et HTTPS [TEST FAIL]
$IPTABLES -t filter -A OUTPUT -o $IFACE -s $IPSERVER -p tcp --dport 80 -j ACCEPT
$IPTABLES -t filter -A OUTPUT -o $IFACE -s $IPSERVER -p tcp --dport 443 -j ACCEPT
$IPTABLES -t filter -A INPUT -i $IFACE -s $IPSERVER -p tcp --sport 80 -j ACCEPT
$IPTABLES -t filter -A INPUT -i $IFACE -s $IPSERVER -p tcp --sport 443 -j ACCEPT
$IPTABLES -t filter -A INPUT -i $IFACE -s $IPSERVER -p tcp --sport 8443 -j ACCEPT
echo - Autoriser HTTP et HTTPS [OK]
# SSH [TEST FAIL]
$IPTABLES -t filter -A OUTPUT -o $IFACE -s $IPSERVER -p tcp --dport 22 -j ACCEPT
$IPTABLES -t filter -A INPUT -i $IFACE -s $IPSERVER -p tcp --sport 22 -j ACCEPT
echo - Autoriser SSH [OK]
# DNS
$IPTABLES -t filter -A OUTPUT -o $IFACE -s $IPSERVER -p tcp --dport 53 -j ACCEPT
$IPTABLES -t filter -A OUTPUT -o $IFACE -s $IPSERVER -p udp --dport 53 -j ACCEPT
$IPTABLES -t filter -A INPUT -i $IFACE -s $IPSERVER -p tcp --sport 53 -j ACCEPT
$IPTABLES -t filter -A INPUT -i $IFACE -s $IPSERVER -p udp --sport 53 -j ACCEPT
echo - Autoriser les DNS [OK]
# NTP Out : pour la mise a jour automatique de l'heure
$IPTABLES -t filter -A OUTPUT -o $IFACE -s $IPSERVER -p udp --dport 123 -j ACCEPT
echo - Autoriser NTP [OK]
# Whos is
$IPTABLES -t filter -A OUTPUT -o $IFACE -s $IPSERVER -p tcp --dport 43 -j ACCEPT
$IPTABLES -t filter -A INPUT -i $IFACE -s $IPSERVER -p tcp --sport 80 -j ACCEPT
echo - Autoriser Whos is [OK]
# Mail SMTP : on ne tient pas compte de POP(S) et IMAP(S) dans notre tuto
$IPTABLES -t filter -A INPUT -i $IFACE -s $IPSERVER -p tcp --sport 25 -j ACCEPT
$IPTABLES -t filter -A OUTPUT -o $IFACE -s $IPSERVER -p tcp --dport 25 -j ACCEPT
echo - Autoriser SMTP [OK]
# Monit
$IPTABLES -t filter -A INPUT -i $IFACE -s $IPSERVER -p tcp --sport 1337 -j ACCEPT
echo - Autoriser le monitoring [OK]
##### Fin regles #####
echo .:: Firewall updated ::.
;;
stop)
# On supprimer les règles du firewall
# Mais on accept les règles par defaut
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F
$IPTABLES -X
echo - Vidage des tables [OK]
echo .:: Firewall Disallowed ::.
;;
restart)
$0 start
;;
*)
echo Usage: $0 {start|stop|restart}
exit 1
esac
exit 0