Threw together a quick script to pull keys from an access.conf and make a qrcode for each access stanza. No guarantees it deals correctly with every valid access.conf, but it's a start. To use it, "sh console-qr.sh < access.conf"
#!/bin/sh while read line; do line=$(echo "$line" | sed 's:#.*$::g') if [ "$(echo $line | grep -c 'SOURCE')" -ne "0" ] && [ -n "$qr" ] then qrencode -o - -t UTF8 "$qr" qr="" fi if [ "$(echo $line | grep -c 'KEY')" -ne "0" ] then trline="$(echo $line | sed 's/^[ \t]*//;s/[ \t]*$//' | sed 's/ /:/')" qr="$qr$trline " fi done if [ -n "$qr" ] then qrencode -o - -t UTF8 "$qr" fi On Mon, May 18, 2015 at 11:02 AM, Jonathan Bennett <[email protected]> wrote: > It's definitely been a group effort. Kudos to everybody that's worked on it. > > We should be able to get the qr codes in the OpenWrt 15.05 release. (their > naming scheme is a bit strange, it'll be a couple months before they are > ready to release) > > What do you think about giving fwknopd the ability to generate keys? I think > it might make more sense there than in the client. It would also make life a > bit easier in OpenWrt, as there would be one less package to install. Flash > space is at a premium on some routers, and if the daemon could gen the keys, > we could make everything work without the client package. > > ~Jonathan Bennett > > On Mon, May 18, 2015 at 7:53 AM, Michael Rash <[email protected]> wrote: >> >> >> >> >> On May 16, 2015, at 9:41 PM, Michael Rash <[email protected]> wrote: >> >> >> >> On Sat, May 16, 2015 at 1:49 PM, Jonathan Bennett <[email protected]> >> wrote: >>> >>> TL;DR: using qr codes to add keys to the android app. >> >> >> Now that would be a really cool feature. Copying symmetric keys around has >> always been an issue (obviously not just for fwknop, and this one reason >> fwknop supports GPG keys), so I think as long as people generally access >> the >> Luci interface via SSL/TLS (?) this would be reasonably secure and be a >> big >> boost to useability for mobile users. >> >>> >>> >>> Fwknop/fwknopd is a very clever project. I've thought highly of it since >>> first learning about the novel approach to doing port knocking in a more >>> secure manner. There is one issue, though. It's hard to use. I'm not >>> afraid >>> of the command line, and yes, it's quite possible to script the use of >>> fwknop to open ports. I've been thinking about usability and >>> noob-friendlyness in the past days, especially in regards to fwknop/d >> >> >> Completely agree that usability is lacking. Lately I've been spending most >> of my time on code coverage, fuzzing, etc. to try and ensure a high degree >> of security, but usability needs to be ramped up too. I think your Luci >> interface is huge in this area, and fwknop needs more efforts like this. >> >>> >>> >>> There is a danger in trying to maximize usability. It's possible to >>> sacrifice freedom and or usefulness for usability. I am very much against >>> this trade-off. >> >> >> Agreed - fwknop has always maximized config options and capabilities I >> suppose, and this has come to some degree at the expense of usability. So >> far, the biggest contribution to usability has been Frank Joncourt's >> addition of the ~/.fwknoprc file so that people can easily reference >> consistent command line options from the client just with by naming the >> SPA >> destination with "-n <server>". This was a great addition, and we can do >> more like this. >> >> >> Btw, I should have mentioned that Damien originally added the .fwknoprc >> file >> Infrastructure, and Franck worked on a lot of variable processing code, >> etc. >> It's all there in git history. >> >> Mike >> >> >>> >>> >>> With the new Luci module for openwrt, I feel like there is now an easy to >>> use option for configuring fwknopd on a router. For a home user that >>> simply >>> wants to protect port 22 without locking himself out of his network, this >>> is >>> perfect. I've intentionally avoided making this interface too simple. >>> It's >>> easy to get started, but you can do everything from luci that you can do >>> with the command line interface, in regards to fwknopd. >> >> >> Very cool. This is definitely the first major step towards better >> useability >> on the server side of things. >> >>> >>> >>> When I'm away from my desktop, for better or worse, I access the internet >>> through an android phone, an android tablet, or occasionally a customer's >>> desktop. Using the fwknop client from my android tablet isn't much of an >>> option. Yes, I could compile the binary and make it run in the android >>> terminal, etc, but that is a big hurdle to a typical user, and quite a >>> pain, >>> even to those of us who can do it. >>> >>> I took a closer look at the android app today, and it has some great >>> potential. It also has, in my opinion, some issues. The lack of base64 >>> key >>> support is a big one, and that is a known weakness that is planned to be >>> addressed. Another problem is the fact it tends to hang on launch, >>> waiting >>> to verify external ip. Again, planned to be addressed. >>> >>> Once base64 is supported, typing both keys in every time one wants to >>> open >>> a port is a bit crazy. This is easily fixed by making the keys savable. >>> But >>> on further thought, it's a bit crazy to type the keys in even once. >>> >>> So, this leads me to a couple ideas, somewhat inspired by how openvpn >>> connect works. The first is a text file that contains both keys, and >>> *maybe* >>> the ip address/hostname to connect to. I believe we could make openwrt >>> generate this file, and make it available from the luci interface. The >>> end >>> user would then just install the fwknop android app, open the luci >>> interface >>> on the phone, and grab the file. It could open automatically in the >>> fwknop >>> app, and add the keys as a connection option. This format could be useful >>> for the cli interface, too. >> >> >> If the Android client could be made to essentially handle the ~/.fwknoprc >> file like the normal client, then on openwrt the Luci interface could just >> drive the client with '--key-gen --use-hmac --save-rc-stanza ...'. I guess >> this assumes the client is installed on openwrt as well. If there is a >> more >> natural style of file on Android for this type of data (xml maybe?) then >> the >> fwknop client could be updated to produce this format too, although a >> quick >> python wrapper around the existing ~/.fwknoprc format would probably be >> easier/faster. >> >>> >>> >>> The second, slightly more outlandish option is to embed a qr code in the >>> luci interface. Add a qr scanning feature to the android app, and just >>> scan >>> the qr code to add the keys. This *could* be the ultimate in usability. >>> It >>> wouldn't be forced on anyone, but it could be there as an option. I >>> personally think this could be a really slick feature. >>> >>> It seems like either idea would be feasible. Any thoughts or ideas are >>> welcome. I might try to dive into the android code soonish, at least to >>> get >>> a handle on what all is going on there. >> >> >> I think both ideas are excellent. The QR feature is definitely really >> slick. >> >> --Mike >> >> >>> >>> >>> ~Jonathan Bennett >>> >>> >> >> >> ------------------------------------------------------------------------------ >> One dashboard for servers and applications across Physical-Virtual-Cloud >> Widest out-of-the-box monitoring support with 50+ applications >> Performance metrics, stats and reports that give you Actionable Insights >> Deep dive visibility with transaction tracing using APM Insight. >> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >> >> _______________________________________________ >> Fwknop-discuss mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/fwknop-discuss >> >> >> >> ------------------------------------------------------------------------------ >> One dashboard for servers and applications across Physical-Virtual-Cloud >> Widest out-of-the-box monitoring support with 50+ applications >> Performance metrics, stats and reports that give you Actionable Insights >> Deep dive visibility with transaction tracing using APM Insight. >> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >> _______________________________________________ >> Fwknop-discuss mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/fwknop-discuss >> ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ Fwknop-discuss mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/fwknop-discuss
