Wheezy-mon_parefeu & vlc

Bonjour,
Je viens de modifier le parefeu simplifié du wiki
isalo.org/wiki.debian-fr/Par … lifi%C3%A9
pour lancer les freeboxtv à partir de vlc. J’ai utilisé les informations de la documentation Ubuntu-vlc.
doc.ubuntu-fr.org/vlc

J’ai ajouté les lignes suivantes modifiées pour prendre en compte la variable $IPTABLES et pour imposer la table filter:
$IPTABLES -t filter -A OUTPUT -m state ! --state INVALID -j ACCEPT
$IPTABLES -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -t filter -A INPUT -p udp -s 212.27.38.253 -j ACCEPT

Cela a permis la bonne marche de vlc.

Voici les modifications implantées dans le fichier /etc/init.d/mon_parefeu:

Trafic d’entrée :

    $IPTABLES -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j AC$
    $IPTABLES -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT
    $IPTABLES -t filter -A INPUT -p udp -s 212.27.38.253 -j ACCEPT

et

Sortie autorisée, si aucun port autorisé en sortie n’est défini

    if [ -z "$REMOTE_TCP_SERVICES"] && [ -z "$REMOTE_UDP_SERVICES" ]; then
        $IPTABLES -t filter -P OUTPUT ACCEPT
    fi
    $IPTABLES -t filter -A OUTPUT -m state ! --state INVALID -j ACCEPT

J’aimerais savoir s’il y a une meilleure position pour ces commandes.

Merci de votre attention,
Ciao.

N.B.: le fichier complet,

#!/bin/sh

BEGIN INIT INFO

Provides: mon_parefeu

Required-Start: $local_fs

Should-Start:

Required-Stop: $local_fs

Should-Stop:

X-Start-Before: $network

X-Stop-After: $network

Default-Start: S

Default-Stop: 0 6

Short-description: Configure le parefeu

Description: Met en place les règles iptables.

END INIT INFO

#------------------------Explications----------------------------------#

Défauts :

- Cette configuration s’applique à toutes les interfaces réseau.

Si vous voulez restreindre cela à une interface donnée,

utilisez ‘-i INTERFACE’ dans la variables $IPTABLES.

- Par défaut, le script autorise tout en sortie.

Pour changer ce comportement veuillez indiquer les numéros

de port en question dans les variables

$REMOTE_TCP_SERVICES

et/ou $REMOTE_UDP_SERVICES

- Pour configurer une machine routeur,

changez la valeur de la variable

ISROUTERNAT à true, ainsi que

les interfaces ethx et ethy selon votre configuration

ethx correspond à l’interface du LAN

ethy correspond à l’interface reliée à la truc-box

description: Active/Désactive le pare-feu au démarrage

#----------------------------------------------------------------------#

#------------------------VARIABLES-------------------------------------#
readonly IPTABLES=/sbin/iptables

. /lib/lsb/init-functions

Services que le système offrira au réseau, à séparer avec des espaces

ftp : 21, ssh : 22, serveur web : 80, cups : 631, jabber : 5222

TCP_SERVICES="“
UDP_SERVICES=”"

Services que le système utilisera du réseau

(défaut : autorise tout en sortie)

REMOTE_TCP_SERVICES="“
REMOTE_UDP_SERVICES=”"

Pour une machine faisant office de routeur avec NAT,

changer la valeur de la variable ISROUTERNAT à 1.

ISROUTERNAT=false

ethx correspond à l’interface du LAN

ethy correspond à l’interface reliée à la truc-box

ethx="eth1"
ethy=“eth0”
#----------------------------------------------------------------------#

if ! [ -x $IPTABLES ]; then
exit 0
fi

