I installed and configured OpenVPN on my BeagleBone. I recommend following this guide on Digital Ocean. I have followed many guides on Digital Ocean and they have all been extremely helpful. They are well written, clean, and to the point.
Note: Do not install easy-rsa when you install OpenVPN and do not copy the easy-rsa directory as the author explains. Instead, copy the directory as this article on readwrite explains. OpenVPN comes with its own easy-rsa directory, so all you have to do is:
cp –r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa
I was able to verify that my OpenVPN server works by using the OpenVPN Connect app for Android. I had to create the unified client.ovpn as the Digital Ocean article explains, copied it to my phone, and then imported the file using the app. I also had to configure port forwarding on my router and I was already using Dynamic DNS provided by NoIP.com.
My next steps are to configure a couple laptops to connect to the server and then setup a fileserver with the BeagleBone.
If you have just configured OpenVAS, you may want to run a quick scan to verify everything works. This assumes that you have another system to scan that your machine can access. I suggest creating a virtual lab with Metasploitable. Once you’re set up, follow these steps.
1. Open a browser, go to https://127.0.0.1:9392, and login with your OpenVAS credentials.
2. Type the IP address of target machine and click Start Scan. This can take a while but the status will refresh.
3. Once it’s complete, click the date of the task to see the full report. This can be further reviewed and downloaded in different formats.
Below are my steps in configuring OpenVAS in Kali Linux. Run the following commands as root or use sudo if you have that configured.
1. First, update the system.
apt-get update && apt-get upgrade
2. The menu command to check the OpenVAS installation kept failing, so I decided to re-install the package. From here on I steered clear of Kali’s Application menu–at least for OpenVAS commands. You may not need to re-install and can skip this step.
apt-get remove openvas
apt-get install openvas
3. Fill holes. Just like fixing your code by compiling it, periodically run the below command to see what needs to happen next in order to complete the setup.
I decided to make this a separate post because it’s pretty important. I am using Linux Mint with which to develop. I already had a cross-compiling toolchain installed in my environment. It could be invoked with the command arm-linux-gnueabi-gcc. For some reason, this was not compiling a binary that would run on the BeagleBoard. Running file on the binary would say that it’s compiled for ARM. But, the output on the BeagleBoard would be:
-bash: ./myBinary: No such file or directory
Then, I read somewhere about a different toolchain, gcc-arm-linux-gnueabihf. I used apt-get to install that package and was able to successfully cross-compile with the command:
arm-linux-gnueabihf-gcc -o myBinary myCode.c
I have been away from this project for a while, so I decided to flash a new image on the BeagleBone and sorta start from scratch. I got the latest Debian image, Debian 2015-03-01, that can be found on BeagleBoard’s website. I like this image much better than Angstrom, because I am much more familiar with the Debian system. This will help me with package management and networking.
I have tried many methods to get the wifi dongle and driver to work for a while now. I’ve tried Ubuntu, Debian, and then tried to cross-compile the driver. Finally, I saw this post on how to set it up with Angstrom. So, I reloaded the latest Angstrom image, downloaded the driver from Realtek, followed the steps, and it worked! Now, since I still don’t have a project in mind, I’m going to play around with some starter programs in the Cloud9 IDE like the one in the README.
I will update back when I have made some progress and hopefully a plan on a project.