L'auto-hébergement

Ton truc est certainement clair dans ta pensée mais ça fait une heure que j’essaie de le traduire en français, avec des ‘si’ où il les faut et des virgules à leur place et je ne suis pas encore sûr de mon interprétation :017 . Je vais donc essayer de traduire et tu me diras si j’ai bien compris.

– On admet que mon IP externe est 81.23.23.34.

Cas 1

– On admet que je veux me connecter à mon serveur, étant à 300 Km de celui-ci.
– On admet que ma FreeBox est ‘très bien faite’ (je traduit par ‘très bien configurée’)
Je tape
ssh -p 666 ricardo@81.23.23.34
Le résultat est bon : j’arrive à me connecter à mon serveur, éloigné de 300 Km :023

Cas 2

– On admet que je veux me connecter à mon serveur, étant à 300 Km de celui-ci.
– On admet que ma FreeBox n’est pas configurée de façon optimum pour le ssh
Je tape
ssh -p 666 ricardo@81.23.23.34
Le résultat est quand même bon : j’arrive à me connecter à mon serveur, éloigné de 300 Km :023

Cas 3

– On admet que je suis rentré à la maison et que je veux me connecter à mon serveur, de la machine 1, qui a pour IP interne 192.168.0.1
– On admet que ma FreeBox n’est pas configurée de façon optimum pour le ssh
Je tape
ssh -p 666 ricardo@81.23.23.34
Le résultat est négatif car la FreeBox ne peut pas traduire l’adresse et le port. :018 :018 :018

Si j’ai bien traduit ta pensée, à ma capacité d’interprétation (très faible, je l’admets), je comprends parfaitement que ça ne puisse pas fonctionner avec la même ligne de requête, que l’on soit à l’extérieur du LAN ou DANS celui-ci.
MAIS, il ne me viendrait pas à l’idée de taper
ssh -p 666 ricardo@81.23.23.34
intra muro,
je taperais :
ssh -p 666 ricardo@192.168.0.14
‘192.168.0.14’ étant l’IP interne du serveur.

MAINTENANT, si ce que tu avances est pour dire qu’il existe un moyen de pallier cette différence de commandes, en configurant de façon optimum la FreeBox, je suis tout ouïe :041

Les «,» sont là où il faut, l’identation aussi et très bien faite ne veut pas dire bien configurée.

Je vais détailler: Une connexion c’est IP1:port1 <-> IP2:port2, tout le monde pense à IP2 et oublie IP1.

Une requête ssh c’est une connexion tonIP:???<->IPserveur:22 (note: ???= sans importance).

Ici, ricardo.fr=81.23.45.67, si tu fais une connexion sur ricardo.fr (qui ce soit 22 ou 666), tu veux initier une connexion
tonIP:???<->81.23.45.67:22

Bien.

Mais 81.23.45.67 c’est ta freebox et tu as redirigé le port 22 (ou 666 mais on va prendre 22 c’est pareil) vers le véritable serveur 192.168.0.14.

Si tu es à l’extérieur (quand tu veux te connecter), tu as une IP 100.12.34.26 par exemple. Le serveur va donc répondre à
100.12.34.26:???. Il va passer par la freebox qui va envoyer le paquet en le «NATant» donc ce paquet va sembler venir de 81.23.45.67:22 et non 192.168.0.14:22. Au final 100.12.34.26 reçoit une réponse de 81.23.45.67:22 et la connexion 100.12.34.26:???<->81.23.45.67:22 s’établit.

Si maintenant tu es dans ton LAN, tu as une IP 192.168.0.3 (mettons). La freebox reçoit venant du LAN, à sa destination, un paquet pour le port 22 (pour 81.23.45.67:22) venant de 192.168.0.3, elle le redirige vers le serveur 192.168.0.14:22. Il reçoit donc une demande venant de 192.168.0.3 et il va répondre. Sauf que là, le paquet va aller directement à 192.168.0.3qui va recevoir donc une réponse venant de 192.168.0.14 (dont il se fout) et non de 81.23.45.67 (qu’il cherche à connecter).

