[Résolu] NAT/PAT et accès LAN

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

[Résolu] NAT/PAT et accès LAN

Messagepar fwix » 26 Oct 2009 22:52

Bonjour, j'ai besoin d'un éclaircissement sur le port forwarding et l'accès à la ressource «PATée» depuis le LAN :

Situation : un serveur web, derrière la SME, est accessible depuis l'extérieur (j'ai utilisé la Configuration du renvoi de port du server-manager)

PAT
port(s) source : 4430
Adresse IP de l'hôte de destination . 192.168.1.2
Port(s) de destination :4430

Le forwarding se fait bien , depuis l'extérieur https://www.monsme.com:4430/. Cependant de l'intérieur, je suis obligé de passer par https://monerveur.monsme.com:4430/ ou bien https://192.168.1.2:4430/ car https://www.monsme.com:4430/ me renvoit un 404…

Besoin : dans mon cas de figure, le serveur web en question génère donc des URLs accessibles uniquement depuis l'extérieur ou depuis le LAN. Je souhaite donc parvenir à une configuration où les URL internes et externes seraient identiques

Question : est-il possible (et si oui comment faire) de faire du forwarding interne, c'est à dire que les requêtes reçues par mon SME depuis le LAN soit reroutées vers le serveur de LAN de la même façon que celles reçues depuis le WAN

Précisions subsidiaires :
si je fais un iptables -L, SME me dit que le forward se fait depuis anywhere :

Code: Tout sélectionner
Chain ForwardedTCP_1397 (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             monerveur.monsme.com     tcp dpt:4430


Dans /etc/rc.d/init.d/masq, (voir /etc/e-smith/templates/etc/rc.d/init.d/masq/91adjustPortForward) on trouve
Code: Tout sélectionner
# Create a new PortForwarding chain
PFC=$(/sbin/iptables --table nat --numeric --list PortForwarding |\
   sed -n '3s/ .*//p')
    /sbin/iptables --table nat --new-chain PortForwarding_$$
    /sbin/iptables --table nat --append PortForwarding_$$ --protocol tcp \
         --destination-port 4430 -j DNAT --to-destination 192.168.1.2:4430
    adjust_tcp_in 4430 ACCEPT ForwardedTCP_$$ 192.168.1.2/32
    /sbin/iptables --table nat --replace PortForwarding 1 --destination $OUTERNET --jump PortForwarding_$$
    /sbin/iptables --table nat --flush $PFC
    /sbin/iptables --table nat --delete-chain $PFC


merci :)
Dernière édition par fwix le 27 Oct 2009 05:59, édité 2 fois au total.
Avatar de l’utilisateur
fwix
Second Maître
Second Maître
 
Messages: 33
Inscrit le: 31 Oct 2007 21:03

Messagepar jdh » 27 Oct 2009 00:33

Le problème est plus que classique, et a été déjà évoqué plusieurs fois ici.


De l'extérieur on accède à http://www.domaine.com alors que l'intérieur on accède par http://192.168.1.x/

La solution est logique : il faut que localement www.domaine.com ait pour valeur 192.168.1.x. On appelle cela un "split dns".

Maintenant comment fait on avec SME ? Ma connaissance de SME, étant fort limitée, ne me permet pas d'y répondre : je saurais faire avec un bind ... Est ce "hostname and address" de la doc de contribs.org, c'est possible ?

En tout état de cause, ce n'est pas un forward qui peut résoudre la chose ... (enfin je peux me tromper)


Pour tester la chose, il suffit d'entrer la définition interne dans la table hosts (sous Windows c'est c:\windows\system32\drivers\etc\hosts.).
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar fwix » 27 Oct 2009 05:03

bonjour,

Le problème est plus que classique, et a été déjà évoqué plusieurs fois ici.


Oui, oui : j'ai déjà cherché ici et , mais sans trouver de réponse vraiment satisfaisante. Dans ces cas de doute, je poste sur des forums comme ixus ;). En tout cas, je vais déjà chercher ce qu'est un "split dns". :)

Donc actuellement, j'ai fait du forward de port, c'est à dire que mon-domaine.com:4430 renvoit les requêtes externes vers mon-serveur.mon-domaine.com:4430 (192.168.1.2) tandis que depuis le LAN c'est la SME (192.168.1.1) qui répond directement aux requêtes mon-domaine.com:4430 en disant qu'elle n'a rien à servir.
Je pensais donc benoîtement qu'il était possibe de faire du port forwarding du LAN vers le LAN :oops:

Sinon, autre scénario en suivant la piste DNS, on doit pouvoir faire qqch du style www.mon-serveur.mon-domaine.com en déclarant sur le DNS de la SME une zone forward de mon-serveur.mon-domaine.com vers un bind installé sur la machine mon-serveur.mon-domaine.com ? (sachant que www.mon-domaine.com est utilisé par le apache de la SME) :?

