relecture page iptables
This commit is contained in:
parent
714332805a
commit
fe095661f5
123
HowtoIPTables.md
123
HowtoIPTables.md
|
@ -1,65 +1,130 @@
|
|||
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
|
||||
---
|
||||
categories: linux network firewall
|
||||
title: Howto netfilter
|
||||
...
|
||||
|
||||
# Howto IPTables
|
||||
* Documentation : <https://netfilter.org/documentation/>
|
||||
|
||||
<http://netfilter.org/>
|
||||
[netfilter](https://netfilter.org/) est la couche de firewalling sous Linux, contrôlable via les commandes `iptables` et `ip6tables`, ou plus récemment avec la commande `nft` (que nous n'utilisons pas encore). Sur les serveurs, nous utilisons notre script [minifirewall](https://forge.evolix.org/projects/minifirewall) permettant une gestion simple d'un firewall local.
|
||||
|
||||
_netfilter_ est la couche de firewalling sous Linux, gérable via la commande *iptables*.
|
||||
|
||||
## Firewall sur un serveur
|
||||
|
||||
Sur un serveur, nous gérons le firewall avec le script *minifirewall*.
|
||||
|
||||
### minifirewall
|
||||
|
||||
<https://forge.evolix.org/projects/minifirewall>
|
||||
|
||||
Cela s'installe ainsi :
|
||||
## Installation
|
||||
|
||||
~~~
|
||||
# [ -e /etc/firewall.rc ] && cp /etc/firewall.rc /etc/firewall.rc.bak
|
||||
# cd /etc && wget "https://forge.evolix.org/projects/minifirewall/repository/revisions/master/raw/firewall.rc" -O firewall.rc
|
||||
# apt install iptables
|
||||
~~~
|
||||
|
||||
~~~
|
||||
# iptables --version
|
||||
iptables v1.6.0
|
||||
|
||||
# modinfo iptable_filter
|
||||
filename: /lib/modules/4.9.0-6-amd64/kernel/net/ipv4/netfilter/iptable_filter.ko
|
||||
description: iptables filter table
|
||||
author: Netfilter Core Team <coreteam@netfilter.org>
|
||||
license: GPL
|
||||
depends: x_tables,ip_tables
|
||||
retpoline: Y
|
||||
intree: Y
|
||||
vermagic: 4.9.0-6-amd64 SMP mod_unload modversions
|
||||
parm: forward:bool
|
||||
~~~
|
||||
|
||||
|
||||
## Utilisation basique
|
||||
|
||||
Lister les règles dans les 3 tables filter/nat/mangle :
|
||||
|
||||
~~~
|
||||
# iptables -L -nvt filter --line-number
|
||||
# iptables -L -nvt nat --line-number
|
||||
# iptables -L -nvt mangle --line-number
|
||||
# ip6tables -L -nvt filter --line-number
|
||||
# ip6tables -L -nvt nat --line-number
|
||||
# ip6tables -L -nvt mangle --line-number
|
||||
~~~
|
||||
|
||||
Interdire toutes les connexions venant de l'IP 192.0.2.66 :
|
||||
|
||||
~~~
|
||||
# iptables -I INPUT -s 192.0.2.66 -j DROP
|
||||
~~~
|
||||
|
||||
Renvoyer les connexions exterieurs vers un port à un autre port (avec 192.0.2.42 l'IP du serveur local) :
|
||||
|
||||
~~~
|
||||
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to 192.0.2.42:22
|
||||
~~~
|
||||
|
||||
Désactiver toutes les règles et laisser tout passer :
|
||||
|
||||
~~~
|
||||
# iptables -P INPUT ACCEPT
|
||||
# iptables -P OUTPUT ACCEPT
|
||||
# iptables -P FORWARD ACCEPT
|
||||
# iptables -F -t filter
|
||||
# iptables -F -t nat
|
||||
# iptables -F -t mangle
|
||||
~~~
|
||||
|
||||
Sauvegarder les règles courantes dans un fichier, reinitialiser les règles à partir d'un fichier :
|
||||
|
||||
~~~
|
||||
# iptables-save > /tmp/IPT
|
||||
# ip6tables-save > /tmp/IP6T
|
||||
# iptables-restore /tmp/IPT
|
||||
# ip6tables-restore /tmp/IPT
|
||||
~~~
|
||||
|
||||
## minifirewall
|
||||
|
||||
[minifirewall](https://forge.evolix.org/projects/minifirewall) est un script Shell permettant une gestion simple d'un firewall local, idéal pour un serveur dédié (virtualisé ou non).
|
||||
|
||||
### Installation minifirewall
|
||||
|
||||
~~~
|
||||
# [ -e /etc/default/minifirewall ] && cp /etc/default/minifirewall /etc/default/minifirewall.old
|
||||
# cd /etc/default && wget "https://forge.evolix.org/projects/minifirewall/repository/revisions/master/raw/minifirewall.conf" -O minifirewall
|
||||
# cd /etc/init.d && wget "https://forge.evolix.org/projects/minifirewall/repository/revisions/master/raw/minifirewall" -O minifirewall
|
||||
# chmod 700 /etc/init.d/minifirewall
|
||||
# chmod 600 /etc/firewall.rc
|
||||
# chmod 600 /etc/default/minifirewall
|
||||
~~~
|
||||
|
||||
On peut ensuite gérer les règles via le fichier _/etc/firewall.rc_ et on peut ainsi :
|
||||
On peut ensuite gérer les règles via le fichier `/etc/default/minifirewall` et on peut ainsi :
|
||||
|
||||
~~~
|
||||
# /etc/init.d/minifirewall restart
|
||||
# /etc/init.d/minifirewall stop
|
||||
~~~
|
||||
|
||||
### Divers
|
||||
## FAQ
|
||||
|
||||
En cas de besoin de bannir temporairement une adresse IP :
|
||||
### Bannir une adresse IP
|
||||
|
||||
En cas de besoin de bannir temporairement une adresse IP 192.0.2.66 :
|
||||
|
||||
~~~
|
||||
# iptables -I INPUT -s IP_PIRATE -j DROP
|
||||
# iptables -I INPUT -s 192.0.2.66 -j DROP
|
||||
~~~
|
||||
|
||||
## NAT bidirectionnel
|
||||
### NAT bidirectionnel
|
||||
|
||||
~~~
|
||||
# iptables -t nat -A PREROUTING -i eth0 -d IP_publique -j DNAT --to-destination 10.1.2.3
|
||||
# iptables -t nat -A POSTROUTING -o eth0 -s 10.1.2.3 -j SNAT --to-source IP_publique
|
||||
~~~
|
||||
|
||||
## Exemples
|
||||
|
||||
### Autoriser toute une interface
|
||||
|
||||
Lorsqu'un serveur dispose de plusieurs interfaces, dont une pour un réseau local privé, on peut autoriser tout le trafic sur cette interface (ici "eth1") :
|
||||
Lorsqu'un serveur dispose de plusieurs interfaces, dont une pour un réseau local privé, on peut autoriser tout le trafic sur cette interface (ici "eth1") :
|
||||
|
||||
~~~
|
||||
/sbin/iptables -A INPUT -i eth1 -j ACCEPT
|
||||
# iptables -A INPUT -i eth1 -j ACCEPT
|
||||
~~~
|
||||
|
||||
### Autoriser la sortie sur un port
|
||||
|
||||
Exemple si on a un serveur Munin centralisé, il a besoin de joindre les "munin-node" :
|
||||
Exemple si on a un serveur Munin centralisé, il a besoin de joindre les _munin-node_ :
|
||||
|
||||
~~~
|
||||
/sbin/iptables -A INPUT -p tcp --sport 4949 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||
~~~
|
||||
# iptables -A INPUT -p tcp --sport 4949 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||
~~~
|
||||
|
|
Loading…
Reference in New Issue