Atteindre un mac sur un réseau local depuis internet

vinflash

Membre confirmé
8 Mai 2005
51
2
55
J'ai un "vieux g3" transformé en serveur, avec un alias dyndns… Il a un carte adsl et distribue internet sur 3 autres macs de mon réseau local. Tout est ok, je peux le connecter en afp, ftp, webdav, etc…
Ma question est comment je fais pour atteindre les autres macs du réseau depuis l'exterieur? Sachant que les i.p locals sont : 192.168.2.1 (le serveur), 192.168.2.2…3…4 pour les autres.
Dans le principe : ce serait, je demande le poste de "Untel" depuis le serveur.dyndns.org :
afp://[email protected] ???

Merci de m'aider!
 
Il faut utiliser soit :
NAT ipforwarding
ou le principe de DMZ

regarde les fonctionnalités sur ton routeur adsl (ou donnes en les caractérisqiques si tu as besoin d'un coup de main)
 
quel est le mac qui fait office de serveur? celui qui gère ta connection ADSL ou un autre?


//************************
Dans le premier cas tu n'as qu'à ouvrir les ports sur le firewall de ton mac qui gère la connection (penser a ouvrir chaque port pour chaques services)

puis tu tape tonloginsurdyndns.dyndns.org dans ton navigateur et tu auras ton site web
même chose pour les autres services

//*******************

si ce n'est pas le cas il faut que tu configure le nat sur ton mac afin qu'il renvoi les trame vers ton serveur...

cf. : man natd

via une commande de ifpw ou natd suivant ton humeur... bon je te file l'exemple pour natd


pour cela tu accepte le forwarding sur ton mac
edite /etc/rc.conf et ajoute:
gateway_enable=YES
tu reboot
puis tape la commande
sysctl -w net.inet.ip.forwarding=1

puis la commande
/usr/sbin/natd -redirect_port tcp 80 192.168.1.2:80 -interface en0

80: port entrant
192.168.1.2:80 port 80 de ta machine privée ayant pour adresse 192.168.1.2
en0 l'interface ethernet vers ton réseau privé
 
C'est celui celui qui gère la connection ADSL qui est le serveur, tout est ok avec celui-ci : web, ftp, afp, webdav… pas de souci!
Ce que je souhaiterai comprendre : c'est comment de l'extrieur(via un poste étranger à mon reseau, via internet) je peux atteindre mes autres macs. Sachant qu'actuellement mon alias dyndns me cantonne aux services du serveur qui est la porte d'entrée de mon réseau.
Ce que je veux faire c'est : " afp://allo, le poste 192.168.2.4 chez bibi.dyndns.org!"(pour faire simple!):rateau:
 
dans ce cas tu as plusieurs possibilités...
Soit utiliser un dns interne qui partagera ton nom de domaine :

machine1.login.dyndns.org
machine2.login.dyndns.org
(cf. installation de bind ou autres)


soit comme di précédement un nat en réalisant du forward de port
login.dyndns.org:1025 forward to 192.168.1.1:80
login.dyndns.org:1026 forward to 192.168.1.1:21

login.dyndns.org:1027 forward to 192.168.1.2:80
etc
(utilisation de natd cf. réponse pcdte)

vala msieur
 
Merci Canibal…
Si je réalise un forward de port sur le serveur vers un des postes du réseau, ce dernier deviendra le serveur par défaut du coup et usurpera la place du premier?
Ce que je voudrai, c'est au besoin, aller occasionellement sur un poste du réseau. Le serveur restant dans ses dispositions actuelles.
Donc je pencherai plutôt pour la solution de créer un autre alias dyndns pour chacun des postes (Bind, je connais pas! difficile à mettre en œuvre?)
 
l'avantage du forward de port c'est que tu n'es pas obligé d'utiliser les ports par défaut, tu peux utiliser des port au dessus de 1024 en arrivé depsui ton adresse publique et la rediriggée vers une adressse IP et un port par défaut en privée
c'est ce que je t'expliquais par le 1024, 1025, ...

ainsi tu peux avoir 3 serveurs web sur ton réseau

par exempople en interne

192.168.1.1:80
192.168.1.2:80
192.168.1.3:80

l'équivalent publique correspondant a
login.dyndns.org:80
login.dyndns.org:1024
login.dyndns.org:1025

dans tout les protocoles tu peux forcer le port d'entrer
par exemple

afp://serveur.dyndns.org:1028
afp://serveur.dyndns.org:1029
afp://serveur.dyndns.org:1030

peuvent chacun pointer en interne sur trois serveur afp différent....

enfin je ne sais pas si j'ai été clair....

pour bind, c'est simplissime suffit de regarder un peu sur google, tu verras c'est vraiment pas sorcier
 
Ok, c'est parti pour le forward de port !
Donc j'édite à l'aide du terminal le fichier rc.conf :
sudo pico /etc/rc.conf
j'écris :
gateway_enable=YES
j'enregistre…
je redémarre la machine…
puis toujours dans le terminal :
sysctl -w net.inet.ip.forwarding=1
puis la commande :
/usr/sbin/natd -redirect_port tcp 80 192.168.1.2:80 -interface en0

Est-ce que je suis bon là, Canibal ?
 
c'est effectivement ce que je t'ai mis plus haut ;)
donc je te dirais oui jusque là tu es bon...

reste a voir