(j'écarte aussi le + longtemps possible la solution de gérer les tables hosts des clients même si pour les windoz, ça doit être automatisable via le login.bat lors de la connexion au PDC...)
Avatar de l’utilisateur
fwix
Second Maître
Second Maître
 
Messages: 33
Inscrit le: 31 Oct 2007 21:03

Messagepar fwix » 27 Oct 2009 05:57

Pfff, en fait en y repensant dans mon cas la solution est triviale de chez trivial :oops:

un simple sous domaine genre zzz.mon-domaine.com suffit :D

dans ce cas (LAN) zzz.mon-domaine.com:4443 = (WAN) zzz.mon_domaine.com:4443

(c'est d'avoir envisagé de reproduire le port forwarding au niveau du LAN qui m'a troublé et égaré :roll: )

:D
Avatar de l’utilisateur
fwix
Second Maître
Second Maître
 
Messages: 33
Inscrit le: 31 Oct 2007 21:03

Messagepar Gaston » 27 Oct 2009 22:03

bonsoir,
mais pourquoi chercher à se faire des noeuds au cerveau ?
Le serveur SME EST le serveur DNS du LAN , il est parfaitement à même d'assurer la résolution de ouaouaf.mondomaine.tld avec la bonne IP. De l'extérieur, les DNS authoritaires font leur boulot pour le WAN
point n aucun besoin d'imaginer aucun subterfuge destiné à "tromper" quelque équipement que ce soit.
Si le serveur SME ne résoud pas correctement, le domaine local, il faut revoir sa copie (ou c'est que l'on a délibérement , ce qui peut se justifier, choisit qu'il ne le fasse pas ).
C'est une configuration simple et parfaitement fonctionnelle

G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar sibsib » 27 Oct 2009 22:15

Hello,

En lisant entre les lignes, je déduis ceci :

http://www.mondomaine.com mène à sme et https://www.mondomaine.com:4430 mène à une autre machine. La solution n'est donc pas dans le dns ... en l'état !

Pour moi, la bonne solution (et je crois que c'est ce qu'a finalement fait fwix) c'est d'utiliser deux noms dns différents (www.mondomaine.com et www2.mondomaine.com, par exemple).

Vu de l'extérieur, les deux noms pointent évidemment sur la même IP, mais sur le LAN, on résoud les IP internes et différentes des deux machines.

Et hop, les portables avec les raccourcis en dur fonctionnent dehors et dedans ;-)

A+,
Pascal
Sibsib, admin heureux d'un petit SME !!!
- SME 8.0 beta 6 dans une VM :-)
- ESXI 4.1 sur hardware noname
Ma petite page sur SME
Avatar de l’utilisateur
sibsib
Amiral
Amiral
 
Messages: 2368
Inscrit le: 11 Mai 2002 00:00
Localisation: France - région parisienne

Messagepar jdh » 27 Oct 2009 22:23

On est d'accord, Gaston, pour la définition locale versus la définition externe (sur Internet).

Peux tu confirmer que, dans le server-manager, Section Configuration, c'est dans "Hostnames et addresses" que, justement, on créé les définitions locales qui seront fournis aux clients du réseau local ?




Et pour mon info, le service dns de SME est il bien tinydns (dans la suite logique de qmail des outils de Dan Bernstein) ?


Edit : (après lecture du poste de sibsib) :
Si de l'extérieur, avec le même nom dns, et selon le port, on accède à 2 machines différentes,
comment en faire autant à partir de l'interne ? (impossible)

Il suffit alors de disposer de deux noms dns :
- en externe : même valeur (l'@ ip publique),
- en interne : l'@ ip de chaque serveur.
(avec toujours split dns : valeur externe différente de valeur interne)
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Gaston » 27 Oct 2009 22:53

Bonsoir,
je comprends ce que tu écris SibSib, c'est pas exactement ce que j'avais retenu à la lecture (et le mélange de http et https dans le forward :pff:)
de toute façon on ne peut pas avoir un même nom de hote sur deux machines physique différente

mais on peut très bien avoir l'alias www.mondomaine.com qui est forwardé (par le serveur SME) vers la machine locale serveurwwwlocal.mondomaine.com et l'alias www.mondomaine.com résolu localement avec l'@IP de serveurwwwlocal par tout les équipement du réseau local/

Pour jdh, effectivement tinydns est le service DNS pour SME.
En considérant la configuration qui me semble simple et logique (dans l'optique de gestion de petits réseaux) : le serveur SME comme DHCP et DNS des postes locaux, tout hôte déclaré dans "Gestion noms d'hotes et adresse) (bien vu jdh), est enregistrée dans la base du serveur DNS avec l'@IP locale (sauf si on précise autre chose, (ben oui ça serait pas drôle si on pouvait pas tout faire et son contraire ;) ) ...

G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR


Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité