Private VPN on Ubuntu Server or Raspberry Pi

I can run my own VPN that becomes an encrypted, point-to-point connection from anywhere? Say what? Relatively safe and secure using public wifi?

Yes, it’s true. You can setup PiVPN on your Ubuntu Server or Raspberry Pi device. There are three components to this: PiVPN running on the server, the UFW firewall configuration, and the mobile device app.

First, install PiVPN

curl -L https://install.pivpn.io | bash

Most of the suggested configuration options should be applicable.

Once PiVPN is installed, you will need to add a user.

pivpn -a

Give it a profile name and password. The file will be saved in a folder in your home directory called ‘ovpn’. You will want to save that to a flash drive and then import to your phone/tablet. I used FTP. There are many other ways to do this, but the flash drive method is most secure.

Configure UFW

sudo ufw allow 1194/udp
sudo ufw allow OpenSSH

Ask UFW to generate a list to make sure there are no double entries and delete them! Those double entries can mess up the PiVPN’s ability to connect.

sudo ufw status numbered

sudo ufw delete x ("x" is the double entry)

Now, download “OpenVPN” app in your smartphone app store. It’s free. Then open the app and choose the third option, “OVPN Profile”.

Add the ovpn file you generated on your server. You can choose the “save private key password” if you would like. I use this because my phone has a fingerprint security feature. Once you connect, you will be connected to your home network from anywhere! Perfect security for pubic wifi.

 

 

 

 

Clone a Hard Drive using Ubuntu Live CD

I have a hard drive-duplicator device. It works great if you two of the same drive. But I’ve had issues transferring from an SSD to a regular hard drive (and vice versa).

I looked into buying the EaseUS Disk Copy program (only works in Windows) but now they want a subscription? Hell no to that. So here we are, looking to Ubuntu for our solution!


EDIT: I used the following method to duplicate my Ubuntu Server backup and the copied disk booted into grub (no boot loader). All things considered, one of those duplicators found easily on ebay and Amazon are the best bet. They are much faster and more accurate. For the error I did get using the physical drive duplicator, it was easy to fix. I booted with an Ubuntu Desktop Live USB and used the Disks program to repair. No issues after that. The model I have is a Sabrent EC-HD2B and I have to say it’s pretty nice.

I found a great guide to duplicating hard drives using an Ubuntu Live CD/USB.
Balena Etcher will help you write the Ubuntu Live ISO to a USB disk.


Once you run the Ubuntu Live disk, open a terminal.

Plug in your first drive (the one that you want to copy).

sudo fdisk –l

Take note of what fdisk reports for this drive. It is likely /dev/sda

Now, plug in your second drive (the one you want to overwrite).
Run ‘sudo fdisk –l’ again.
fdisk will likely report this drive as /dev/sda.

Do not confuse the two drives. Here’s a sample statement that will allow your computer to copy the first drive to the second. Replace the drive names as necessary. In this example, sda is the source and sdb is the target:

sudo dd if=/dev/sda of=/dev/sdb

This process can take several hours. Do not turn your machine off until you see a report in your terminal that the process is complete. In my case, it took over 24 hours to copy a 1TB drive with a Mac Mini (Mid 2012)!

Example output when done:

1953525167+0 records in
1953525167+0 records out
1000204885504 bytes (1.0 TB, 932 GiB) copied, 102499 s, 9.8 MB/s

Connect a PC to a Commodore 1541/1571 drive

Did you ever want to transfer files from your old Commodore 1541/1571 drive between your computer and a real drive? Did you also want to use a real Commodore floppy drive with the VICE emulator? Me too! 😉 Both of these things are possible with the zoomfloppy device being offered by Retro Innovations. You can download basically anything you want from arnold.c64.org (or any other commodore software source) and transfer it right to your floppy device so it can be used on a real Commodore 64 or Vic 20.

This device is unlike other solutions that only worked with specially built cables and DOS. You simply plug a USB cable between your zoomfloppy and your computer and then the serial cable between the zoomfloppy and the floppy drive. Once the physical connections are made, you simply run the OpenCBM software to transfer files or backup disks.
Here’s how to install a zoomfloppy device to your Ubuntu computer.

sudo apt-get install libusb-dev build-essential linux-headers-generic git

Install the CC64 Compiler:

cd ~
git clone https://github.com/cc65/cc65.git
cd cc65
make
sudo prefix=/usr make install

Compile and install OpenCBM

cd ~
git clone git://git.code.sf.net/p/opencbm/code opencbm
cd opencbm/opencbm
make -f LINUX/Makefile
sudo make -f LINUX/Makefile install install-all install-plugin-xum1541
sudo ln -s /usr/local/lib/libopencbm.so.0 /usr/lib/libopencbm.so.0

Add udev rules for the ZoomFloppy hardware itself:

sudo pico /etc/udev/rules.d/45-opencbm-parallel.rules

Add this to the bottom of the file, then save and quit:

SUBSYSTEM!="usb_device", ACTION!="add", MODE="0666", GOTO="opencbm_rules_end"
# zoom floppy
ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0504", GROUP="users", MODE="0666"
LABEL="opencbm_rules_end"

Restart udev:

sudo service udev restart

Check the ZoomFloppy and IEC device status:

cbmctrl detect

Bonus: Get VICE to use the zoomfloppy interface to utilize a real 1541 Commodore Floppy Drive!

1. Settings -> Peripheral Settings -> Device #8 -> Enable IEC Device
2. Settings -> Peripheral Settings -> Device #8 -> Device Type -> Real Device Access

Subsonic issues on Ubuntu Server?

HTTP ERROR: 503 Can’t load server

My subsonic installation was not working! I tried everything (or so I thought) including reinstalling subsonic, looking at my router settings (is 4040 configured properly?) etc. Finally I found the solution: cleaning up a corrupt Subsonic Database. If you are being met with a 503 html error, this could be your fix.
Stop Subsonic

sudo service subsonic stop

Backup your /var/subsonic/db/subsonic.script file
This file contains a handful of SQL statements that will be used later to recreate your users, media directory settings, etc.

sudo cp /var/subsonic/db/subsonic.script /root/

Delete the contents of your /var/subsonic/db/ directory

sudo rm /var/subsonic/db/*

Restore your subsonic.script file

sudo cp /root/subsonic.script /var/subsonic/db/

Start Subsonic

sudo service subsonic start

Your Subsonic media library will now be empty, you’ll want to go to “Settings…” “Media Folders…” and click “Scan media folders now”