Si le wifi de ton client filtre un peu trop les connexions sortantes de son réseau, et que tu n'utilises pas le port 443 de ta connexion internet, tu peux planquer un serveur SSH derrière le port 443.
Depuis ton laptop, tu te connectes en SSH sur le serveur, et tu demandes un tunnel du port 3306 du serveur sur le port 3306 du localhost de ton portable.
Tu n'as plus qu'à connecter ton appli sur ton port localhost:3306, qui va te renvoyer directement sur le serveur MySQL de ton serveur.
Afin, de sécuriser la chose, tu peux :
- faire que le login de ton "user@adresse_ip_serveur" tombe sur un faux-shell (/usr/local/bin/fake_shell). Quelque chose du type (code en C) :
#include <stdio.h>
#include <unistd.h>
int main (int argc, char* argv[]) {
printf("Le tunnel SSH actif\n\
Vous pouvez lancer les connexions aux tunnels.\n\
Vous pouvez arrêter cette connexion en tapant plusieurs fois Ctrl+C\n");
sleep(-1);
return 0;
}
Que tu compiles comme cela :
gcc -Wall -o /usr/local/bin/fake_shell fake_shell.c
- et enfin, mettre en place une paire de clé publique/privée, protégées par un mot de passe, qui fera que seul cette clé peut se connecter au serveur SSH.
# Tunnel SSH sur le port 443
Posté par Olivier (site web personnel) . En réponse au message Sécurité serveur MySQL. Évalué à 5.
Depuis ton laptop, tu te connectes en SSH sur le serveur, et tu demandes un tunnel du port 3306 du serveur sur le port 3306 du localhost de ton portable.
En clair, cela donne cela :
ssh -oPort=443 -L 3306:localhost:3306 user@adresse_ip_serveur
Tu n'as plus qu'à connecter ton appli sur ton port localhost:3306, qui va te renvoyer directement sur le serveur MySQL de ton serveur.
Afin, de sécuriser la chose, tu peux :
- faire que le login de ton "user@adresse_ip_serveur" tombe sur un faux-shell (/usr/local/bin/fake_shell). Quelque chose du type (code en C) :
#include <stdio.h>
#include <unistd.h>
int main (int argc, char* argv[]) {
printf("Le tunnel SSH actif\n\
Vous pouvez lancer les connexions aux tunnels.\n\
Vous pouvez arrêter cette connexion en tapant plusieurs fois Ctrl+C\n");
sleep(-1);
return 0;
}
Que tu compiles comme cela :
gcc -Wall -o /usr/local/bin/fake_shell fake_shell.c
- et enfin, mettre en place une paire de clé publique/privée, protégées par un mot de passe, qui fera que seul cette clé peut se connecter au serveur SSH.
J'ai écrit un article pour Linux+DVD, et fait une conférence sur le sujet. Tu trouveras les transparents de la conférence ici : http://olivieraj.free.fr/fr/linux/information/prise_en_main_(...)