Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:iptables-pare-feu-pour-un-client [06/11/2014 17:30] Hypathie [Pare-feu pour une station (client)] |
doc:reseau:iptables-pare-feu-pour-un-client [07/11/2014 09:40] Hypathie [Pare-feu pour une station (client)] |
||
---|---|---|---|
Ligne 283: | Ligne 283: | ||
Commandes précédentes, ou celles-ci plus précises que l'on préférera : | Commandes précédentes, ou celles-ci plus précises que l'on préférera : | ||
<code root> | <code root> | ||
- | iptables -A OUTPUT -o -p icmp -m conntrack\ | + | iptables -A OUTPUT -o eth0 -p icmp -m conntrack\ |
--ctstate NEW,ESTABLISHED,RELATED -j ACCEPT | --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT | ||
Ligne 313: | Ligne 313: | ||
<note>Remarque sur la place du point d'exclamation, qui ne se place pas devant ''INVALID'' comme on le voit souvent !</note> | <note>Remarque sur la place du point d'exclamation, qui ne se place pas devant ''INVALID'' comme on le voit souvent !</note> | ||
- | * Si l'on veut que cette imprimante soit partagée aussi par un autre réseau, par exemple 192.168.1.0/24 on ajoutera : | + | <note tip>**Si l'on veut que cette imprimante soit partagée aussi par un autre réseau, par exemple 192.168.1.0/24 on ajoutera ceci au pare-feu du client :** |
<code root>iptables -A INPUT -i eth0 -s 192.168.1.0/24 -d 192.168.0.22 -p tcp\ | <code root>iptables -A INPUT -i eth0 -s 192.168.1.0/24 -d 192.168.0.22 -p tcp\ | ||
- | --dport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</code> | + | --dport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT |
- | + | iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.1.0/24 -p tcp\ | |
- | <code root>iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.1.0/24 -p tcp\ | + | |
--sport 631 -m state ! --state INVALID -j ACCEPT</code> | --sport 631 -m state ! --state INVALID -j ACCEPT</code> | ||
- | Dans ce cas au niveau de la passerelle, il faudra relayer le trafic pour le port 631, c'est-à-dire accepter sur eth0 (réseau 192.168.0.0/24) en entrée et en sortie tcp sur le port 631, de même pour eth1 (réseau 168.168.1.0/24).\\ | + | **Dans ce cas au niveau de la passerelle** : |
+ | Si elle dotée d'un pare-feu, il faudra que **son** pare-feu permette le trafic pour le port 631, c'est-à-dire accepter sur eth0 (réseau 192.168.0.0/24) les entrées et les sorties tcp sur le port 631.\\ | ||
+ | |||
+ | Par exemple : | ||
+ | |||
+ | iptables -A INPUT -i eth0 -s 192.168.0.22 -d 192.168.0.1 -p tcp --sport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
+ | iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
+ | |||
+ | |||
+ | Voir : [[atelier:chantier:iptables-un-pare-feu-pour-une-passerelle?&#le-script-de-la-passerelle|Script d'une passerelle]] | ||
+ | </note> | ||
====Vérifier et faire des tests==== | ====Vérifier et faire des tests==== | ||
Ligne 549: | Ligne 558: | ||
===Pour les fadas du "scripting" shell=== | ===Pour les fadas du "scripting" shell=== | ||
- | **C'est soit la méthode précédente, soit celle-ci !**\\ | ||
- | (Pour tester n'oubliez pas de commenter, mettre un ''#'' devant la ligne\\ ''pre-up iptables-restore < /etc/firewall-client'' du fichier /etc/network/interfaces ajoutée lors de la méthode précédente.) | ||
<code bash firewall-client.sh> | <code bash firewall-client.sh> | ||
Ligne 569: | Ligne 576: | ||
# Author: hypathie <hypathie@debian-facile> | # Author: hypathie <hypathie@debian-facile> | ||
# | # | ||
- | ##Set up init.d script | + | ##Set up /etc/init.d/firewall-client |
case "$1" in | case "$1" in | ||
'start') | 'start') | ||
- | /sbin/iptables-restore < /etc/firewall-client | ||
- | RETVAL=$? | ||
- | ;; | ||
- | 'stop') | ||
- | /sbin/iptables-save > /etc/firewall-client | ||
- | RETVAL=$? | ||
- | ;; | ||
- | 'clean') | ||
##Set up firewall-client | ##Set up firewall-client | ||
# Clear any existing rules | # Clear any existing rules | ||
Ligne 596: | Ligne 595: | ||
/sbin/iptables -t filter -A OUTPUT -o lo -j ACCEPT | /sbin/iptables -t filter -A OUTPUT -o lo -j ACCEPT | ||
#Allow ping to internal network | #Allow ping to internal network | ||
- | /sbin/iptables -A OUTPUT -p icmp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT | + | /sbin/iptables -A OUTPUT -o eth0 -p icmp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT |
- | /sbin/iptables -A INPUT -p icmp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT | + | /sbin/iptables -A INPUT -i eth0 -p icmp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT |
#Get web | #Get web | ||
/sbin/iptables -t filter -A OUTPUT -p tcp -m multiport --dports 80,443,8000 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT | /sbin/iptables -t filter -A OUTPUT -p tcp -m multiport --dports 80,443,8000 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT | ||
Ligne 624: | Ligne 623: | ||
/sbin/iptables -t filter -A OUTPUT -o eth0 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT | /sbin/iptables -t filter -A OUTPUT -o eth0 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT | ||
/sbin/iptables -t filter -A INPUT -i eth0 -s 192.168.0.0/24 -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT | /sbin/iptables -t filter -A INPUT -i eth0 -s 192.168.0.0/24 -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT | ||
+ | echo "set up firewall-client .........> [OK]" | ||
+ | /sbin/iptables-save > /etc/firewall-client | ||
+ | echo "iptables-save > /etc/firewall-client .........> [OK]" | ||
+ | RETVAL=$? | ||
+ | ;; | ||
+ | 'stop') | ||
+ | # Supprime toutes les règles du pare-feu | ||
+ | /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 | ||
+ | echo "FILTER [ALL RULES .... [FLUSH] ..... POLICY ......> [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 | ||
+ | echo "ALL TABLES ....[FLUSH] ..... ALL POLICY .......> [ACCEPT]" | ||
RETVAL=$? | RETVAL=$? | ||
;; | ;; | ||
'restart') | 'restart') | ||
- | $0 stop && $0 start | + | /sbin/iptables-restore < /etc/firewall-client |
+ | echo "/etc/firewall-client ........[OK]" | ||
+ | RETVAL=$? | ||
+ | ;; | ||
+ | 'status') | ||
+ | /sbin/iptables -L | ||
+ | /sbin/iptables -t nat -L | ||
RETVAL=$? | RETVAL=$? | ||
;; | ;; | ||
*) | *) | ||
- | echo "Usage: $0 { start | stop | restart | clean}" | + | echo "Usage: $0 { start | stop | restart | status }" |
RETVAL=1 | RETVAL=1 | ||
;; | ;; | ||
Ligne 652: | Ligne 683: | ||
<code root> | <code root> | ||
- | chmod +x /etc/init.d/firewall-client.sh | + | chmod 0755 /etc/init.d/firewall-client.sh |
- | chmod 755 /etc/init.d/firewall-client.sh | + | chown root:root /etc/init.d/firewall-client.sh |
</code> | </code> | ||