OVH Cloud OVH Cloud

iptables très restreint

4 réponses
Avatar
RedLums
Bonjour,

J'aimerais mettre en place a firewall mais inversé. en gros
J'aimerais que seul la navigation web puisse en sortir. (rentre qui veux).
Le problème c'est que je n'arrive pas a trouver les regles iptables à
mettre.(pas faute d'essayer).
Si une personne pouvais me donner les quelques lignes iptables à mettre ?...
:-)
eth0 en entrée
eth1 en sortie.

Merci

4 réponses

Avatar
Samuel
Bonjour,

Bonjour,
J'aimerais mettre en place a firewall mais inversé. en gros
J'aimerais que seul la navigation web puisse en sortir. (rentre qui veux).
Le problème c'est que je n'arrive pas a trouver les regles iptables à
mettre.(pas faute d'essayer).
Si une personne pouvais me donner les quelques lignes iptables à mettre ?...
:-)
eth0 en entrée
eth1 en sortie.


Dans quel sens ?

on dira :
lan=eth0
wan=eth1

C'est simple mais pas recommandé (si INPUT en ACCEPT):
Pour le forward :

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT

Ensuite tu n'acceptes que la sortie vers le net :

iptables -A FORWARD -i $lan -o $wan -p tcp ! --dport 80 -J REJECT

Par contre pour le forward en entrée faut faire de la redirection de port.

Samuel.

Avatar
Samuel
Bon j'ai uoblié un problème :

Pour que le web sorte, il faut au moins aussi laisser sortir DNS en tcp/udp.

Je te conseille si possible de mettre le DNS sur la passerelle et de
gérer les requête DNS en INPUT et OUTPUT :

iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED -J
ACCEPT
iptables -A INPUT -p tcp --dport 53 -m state --state ESTABLISHED -J ACCEPT

iptables -A OUTPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED -J
ACCEPT
iptables -A INPUT -p udp --dport 53 -m state --state ESTABLISHED -J ACCEPT

Samuel.
Avatar
Samuel
ARGHGH

iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED -J
ACCEPT
iptables -A INPUT -p tcp --dport 53 -m state --state ESTABLISHED -J ACCEPT
^

--sport

iptables -A OUTPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED -J
ACCEPT
iptables -A INPUT -p udp --dport 53 -m state --state ESTABLISHED -J ACCEPT
^

--sport

Samuel.

Avatar
Samuel
Re,

Le plus propre serait quand même de respecter la logique sécuritaire :

- On bloque TOUT :

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

- En entrée, on fait les redirection (DNAT) nécessaires :

iptables -t NAT -A PREROUTING -i $wan -p tcp --dport 25 -J DNAT
--to-destination $monserveur_mail

- on dit à netfilter d'accepter les paquets redirigés :

iptables -A FORWARD -i $wan -o $lan -p tcp --dport 25 -m state --state
NEW, ESTABLISHED -J ACCEPT
iptables -A FORWARD -i $lan -o $wan -p tcp --sport 25 -m state --state
ESTABLISHED -J ACCEPT

- Ensuite en sortie on accepte que le web et dns (si résolution client
sur DNS du FAI) :

services_wan_from_lan="53,80,443"

iptables -A FORWARD -i $lan -o $wan -p tcp -m multiport --dport
$services_wan_from_lan -m state --state NEW,ESTABLISHED -J ACCEPT
iptables -A FORWARD -i $wan -o $lan -p tcp -m multiport --sport
$services_wan_from_lan -m state --state ESTABLISHED -J ACCEPT

Ensuite dns en udp :

iptables -A FORWARD -i $lan -o $wan -p udp --dport 53 -m state --state
NEW,ESTABLISHED -J ACCEPT
iptables -A FORWARD -i $wan -o $lan -p udp --sport 53 -m state --state
ESTABLISHED -J ACCEPT

Voilà c'est plus propre.
Ensuite tu rajoutes tes ports TCP autorisés dans la variable
"services_wan_from_lan"

Voilà.
Samuel.