#1 Le 05/12/2009, à 00:54
- oliver2004
[RÉSOLU !!]Problème de configuration iptables
[EDIT] SOLUTION DU PROBLÈME...
Bonjour à tous,
Je ne suis sans doute pas le seul à avoir rencontré ce problème: le montage d'un réseau NFS au travers d'un firewall (iptables).
Bref, pour vous éviter de lire tout le contenu du topic, j'édite ce premier message pour vous donner d'ores et déjà la solution. Le problème était le suivant, après avoir fait de mon serveur un routeur/firewall je n'arrivais pas à monter mon réseau local NFS.
La solution se trouve sur ce lien: http://smhteam.info/wiki/index.linux.php5?wiki=NFS, que vous pouvez aller voir, je passe ci dessous un résumé pour vous faciliter la vie... :)
Donc quand on met un firewall en place via netfilter/iptables, on ferme les ports et alors NFS ne peut monter le réseau car par défaut NFS (nfs-kernel-server) monte les différents dossiers sur les machines clientes par des ports choisi aléatoirement, du coup, ce serait un coup de chance qu NFS choisisse les ports qui ont été ouverts dans le firewall par iptables au lancement du serveur...
Il faut donc figer les ports dans certains fichiers nfs-kernel-server.
Faites donc les modifications suivantes sur le serveur:
Pour fixer le port pour le sevice RPC mountd, il faut éditer le fichier /etc/default/nfs-kernel-server et modifier la ligne RPCMOUNTDOPTS en y ajoutant l'option 'p' indiquant le choix du port.
Faites donc un:
sudo nano /etc/default/nfs-kernel-server # Bien sur avec nano ou vi ou autre éditeur...
et éditez la ligne en question comme ceci:
RPCMOUNTDOPTS="-p 32767"
Ensuite éditer le fichier /etc/default/nfs-common avec un:
sudo nano /etc/default/nfs-common
Et éditez la ligne en question comme ceci:
STATDOPTS="--port 32765 --outgoing-port 32766"
Ensuite éditez le fichier /etc/modprobe.d/options.local avec un:
sudo nano /etc/modprobe.d/options.local
Et rajoutez la ligne suivante à la fin du fichier:
options lockd nlm_udpport=32768 nlm_tcpport=32768
Votre fichier iptables doit ouvrir les ports suivants:
iptables -A INPUT -p tcp --dport 111 -j ACCEPT
iptables -A INPUT -p udp --dport 111 -j ACCEPT
iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
iptables -A INPUT -p udp --dport 2049 -j ACCEPT
iptables -A INPUT -p tcp --dport 32765:32768 -j ACCEPT
iptables -A INPUT -p udp --dport 32765:32768 -j ACCEPT
Rebootez le serveur, si possible aussi les machines clientes, sinon, après chargement du serveur un petit sudo mount -a devrait suffire.
Normalement, plus de souci, en tout cas, le problème a été résolu pour moi, après tout de même plus d'une semaine à m'arracher les cheveux... :P
Je tiens à remercier diodio13fr qui a trouvé le lien en question, après avoir lui aussi chercher comme moi la solution à cet épineux problème...
À vos claviers si vous avez ce problème!!
Ps: si vous voyez une erreur ou un oubli dans ce que je viens d'écrire, n'hésitez pas à me contacter pour correction.
Chau à tous
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
Bonjour à tous, j'ai mis en place un script suivant divers tutos mais je rencontre un petit souci.
J'ai dans mes bureaux un serveur ubuntu LTS 8.04 server edition que je configure peu à peu car l'installation est récente (je me suis bien amusé... ), le serveur a été transformé en routeur et je dispose actuellement de 5 machines clientes, nous sommes une petite entreprise. Bref, après bien des déboires j'ai réussi à mettre en place le réseau en transformant le seveur en router, ceci pour permettre le partage de fichiers et surtout d'internet, le tout géré par le firewall et iptables...
Le truc c'est que quand je redémarre iptables, plus d'internet pour les machines clientes... par contre le serveur ping bien vers l'extérieur et vers les machines clientes. Inversement, le réseau local est fonctionnel, donc ping vers le serveur est ok...
Voici le script, si quelqu'un pouvais me filer un coup de main... ce serait grandement apprécié par le néophyte que je suis...
# CONFIGURATION DU FIREWALL DU SERVEUR: MISE EN PLACE DES RÈGLES DE FILTRAGE
# On efface les règles précédentes pour partir sur de bonnes bases:
iptables -t filter -F
iptables -t filter -X
# On bloque tout le traffic
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
# On autorise les connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# On autorise le ping (cas particulier car protocole sans port défini)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# On autorise le loopback (localhost)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# On autorise le réseau local
iptables -t filter -A INPUT -i 192.168.0.0/24 -j ACCEPT
iptables -t filter -A OUTPUT -i 192.168.0.0/24 -j ACCEPT
# On permet aux machines clientes d'avoir le relai internet du serveur
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
# Ouverture du port 80 pour le http (ici, konqueror...)
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# Ouverture du port ssh -> 2698 et non 22 comme c'est le cas par défaut
iptables -t filter -A OUTPUT -p tcp --dport 2698 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 2698 -j ACCEPT
# Ouverture du port ftp -> 21
iptables -t filter -A OUTPUT -p tcp --dport 21 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT
# ouverture du port SMTP (courrier sortant) -> 587 au lieu de 25
iptables -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 587 -j ACCEPT
# Ouverture du port POP3 (courrier entrant) -> 299 au lieu de 110
iptables -t filter -A OUTPUT -p tcp --dport 299 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 299 -j ACCEPT
# Ouverture du port DNS Port 53
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
# NTP (horloge du serveur)
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
Du coup, pour avoir internet sur les machines clientes du bureau (sans ça, ben on pourrait pas bosser...), je suis obligé de commenter toutes les lignes sauf:
# On permet aux machines clientes d'avoir le relai internet du serveur
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
Vous voyez une erreur? Est ce que je place mal les commandes de filtrage?
Dernière modification par oliver2004 (Le 10/12/2009, à 16:48)
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#2 Le 05/12/2009, à 01:26
- diodio13fr
Re : [RÉSOLU !!]Problème de configuration iptables
quand tu dis qu'il faut que tu commente toutes les lignes..... tu commente également celles là: ???
# On bloque tout le traffic
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
si c'est le cas c'est mal!
essaye
# On autorise les connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT #ce qui revient à "iptables -P OUTPUT ACCEPT"
#mais d'un autre côté à moins que ton serveur/routeur soit un botnet tout le trafic sortant peut être autorisé
Dernière modification par diodio13fr (Le 05/12/2009, à 01:39)
█▒▒▒░░
Hors ligne
#3 Le 05/12/2009, à 02:43
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
quand tu dis qu'il faut que tu commente toutes les lignes..... tu commente également celles là: ???
# On bloque tout le traffic iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP
si c'est le cas c'est mal!
essaye# On autorise les connexions déjà établies iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT #ce qui revient à "iptables -P OUTPUT ACCEPT" #mais d'un autre côté à moins que ton serveur/routeur soit un botnet tout le trafic sortant peut être autorisé
Salut
Ben oui, c'est bien là le problème, mais bon, je suppose qu'une fois les lignes commentées et la machine rebootée, ça revient simplement à la config initiale.
Donc je n'ai toujours pas internet sur les machines clientes lorsque les règles iptables sont décommentées: est ce qu'il faut ouvrir un port en particulier pour l'accès à internet que je n'aurais pas ordonné dans les règles? Je disais dans le premier message que le serveur avait accès à internet, oui et non, en fait je n'en suis pas sûr, je pinge, mais en même temps le ping est autorisé par les règles, donc je ne sais pas en fait si le serveur a accès ou pas à internet en réalité, vu que c'est une édition serveur, comment le savoir? puisque c'est que de la ligne de commande?
Dernière modification par oliver2004 (Le 05/12/2009, à 02:51)
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#4 Le 05/12/2009, à 03:05
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
Si, quand les lignes sont décommantées donc les règles actives, le serveur a bien accès à internet (en plus du ping): j'ai installé lynx et j'arrive à naviguer sans souci... avec le serveur, mais aucunement avec les machines clientes...
Uhmm, bizarre, le MASQUERADE semble inactivé par les règles d'ouverture et fermeture des ports...
Quelqu'un aurait une idée? Merci d'avance
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#5 Le 05/12/2009, à 05:38
- diodio13fr
Re : [RÉSOLU !!]Problème de configuration iptables
tu as essayé je que je t'ai dis dans mon 1° post? C'est vrai que la différence est peu visible ^^
j'ai rajouté l'état NEW pour les connexions sortantes.
█▒▒▒░░
Hors ligne
#6 Le 05/12/2009, à 14:06
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
Oui j'ai essayé, tout un tas de combinaisons en fait mais rien n'y fait, dès que j'active les règles, plus d'internet pour les machines clients. Par contre le serveur a internet sans souci (testé avec lynx).
C'est bien embêtant cette histoire
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#7 Le 05/12/2009, à 14:35
- diodio13fr
Re : [RÉSOLU !!]Problème de configuration iptables
j'ai trouvé ca
(Ajoutez les règles pour le NAT)
# iptables -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.0.0 -j DROP
# iptables -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.0.0 -j ACCEPT
# iptables -A FORWARD -i ${WAN} -d 192.168.0.0/255.255.0.0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
sur un tuto gentoo http://www.gentoo.org/doc/fr/home-router-howto.xml
et en y réfléchissant tu ne FORWARD pas les paquets qui reviennent vers un client le tuto semble pas trop mal foutu jette y un coup d'oeil et si tu trouve donne la réponse ca pourrait me servir un jour
█▒▒▒░░
Hors ligne
#8 Le 05/12/2009, à 14:55
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
j'ai trouvé ca
(Ajoutez les règles pour le NAT) # iptables -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.0.0 -j DROP # iptables -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.0.0 -j ACCEPT # iptables -A FORWARD -i ${WAN} -d 192.168.0.0/255.255.0.0 -j ACCEPT # iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
sur un tuto gentoo http://www.gentoo.org/doc/fr/home-router-howto.xml
et en y réfléchissant tu ne FORWARD pas les paquets qui reviennent vers un client le tuto semble pas trop mal foutu jette y un coup d'oeil et si tu trouve donne la réponse ca pourrait me servir un jour
Bien vu!! Je pense que la réponse est là. J'essayerai d'aller au bureau tout à l'heure pour faire un test. Je reviens une fois le résultat obtenu que j'espère positif!! :)
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#9 Le 06/12/2009, à 16:25
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
Ça marche!!!! J'ai internet sur les machines clientes... MAIS, j'ai plus de réseau local !!! :lol::lol::lol:
Voici donc mes iptables:
# On efface les règles précédentes pour partir sur de bonnes bases:
iptables -t filter -F
iptables -t filter -X
#iptables -t nat -F
# On bloque tout le traffic
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
# On autorise les connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# On autorise le ping (cas particulier car protocole sans port défini)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# On autorise le loopback (localhost)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# On autorise le réseau local
iptables -t filter -A INPUT -i 192.168.0.0/24 -j ACCEPT
iptables -t filter -A OUTPUT -o 192.168.0.0/24 -j ACCEPT
# Ouverture du port 80 pour le http si on héberge un site internet
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# Ouverture du port ssh -> 2698 et non 22 comme c'est le cas par défaut
iptables -t filter -A OUTPUT -p tcp --dport 2698 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 2698 -j ACCEPT
# ouverture du port SMTP (courrier sortant) -> 587 au lieu de 25
iptables -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 587 -j ACCEPT
# Ouverture du port POP3 (courrier entrant) -> 299 au lieu de 110
iptables -t filter -A OUTPUT -p tcp --dport 299 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 299 -j ACCEPT
# Ouverture du port DNS Port 53
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
# NTP (horloge du serveur)
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
# On permet aux machines clientes d'avoir le relai internet du serveur
iptables -I FORWARD -i eth1 -d 192.168.0.0/255.255.255.0 -j DROP
iptables -A FORWARD -i eth1 -s 192.168.0.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.0.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Voyez vous ce qui pourrait clocher?
Dernière modification par oliver2004 (Le 06/12/2009, à 16:25)
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#10 Le 06/12/2009, à 16:39
- diodio13fr
Re : [RÉSOLU !!]Problème de configuration iptables
je pense que c'est cette ligne qui fout le bordel
iptables -I FORWARD -i eth1 -d 192.168.0.0/255.255.255.0 -j DROP
elle jette tout ce qui qui arrive sur eth1 (c'est l'interface réseau coté lan c'est ça?) devant etre FORWARDé à destination du réseau local 192.168.0.0/24
█▒▒▒░░
Hors ligne
#11 Le 06/12/2009, à 16:44
- karch
Re : [RÉSOLU !!]Problème de configuration iptables
Les règles me semblent correctes, bien que je mettrais ACCEPT ici:
iptables -t filter -P FORWARD -j DROP
iptables -t filter -P OUTPUT DROP
Et enleverais toutes les chaines FORWARD et OUTPUT
Je remplacerais :
# On permet aux machines clientes d'avoir le relai internet du serveur
iptables -I FORWARD -i eth1 -d 192.168.0.0/255.255.255.0 -j DROP
iptables -A FORWARD -i eth1 -s 192.168.0.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.0.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Par :
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
Il faut aussi que tu active le forwarding dans le noyau, à savoir il faut que tu ais 1 dans ce fichier :
/proc/sys/net/ipv4/ip_forward
Si ce n'est pas le cas, tape dans un terminal :
sudo echo 1 >/proc/sys/net/ipv4/ip_forward
Tu peux, de plus, ajouter cette ligne (sans le sudo) dans ton script de lancement d'iptables (/etc/init.d/iptables je penses) dans la section :
start() {
...
}
pour que le forwarding noyau soit effectif au lancement de ton pc
Dernière modification par karch (Le 06/12/2009, à 16:48)
Hors ligne
#12 Le 06/12/2009, à 17:33
- manu_greta
Re : [RÉSOLU !!]Problème de configuration iptables
salut
En fait il me semble qu'il y a un problème de principe
Les règle INPUT et OUTPUT me semble bien faite (On DROP tout par défaut, puis on autorise ce que l'on veut)
Les règles de FORWARD me semble inexacte.
En effet, le POSTROUTING n'agit pas sur les autorisations du type FORWARD, il ne fait que du nat.
Donc il faut ajouter des règles de FORWARD pour chaque protocole a laisser passer
du genre :
iptables -A FORWARD -o $C_INTERNET -p tcp --sport $CLIENT --dport $POP -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -i $C_INTERNET -p tcp --sport $POP --dport $CLIENT -m state --state ESTABLISHED,RELATED -j ACCEPT
Les règle qui ont été misent :
iptables -A FORWARD -i eth1 -s 192.168.0.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.0.0/255.255.255.0 -j ACCEPT
Elles semblent fonctionner mais en faite elles permettent de tout faire traverser le routeur, donc il n'y a plus de firewall pour les machines derrière le nat
Si tu veux comprendre ce qui ce passe tu peux lire ça :
http://irp.nain-t.net/doku.php/130netfilter:start
C'est pas un tuto, c'est plutot un cours netfilter, mais c'est claire et bien fait
Hors ligne
#13 Le 06/12/2009, à 18:38
- diodio13fr
Re : [RÉSOLU !!]Problème de configuration iptables
@manu:
je suis plutot d'accord avec toi sauf sur cette regle:
iptables -A FORWARD -i eth1 -s 192.168.0.0/255.255.255.0 -j ACCEPT
je suis plutot du genre à considérer le trafic sortant comme sûr et désiré donc je ne filtre jamais dans ce sens là,mais c'est personnel.
par contre sur le trafic entrant en faisant du suivi de connexion ca devrait etre bon
iptables -A FORWARD -i eth0 -d 192.168.0.0/255.255.255.0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
et je persiste à dire que c'est cette ligne qui fout le bordel
iptables -I FORWARD -i eth1 -d 192.168.0.0/255.255.255.0 -j DROP
elle jette tout ce qui qui arrive sur eth1 (c'est l'interface réseau coté lan c'est ça?) devant etre FORWARDé à destination du réseau local 192.168.0.0/24
Dernière modification par diodio13fr (Le 06/12/2009, à 18:41)
█▒▒▒░░
Hors ligne
#14 Le 06/12/2009, à 20:13
- manu_greta
Re : [RÉSOLU !!]Problème de configuration iptables
Je suis d'accord sur la ligne qui fout le bordel
Pour le reste, j'aime bien contrôler le trafic dans tout les sens. particulièrement dans le cadre d'une entreprise.
Avec les règles que tu proposes :
- tout ce qui sort est accepté
- tout ce qui rentre en relation avec quelque chose qui est sortie est accepté
Cela veut dire que l'intérieur du réseau fait ce qu'il veut
Si un méchant malware veut, de l'intérieur du réseau, établir une connexion sur n'importe quel port, il peut.
C'est un peut trop simple à mon gout pour une entreprise
mais ça marche
Hors ligne
#15 Le 06/12/2009, à 20:35
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
Je suis d'accord sur la ligne qui fout le bordel
Pour le reste, j'aime bien contrôler le trafic dans tout les sens. particulièrement dans le cadre d'une entreprise.
Avec les règles que tu proposes :
- tout ce qui sort est accepté
- tout ce qui rentre en relation avec quelque chose qui est sortie est acceptéCela veut dire que l'intérieur du réseau fait ce qu'il veut
Si un méchant malware veut, de l'intérieur du réseau, établir une connexion sur n'importe quel port, il peut.
C'est un peut trop simple à mon gout pour une entreprise
mais ça marche
J'ai commenté la ligne qui semble bloquer, par ssh car je suis en ce moment à la maison (youpi c'est dimanche!), je verrai donc demain si ça marche une fois sur place dans le réseau local en tant que client du serveur. Donc selon toi les règles que je propose (et qu'en fait j'ai pris un peu partout sur différents tutos, mais je suis en train de lire sur le sujet) ne sont pas assez approfondies pour donner une bonne sécurité, car dans ce cas, de l'intérieur (en local depuis une machine cliente par exemple) un malware pourrait se connecter à ce moment par un port x à une machine extérieure. Comment faire alors pour éviter ce cas de figure?
Dernière modification par oliver2004 (Le 06/12/2009, à 20:41)
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#16 Le 06/12/2009, à 21:03
- B@rtounet
Re : [RÉSOLU !!]Problème de configuration iptables
J'ai pas lu tout le post, quelque chose ma surement échapé, mais quel rapport entre le routeur et le réseau local ? tu as plusieurs sous réseaux?
Si tous tes postes clients sont dans le meme sous réseau, ( par exemple 192.168.1.0/24) dans ce cas ils n'ont pas besoin de routeur pour communiquer entre eux...
Ils passent directement par le switch et les adresses mac... (table arp: couche 2 du modèle OSI)
Hors ligne
#17 Le 06/12/2009, à 21:25
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
J'ai pas lu tout le post, quelque chose ma surement échapé, mais quel rapport entre le routeur et le réseau local ? tu as plusieurs sous réseaux?
Si tous tes postes clients sont dans le meme sous réseau, ( par exemple 192.168.1.0/24) dans ce cas ils n'ont pas besoin de routeur pour communiquer entre eux...
Ils passent directement par le switch et les adresses mac... (table arp: couche 2 du modèle OSI)
Bonjour B@rtounet,
J'ai en fait un routeur qui m'est donné par mon FAI, mais comme ce routeur n'a que 4 ports et que j'ai pour le moment 5 machines clientes en fonctionnement à part le serveur et sans doute plus dans un avenir peu lointain, j'ai donc fait de mon serveur un routeur avec 2 cartes réseau, pour principalement pouvoir contrôler le trafic entrant et sortant à l'aide de règles donnée à iptables depuis le serveur/routeur.
Mon schéma est le suivant:
Internet >> Routeur du FAI IP locale 192.168.1.1 >> Serveur/routeur IP locale 192.168.1.2 entrant IP 192.168.0.1 Sortant Firewall iptables >> Swich >> << machines clientes réseau 192.168.0.0/24
Le problème est que je suis nouveau sur ce terrain (déjà configurer le serveur et le réseau a été toute une aventure... et donc les iptables, je ne domine pas encore
Dernière modification par oliver2004 (Le 06/12/2009, à 21:26)
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#18 Le 06/12/2009, à 22:40
- manu_greta
Re : [RÉSOLU !!]Problème de configuration iptables
Ce que tu as fait pour ton routeur avec les règles INPUT et OUTPUT va dans le bon sens.
Tu contrôle le trafic entrant et sortant du routeur, c'est à dire le trafic a destination du routeur ou émanent du routeur
Pour ce qui concerne le trafic traversant le routeur, les machines internes au réseau, seules les règles FORWARD permettent de contrôler le trafic. Les règles INPUT et OUTPUT ne servent à rien.
Si tu veux contrôler le trafic il faut faire avec le trafic traversant se que tu as fait avec le trafic entrant et sortant. Le malware n'était qu'un exemple, les règles de FORWARD que tu proposent ne filtre rien.
Je te propose ce que j'ai mis en place plusieurs fois et que tu pourra adapter
# CONFIGURATION DU FIREWALL DU SERVEUR: MISE EN PLACE DES RÈGLES DE FILTRAGE
# On efface les règles précédentes pour partir sur de bonnes bases:
iptables -t filter -F
iptables -t filter -X
# On bloque tout le traffic
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
# On autorise les connexions déjà établies
# avec ça on n'a plus qu'a gerer l'initialisation
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# On autorise le ping (cas particulier car protocole sans port défini)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# On autorise le loopback (localhost)
# impératif
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# On autorise le réseau local
iptables -t filter -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -t filter -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
# machine locale en client
# Ouverture du port 80 pour le http (ici, konqueror...)
iptables -t filter -A OUTPUT -p tcp --dport 80 -m state --state ! INVALID -j ACCEPT
# Ouverture du port ssh -> 2698 et non 22 comme c'est le cas par défaut
iptables -t filter -A INPUT -p tcp --dport 2698 -m state --state ! INVALID -j ACCEPT
# Ouverture du port ftp -> 21
iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT
# ouverture du port SMTP (courrier sortant) -> 587 au lieu de 25
iptables -t filter -A INPUT -p tcp --dport 587 -m state --state ! INVALID -j ACCEPT
# Ouverture du port POP3 (courrier entrant) -> 299 au lieu de 110
iptables -t filter -A INPUT -p tcp --dport 299 -m state --state ! INVALID -j ACCEPT
# Ouverture du port DNS Port 53
iptables -t filter -A OUTPUT -p tcp --dport 53 -m state --state ! INVALID -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -m state --state ! INVALID -j ACCEPT
# NTP (horloge du serveur)
iptables -t filter -A OUTPUT -p udp --dport 123 -m state --state ! INVALID -j ACCEPT
# machine locale en tant que server (port <1024 entrant)
# si la machine n'est pas serveur, tout commenter
# Ouverture du port 80 pour le http (ici, konqueror...)
iptables -t filter -A INPUT -p tcp --dport 80 -m state --state ! INVALID -j ACCEPT
# Ouverture du port ssh -> 2698 et non 22 comme c'est le cas par défaut
iptables -t filter -A INPUT -p tcp --dport 2698 -m state --state ! INVALID -j ACCEPT
# Ouverture du port ftp -> 21
iptables -t filter -A INPUT -p tcp --dport 21 -m state --state ! INVALID -j ACCEPT
# ouverture du port SMTP (courrier sortant) -> 587 au lieu de 25
iptables -t filter -A INPUT -p tcp --dport 587 -m state --state ! INVALID -j ACCEPT
# Ouverture du port POP3 (courrier entrant) -> 299 au lieu de 110
iptables -t filter -A INPUT -p tcp --dport 299 -m state --state ! INVALID -j ACCEPT
# Ouverture du port DNS Port 53
iptables -t filter -A INPUT -p tcp --dport 53 -m state --state ! INVALID -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -m state --state ! INVALID -j ACCEPT
# NTP (horloge du serveur)
iptables -t filter -A OUTPUT -p udp --dport 123 -m state --state ! INVALID -j ACCEPT
# le trafic entrant et sortant est sécurisé
# il faut maitenant sécurisé le trafic tranversant
# on supose qu'il n'y a que des machines clientes dans le réseau
# web
iptables -A FORWARD -d 192.168.1.2 -p tcp --sport 1024: --dport 80 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport 80 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -d 192.168.1.2 -p tcp --sport 1024: --dport 8080 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport 8080--dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
# courier rentrant
iptables -A FORWARD -d 192.168.1.2 -p tcp --sport 1024: --dport 110 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport 110 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -d 192.168.1.2 -p tcp --sport 1024: --dport 143 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport 143 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
#courrier sortant
iptables -A FORWARD -d 192.168.1.2 -p tcp --sport 1024: --dport 25 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport 25 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
# FTP
iptables -A FORWARD -d 192.168.1.2 -p tcp --sport 1024: --dport 20:21-m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport 20:21 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
# DNS
iptables -A FORWARD -d 192.168.1.2 -p udp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p udp --sport 53 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -d 192.168.1.2 -p tcp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport 53 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSL
iptables -A FORWARD -d 192.168.1.2 -p tcp --sport 1024: --dport 443 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport 443 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH
iptables -A FORWARD -d 192.168.1.2 -p tcp --sport 1024: --dport 22 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport 22 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
# Flitrage special pour spamassassin
iptables -A FORWARD -d 192.168.1.2 -p tcp --dport $RAZORPING -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport $RAZORPING -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -d 192.168.1.2 -p tcp --dport $RAZOR -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p tcp --sport $RAZOR -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -d 192.168.1.2 -p udp --dport $DCC -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -p udp --sport $DCC -m state --state ESTABLISHED,RELATED -j ACCEPT
# On permet aux machines clientes d'avoir le relai internet du serveur
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
bon courage
Hors ligne
#19 Le 06/12/2009, à 23:12
- diodio13fr
Re : [RÉSOLU !!]Problème de configuration iptables
Je suis d'accord sur la ligne qui fout le bordel
Pour le reste, j'aime bien contrôler le trafic dans tout les sens. particulièrement dans le cadre d'une entreprise.
Avec les règles que tu proposes :
- tout ce qui sort est accepté
- tout ce qui rentre en relation avec quelque chose qui est sortie est acceptéCela veut dire que l'intérieur du réseau fait ce qu'il veut
Si un méchant malware veut, de l'intérieur du réseau, établir une connexion sur n'importe quel port, il peut.
C'est un peut trop simple à mon gout pour une entreprise
mais ça marche
C'est pas faux mais à la rigueur je préfèrerai "cibler" un peu mieux le trafic sortant mais sur chaque machine cliente.
Bon après je n'ai qu'un réseau perso et n'ai jamais administré de réseau d'entreprise
Je garde dans un coins tes règles de filtrage elle pourraient me servir un jour
Dernière modification par diodio13fr (Le 06/12/2009, à 23:14)
█▒▒▒░░
Hors ligne
#20 Le 07/12/2009, à 17:39
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
Bon, ça ne marche toujours pas: j'ai internet sur les machines clientes, mais pas de réseau tel que le fichier iptables est lu au lancement du serveur.
Le voici:
pukaninaserver@pukaninaserver:~$ cat /etc/init.d/iptables
# On efface les règles précédentes pour partir sur de bonnes bases:
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
# On bloque tout le traffic
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
# On autorise les connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# On autorise le ping (cas particulier car protocole sans port défini)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# On autorise le loopback (localhost)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# On autorise le réseau local
iptables -t filter -A INPUT -i 192.168.0.0/24 -j ACCEPT
iptables -t filter -A OUTPUT -o 192.168.0.0/24 -j ACCEPT
# Ouverture du port 80 pour le http (ici, konqueror...)
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# Ouverture du port ssh -> 2698 et non 22 comme c'est le cas par défaut
iptables -t filter -A OUTPUT -p tcp --dport 2698 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 2698 -j ACCEPT
# Ouverture du port ftp -> 21
iptables -t filter -A OUTPUT -p tcp --dport 21 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT
# ouverture du port SMTP (courrier sortant) -> 587 au lieu de 25
iptables -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 587 -j ACCEPT
# Ouverture du port POP3 (courrier entrant) -> 299 au lieu de 110
iptables -t filter -A OUTPUT -p tcp --dport 299 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 299 -j ACCEPT
# Ouverture du port DNS Port 53
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
# NTP (horloge du serveur)
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
# On permet aux machines clientes d'avoir le relai internet du serveur
#iptables -I FORWARD -i eth1 -d 192.168.0.0/255.255.255.0 -j DROP (C'est celle qui semblait coincer, donc je l'ai commentée)
iptables -A FORWARD -i eth1 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Par contre, je me demande si la solution n'est pas celle-ci:
Quand je lance le serveur, il charge l'info et donc lit ce fichier. Une fois que le serveur est lancé, j'ai internet sur les machines clientes mais pas de réseau nfs... par contre je pinge sans problème sur le serveur depuis les machines clientes. Donc je me demandais un truc, puisque on ouvre des ports pour ssh, smtp, ntp, dns, etc, ne faut-il pas ouvrir des ports pour nfs tout simplement?
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#21 Le 07/12/2009, à 18:48
- diodio13fr
Re : [RÉSOLU !!]Problème de configuration iptables
oui a priori c'est les port 2049/tcp et 2049/udp
pour vérifier
grep nfs /etc/services
█▒▒▒░░
Hors ligne
#22 Le 07/12/2009, à 21:47
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
Bon, ben c'est pas évident les iptables... marche toujours pas... :rolleyes:
Bref, voici mes iptables après avoir ouvert le port pour le réseau NFS (après vérification, c'était bien le 2049 udp/tcp je pense avoir modifié le fichier correctement)
Voici donc mes iptables:
# On efface les règles précédentes pour partir sur de bonnes bases:
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
# On bloque tout le traffic
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
# On autorise les connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# On autorise le ping (cas particulier car protocole sans port défini)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# On autorise le loopback (localhost)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# On autorise le réseau local
iptables -t filter -A INPUT -i 192.168.0.0/24 -j ACCEPT
iptables -t filter -A OUTPUT -o 192.168.0.0/24 -j ACCEPT
# On ouvre les ports du serveur NFS port 2049
iptables -t filter -A OUTPUT -p tcp --dport 2049 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 2049 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 2049 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 2049 -j ACCEPT
# Ouverture du port 80 pour le http (ici, konqueror...)
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# Ouverture du port ssh -> 2698 et non 22 comme c'est le cas par défaut
iptables -t filter -A OUTPUT -p tcp --dport 2698 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 2698 -j ACCEPT
# ouverture du port SMTP (courrier sortant) -> 587 au lieu de 25
iptables -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 587 -j ACCEPT
# Ouverture du port POP3 (courrier entrant) -> 299 au lieu de 110
iptables -t filter -A OUTPUT -p tcp --dport 299 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 299 -j ACCEPT
# Ouverture du port DNS Port 53
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
# NTP (horloge du serveur)
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
# On permet aux machines clientes d'avoir le relai internet du serveur
iptables -A FORWARD -i eth1 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Je sais plus trop quoi faire... donc en résumé avec mon iptables comme ci dessus, j'ai internet sur mes machines clientes, internet sur le serveur bien sûr, mais pas de réseau interne NFS même avec le port 2049 ouvert, par contre, je pinge bien sur le serveur, donc il y a connexion... aussi bien sur 192.168.0.1 (eth1 > LAN) que sur 192.168.1.2 (eth0 > WAN)... Je suis sûr de plus être très loin de la solution...
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#23 Le 08/12/2009, à 19:21
- inconnu
Re : [RÉSOLU !!]Problème de configuration iptables
tu es sur qu'en réseau local tes pc passent par le serveur ?
peut-être pour le dns, s'il est indiqué dans la config. Ils ont juste besoin d'atteindre le switch pour joindre les autres pc ? non ? Dailleurs avec le serveur débranché, le réseau local devrait marcher.
#24 Le 08/12/2009, à 20:04
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
tu es sur qu'en réseau local tes pc passent par le serveur ?
peut-être pour le dns, s'il est indiqué dans la config. Ils ont juste besoin d'atteindre le switch pour joindre les autres pc ? non ? Dailleurs avec le serveur débranché, le réseau local devrait marcher.
Oui, en théorie, quoique j'ai pas essayé de débrancher le serveur pour voir si les pc peuvent s'atteindre mais de toutes façons les fichiers sont sur le serveur, donc s'il est éteint, j'ai toujours pas accès au partage NFS...
Je suis en train de lire et relire le superbe tuto de Olivier Allard Jacquin (http://olivieraj.free.fr/fr/linux/information/firewall) et j'essaye de mettre en place pas à pas... mais toujours pas accès à NFS, et maintenant non plus à mon serveur web... sauf en local, bizarre tout de même, pas simple les iptables...:P:P
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne
#25 Le 08/12/2009, à 20:47
- oliver2004
Re : [RÉSOLU !!]Problème de configuration iptables
Pff, je commence à en avoir un peu marre, je n'avance pas.
Soit j'ai accès à internet sur mes machines clientes mais pas de montage NFS pour mon réseau local, pas cool...
Soit j'ai accès à mon réseau local mais pas à internet... je vais finir par m'en tenir à la configuration par défaut et rester vulnérable aux éventuelles attaques de l'extérieur... :/
Dernière modification par oliver2004 (Le 08/12/2009, à 20:48)
Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...
Hors ligne