je continue dans ma lancée de mini réseaux virtuels sous virtual box qui commence à fonctionner.
Pour rappel :
mon pc host est mon poste de travail dans la boîte, il tourne sous windows XP et l'outil utilisé est donc virtual box 3.012. Il se connecte à internet via un proxy géré par une boîtes de sous-traitances (je ne peux donc y faire aucune action).
j'ai mis en place une passerelle sous virtual box :
debian 5
eth 0 est connectée au réseau virtuel VB en IP dynamique
eth 1 est relié à un réseau interne virtuel avec une adresse fixe de style 192.168.1.10 (un truc bateau quoi).
ip_forcarding est activité pour ipv4
j'ai mis en place un petit serveur dhcp pour réseau interne :
debian 5
eth0 connectée au réseau interne avec IP fixe.
un petit serveur web :
eth0 en ip fixe avec un apache2 tout simple.
tout ce petit monde se cause et fonctionne à peu près bien moyennant la configuration du proxy de la boîte pour sortir sur internet
Sur la passerelle, j'ai commencé à mettre en place des iptables, en particulier pour que ce soit le serveur virtuel qui réponde aux requêtes http qui viennent sur mon poste. A priori ça fonctionne (en tapant l'ip de mon poste dans un navigateur j'atteins le serveur web virtuel).
Du coup, j'ai installer un client KUBUNTU9.10, toujours virtuel.
Ca fonctionne plutôt bien mais :
l'interface eth0 n'est pas configurée au démarrage. Il a fallut que j'ajoute la déclaration et la conf de eth0 dans le fichier interface :/ . Du coup, apparemment, le réseau n'a pas fonctionné à l'installation de la Kubuntu.
Depuis conquéror, après configuration du proxy, il est possible de naviguer sur le web. Sauf pour le https ! Aucune page sous ce protocole ne fonctionne :/
voici , en l'état, le fichier de conf iptables utilisé :
[cpp]#!/bin/sh
# eth0 est attachée à l'extérieur
# eth1 est attachée au réseau 192.168.168.0
echo "Configuration NAT"
#
# Suppression des régles déjà existantes
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
#
# le trafic sur la boucle local est accepté
#
iptables -A INPUT -i lo -j ACCEPT
# les paquets de connexions déjà existantes sont acceptés
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Tout le traffic sortant est accepté
iptables -A OUTPUT -j ACCEPT
# Web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# SSH
#iptables -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#
# les paquets qui arrivent sur le port 80 sont transmis au serveur web
#
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.168.10:80
iptables -A INPUT -j REJECT
#iptables -A FORWARD -j REJECT
[/cpp]
Merci de votre attnetion et de vos suggestions !
Iptables, NAT et https
Publié : ven. 29 janv. 2010 16:11
par Kronick
c'est le serveur Apache de la VM qui écoute sur le port 443 en HTTPS ?
Iptables, NAT et https
Publié : ven. 29 janv. 2010 17:23
par dricfr
Salut,
non, j'ai des soucis pour naviguer depuis une VM derrière ma passerelle.
par exemple, impossible d'accèder au webmail de google.
Je n'ai pas encore tester l'hébergement d'un site accessible via https sur une VM ! Mais comme cela fonctionne pour le port 80 je croise les doigts pour que cela fonctionne aussi pour le 443.
Maintenant, il y a effectivement peut-être un conflit Tous les paquets qui arrivent de l'extérieur via le port 443 pour répondre à une requête d'un navigateur par exemple, sont reroutés vers le serveur web virtuel.
Mais alors, comment le vérifier ?!
Merci de ton attention
Iptables, NAT et https
Publié : ven. 29 janv. 2010 19:20
par fighting_falcon
Tous les paquets qui arrivent de l'extérieur via le port 443 pour répondre à une requête d'un navigateur par exemple, sont reroutés vers le serveur web virtuel.
Paquets réponse pour la visite d'un site en HTTPS : port source 443, port destination X
Paquets d'un client qui veut voir ton site publié en HTTPS : port source Y, port destination 443
Y'a pas de conflits ..
Ceci dit, j'arrive pas à piger pour tu n'arrives pas à voir les sites en HTTPS, et juste ceux en HTTPS
Depuis ta machine direct, ça marche ? C'est pas un soucis de proxy des fois ?
Iptables, NAT et https
Publié : dim. 31 janv. 2010 11:18
par dricfr
Salut !
Je ne pense pas qu'il y ai conflit non plus... mais dans le soute !
Pour la machine directe :
C'est donc mon poste sous windows xp. j'arrive à joindre les sites en https !
Le proxy est configuré sur toutes les machines virtuelles. Dans le cas de la KUbuntu, le proxy est configuré pour Konqueror et dans la conf du système.
Cela peut effectivement venir du proxy car en essayant de joindre un site ne https je dois m'authentifier sur le proxy puis la requête échoue presque instantanément.
Il ne s'agit d'un time out . Le message d'erreur m'indique clairement que la machine distante à "fermée" la connexion (en gros elle a refusé si je ne me trompe pas).
Alors effectivement, est-ce qu'à force d'encapsulation/désencapsulation le paquets n'est pas droppé car "trop vieux" ou considéré "comme suspect" ? Autant en http cela passe, autant en https il y a peut-être des paramètres plus restrictifs pour des questions de sécurité... M'enfin, ça me parait quand même un peu fumeux comme explication ^^
@+
Iptables, NAT et https
Publié : lun. 1 févr. 2010 09:03
par fighting_falcon
Peux tu essayer en baissant la valeur du MTU sur la carte réseau de ta machine virtuelle ?
Iptables, NAT et https
Publié : lun. 1 févr. 2010 15:04
par dricfr
oulà, je ne sais paas comment ça se règle ça.
J'essaie et je tiens au courant !
merci !
Iptables, NAT et https
Publié : lun. 1 févr. 2010 18:43
par Zedoune
ifconfig bidule0 mtu 1000 ?
Iptables, NAT et https
Publié : mar. 2 févr. 2010 09:15
par dricfr
Salut,
alors j'ai essayé en descednant le mtu à 1000, même soucis :
[cpp]Impossible d'achever l'opération demandée
La connexion a été refusée par le serveur
Détails de la requête :
URL : https://mail.google.com
Protocole : https
Date et heure : mardi 2 février 2010 09:13
Informations supplémentaires : mail.google.com: Proxy connection closed prematurely
Description :
Le serveur mail.google.com a rejeté la tentative de connexion de cet ordinateur.
Causes possibles :
Le serveur, bien que connecté à l'Internet, n'a peut-être pas été configuré pour autoriser les requêtes.
Le serveur, bien que connecté à l'Internet, n'exécute peut-être pas le service demandé (https).
Un pare-feu (périphérique servant à restreindre les requêtes d'accès réseau), protégeant votre réseau ou celui du serveur, est peut-être intervenu, faisant obstacle à votre requête.
Solutions possibles :
Réessayez, maintenant ou plus tard.
Contactez l'administrateur du serveur pour une aide plus approfondie.
Contactez votre assistance technique, qu'il s'agisse de votre administrateur système ou d'un groupe d'assistance technique, pour une aide plus approfondie.[/cpp]
je vais essayer depuis ma passerelle virtuelle pour voir !
@++
Iptables, NAT et https
Publié : mer. 24 févr. 2010 15:16
par dricfr
Je n'y arrive pas . Même en passant l'interface réseau d'une VM en "NAT", impossible de se connecter à du https :/
J'ai rapidos activé le SSL sur un serveur apache dans une VM, et il est possible de l'atteindre depuis l'extérieur du réseau virtuel !
Je ne comprends pas trop ce qui se passe....
Je vais essayer de faire du "bridge" pour l'interface de la VM passerelle qui pointe vers l'extérieur.
Iptables, NAT et https
Publié : mer. 24 févr. 2010 15:52
par Kronick
coucou
bon j'ai parcouru rapidos. Si je résume :
apache qui écoute sur le 80 et 443 sur la VM. Tu veux rerouter toutes les connexion 80 + 443 à destination de ton poste vers la VM right ?
voici comment faire :
- Est-ce que tu ping la VM ?
si oui, est-ce que la VM ping la paserelle (qui est l'hôte dans ton cas) ?
si oui alors, sur l'hôte, tu vas ajouter sur netfilter les règles suivantes :
et
$iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
pour que la VM reroute tous les paquets vers l'ip de l'hôte.
Avec ça tu as un nat de base en place.
Et tu peux même aller sur le net, puisque via le masquerading, c'est l'ip de l'hôte qui est écrite dans les datagrammes.
Effacte toutes les règles et pour le moment n'utilise pas ton script. Tapes simplement les lignes à la main. Si ça marche, tu pourras simplement indiquer qu'au démarrage de l'interface, tu charges les règles
pre-up iptables-restore < iptables.rules
par ex
Je vérifierais ce que j'ai par rapport ce que tu as mis
Hélas non mon problème est différent.
J'ai une VM "passerelle" qui à deux interfaces réseaux :
->eth0 est configurée en "NAT", elle prend l'ip 10.0.2.15 "classique" sous Virtual Box.
->eth1 est configurée en "réseau interne".
J'ai activé l'ip forwarding sur cette machine virtuelle, et j'ai écrit le script cité au-dessus (depuis, j'ai commenté toutes les régles de filtrage et j'ai ajouté la redirection du port 443).
J'ai également activé le forwarding sur eth0 (en ligne de commande via vbox manage) de telle manière qu'une requpete sur le port 80 ou 443 est qui arrive sur la machine hôte est redirigée sur la passerelle virtuelle qui a son tour le redirige vers la machine vrituelle "serveur web".
Tout cela fonctionne !, dans un navigateur sur le système d'exploitation hôte, si je tape l'adresse ip réseau de l'ordi, j'arrive sur le serveur apache du serveur web virtualisé. Aussi bien en http qu'en https.
Par contre, il m'est impossible depuis une machine virtuelle d'accéder à un site en https !
La grosse différence avec le cas ou "j'héberge" c'est que pour accéder à un site https je suis obligé de "sortir" de la machine hôte et de sortir du réseau de l'entreprise via un proxy. Cependant, ça fonctionne en http (j'arrive à surfer depuis un VM sur smp par exemple). Par contre, impossible d'accéder à google mail (pris au hasard pour tester le https).
Voilà, j'espère être un peu clair.
J'ai également testé avec une machine virtuelle qui dispose d'une seul interface réseau configuér en NAT. J'ai le même problème. Plus étonnant encore, si j'active deux machines virtuelles configurées en NAT en même temps, elles disposent toutes les deux de l'adresse 10.0.2.15 ......
Iptables, NAT et https
Publié : mer. 24 févr. 2010 19:48
par Kronick
ok dans ce cas, c'est peut-être parce que tu n'as pas rerouté les paquets en sortie vers la passerelle. ajoute ça sur la passerelle :
$iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
comme ça, traffic sortant d'une VM -> passerelle eth1 -> passerelle eth0 -> hôte -> internet.
Iptables, NAT et https
Publié : mer. 24 févr. 2010 23:58
par dricfr
Ok, merci de l'info
je teste ça demain (lesz VM sont sur mon poste au boulot).
Iptables, NAT et https
Publié : jeu. 25 févr. 2010 09:34
par Kronick
oki \o/
Iptables, NAT et https
Publié : jeu. 25 févr. 2010 09:55
par dricfr
ok dans ce cas, c'est peut-être parce que tu n'as pas rerouté les paquets en sortie vers la passerelle. ajoute ça sur la passerelle :
$iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
comme ça, traffic sortant d'une VM -> passerelle eth1 -> passerelle eth0 -> hôte -> internet.
Oui, cette ligne y est
Bon, je crois que je vais réinstaller VirtualBox parce que ça sent le truc louche.
Merci
Iptables, NAT et https
Publié : jeu. 25 févr. 2010 10:25
par Kronick
si tu suis les lignes que je t'ai filé, ça marchera sans souci.
Sur mon proxmox de prod, j'ai l'archi suivante
Hôte Proxmox - passerelle 1 - Firewall 1 (deux cartes réseaux) -> Carte 1 sur passerelle 1
Carte 2 en passerelle pour les VM "en dessous"
Du coup sur un VM par exemple, je vais avoir un serveur MySql, on a donc IP RIpe -> Hôte -> firewall -> Serveur MySql
Iptables, NAT et https
Publié : ven. 26 févr. 2010 10:52
par dricfr
Salut,
je ne remets pas en cause ce que tu as dit , loin de là !
Bon alors, j'ai essayé via kubuntu virtualisé avec Firefox et ... ça marche. C'est avec Konqueror que cela échoue. Le plus étrange c'est que manifestement c'est une authentification au proxy de la société qui échoue.... De même, le logiciel de gestion des paquets sous KDE échoue, alors que apt en ligne de commande fonctionne... c'est donc un problème de configuration logiciel et non système !!!
Merci de votre aide !!
Iptables, NAT et https
Publié : ven. 26 févr. 2010 12:19
par Kronick
Salut,
je ne remets pas en cause ce que tu as dit , loin de là !
j'ai pas dit ça [:kronick:7]
du coup je serais tenté de vérifier la configuration DNS, ça sent typiquement un serveur DNS non enregistré .
$ cat /etc/resolv.conf
Est-ce que sur la VM sur laquelle ça ne marche pas, la résolution DNS se fait correctement ?
$nslookup gogole.fr par ex
Iptables, NAT et https
Publié : ven. 26 févr. 2010 14:27
par dricfr
Et bien, cette VM ça ne marche pas avec les logiciels "KDE".
Alors je me dis que ça doit être une configuration quelques part dans KDE.
oki,
donc tout marche nickel avec l'autre VM ?
PS : faut être root pour faire un nslookup, je pense pas
Iptables, NAT et https
Publié : dim. 28 févr. 2010 16:05
par dricfr
Yep, je pense que tout fonctionne
J'en sais rien pour le nslookup... c'est une habitude depuis je ne sais plus OS qui obligeait de passer en root pour tout faire.
Merci de ton aide
Iptables, NAT et https
Publié : dim. 28 févr. 2010 18:05
par fighting_falcon
J'en sais rien pour le nslookup...
bien sur que non qu'a pas besoin !!
c'est une habitude depuis je ne sais plus OS qui obligeait de passer en root pour tout faire.
Windows ?
Iptables, NAT et https
Publié : dim. 28 févr. 2010 20:42
par Kronick
hin hin
Iptables, NAT et https
Publié : ven. 12 mars 2010 14:09
par dricfr
Bong, j'ai installé pfsense dans une VM pour remplacer ma passerelle. Toujours le même soucis avec kde... mais je n'arrive plus à accéder au serveur web malgré une petite conf du port forwarding en NAT et de la modif des règles du firewall ^^. La configuration semble très fine et donc compliquée !
VirtualBox n'est pas très pratique pour savoir quels ports sont suivis et vers où au niveau du réseau virtuel :/ .
Est-ce que qq'un pourrait me dire ce que c'est que le NAT 1:1 ?
Moi je fais un bête port forwarding....