Hi all,
I agree with James for including several things such as monitoring
stdin/out/err into the wrapper.
But I'm not very ok for the idea of creating a socket for each
connection because our users will probably only use one GUI so this GUI
may have to discuss throught a unique socket to make things simpler. Now
I agree that they're problems when we run several tunnels. I think of a
system where each starting tunnel can ask, throught the same socket, a
password or user/pass data just by adding a header like:
foo.ovpn: asking private key password
foo2.ovpn: asking extended auth. username
This way the GUI will have to handle just one socket, it could be then
simpler to add features to GUI, ITOA it's harder for wrapper to add those.
An other point is security. Actually the service wrapper need to run as
SYSTEM/Admin rights, we have to limit the features and commands which
will run as SYSTEM.
Didier
James Yonan wrote:
On Fri, 1 Oct 2004, Mathias Sundman wrote:
Didier announced a first release of an improved version of the OpenVPN
Service Wrapper earlier this week. The goal with this is to allow a non
admin user on Windows to start/stop openvpn processes.
It does this by listening on a local TCP socket for commands like "START
config.ovpn" or "STOP config.ovpn".
I've started working on OpenVPN GUI 2.0 that will use this service
wrapper to control openvpn.
There is two things that remain unsolved though that I'd like to bring up
for some discussion.
1. How do we pass the private key passphrase from the GUI to the openvpn
process?
2. How do we get the openvpn log to the GUI so we can show it in real time
in the status window?
I can see a couple of solutions:
A) We create a pipe between the openvpn process and the service wrapper.
The service can then watch the openvpn output for the passphrase prompt,
and pass on the request to the GUI over the TCP socket.
The log is then written to the log file by the service. The GUI will have
to monitor this file for changes to be able to show the log in real-time.
B) We create another TCP socket for every launched process, and creates a
pipe between this socket and the openvpn process. The GUI can then connect
to this socket to recieve the log in real-time, and can monitor this for
the passphrase prompt itself.
I like the idea of having the service wrapper control the
stdin/stdout/stderr which is passed to the openvpn process, then have it
send password(s) over stdin.
So the communication between the service wrapper and the openvpn processes
would be via standard i/o handles and the communication between the
service wrapper and the GUI would be over the management socket.
That means the service wrapper would need to be a proxy of sorts, passing
passwords and possibly log file output as well between the GUI and openvpn
processes.
James
-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel