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 [01/11/2015 17:44] milou [Pare-feu pour une station (client)] |
doc:reseau:iptables-pare-feu-pour-un-client [30/08/2018 13:53] Beta-Pictoris |
||
---|---|---|---|
Ligne 125: | Ligne 125: | ||
> **La cinquième ligne ''Chain OUTPUT (policy ACCEPT)''** concerne les paquets sortants (**''OUTPUT''**). | > **La cinquième ligne ''Chain OUTPUT (policy ACCEPT)''** concerne les paquets sortants (**''OUTPUT''**). | ||
+ | === Lien utile === | ||
+ | |||
+ | En complément, voir ce post sur le forum : | ||
+ | * [[https://debian-facile.org/viewtopic.php?id=18221]] | ||
====Quelques définitions==== | ====Quelques définitions==== | ||
Ligne 220: | Ligne 224: | ||
===Autoriser les échanges avec les serveurs DNS=== | ===Autoriser les échanges avec les serveurs DNS=== | ||
<code root> | <code root> | ||
- | iptables -t filter -A OUTPUT -p udp -m udp\ | + | iptables -t filter -A OUTPUT -p udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT |
- | --dport 53 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT | + | iptables -t filter -A INPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
- | + | ||
- | iptables -t filter -A INPUT -p udp -m udp\ | + | |
- | --sport 53 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT | + | |
</code> | </code> | ||
Ligne 297: | Ligne 298: | ||
iptables -t filter -A OUTPUT -p tcp -m multiport\ | iptables -t filter -A OUTPUT -p tcp -m multiport\ | ||
--dports 80,443,8000 -m conntrack --ctstate\ | --dports 80,443,8000 -m conntrack --ctstate\ | ||
- | NEW,RELATED,ESTABLISHED -j ACCEPT | + | NEW,ESTABLISHED -j ACCEPT |
| | ||
iptables -t filter -A INPUT -p tcp -m multiport\ | iptables -t filter -A INPUT -p tcp -m multiport\ | ||
--sports 80,443,8000 -m conntrack --ctstate\ | --sports 80,443,8000 -m conntrack --ctstate\ | ||
- | RELATED,ESTABLISHED -j ACCEPT | + | ESTABLISHED -j ACCEPT |
</code> | </code> | ||
===Pour IMAP et SMTP (utilisation de messagerie icedove) === | ===Pour IMAP et SMTP (utilisation de messagerie icedove) === | ||
- | <code root>iptables -A INPUT -m multiport -p tcp --sport 25,2525,587,465,143,993,995 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | <code root>iptables -A INPUT -m multiport -p tcp --sport 25,2525,587,465,143,993,995 -m state --state ESTABLISHED -j ACCEPT |
- | iptables -A OUTPUT -m multiport -p tcp --dport 25,2525,143,465,587,993,995 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT </code> | + | iptables -A OUTPUT -m multiport -p tcp --dport 25,2525,143,465,587,993,995 -m state --state NEW,ESTABLISHED -j ACCEPT </code> |
Pour la liste des ports selon les serveurs de messagerie utilisés voir : [[https://www.arclab.com/en/amlc/list-of-smtp-and-imap-servers-mailserver-list.html|list of smtp and imap servers mailserver]] | Pour la liste des ports selon les serveurs de messagerie utilisés voir : [[https://www.arclab.com/en/amlc/list-of-smtp-and-imap-servers-mailserver-list.html|list of smtp and imap servers mailserver]] | ||
Ligne 315: | Ligne 316: | ||
<code root>iptables -A INPUT -i eth0 -s 192.168.0.0/24 -d 192.168.0.22 -p tcp\ | <code root>iptables -A INPUT -i eth0 -s 192.168.0.0/24 -d 192.168.0.22 -p tcp\ | ||
- | --dport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | --dport 631 -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.0.0/24 -p tcp\ | iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.0.0/24 -p tcp\ | ||
Ligne 325: | Ligne 326: | ||
<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 | + | --dport 631 -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.1.0/24 -p tcp\ | iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.1.0/24 -p tcp\ | ||
Ligne 335: | Ligne 336: | ||
Par exemple : | 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 INPUT -i eth0 -s 192.168.0.22 -d 192.168.0.1 -p tcp --sport 631 -m state --state NEW,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 | + | iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,ESTABLISHED -j ACCEPT |
Ligne 375: | Ligne 376: | ||
===Faire des tests === | ===Faire des tests === | ||
+ | |||
* Sur l'interface lo | * Sur l'interface lo | ||
<code user>ping localhost</code> | <code user>ping localhost</code> | ||
Ligne 403: | Ligne 405: | ||
* Ping sur un domaine : | * Ping sur un domaine : | ||
- | <code root>ping google.fr</code> | + | <code user>ping google.fr</code> |
<code config retour de la commande>PING google.fr (173.194.40.152) 56(84) bytes of data. | <code config retour de la commande>PING google.fr (173.194.40.152) 56(84) bytes of data. | ||
Ligne 551: | Ligne 553: | ||
<code root>vim /etc/network/interfaces</code> | <code root>vim /etc/network/interfaces</code> | ||
- | <code> | + | |
+ | <file config interfaces> | ||
# The loopback network interface | # The loopback network interface | ||
auto lo | auto lo | ||
iface lo inet loopback | iface lo inet loopback | ||
post-up iptables-restore < /etc/firewall-client | post-up iptables-restore < /etc/firewall-client | ||
- | </code> | + | </file> |
===Avantages de cette méthode=== | ===Avantages de cette méthode=== | ||
Ligne 650: | Ligne 654: | ||
/sbin/iptables -P FORWARD DROP | /sbin/iptables -P FORWARD DROP | ||
# Allow trafic with DNS server | # Allow trafic with DNS server | ||
- | /sbin/iptables -t filter -A OUTPUT -p udp -m udp --dport 53 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A OUTPUT -p udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT |
- | /sbin/iptables -t filter -A INPUT -p udp -m udp --sport 53 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A INPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
#Allow trafic on internal network | #Allow trafic on internal network | ||
/sbin/iptables -t filter -A INPUT -i lo -j ACCEPT | /sbin/iptables -t filter -A INPUT -i lo -j ACCEPT | ||
Ligne 659: | Ligne 663: | ||
/sbin/iptables -A INPUT -i eth0 -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,ESTABLISHED -j ACCEPT |
- | /sbin/iptables -t filter -A INPUT -p tcp -m multiport --sports 80,443,8000 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A INPUT -p tcp -m multiport --sports 80,443,8000 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
#Allow mailing protocols (IMAP and SMTP) | #Allow mailing protocols (IMAP and SMTP) | ||
- | /sbin/iptables -A INPUT -m multiport -p tcp --sport 25,2525,587,465,143,993,995 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -A INPUT -m multiport -p tcp --sport 25,2525,587,465,143,993,995 -m state --state ESTABLISHED -j ACCEPT |
- | /sbin/iptables -A OUTPUT -m multiport -p tcp --dport 25,2525,143,465,587,993,995 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -A OUTPUT -m multiport -p tcp --dport 25,2525,143,465,587,993,995 -m state --state NEW,ESTABLISHED -j ACCEPT |
#Allow cups | #Allow cups | ||
- | iptables -A INPUT -i eth0 -s 192.168.0.0/24 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | iptables -A INPUT -i eth0 -s 192.168.0.0/24 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.0.0/24 -p tcp --sport 631 -m state ! --state INVALID -j ACCEPT | iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.0.0/24 -p tcp --sport 631 -m state ! --state INVALID -j ACCEPT | ||
#Allow cups from sub-net | #Allow cups from sub-net | ||
- | /sbin/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 | + | /sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,ESTABLISHED -j ACCEPT |
/sbin/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 | /sbin/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 | ||
#Set up a user chain for ssh outgoing | #Set up a user chain for ssh outgoing | ||
Ligne 750: | Ligne 754: | ||
<code root> | <code root> | ||
- | chmod 0755 /etc/init.d/firewall-client.sh | + | chmod 0755 /etc/init.d/firewall-client.sh</code> |
- | chown root:root /etc/init.d/firewall-client.sh | + | <code root>chown root:root /etc/init.d/firewall-client.sh |
</code> | </code> | ||
Ligne 864: | Ligne 868: | ||
* En sortie : | * En sortie : | ||
- | iptables -A OUTPUT -o eth0 -s <ip_locale> -d <reseau_local/masque_de_reseau> -p <nom_du_protocole> --sport <nom_du_port> -m state --state RELATED,ESTABLISHED -j ACCEPT | + | iptables -A OUTPUT -o eth0 -s <ip_locale> -d <reseau_local/masque_de_reseau> -p <nom_du_protocole> --sport <nom_du_port> -m state --state ESTABLISHED -j ACCEPT |
> On précise que l'on accepte de laisser sortir de l'interface réseau, tout paquet dont la source est l'adresse ip correspondant à notre interface réseau, à destination de notre réseau local utilisant tel protocole, vers tel numero de port (ou service) dont l'état est 'relatif' ou 'établi' - en rapport avec la règle d'entrée. | > On précise que l'on accepte de laisser sortir de l'interface réseau, tout paquet dont la source est l'adresse ip correspondant à notre interface réseau, à destination de notre réseau local utilisant tel protocole, vers tel numero de port (ou service) dont l'état est 'relatif' ou 'établi' - en rapport avec la règle d'entrée. |