OpenVPN GUIA simple GUI for starting and stopping a OpenVPN daemon. Also displays VPN IP.
|
Rating: 0 Rate:
|
||||||||||||
|
Commentsgonzo wrote: (2009-03-10 14:17:16)
NameError: global name 'ovpnStart' is not defined
--- /usr/local/bin/ovpngui.py Tue Mar 10 14:11:19 2009 +++ /usr/local/bin/ovpngui.py.orig Tue Mar 10 14:09:03 2009 @@ -52,14 +52,14 @@ """ You clicked 'Start' button, let's start the openvpn daemon """ def btnStartClicked( self, widget, data = None ): - output = os.popen ( self.ovpnStart, "r") + output = os.popen ( ovpnStart, "r") text = output.read () print text return True """ You clicked 'Stop' button, let's stop the daemon """ def btnStopClicked( self, widget, data = None ): - output = os.popen ( self.ovpnStop, "r") + output = os.popen ( ovpnStop, "r") text = output.read () print text return True gonzo wrote: (2009-03-10 14:19:33)
What's about passphrase-handling ?
More than one config ? Source wrote: (2009-03-11 17:47:17)
THose changes are in 0.1.3 when I put it up.
Passphrase-hanling ? Sorry, but I don't what that's about.. post a url to some info about it and I can see what I can do about it. gonzo wrote: (2009-03-15 23:33:40)
the following quick-hack
+enables passphrase-handling +allows tun0 or tap0 devices opkg install http://www.angstrom-distribution.org/unstable/armv4t/python/python-pexpect_2.1-r0_armv4t.ipk ln -s /usr/lib/python2.5/site-packages/pxssh.pyo /usr/lib/python2.6/ ln -s /usr/lib/python2.5/site-packages/pxssh.py /usr/lib/python2.6/ ln -s /usr/lib/python2.5/site-packages/fdpexpect.py /usr/lib/python2.6/ ln -s /usr/lib/python2.5/site-packages/fdpexpect.pyo /usr/lib/python2.6/ ln -s /usr/lib/python2.5/site-packages/pexpect.py /usr/lib/python2.6/ ln -s /usr/lib/python2.5/site-packages/pexpect.pyo /usr/lib/python2.6/ diff -Nru /tmp/ovpngui.py{.orig-0.1.3,} --- /tmp/ovpngui.py.orig 2009-03-15 23:23:42.000000000 +0100 +++ /tmp/ovpngui.py 2009-03-15 23:28:57.000000000 +0100 @@ -29,13 +29,47 @@ import struct import array import gobject +import pexpect +import sys class ovpngui: + ovpn = "/etc/init.d/openvpn" ovpnStart = "/etc/init.d/openvpn start" ovpnStop = "/etc/init.d/openvpn stop" ovpnLogFile = "/path/to/logfile.log" ovpnAbout = "<b>About:</b>\nOpenVPN GUI\n\nBuilt by:\n|Marco| on FreeNode\n(IRC)" + def responseToDialog(self, entry, dialog, response): + dialog.response(response) + def getText(self): + #base this on a message dialog + dialog = gtk.MessageDialog( + None, + gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, + gtk.MESSAGE_QUESTION, + gtk.BUTTONS_OK, + None) + dialog.set_markup('Please enter your <b>Passphrase</b>:') + #create the text input field + entry = gtk.Entry() + entry.set_visibility(False) + #allow the user to press enter to do ok + entry.connect("activate", self.responseToDialog, dialog, gtk.RESPONSE_OK) + #create a horizontal box to pack the entry and a label + hbox = gtk.HBox() + hbox.pack_start(gtk.Label("Passphrase:"), False, 5, 5) + hbox.pack_end(entry) + #some secondary text + dialog.format_secondary_markup("This will be used for <i>identification</i> purposes") + #add it and show it + dialog.vbox.pack_end(hbox, True, True, 0) + dialog.show_all() + #go go go + dialog.run() + text = entry.get_text() + dialog.destroy() + return text + """ log reader """ def readLogFile( self, logfile ): print "Read logfile" @@ -48,14 +82,15 @@ """ You clicked 'Start' button, let's start the openvpn daemon """ def btnStartClicked( self, widget, data = None ): - output = os.popen ( ovpnStart, "r") - text = output.read () - print text + child = pexpect.spawn(self.ovpn, ['start']) + child.logfile_read = sys.stdout + child.expect('Enter Private Key Password:') + child.sendline(self.getText()) return True """ You clicked 'Stop' button, let's stop the daemon """ def btnStopClicked( self, widget, data = None ): - output = os.popen ( ovpnStop, "r") + output = os.popen ( self.ovpnStop, "r") text = output.read () print text return True @@ -78,7 +113,7 @@ def interfaceStatus ( self, data = None ): """ VPN Check """ - if self.ifaceUpDown('tun0') == 1: + if (self.ifaceUpDown('tun0') == 1) or (self.ifaceUpDown('tap0') == 1): self.btnStart.set_sensitive( False ) self.btnStop.set_sensitive( True ) self.lblStat.set_markup( '<b><span color="green">VPN Tunnel is UP</span></b>' ) @@ -86,7 +121,7 @@ vpnTunIp = "<b>VPN:</b> %s" % ( tip ) self.lblVpn.set_markup( vpnTunIp ) - elif self.ifaceUpDown('tun0') == 0: + elif (self.ifaceUpDown('tun0') == 0) or (self.ifaceUpDown('tap0') == 0): self.btnStart.set_sensitive( True ) self.btnStop.set_sensitive( False ) self.lblStat.set_markup( '<b><span color="red">VPN Tunnel is DOWN</span></b>' ) Source wrote: (2009-03-17 00:18:07)
It didn't work on my vpn connection, no dialog. got some consol output, but nothing more :/
source wrote: (2009-03-17 15:11:32)
gonzo: spot me a email so I can dump some outputs to you.
You'll find my email on my site. gonzo wrote: (2009-03-17 15:49:29)
You must generate a key with a passphrase.
Only on expected output 'Enter Private Key Password:' the dialog pop up.
|








