Aller au contenu

Shell Prompt Dans L'interface Dsm


Messages recommandés

  • Réponses 82
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Trouvé et testé ceci:

http://phpshell.sourceforge.net/

C'est très basique, le shell s'exécute dans le contexte du compte http (nobody)

J'avais vu des machins plus sophistiqués (avec une applet java ), notemment au sein de webmin.

Faut chercher encore un peu

[edit]

et voila: http://javassh.org/space/start

[edit #2]

Celui-la, c'est pas tout a fait ce que tu demandes: comme l'applet java s'éxécute sur le client, faut que ce dernier ait accès au synology en ssh ou telnet.


[edit #3]

Trouvé!

http://code.google.com/p/shellinabox/

télécharger le source (shellinabox-2.13.tar.gz a partirde http://code.google.c.../downloads/list)

extraire l'archive dans un répertoire de travail:


cd <rep>

tar xvzf <download dir> shellinabox-2.13.tar.gz

cd shellinabox-2.13


compiler (necessite le package ipkg optware-devel):

./configure --prefix=<cible>

# (cible: racine  ou sera installé la commande, exemple --prefix=/volume1/site/, commande dans /volume1/site/bin)

make

make install


et ensuite <cible>/bin/shellinaboxd -s "/:LOGIN" & Ne reste plus qu'a pointer le navigateur sur http://<ip du syno>:4200 pour voir le prompt de login:

fserv login: root

Password:



BusyBox v1.16.1 (2012-04-13 04:26:57 CST) built-in shell (ash)

Enter 'help' for a list of built-in commands.


@fserv> ls

tmp

@fserv>	  

Doc en ligne: http://code.google.c...hellinaboxd_man

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

J'avais trouvé le shellindabox et quelques autres

Le truc c'est que je peux pas utiliser d'autre port que le 80, et je suis absolument pas familier des vhosts ni des config apache

Et mon "rêve" serait de pouvoir tout centraliser dans l'interface DSM

Je vais voir ce que je trouve d'autre, avec mes maigres compétences web :D

Merci pour ton aide Raoul

Lien vers le commentaire
Partager sur d’autres sites

Client SSH en html5 ... çà laisse rêveur :D

Ça sera le même problème que pour l'applet java: va forcément s'exécuter dans le contexte du navigateur.

Shellinabox est un serveur http (optionnellement https) qui donne accès à distance au shell (ou toute autre commande en mode terminal) dans un navigateur.

Lien vers le commentaire
Partager sur d’autres sites

J'avais trouvé le shellindabox et quelques autres

Le truc c'est que je peux pas utiliser d'autre port que le 80, et je suis absolument pas familier des vhosts ni des config apache

Et mon "rêve" serait de pouvoir tout centraliser dans l'interface DSM

Je crois que ton reve n'est pas inaccessible:

xcQ5l.jpg

(réalisé sans trucage bien entendu)

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Alors là ... Raoul !!!!!!!!!!!!!!!

J'étais déjà en train de regarder les posts sur le VPN, voir si j'aurais pu compenser ou pas

Mais alors là !

Dit m'en plus !!!!!

Tu as été modifié un de tes scripts rsync si je vois bien, dont tu as un "bouton" dispo sur le DSM ?

IPKG + sources ... çà a l'air packageable .... dis nous tout !!!!!

Lien vers le commentaire
Partager sur d’autres sites

C'est vrai quoi ! Dis nous ?????? :ph34r:

OOPS : http://www.synology-...-Box-auf-der-DS

http://forum.synology.com/enu/viewtopic.php?f=27&t=42093

Modifié par CaptainIgloo
Lien vers le commentaire
Partager sur d’autres sites

Tu as été modifié un de tes scripts rsync si je vois bien, dont tu as un "bouton" dispo sur le DSM ?

IPKG + sources ... çà a l'air packageable .... dis nous tout !!!!!

D'abord compiler shellinabox comme je l'ai indiqué,

Je dois ajouter quelques détails complémentaires:

Le package ipkg openssl-dev est requis pour le support ssl

La commande "configure" doit être:

LDFLAGS="-L/opt/lib"  CPPFLAGS="-I/opt/include" ./configure --prefix=/site 
(changer le "prefixe" a sa sauce) générer un certificat ssl autosigné pour shellinabox (à faire dans le répertoire des sources)

mkdir -p <prefixe>/etc/shellinabox/

bash ./make-chained-cert.sh ><prefixe>/etc/shellinabox/certificate.pem

[/code]




dans un fichier de conf http inclus a partir de "/usr/syno/apache/conf/httpd.conf-user" mettre



[xml] <IfModule !proxy_module> LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so </IfModule> <Location /shell> ProxyPass http://localhost:4200/ Order deny,allow deny from all # ce qui suit est un exemple, chaqun configure la sécurité a son gout allow from 192.168.1.0/24 </Location> [/xml]
lancer le démon shellinabox comme ceci:
[CODE]<prefixe>/bin/shellinaboxd --localhost-only --cert <prefixe>/etc/shellinabox --background[/code]

dans tout ce qui precede <prefixe> est à chaque fois à remplacer par le répertioire choisi au moment du configure

rédémarrer le serveur apache-user

Ceci permet déja d'accéder au shell sur le port 80:

http://<addresse syno>/shell

Pour l'intégration au menu DSM, cela fera l'objet d'un post ultérieur

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Le SSL du shell , est-il vraiment utile si ma connection au DSM lui même est déjà en SSL ?

Ben oui car la sous-fenetre shell utilise son propre flux http, indépendant de la fenetre DSM.

En remplacant, dans le tuto de http://www.synology-forum.de

"type":"legacy",
par
"type": "url",[/code]

l'application étant alors lancée dans sa propre fenetre, on peut constater que l'url est "http" et pas "https"

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Ben oui car la sous-fenetre shell utilise son propre flux http, indépendant de la fenetre DSM.

En remplacant, dans le tuto de http://www.synology-forum.de

"type":"legacy",
par
"type": "url",[/code]

l'application étant alors lancée dans sa propre fenetre, on peut constater que l'url est "http" et pas "https"

Sur ce tuto, il lance le service SIAB depuis le DSM. J'ai donc supposé que la connexion du SAIB se faisait sur le localhost qui l'héberge

Mais tu indiques l'inverse, et que donc le flux n'est pas secure. Dans ce cas, je comprends pas comment on a 2 connexion vers le même port 80.

Ou alors j'ai mal compris, et SIAB tourne sur un autre port, que le DSM affiche, et là, c'est moins top pour moi :(

Je suis un peu perdu, donc si je suis pas clair, hésite pas à me le dire :P

Lien vers le commentaire
Partager sur d’autres sites

Mais tu indiques l'inverse, et que donc le flux n'est pas secure. Dans ce cas, je comprends pas comment on a 2 connexion vers le même port 80.

C'est le proxy qui permet cela. Grace aux les lignes suivantes dans le config apache:


<Location /shell>
ProxyPass http://localhost:4200/
</Location>

Les connexions http arrivant avec l'url http://<addresse du syno>/shell sont "proxyfiées"/"tunnellées" (quel terme utiliser ???) en sur le port 4200 local.

SIAB, sous réserve qu'il ait été compilé avec le support SSL et n'ait pas été lancé avec le switch "--disable-ssl-menu", passe automatiquement de http en https, c'est pourquoi on peut laisser "http://" dans la conf ci dessus.

Tu remarquera d'ailleurs que je lance SIAB avec l'argument "--localhost-only". Comme cela le démon n'écoute que sur l'ip de loopback (127.0.0.1) et on est obligé de passer par le proxy pour s'y connecter. Ceci permet de mettre des restrictions d'ip grace aux directives "allow from" d'apache au lieu de le faire via le firewall.

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Bon, au final, j'ai quelques questions de noob :D

Je dois bien générer le certif avant la compilation ?

La commande pour la génération indique "bash prog..." je peux pas juste faire un "./prog ..." ? (je dois installer bash en plus ?)

Pour la compilation, je dois juste faire "LDFLAGS="-L/opt/lib" CPPFLAGS="-I/opt/include" ./configure --prefix=/site " avec un --enable_ssl en plus si j'ai bien compris ?

Et pour le prefix, je peux le laisser vide ? Ca pointera bien vers /usr/local ?

Lien vers le commentaire
Partager sur d’autres sites

Bon, au final, j'ai quelques questions de noob :D

Tes posts précédents ne m'on pas donné l'impression d'un noob ^_^ mais bon...

Je dois bien générer le certif avant la compilation ?

non, le certif n'est nécessaire que lors de l'exécution

donc à faire avant de lancer le démon et une seule fois

La commande pour la génération indique "bash prog..." je peux pas juste faire un "./prog ..." ? (je dois installer bash en plus ?)

"./prog" ne marcherait pas parce que le script contient le shebang "#!/bin/bash -e" alors que le bash optware est dans /opt/bin.

Mais tu peux aussi le lancer avec le shell standard "sh" ("sh <prog>, je viens de vérifier)

Pour la compilation, je dois juste faire "LDFLAGS="-L/opt/lib" CPPFLAGS="-I/opt/include" ./configure --prefix=/site " avec un --enable_ssl en plus si j'ai bien compris ?

Le "enable-ssl" est automatique des que configure détecte la présence de openssl. Donc pas necessaire, car LDFLAGS et CPPFLAGS servent à ça justement.

Mais assure-toi de bien avoir installé le package ipkg openssl-dev.

Et pour le prefix, je peux le laisser vide ? Ca pointera bien vers /usr/local ?

J'ai pas vérifié mais c'est ce qui est utilisé par défaut en général

De toutes manières ça ne mange pas de pain de mettre un --prefix=/usr/local explicite

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

C'est pour ça que j'avais indiqué d'installer le "meta package" "optware-devel" qui contient tout les outils nécessaires pour compiler.

J'avais complètement pas vu cette ligne :P

En tout cas, programme compilé et se lance correctement

Je tatonne la config pour l'inclure dans le DSM

Lien vers le commentaire
Partager sur d’autres sites

Je tatonne la config pour l'inclure dans le DSM

Essaie d'abord de le tester en dehors de l'interface, c'est plus simple.

L'inclusion dans DSM est a mon avis pas essentielle.

Pouvoir l'attaquer via le port 80 grace au proxy me semble suffisant pour commencer.

[edit]

si tout est bien configur

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Alors, hors DSM, tout marche nickel tant que j'active pas le SSL (aussi bien port 4200 que la redirection /shell)

Dès que je passe avec le --cert /chemi/certif.pem, l'url est bien redirigée en httpS, mais j'ai une belle erreur

(Code d'erreur : ssl_error_no_cypher_overlap)

Dans mon navigateur, j'ai tenté d'activer le "ssl3.rsa_rc4_40_md5" mais toujours rien

Je vais regarder si je peux pas générer un certif "différent"

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.