Parefeu simplifié

Bonjour,
Je viens d’installer le parefeu simplifié et j’utilise un notebook relié à la box Free.

Si j’ai bien compris et n’ayant pas de server sur ma machine je n’ai pas à compléter les lignes suivantes:

Ouvrir des ports
Pour cela, il vous suffit d’ajouter le numéro des ports à ouvrir, séparés par des espaces, entre les guillemets :
TCP_SERVICES="“
S’il s’agit de ports tcp, et dans
UDP_SERVICES=”"
Si ce sont des ports UDP.

Erreur de ma part; je viens de m’apercevoir que script utilise les commandes iptables et non ip6tables
Est-ce que le parefeu simplifié fonctionne en protocole ipv6? Non.

Par ailleurs, la commande suivante:
insserv mon_parefeu
doit-elle être lançée à chaque démarrage de la machine ou seulement quand on installe le parefeu?

Merci de votre attention et de vos suggestions,
Ciao.

Donne le lien du tuto qui t’a servi à installer ton parefeu, car il y en a plusieurs.

Salut

[quote=“ricardo”]Donne le lien du tuto qui t’a servi à installer ton parefeu, car il y en a plusieurs.[/quote]C’est celui du Wiki (Thuban)

[quote=“Tinnitus”]Si j’ai bien compris et n’ayant pas de server sur ma machine je n’ai pas à compléter les lignes suivantes:[/quote]Oui

[quote=“Tinnitus”]Erreur de ma part; je viens de m’apercevoir que script utilise les commandes iptables et non ip6tables
Est-ce que le parefeu simplifié fonctionne en protocole ipv6? Non.[/quote]Non pas en l’état.

[quote=“Tinnitus”]Par ailleurs, la commande suivante:
insserv mon_parefeu
doit-elle être lançée à chaque démarrage de la machine ou seulement quand on installe le parefeu?[/quote]Seulement à l’installation du pare-feu.

Tout à fait

[quote]
Erreur de ma part; je viens de m’apercevoir que script utilise les commandes iptables et non ip6tables
Est-ce que le parefeu simplifié fonctionne en protocole ipv6? Non.[/quote]
Non, et j’ai mis de côté cette partie là étant donné que je suis tout à fait incompétent dans ce domaine. Autant pour ipv4 je pouvais suivre des explications trouvés sur le net, que la discussion avec PascalHambourg sur l’ipv6 m’a clairement montré que c’était une autre langue pour moi.
Donc actuellement, la partie ipv6 est à faire, moi, je risque plus de faire des bêtises.

Bonjour,

Si j’ai bien compris je n’ai pas à lancer cette commande juste avant d’aller sur le web; je l’ai fait une fois pour toutes.

Il s’agit du script du wiki:
isalo.org/wiki.debian-fr/Par … lifi%C3%A9

[code]
#!/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

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

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[/code]

Merci pour votre attention,
Ciao.

Cette commande sert seulement à “installer” le script dans les runlevels définis dans son en-tête LSB (démarrage dans S et arrêt dans 0 et 6). Ensuite, il sera automatiquement exécuté à chaque démarrage.

$IPTABLES -t nat -P PREROUTING ACCEPT $IPTABLES -t nat -P POSTROUTING ACCEPT $IPTABLES -t nat -P OUTPUT ACCEPT
Vous allez rire, mais depuis le noyau 2.6.36 (donc le noyau 3.2 de Wheezy est concerné) la table nat a une nouvelle chaîne INPUT.

[quote=“PascalHambourg”]Cette commande sert seulement à “installer” le script dans les runlevels définis dans son en-tête LSB (démarrage dans S et arrêt dans 0 et 6). Ensuite, il sera automatiquement exécuté à chaque démarrage.

$IPTABLES -t nat -P PREROUTING ACCEPT $IPTABLES -t nat -P POSTROUTING ACCEPT $IPTABLES -t nat -P OUTPUT ACCEPT
Vous allez rire, mais depuis le noyau 2.6.36 (donc le noyau 3.2 de Wheezy est concerné) la table nat a une nouvelle chaîne INPUT.[/quote]
Il manque donc ceci dans la fonction fw_clear?

Pascal, tu ne souhaites pas participer au wiki? Tu pourrais y ajouter ces commentaires pour permettre d’améliorer ce script, sans pour autant macher le travail d’un visiteur cherchant une solution sans comprendre et qui risque de râler si ça fonctionne mal.

Bonsoir,
Merci pour la précision sur la commande insserv mon_parefeu.

Pour la ligne :

Je n’ai pas d’avis sur sa place dans la fonction fw_clear même si cette dernière ( août 2011) est postérieure à la release du kernel 2.6.36.

Ciao.

Oui, pour un noyau >= 2.6.36. Avec un noyau antérieur, cette ligne provoque une erreur car la chaîne n’existe pas dans cette table.

Je ne sais pas comment on fait.

Salut,

Je ne sais pas comment on fait.[/quote][quote=“PascalHambourg”][quote=“thuban”]Il manque donc ceci dans la fonction fw_clear?[/quote]
Oui, pour un noyau >= 2.6.36. Avec un noyau antérieur, cette ligne provoque une erreur car la chaîne n’existe pas dans cette table.

Je ne sais pas comment on fait.[/quote]

Il faut d’abord s’inscrire (ça n’engage à rien de toute façon).
Ensuite on s’exerce un peu sur le bac à sable, et si on y arrive pas (ça m’étonnerais quand même) il y aura plein de bonnes volontés pour aider ou faire les modifications à ta place.
Toute modification sur le Wiki est susceptible d’être défaite, donc pas de risque de casser quoi que ce soit!