#----------------------------FONCTIONS---------------------------------#
fw_start () {

Vidage

fw_clear
# Parefeu - Suppression des règles

Interdictions

$IPTABLES -t filter -P INPUT DROP
$IPTABLES -t filter -P FORWARD DROP
$IPTABLES -t filter -P OUTPUT DROP

# Parefeu - interdictions générales établies

Loopback

$IPTABLES -t filter -A INPUT -i lo -j ACCEPT

Trafic d’entrée :

$IPTABLES -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -t filter -A INPUT -p udp -s 212.27.38.253 -j ACCEPT

Refus du ping pour éviter de répondre aux scans des éventuels vilains

$IPTABLES -t filter -A INPUT -p icmp -j LOG
$IPTABLES -t filter -A INPUT -p icmp -j DROP

Sortie autorisée, si aucun port autorisé en sortie n’est défini

    if [ -z "$REMOTE_TCP_SERVICES"] && [ -z "$REMOTE_UDP_SERVICES" ]; then
        $IPTABLES -t filter -P OUTPUT ACCEPT
    fi
$IPTABLES -t filter -A OUTPUT -m state ! --state INVALID -j ACCEPT

Services à autoriser en entrée

for PORT in $TCP_SERVICES; do
	$IPTABLES -A INPUT -p tcp --dport ${PORT} -j ACCEPT
done

for PORT in $UDP_SERVICES; do
	$IPTABLES -A INPUT -p udp --dport ${PORT} -j ACCEPT
done

Services à autoriser en sortie

for PORT in $REMOTE_TCP_SERVICES; do
	$IPTABLES -A OUTPUT -p tcp --dport ${PORT} -j ACCEPT
done
for PORT in $REMOTE_UDP_SERVICES; do
	$IPTABLES -A OUTPUT -p udp --dport ${PORT} -j ACCEPT
done
# Parefeu - Mise en place des règles

if $ISROUTERNAT ; then
	$IPTABLES -A INPUT -i $ethx -j ACCEPT
	$IPTABLES -A INPUT -p icmp -j ACCEPT
	$IPTABLES -A FORWARD -i $ethy -o $ethx -m state --state RELATED,ESTABLISHED -j ACCEPT
	$IPTABLES -A FORWARD -o $ethy -j ACCEPT
	$IPTABLES -t nat -A POSTROUTING -o $ethy -j MASQUERADE
	# Parefeu - Routeur avec NAT
fi

Toutes les autres connexions sont enregistrées dans syslog

#$IPTABLES -t filter -A OUTPUT -j LOG
$IPTABLES -t filter -A INPUT -j LOG --log-level=4

# Parefeu - Logging

}

fw_stop () {
#$IPTABLES -F
#$IPTABLES -t nat -F
#$IPTABLES -t mangle -F
#$IPTABLES -P INPUT DROP
#$IPTABLES -P FORWARD DROP
#$IPTABLES -P OUTPUT ACCEPT
iptables-save > /etc/firewall
}

fw_clear () {
$IPTABLES -t filter -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -t raw -F
$IPTABLES -t filter -P INPUT ACCEPT
$IPTABLES -t filter -P OUTPUT ACCEPT
$IPTABLES -t filter -P FORWARD ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -t mangle -P POSTROUTING ACCEPT
$IPTABLES -t mangle -P FORWARD ACCEPT
$IPTABLES -t mangle -P INPUT ACCEPT
$IPTABLES -t raw -P OUTPUT ACCEPT
$IPTABLES -t raw -P PREROUTING ACCEPT
$IPTABLES -F
}

fw_status () {
$IPTABLES -L --line-numbers
}

#----------------------------------------------------------------------#

case “$1” in
start|restart)
log_daemon_msg "Starting firewall…"
fw_start
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping firewall…"
fw_stop
log_end_msg $?
;;
clean)
log_daemon_msg "Clearing firewall rules…"
fw_clear
log_end_msg $?
;;
status)
log_daemon_msg "Firewall status"
fw_status
;;
*)
log_action_msg "Usage $0 {start|stop|restart|clean|status}"
exit 1
;;
esac
exit 0