[Pidgin] #6071: Pidgin VNC integration

Pidgin trac at pidgin.im
Mon Jun 16 00:12:22 EDT 2008


#6071: Pidgin VNC integration
-----------------------------+----------------------------------------------
  Reporter:  manishmahabir   |       Owner:  lschiere
      Type:  plugin request  |      Status:  new     
  Priority:  minor           |   Milestone:          
 Component:  unclassified    |     Version:  2.4.2   
Resolution:                  |    Keywords:          
   Pending:  0               |  
-----------------------------+----------------------------------------------
Comment (by manishmahabir):

 This blueprint is taken from brainstorm:
 http://brainstorm.ubuntu.com/idea/6389/

 The guy has planned to work on it and is looking for developers who would
 like to help and anyone who might know how to restrict SSH reverse
 tunnels.


 The current problem:
 Vino is installed by default, but is usually inaccessible due to routers
 (NAT more specifically).
 Because these users are often behind a firewall, getting access would
 traditionally require opening a port in the firewall which presents a
 series of problems.

 * Many users will not choose a secure password for vino and someone can
 brute force the password and take over their computer.
 * Many users don't know how to open a port in their firewall because
 they've never done it/don't remember the password/don't know what a router
 is/etc.
 * This also leaves the connection unencrypted.


 proposed solution:

 I think the best solution would be to have a server that the person
 requesting help (referred to as User) and the person helping (referred to
 as Support) can both connect to that will bridge the connections.

 Both sides will have a program that connects them in a chat room where
 there is a bot available, If they need remote desktop support they both
 tell the bot (maybe through a button in the applicatin) they need to
 bridge a connection between the two. Both of the programs generate
 public/private ssh key pairs (if they don't already have them) and send
 them to the bot. The bot then prepares a user account on the SSH server so
 that User can only listen on a specific port (reverse tunnel) and Support
 can only get to that same port (forward tunnel). Once the server is
 prepared User's program creates a reverse tunnel (ssh -R
 5980:localhost:5900 help at example.com), then Support's program automaticly
 creates a forward tunnel (ssh -L 5999:localhost:5980 help at example.com),
 then runs "vnc localhost:99". At this point the SSH server has created a
 bridge between both user's firewalls.

 *In the example above, the server decided that these users would use port
 5980 on the SSH server to connect to each other, and user is running
 Ubuntu and is the first user logged in which listens on port 5900
 *vnc displays listen on port numbers that are port+5900, so display 0
 listens on 5900, display 80 listens on 5980


 One user can be shared on the SSH server with different options per SSH
 key. The following line would be used for the support user in this example
 to make sure that they can't run any commands on the server, and can only
 create a forward connection to their assigned port (5980).
 command="/bin/sleep 20",no-X11-forwarding,no-port-forwarding,no-agent-
 forwarding,permitopen="localh ost:5980" ssh-rsa AAAA....
 I can't seem to find a command to do the same thing in reverse to enforce
 the rule that user must listen on port 5980.


 Does this help?

-- 
Ticket URL: <http://developer.pidgin.im/ticket/6071#comment:2>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list