Forum debian-fr.org

Rechercher:

* Connexion   * M’enregistrer

* FAQ    * Rechercher





Poster un nouveau sujet Répondre au sujet  [ 2 messages ] 
Auteur Message
MessagePosté: 12 Déc 2005 02:10 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23716
Localisation: Père.Igor (24)
POUR TOUTE DISCUSSION SUR CE TUTO, VOUS ÊTES PRIÉS D'ALLER
Voici une sorte de 'tuto' destiné à l'installation primaire d'un pare-feu (ou parefeu) sous Debian.
Ce qui suit n'a pas pour objectif de renseigner les utilisateurs accomplis, qui n'y apprendront rien de plus que ce qu'ils savent mais est plutôt dirigé vers les débutants, avec un maximum d'explications.
Préambule :
En principe, le paquet 'iptables' est installé d'origine sous Debian mais si ce n'était pas le cas, rien de plus simple à faire :

apt-get install iptables
Dans ce 'tuto', la majeure partie des commandes se feront à partir de la console (petite télé noire qui sert, entre-autres, à entrer ces commandes).
Il est recommandé de ne pas faire cette installation, ni une éventuelle modification par le biais de SSH, mais en "direct" machine.
Ces commandes seront entrées sous la forme :
login@nom_machine:~$ sudo la_commande_à_taper
mais par la suite, je n'écrirai que la commande proprement dite, il vous appartiendra donc de la faire précéder par 'sudo'.
Il est préférable d'utiliser 'sudo' plutôt que de taper en tant que 'root', pour des raisons de sécurité mais il est possible que certaines commandes ne soient pas prises en compte de cette façon. Il vous faudra alors taper en tant que 'root' ( su et mot de passe = # au lieu de $ )
Si vous n'avez pas installé 'sudo', faites une recherche sur le forum d'aide ou posez la question.

(1) Installation :

A l'origine, le pare-feu est installé mais il est ouvert à toutes les communications, c'est en quelque sorte, une 'passoire' et de ce fait, il ne remplit pas ses objectifs.
Dans un premier temps, il va nous falloir installer un 'script' qui sera le "donneur d'ordre"
Créez le fichier 'mon_parefeu' :
touch /etc/init.d/mon_parefeu
Rendez ce fichier (pour l'instant, vide) exécutable avec :
chmod +x /etc/init.d/mon_parefeu
Ouvrez kedit (ou tout autre traitement de texte) à partir de la console pour être 'root' :
kedit
Dans kedit, ouvrez le fichier /etc/init.d/mon_parefeu
Collez-y le code ci-dessous :

Code:
#!/bin/sh

### BEGIN INIT INFO
# Provides:      iptables
# Required-Start:
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:   2 3 4 5
# Default-Stop:       0 1 6
# Short-description:   iptables
# Description:       Firewall
### END INIT INFO

# chargement/déchargement d'iptables

case "$1" in
'start')
/sbin/iptables-restore < /etc/config_parefeu
RETVAL=$?
;;
'stop')
/sbin/iptables-save > /etc/config_parefeu
RETVAL=$?
;;
'clean')
# clean le parefeu pendant que la machine tourne
# ça peut être une faille de sécurite si on l'exécute lors de l'extinction avant l'arrêt des interfaces
# pensez à refaire un start après sinon la sauvegarde se fera automatiquement à l'extinction
/sbin/iptables -t filter -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -t raw -F
/sbin/iptables -t filter -P INPUT ACCEPT
/sbin/iptables -t filter -P OUTPUT ACCEPT
/sbin/iptables -t filter -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P PREROUTING ACCEPT
/sbin/iptables -t mangle -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P POSTROUTING ACCEPT
/sbin/iptables -t mangle -P FORWARD ACCEPT
/sbin/iptables -t mangle -P INPUT ACCEPT
/sbin/iptables -t raw -P OUTPUT ACCEPT
/sbin/iptables -t raw -P PREROUTING ACCEPT
RETVAL=$?
;;
'restart')
$0 stop && $0 start
RETVAL=$?
;;
*)
echo "Usage: $0 { start | stop | restart | clean}"
RETVAL=1
;;
esac
exit $RETVAL


Sauvegardez et fermez kedit
Retournez à la console pour réinitialiser le pare-feu à blanc avec :
/etc/init.d/mon_parefeu clean

(2) Configuration :

Tapez les séquences suivantes (les lignes en gras et une à la fois, suivi de 'Entrée')

"Pour un hôte (station ou serveur) non routeur":

iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[edit: précisions par fran.b suite à débat]
Si on veut un serveur FTP
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
Si on souhaite utiliser SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Si on souhaite installer un serveur Web
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Si on veut rendre CUPS accessible
iptables -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT
Si on souhaite utiliser Jabber
iptables -A INPUT -p tcp -m tcp --dport 5222 -j ACCEPT

