OVH Cloud OVH Cloud

Nouveaux en iptables, que pensez vous de ceci?

8 réponses
Avatar
zoot
Pour un pc portable Mandrake 7.2 ( y peut pas plus :-((
qui ce connecte a internet ( via ppp ) uniquement pour downloader les
e-mails ( via fetchmail )
IFACE="ppp0"

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

iptables -A INPUT -i $IFACE -p udp --dport 22 -j ACCEPT
iptables -A INPUT -i $IFACE -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i $IFACE -p udp --sport 53 -j ACCEPT
iptables -A INPUT -i $IFACE -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -i $IFACE -p udp --sport 25 -j ACCEPT
iptables -A INPUT -i $IFACE -p tcp --sport 25 -j ACCEPT
iptables -A INPUT -i $IFACE -j DROP

iptables -A FORWARD -j DROP

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p udp --dport 25 -j ACCEPT

Merci d'avance
Zoot

8 réponses

Avatar
Cedric Blancher
Le Sat, 15 Apr 2006 03:39:18 +0000, zoot a écrit :
[Nouveaux en iptables, que pensez vous de ceci?]

Je pense que vous devriez lire un bon tutoriel sur iptables, en
particulier la partie sur le filtrage à état (state match), comme
celui-ci :

http://iptables-tutorial.frozentux.net/

Ensuite, vous devriez vous demandez sur vous faites souvent sur SSH ou du
SMTP sur UDP, si vous êtes bien sûr que fetchmail ne va pas chercher vos
emails en POP ou en IMAP[1], et enfin si vous êtes bien sûr de jamais
vouloir de SSH ou de HTTP sortant.

Enfin, vous n'avez pas de règle en OUTPUT pour laisser sortir les paquets
de retour des connexion SSH que vous laissez entrer (INPUT 1 et 2). Mais
ne vous focalisez pas là-dessus, il y a plus urgent à refaire.

Et je ne vous dit pas le résultat final parce que 1. vous n'avez pas
exprimé vos contraintes (en tout cas manifestement pas tout), 2. ça ne
vous rendra pas service, vous avez besoin de comprendre ce que vous
faites, et 3. parce qu'on s'en fout de savoir que je sais faire.


[1] En SMTP via ETRN ou ODMR, c'est quand même rare, mais cependant
possible


--
panic ("Splunge!");
2.2.16 /usr/src/linux/drivers/scsi/psi240i.c
Avatar
Kevin Denis
Le 15-04-2006, zoot a écrit :
Pour un pc portable Mandrake 7.2 ( y peut pas plus :-((
qui ce connecte a internet ( via ppp ) uniquement pour downloader les
e-mails ( via fetchmail )
IFACE="ppp0"

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

et les politiques par defaut? les -P?


iptables -A INPUT -i $IFACE -p udp --dport 22 -j ACCEPT


pour quoi faire? udp/22 ? (quoique meme si /etc/services
l'indique pour ssh, je ne suis pas sur de son importance)

iptables -A INPUT -i $IFACE -p tcp --dport 22 -j ACCEPT


bah la tu autorises les connexions ssh entrantes. Ca ne rentre pas
dans ton cahier des charges (uniquement des emails).

iptables -A INPUT -i $IFACE -p udp --sport 53 -j ACCEPT
iptables -A INPUT -i $IFACE -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -i $IFACE -p udp --sport 25 -j ACCEPT


et pourquoi en udp?
et pourquoi du port 25? rappatrier des emails, c'ets du port 110 (?!!)

iptables -A INPUT -i $IFACE -p tcp --sport 25 -j ACCEPT
iptables -A INPUT -i $IFACE -j DROP

iptables -A FORWARD -j DROP

ton poste n'a qu'une interface reseau? le FORWARD sert aux

paquets la traversant. Ca semble inutile

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT


Sauf que c'est du 110 et non du 25.

iptables -A OUTPUT -p udp --dport 25 -j ACCEPT

pas besoin de celui ci.


Sauf que la n'importe quel paquet avec en source port 22/25/53 et
destination port n'importe quoi se fait accepter.


iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -A OUTPUT -p tcp --dport 110 -d IP_du_serveur_POP -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

et ca devrait etre suffisant.
--
Kevin

Avatar
Laurent
zoot wrote:
Pour un pc portable Mandrake 7.2 ( y peut pas plus :-((
qui ce connecte a internet ( via ppp ) uniquement pour downloader les
e-mails ( via fetchmail )
IFACE="ppp0"

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD


Il me semble qu'un "iptables -F" tout court revient au même en vidant
toutes les chaînes de la table "filter".

On peut aussi spécifier les rêgles par défaut du firewall ainsi :

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

On est sûr ainsi que notre firewall bloque tout par défaut. Il ne reste
qu'à ouvrir ce qu'il faut.


iptables -A INPUT -i $IFACE -p udp --dport 22 -j ACCEPT
iptables -A INPUT -i $IFACE -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i $IFACE -p udp --sport 53 -j ACCEPT
iptables -A INPUT -i $IFACE -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -i $IFACE -p udp --sport 25 -j ACCEPT
iptables -A INPUT -i $IFACE -p tcp --sport 25 -j ACCEPT
iptables -A INPUT -i $IFACE -j DROP


Cette méthode est amha dangereuse, car accepter du traffic extérieur en
spécifiant un port source en "dur" permet à n'importe qui de contourner
les rêgles du firewall.

Il est plus que conseillé d'utiliser la fonction stateful de netfilter,
à l'aide de conntrack, par exemple comme ceci:

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p udp --dport 25 -j ACCEPT

iptables -A INPUT -i $IFACE -m state --state ESTABLISHED -j ACCEPT

Ce qui authorise *seulement* le traffic correspondant aux connections
que l'*on* à établi et rien d'autre.

Merci d'avance
J'espère vous avoir aidé


Voici un tutoriel par trop mal à mon goût pour commencer à appréhender
netfilter/iptables:

http://olivieraj.free.fr/fr/linux/information/firewall/fw-03.html

--
Laurent

Avatar
Pascal Hambourg
Salut,

[...]
iptables -A INPUT -i $IFACE -p tcp --sport 25 -j ACCEPT
iptables -A INPUT -i $IFACE -j DROP


Cette méthode est amha dangereuse, car accepter du traffic extérieur en
spécifiant un port source en "dur" permet à n'importe qui de contourner
les rêgles du firewall.


En effet. On peut toutefois limiter le risque en fixant la plage de
ports locaux avec le paramètre du noyau net/ipv4/ip_local_port_range et
en spécifiant cette plage de port comme destination acceptable dans les
règles iptables.
Par exemple :

echo "33001 40000" > /proc/sys/net/ipv4/ip_local_port_range
iptables -A INPUT -i $IFACE -p tcp --sport 25 --dport 33001:40000
-j ACCEPT

Mais il est évidemment préférable d'utiliser le suivi de connexion.

Il est plus que conseillé d'utiliser la fonction stateful de netfilter,
à l'aide de conntrack, par exemple comme ceci:
[...]

iptables -A INPUT -i $IFACE -m state --state ESTABLISHED -j ACCEPT

Ce qui authorise *seulement* le traffic correspondant aux connections
que l'*on* à établi et rien d'autre.


J'autoriserais aussi l'état RELATED, afin de ne pas bloquer les messages
d'erreur ICMP.


Avatar
Eric Lalitte
"zoot" wrote in message
news:
Pour un pc portable Mandrake 7.2 ( y peut pas plus :-((
qui ce connecte a internet ( via ppp ) uniquement pour downloader les
e-mails ( via fetchmail )
IFACE="ppp0"

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD


Tu n'appliques pas de politique par défaut ? à priori tout est en
accept...

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

iptables -A INPUT -i $IFACE -p udp --dport 22 -j ACCEPT


Hu ? qu'est-ce qui circule sur le port 22 en udp ?

iptables -A INPUT -i $IFACE -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i $IFACE -p udp --sport 53 -j ACCEPT
iptables -A INPUT -i $IFACE -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -i $IFACE -p udp --sport 25 -j ACCEPT


Même question ici pour le port 25 ?

iptables -A INPUT -i $IFACE -p tcp --sport 25 -j ACCEPT


Pourquoi fais-tu un filtrage sur le port source ? qui est à priori
aléatoire.
Si tu veux filtrer les réponses, utilise les états.

Par ailleurs, fais un filtrage plus précis sur les premiers paquets,
notamment sur les flags tcp, le sens de la connexion, les adresses IP,
etc.

iptables -A INPUT -i $IFACE -j DROP
iptables -A FORWARD -j DROP


Inutile si tu as mis les politiques par défaut à drop. Tu peux mettre
des règles de cette sorte si tu veux logger ou faire autre chose que
du drop, mais sinon c'est redondant.

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p udp --dport 25 -j ACCEPT


Rien sur les états ?
Iptables est un firewall à états donc regarde ce que cela implique
et ajoute les règles qui vont bien pour en tenir compte.
Oskar Andreasson a fait un excellent tutorial pour bien comprendre
iptables. Il est nécessaire de le lire pour:
- Savoir comment marche iptables, qui n'est pas simple du tout,
- Utiliser les états,
- Ne pas faire un ruleset qui ne fait pas ce qu'on pense qu'il fait.

De manière générale, l'efficacité d'un firewall est essentiellement
dans les règles qui lui sont appliquées. Si tu n'es pas sûr d'en avoir
bien compris les concepts, tu peux utiliser un outil de configuration
graphique comme fwbuilder. Ou alors te plonger dans la doc :-)

Bon courage.


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Avatar
Eric Belhomme
Kevin Denis wrote in
news::

iptables -A INPUT -i $IFACE -p udp --sport 53 -j ACCEPT
iptables -A INPUT -i $IFACE -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -i $IFACE -p udp --sport 25 -j ACCEPT


et pourquoi en udp?
et pourquoi du port 25? rappatrier des emails, c'ets du port 110 (?!!)

iptables -A INPUT -i $IFACE -p tcp --sport 25 -j ACCEPT
iptables -A INPUT -i $IFACE -j DROP

parce que DNS utilise le port udp 53, et accessoirement le port tcp 53


par contre le port udp/25 n'a pas de raison d'être ouvert (smtp est
uniquement tcp)
pour l'utilité d'ouverir smtp, peut-etre zoot utilise-t-il sont propre
MTA pour envoyer ses mails ?

iptables -A FORWARD -j DROP

ton poste n'a qu'une interface reseau? le FORWARD sert aux

paquets la traversant. Ca semble inutile

oui et non. Une interface physique ne signifie pas forcément une seule

interface logique (adresse de loopback, forward ssh,...)

iptables -P FORWARD DROP
pour passer la politique par défaut de la table FORWARD à DROP

--
Rico


Avatar
Pascal Hambourg

iptables -A FORWARD -j DROP


ton poste n'a qu'une interface reseau? le FORWARD sert aux
paquets la traversant. Ca semble inutile


oui et non. Une interface physique ne signifie pas forcément une seule
interface logique (adresse de loopback, forward ssh,...)


Je vois mal comment il pourrait y avoir du forward IP entre l'interface
de loopback et une autre interface réseau. Quant au "port forwarding" de
SSH, à ma connaissance il ne crée pas de nouvelle interface réseau, ce
n'est pas du forwarding au sens de Netfilter.



Avatar
zoot
Tout d abord merci a tous.
Quelques precisions aussi,
j utile PPP pour me connecter a mon ISP uniquement pour recevoir mes
e-mails par fetchmail, qui redirege les mail entrant vers
l'uutilisateur final via sendmail ( d'ou porte 25 )
et pour me connecter au bureaux d'ou je recois mes e-mails par
fetchmail,,, mais aussi je me connecte via ssh, http ( j'avais oublier
celui-la ) et une connection vers Mysql ( porte 5000 , non standard )

Aussi, de temps en temps, mon ordinateur maison, ce connecte au bureau,
m'envoie un e-mail ( avec son addresse qui varie ) et je peut ainsi
'travailler' sur mon ordinateur tout en restant au bureau, oui je sais
c'est tres trres mal ;-),

je ne reste pas tres longtemp connecter a mon ISP, +/- 5 minutes, le
resique n'est donc pas tres grand, je reste souvent connecte toute la
journee vers le bureau, et les connection ' automatique sont limitee a
Qq minutes / heures.

Le reisque vers le bureaux est forcement liui aussi limite quoique!!

Mais je souhaite ameliorer mes connaisances iptables.

Merci encore a tous.
Zoot
CU