si ton interface ethernet vers ton réseau interne est bien en0
si l'adresse sur lequel tout les flux arrivant d'internet par le port 80 tu veux bien que ce soit ta machine 192.168.1.2 qui les gère par le port 80 (serveur web) etc

enfin bon j'imagine que tu as compris ce que je voulais dire...

la commande c'est :

/usr/sbin/natd -redirect_port tcp
*portentré*
*@IPServeurprivé*:*portserveurprivé*
-interface *interfaceEthréseauprivé*




vala bon courrage
 
Salut Canaibal, merci pour tes réponses…

Je vais faire la manip et te tiendrai au courant.
Dernières choses avant d'attaquer :
-Si je redirige par ex. le port 1024, est-ce-que j'aurai, pour autant, acces à tous les services du mac distant ? (web, afp,ftp)
-C'est sans risque ? Pas de risques de mettre le "bronx" dans mon reseau?

A+
 
Autre chose…
Pour cette commande :
/usr/sbin/natd -redirect_port tcp 80 192.168.1.2:80 -interface en0
"-interface en0" c'est bien celle du mac du réseau à atteindre, le serveur est en en2(carte pci ethernet!)
 
J'ai essayé la manip et j'obtiens ça :

Ordinateur-de-moi:~ moi$ /usr/sbin/natd -redirect_port tcp 48 192.168.2.4:48 -interface en0
natd: 48 is missing port number

késako?
 
vinflash a dit:
J'ai essayé la manip et j'obtiens ça :

Ordinateur-de-moi:~ moi$ /usr/sbin/natd -redirect_port tcp 48 192.168.2.4:48 -interface en0
natd: 48 is missing port number

késako?


Excuse moi j'étais en we :D

ej dirais d'essayer

(En root)
Ordinateur-de-toi:~ toi$ /usr/sbin/natd -redirect_port tcp 192.168.2.4:48 48 -interface en0

et en0 est l'interface ethernet vers ton réseaux privé de "ordinateur-de-toi"
 
Bon juste pout un extrait du man de natd:

-redirect_port proto targetIP:targetPORT[-targetPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[remoteIP[:remotePORT[-remotePORT]]]
Redirect incoming connections arriving to given port(s) to
another host and port(s). Argument proto is either tcp or
udp, targetIP is the desired target IP number, targetPORT is
the desired target port number or range, aliasPORT is the
requested port number or range, and aliasIP is the aliasing
address. Arguments remoteIP and remotePORT can be used to
specify the connection more accurately if necessary. The
targetPORT range and aliasPORT range need not be the same
numerically, but must have the same size. If remotePORT is
not specified, it is assumed to be all ports. If remotePORT
is specified, it must match the size of targetPORT, or be 0
(all ports). For example, the argument

tcp inside1:telnet 6666

means that incoming TCP packets destined for port 6666 on
this machine will be sent to the telnet port on the inside1
machine.

tcp inside2:2300-2399 3300-3399

will redirect incoming connections on ports 3300-3399 to host
inside2, ports 2300-2399. The mapping is 1:1 meaning port
3300 maps to 2300, 3301 maps to 2301, etc.


Voilà avec ça tu as de quoi faire tout ce que tu veux...;) enfin je crois... enfin j'espère....
 
Bon ok en fait natd ne fonctionne pas comme iptables sous linux... c'est de là que viens le probleme

En fait la procédure est différente...

Il faut dabord tuer natd, puis modifier la configuration de natd.conf en ajoutant la règle voulue, la tester avec natd -f et le lancer avec le firewall ouvert 'en gros le plus simpel étant de rédémarer)

Bon je n'ai pas les chemins d'accès (pas de mac ni de BSD au boulot) je reviens ce soir chez moi, j'aurais bien un de mes macs qui se dévouera pour faire le test et je te donnerais quelque chose qui fonctionne... enfin.... :rateau:

bonne ap;)
 
Bon allons y

tu passe en root
sudo su

/*mot de passe admin*/

Puis

ps -aux | grep natd

dois te renvoyer deux processus
l'un des deux étant le natd le second le grep natd

tu prends le numéro du procesus (PID) )> le second parametre un numéro en gros
tu fais un kill de ce processus


kill 1873
(par exemple)

Une fois cela fait

tu peux configurer natd :
/usr/sbin/natd -redirect_port tcp 192.168.2.4:48 48 -interface en0

Et voilà en retapant un ps -aux | grep natd
le natd est de retour....
et ça fonctionne ;) si tu fais une entrée sur ton adresse IP adsl

Bon je dois t'avouer que ce natd est assez étrange sur osx je ne trouve pas le fichier de conf qui permettrait de configurer plusisuers redirection mais je vais me pensher la dessus...
Sinon avec ça tu as au moins une redirection qui fonctionne ... c'est déjà ça (tu peux éventuellement utiliser des listes de port (cf. le man natd) vers le meme serveur...(c'est souvent le cas sur les petits serveur tu n'as qu'une seule serveur qui gère a peu pres tout ...
 
bon ayé j'ai trouvé ... suffisait de regarder le man natd


avec l'option -f on peut lui spécifier un fichier de configuration...

natd -f "/etc/natd.conf"

et dans le fichier on y met les règles.... bon voilà pour natd je pense que c'est réglé...
au fait il est conseillé de désactiver le firewwall sur l'interface de sortie (en0) dans notre cas.

Bonne nuit moi je vais au dodo ;)