Si tu fais un tcpdump sur 192.168.0.3, tu verras partir un paquet à destination de 81.23.45.67 et une réponse de 192.168.0.14 revenir, et la connexion ne se fera pas.

Les solutions consistent

  1. soit à faire du masquerading sur la freebox pour les paquets à destination de 22 venant du LAN
    (cas de la freebox très bien faite), je ne crois pas que ça soit possible. C’est une des raisons qui m’a poussé à mettre le freebox en bridge et à m’occuper du routeur.

Dans ton tuto sur le parefeu, j’avais répondu ici en indiquant des fonctions (dernière version ou presque ici) permettant de faire un parefeu rapidement.
La redirection vers un serveur est cette fonction

redirigeserveur () { port $1 PORTOUT=$RES if [ -z $4 ] ; then PDEST=$PORTOUT else port $4 PDEST=$RES fi $IPTABLES -t nat -A PREROUTING $RESTRICT -p $2 --dport $PORTOUT -j DNAT -i $IF_LAN -d $IP --to $LAN.$3:$PDES T $IPTABLES -t nat -A PREROUTING $RESTRICT -p $2 --dport $PORTOUT -j DNAT -i $IF_EXT --to $LAN.$3:$PDEST $IPTABLES -t nat -A POSTROUTING -o $IF_LAN -p $2 --dport $PORTOUT -s $LAN.0/24 -j MASQUERADE }
Elle donnerait en gros les règles

# redirection LAN
iptables -t nat -A PREROUTING  -p tcp --dport 22 -j DNAT -i eth0 -d 81.23.45.67  --to 192.168.0.14:22
# redirection extérieure
iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT  -i eth1 --to 192.168.0.14:22
# Masquerading pour les connexions venant du LAN
iptables -t nat -A POSTROUTING -o eth0 -p tcp  --dport 22 -s 192.168.0.0/24 -j MASQUERADE
  1. soit à mettre une règle POSTROUTING sur le serveur ssh du type

iptables -t nat -I POSTROUTING -d 192.168.0.0/24 -p tcp --sport 22 -j SNAT --to-source 81.23.45.67

ça devrait marcher. Tu auras le même problème pour le serveur Web, etc.

C’est ce qu’il se passe quand un gars monte un serveur de jeu CS sur une machine chez lui et gueule en disant je ne comprends pas, soit mon serveur n’est pas visible de l’extérieur mais moi je le vois, soit il est visible de l’extérieur mais je ne peux pas me connecter. Tu as un millier de messages se résumant à ce pbm sur le NET. Cette question a été évoquée plusieurs fois sur le forum à propos de ssh, de CS ou encore du serveur Web.

OK, donc mon interprétation était fausse.
J’en retiens que l’idéal est :
1/ ajouter un routeur indépendant et replacer la Box en mode 'bridge’
2/ ajouter quelques lignes dans le parefeu.
Sans approfondir la chose, ce que je demanderai plus tard, c’est bien ça ?

Oui sauf qu’il n’est évident qu’un routeur fasse ce «masquerading»…

Donc, solution ‘2’ :question:

[code]2) soit à mettre une règle POSTROUTING sur le serveur ssh du type

iptables -t nat -I POSTROUTING -d 192.168.0.0/24 -p tcp --sport 22 -j SNAT --to-source 81.23.45.67[/code]

Oui note que dans ce cas un ssh ricardo@192.168.0.14 ne marchera pas (pour la même raison)

commande à partir de l’extérieur ?

Bon, je verrai tous ces problèmes de parefeu et ssh après.
Je voudrais juste tester ma page d’accueil que j’ai placée dans le serveur
/var/www/index.html
j’ai modifié le fichier index.html existant en …vieux.
Quel genre de commande dois-je taper pour ce faire :question:

192.168.0.14/

