Je souhaite établir toutes les connexions entrantes vers le port 1000 de mon hôte (IP: 200.234.XXX.XXX) pour être transféré vers le port 80 sur l'hôte 10.211.55.5
Comment puis-je le faire sur mon hôte? Il exécute Mac OS X 10.5.8
Je souhaite établir toutes les connexions entrantes vers le port 1000 de mon hôte (IP: 200.234.XXX.XXX) pour être transféré vers le port 80 sur l'hôte 10.211.55.5
Comment puis-je le faire sur mon hôte? Il exécute Mac OS X 10.5.8
Réponses:
Assez simple à faire, vous devez d'abord activer le service de connexion à distance sur votre mac ( Préférences Système -> Partage -> Connexion à distance ). Cela démarre votre serveur ssh.
Exécutez ensuite la commande suivante dans votre terminal OS X:
ssh -L 200.234.XXX.XXX:10000:10.211.55.5:80 -N 127.0.0.1
Vous devrez peut-être d'abord accepter l'empreinte du serveur et saisir votre mot de passe local pour la connexion ssh. (Vous pouvez également configurer une clé publique / privée ssh locale à locale pour qu'elle ne demande pas de mot de passe, cela laissera un exercice au lecteur.)
Le format est:
ssh -L local_addr:local_port:remote_addr:remote_port -N 127.0.0.1
Très simple grâce à l'outil polyvalent ncat:
sudo ncat --sh-exec "ncat 10.211.55.5 80" -l 1000 --keep-open
Obtenez les fichiers binaires de ncat / nmap pour Mac OS X sur le site officiel: http://nmap.org/download.html#macosx
EDIT: ajout de sudo pour écouter sur un port restreint <1024
Eh bien, je peux vous dire comment je fais ce genre de chose sur mon système Mac OS X 10.5.8.
J'ai commencé par une réponse à propos de NAT, mais je pense que vous voulez en fait un programme de transfert TCP à la place (vous mentionnez «proxy» et redirection de port.)
Il y a plusieurs façons de le faire, selon vos besoins, même 'SSH' peut être mis en action, bien que ma manière courte et douce préférée soit un script Perl tcpforward .
Si vous avez besoin d'une manipulation HTTP (vous devrez peut-être modifier les redirections HTTP, de sorte que lorsqu'une demande pour une URL sans '/' ne soit pas redirigée vers le serveur réel et inaccessible), Apache peut faire la travail d'un proxy inverse. Vous voudrez regarder mod_proxy et en particulier ProxyPass et ProxyPassReverse. N'activez pas ProxyRequests, c'est pour le proxy direct. Il devrait être possible d'utiliser le propre Apache de Mac OS pour ce faire, si vous l'avez en cours d'exécution. Il vient avec mod_proxy et /etc/httpd/httpd.conf est le fichier de configuration à mettre à jour.
Même avec Apache, vous devez vous assurer que tous les liens dans le contenu du serveur réel sont relatifs, s'ils font référence au serveur réel, vous pouvez essayer le module mod_proxy_html (je n'ai aucune expérience de la façon dont cela fonctionne.)
Votre machine est-elle connectée directement à Internet (IE - sans routeur)? Normalement, vous faites la redirection de port sur le routeur, mais si vous utilisez un modem pour vous connecter directement, iptables est probablement le meilleur moyen.
iptables
pour accomplir ce que la question demandait, cela pourrait être utile.
Voici un bon article: http://www.cyberhq.nl/article/384/port-forwarding-in-macos-x
Mais puisque vous transférez vers 80, je suppose que vous voulez qu'il aille sur un serveur Web, donc je changerais simplement la configuration du serveur Web pour configurer un proxy inverse ou quelque chose comme ça.