"Pour une machine faisant office de routeur avec NAT" :

iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -A INPUT -i ethx -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
[edit: précisions par fran.b suite à débat]
Si on veut un serveur FTP
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
Si on souhaite utiliser SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Si on souhaite installer un serveur Web
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Si on veut rendre CUPS accessible
iptables -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT
Si on souhaite utiliser Jabber
iptables -A INPUT -p tcp -m tcp --dport 5222 -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


ethx correspond à l'interface du LAN
et
ethy correspond à l'interface relié à la truc-box



Sauvegardez le pare-feu une première fois (simulation d'un signal d'arrêt) avec :
/etc/init.d/mon_parefeu stop
Activez 'mon_parefeu' avec :
update-rc.d mon_parefeu start XX S . stop YY 0 6 .
(Respectez bien les espacements et les points)

(Remplacez XX par le nombre immédiatement inférieur à celui qui indique la priorité de 'networking' dans /etc/rcS.d.
($ ls /etc/rcS.d | grep S**networking
(renvoie chez moi "S15networking". Il conviendra donc de remplacer XX par 14
(Remplacez YY par le nombre immédiatement supérieur à celui qui indique la priorité de 'networking' dans /etc/rc0.d
($ ls /etc/rc0.d | grep K**networking
(renvoie chez moi "K07networking". Il conviendra donc de remplacer YY par 08

(Ainsi, le parefeu sera actif avant l'activation des interfaces réseau configurées en auto dans /etc/network/interfaces et le restera jusqu'à leur désactivation)

(3) Modifications

Nous allons aborder maintenant la façon de modifier notre pare-feu
-- Ajouter une règle :
- on connaît le nom du port à autoriser, taper :
iptables -A INPUT -p tcp -m tcp --dport www -J ACCEPT (où 'www' est le nom du serveur http)
- on connaît le numéro du port, taper :
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT (où '80' est le N° de ce même http)
Pour connaître le numéro d'un grand nombre de port, tapez :
less /etc/services

Pour les explications des différentes options, vous pourrez avantageusement consulter :
man iptables
ou
iptables --help

-- Enlever une règle :
taper ce qui suit pour connaître le numéro de ligne de cette règle
iptables -L --line-numbers
puis taper
iptables -D INPUT (ou FORWARD) N° (où 'N°' doit être le chiffre ou nombre en tête de la ligne à supprimer)

Vous pourrez modifier l'exemple présenté plus haut à votre convenance (ajouter ou retirer ce que vous voudrez).
Toutefois, il convient de ne pas supprimer les deux lignes suivantes :

-A INPUT -i lo -j ACCEPT ((Ce sont les communications IP entre processus locaux s'exécutant sur la machine et c'est critique)).
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ((ça permet le retour vers la machine des infos demandées auprès des sites web. En l'absence de cette règle, la navigation deviendrait difficile. C'est relativement important )).

Après chaque modification, il vous faudra sauvegarder de nouveau votre pare-feu avec :
/etc/init.d/mon_parefeu stop
ou attendre un redémarrage qui fera la même chose automatiquement.
Si vous voulez revenir à l'état que vous aviez au présent démarrage, vous tapez :
/etc/init.d/mon_parefeu start
Si vous voulez revenir à un pare-feu vierge, vous tapez :
/etc/init.d/mon_parefeu clean

Ce qui précède concerne la partie 'Filter' d'un pare-feu. Ça assure un minimum de protection mais c'est loin d'être exhaustif.
Je laisse à d'autres, plus 'pointus' que moi, le soin d'expliquer les parties plus complexes, telles que Raw, Mangle et Nat.
J'espère que ce 'tuto', encore une fois réservé aux débutants, vous aura permis de mieux appréhender le pare-feu sous Debian.
L'aide de tous les amis de ce forum et particulièrement celle du Papa de Lillo, a été indispensable à sa rédaction. Merci à eux !

Modifié selon les conseils de PascalHambourg ... et la suite.

Dans le script, en haut, ajout selon le fil ??? :oops:

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Dernière édition par ricardo le 06 Fév 2007 12:04, édité 3 fois.

Haut
 Profil  
 
MessagePosté: 12 Oct 2012 13:52 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23716
Localisation: Père.Igor (24)
POUR TOUTE DISCUSSION SUR CE TUTO, VOUS ÊTES PRIÉS D'ALLER

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Sujet remonté par ricardo le 12 Oct 2012 13:52.


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 2 messages ] 

Index du forum » Forums d'aide » Trucs et Astuces


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
Flux RSS Flux RSS Liste des flux Liste des flux
Powered by phpBB® Forum Software © phpBB Group
Traduction par: phpBB-fr.com
SEO
[ Time : 0.225s | 12 Queries | GZIP : Off ]