Ça fonctionne, et pourtant, j’avais bien essayé tout à l’heure et j’avais un refus :083 :017
J’ai pensé que cette commande n’était pas la bonne.
Enfin, la liaison sur ma page d’acceuil se fait, c’est le principal, même si les couleurs ne sont pas là, ce qui est normal puisque je n’ai pas ajouté le dossier des css.
Donc, prochiane étape, mettre ça sur le web avec apache2, je pense.
Pour m’éviter de trop chercher, tu me dis en gros, ce qu’il me faut faire, merci mon Fanfan préféré :033

Salut,
Je ne suis pas aussi bon que “Fanfan” :005 mais je pense que faire une redirection dans ta box vers le port 80 de ton serveur Web doit suffire ! (Même principe que pour le SSH sur lequel tu as déjà bossé)
Le but c’est que lorsque quelqu’un demande le port 80 (http) de ton IP publique (la box), il soit redirigé vers le même port sur l’IP privée de ton serveur Web (192.168.0.14 ?).

Dis-donc, il va falloir nous faire un résumé de tout ça hein ! 8 pages déjà !!! :wink:

Pour ce qui est d’en faire un récapitulatif, une fois tout en place, on essaiera mais c’est loin d’être terminé :005
Je ne comprends pas ce que tu préconises, j’ai lu partout que ça se gérait au travers de apache2 car la box n’a rien à voir là-dedans, il me semble ?
Si ma Box est éteinte, le monde doit pouvoir quand même se connecter sur mon site web, non ?

[quote=“ricardo”]Pour ce qui est d’en faire un récapitulatif, une fois tout en place, on essaiera mais c’est loin d’être terminé :005
Je ne comprends pas ce que tu préconises, j’ai lu partout que ça se gérait au travers de apache2 car la box n’a rien à voir là-dedans, il me semble ?
Si ma Box est éteinte, le monde doit pouvoir quand même se connecter sur mon site web, non ?[/quote]

Ta box a pour but de rediriger les messages exterieurs vers les postes adéquats ( d’où le terme de routeur :stuck_out_tongue: ).

Par défaut, les requetes exterieures ne seront pas redirigées vers un poste particulier, seules les réponses à une “conversation” entre deux pc ( genre google <==> un poste de ton réseau ) le sont.
Donc si on demande ton site web, la box ne répondra rien vu qu’elle ne saura pas à qui envoyer la requete.
Il faut donc lui préciser de rediriger toutes les requetes http ( 80 ) vers ton serveur pour qu’ensuite il puisse les traiter.
Dans l’autre sens, il n’y a par contre généralement aucun problème.

[quote=“ricardo”]
Si ma Box est éteinte, le monde doit pouvoir quand même se connecter sur mon site web, non ?[/quote]

salut

non si tu eteint la box, le site sera inaccessible …

perso avec sfrbox

j’ai redirigé le port 22, 80 et 1000 (webmin) en TCP et UDP

voila @+

Merci de ces précisions, je n’avais pas percuté sur le rôle de la box.
En y réfléchissant mieux (si, ça m’arrive :116 :017 ), je comprends bien que si mon serveur est ouvert mais la box éteinte, la liaison doit difficilement passer … :unamused: :unamused: :unamused: pov’ ricardo !
On voit ça en début D’AM;

Je retiens une chose, tout ces aventures me dit de ne surtout pas monter un quelconque serveur web ou autre :119

Je trouve ça TRES compliqué quand même :12 :017

Salut,

[quote=“M3t4linux”]Je retiens une chose, tout ces aventures me dit de ne surtout pas monter un quelconque serveur web ou autre :119

Je trouve ça TRES compliqué quand même :12 :017[/quote]

Hum…
apt-get install apache2 + forwarding de port dans le routeur… Pas si compliqué ! :smiley:

Et pourtant quand je lis l’épopée de Ricardo à ce sujet :119 :119

Des épopées, il y en a plein « Support Debian », tu t’es pourtant pas dit « c’est compliqué Linux » !

Après si, comme beaucoup, par « c’est compliqué », tu entends « j’ai autre chose à foutre de mon temps », alors là c’est toi qui voit… :wink:

C’est juste le concept qu’est un peu dur à comprendre. l’application prend 30 minutes à tout casser ( sans compter la sécurité )