Need to Move Your Router’s Existing DHCP IP Reservations to A New Router ? Try Uproot – a Static Lease Conversion Utility

I just released a new open source project on github called Uproot.

What is Uproot ?

Uproot (command uprt) is a multi-platform (Windows, Linux, MAC) command line utility that converts your router’s static lease mappings from one format to another. It currently supports the following formats:

  • DD-WRT
  • Mikrotik RouterOS
  • OPNSense
  • OpenWrt
  • pfSense
  • json
  • csv

I decided to build Uproot after purchasing a Mikrotik router and faced the daunting task of transferring many static leases over to the new router from my old DD-Wrt router.

Download Uprt

Download

All feedback is welcome.

Usage

I spent a lot of time documenting usage. Because the information for exporting and importing static leases for all the various formats was hard to come by, I also wrote up detailed walk-throughs with screenshots and videos of exporting and importing all the router formats. Now this information is all in one place.

The actual usage of Uproot for a straight conversion is very simple:

For a full list of options, simply type

Demo Converting Static Lease in CSV Format into 6 formats Using Uprt

Keyboard Browser Navigation Nirvana – Must Have Tools for Keyboard Ninjas

Keyboard - glenn-carstens-peters on unsplash

Keyboard - glenn-carstens-peters on unsplash

Keyboard Shortcuts

Recently I’ve been coding quite a bit (working on a dart command line utility, soon to be released). In the process I’ve forced myself to learn most of the primary keyboard shortcuts for VS Code. Using keyboard shortcuts have vastly improved my efficiency. VS Code has a great cheat sheet built in. Pressing “CTRL-K CTRL-S” opens up the cheat sheet, as well as the ability to change keyboard mapping (which I am loathe to do as I like to keep things as standard as possible but do remap tasks that have not been bound to a shortcut yet).

My standard desktop work station is Windows 10 where I have been spending most of my time recently (I also have a laptop that dual boots Windows and KDE Neon).

On Windows I am now fairly efficient at switching between windows, moving windows, maximizing and minimizing panes, and closing/opening programs. The motor memory hasn’t been wasted on Linux, since KDE Neon’s Plasma desktop can be customized by importing a Windows keyboard scheme and tweaking various keyboard shortcuts.

Increasing my keyboard efficiency has encouraged me to increase keyboard use in other contexts, particularly browsing.

Vimium

With Firefox being my browser of choice, I discovered the Vimium FF extension. The Vimium extension is an adaption of the Vimium project for Firefox. It essentially brings vim-like keyboard shortcuts to your browser. I’ve been using Vim for years and the arrow navigation using h-j-k-l come naturally to me. Vimium allows those keys to be used for scolling. Even if you don’t like Vim navigation, you can still use the COOLEST feature in Vimium – press your escape key followed by “f” and all of the links are instantly labeled with a random one to two key keyboard shortcut!

Just hit the keys for that shortcut and you are instantly transported to that link. All without your hands leaving the keyboard. Vimium also shortcuts for nearly anything you can do with the mouse, including opening and closing tabs, history navigation, cycling through tabs, etc. Vimium was originally a Chrome extension so it is available for Chrome also.

Vimium also has built in pop-up help. Just press “?” and Vimium pops up a nice help window:

Note that Vimium doesn’t work all thetime on certain pages (e.g., GMail, in which case, just use the Gmail bindings) or you need to press “F6” to switch focus to the browser page (e.g., Google search page). In addition, although Vimium does a lot, sometimes I prefer to use other bindings for certain tasks or just want other visual cues (like seeing the names of all tabs in a list which I use FastTab Switcher for).

Table of Primary Browser Keyboard Shortcuts and Tools

Here is a helpful table listing the tools and shortcuts I think are particularly helpful:

KeyBoard Tip Notes
F6 Use F6 to force focus on the browser window. Sometimes a page or your browser itself will change focus to the address bar and prevent invoking Vimium by the Esc key. Just press F6.
Ctrl-T New Tab
Ctrl-N New Browser Window
Ctrl-F4 Close Tab
Alt-F4 Close Window (Windows Only)
Ctrl-Tab/Ctrl-Shift-Tab Cycle through tab (also CTRL- page up/down, also Vimium: Shift J/K)
Ctrl-l (small L) Jump to address bar
Alt-Left/Right Arrow Cycle Through History for Tab (i.e., back/forward)
^ (in the address bar) Search history.
Gmail Keyboard Shortcuts For Gmail, skip Vimium and use the Gmail shortcut bindings¬† (Gmail will force these bindings anyway).¬† Press “?” while on the Gmail page to get a Gmail cheatsheet.
Vimium Extension for both Chromium and Firefox. Browse entirely by keyboard. Press ? to get instant, detailed help.
Web Search Navigator Excellent and must have keyboard navigator for search engines. Allows easy scrolling through search results. Extensions for both Chrome and Firefox.
FastTab Switcher The BEST and simplest way to show ALL tabs in ALL windows in a drop down bar. Easily switch between them using the keyboard. You can close any tab by simply hitting the Ctrl-Delete key.
Link to Chrome extension: Fast Tab Switcher
Firefox Keyboard Shortcuts Official List of Firefox Shortcuts
Chrome Keyboard Shortcuts Official List of Chrome Shortcuts

Using pfSense on VirtualBox for Windows using only One Virtual Machine

Network Router by thomas jensen on unsplash

pfSense on VirtualBox

I’ve been experimenting with pfSense (firewall software you can use for DIY routers). Following this guide by Get Labs Done, I was able to install pfSense in a Virtualbox virtual machine in Windows 10 (with hypervisor disabled). If you do this, keep in mind this should be done purely for development/testing purposes and not to use as your network’s gateway.

Setting up Two Networks on VirtualBox

Essentially, you install pfSense as a virtual machine with two network cards, the first being a bridge to your physical network, and the second being internal.

When booted pfSense will detect both cards, the “WAN” side (side facing the internet) will be your actual physical network (i.e., behind my home physical router, so something like 192.168.X.X), while the “Lan Side” will be a Vlan (in the example 10.1.1.1/24) where you can connect clients. You then install a second virtual machine and set that up as having a gateway as being the pfSense virtual router 10.1.1.1 on that network. You run both virtual machines simultaneously which can be a load on your host PC.

SSH and Browser Access to pfSense From Windows Host

What stumped me was how to SSH into the box from my Windows host machine or even to access from the host the pfSense web interface. The Get Labs Done tutorial has you accessing pfSense VM through the browser on the second VM using the 10.1.1.1 network.

After opening up the SSH port through the command line on the pfSense box using “ufw allow 22”, ssh was still blocked. I then realized pfSense itself must be blocking it.

Disable the pfSense Private Network Block

The secret to enabling SSH from your host to pfSense is to disable pfSense’s blocked private network firewall rule (I’m sure there are security reasons for this rule, but as mentioned above, do this only on a development setup not if you are actually using the pfSense install for a network gateway):

  1. After setting up pfSense using this guide, log into pfSense using the browser in the second VM you setup using the guide which is on the Lan 10.1.1.1 sdie of the network:

  2. Select Interfaces->Wan

  3. Scroll down to “Reserved Networks” and uncheck “Block Private Networks and Loopback Addresses”. Save.

  4. That’s it. You should now be able to ssh into the WAN Side (i.e., 192.168.X.X) at the ip address shown in the pfSense menu:

  5. In addition, on your Windows host, you can go to the same address using your browser (https://192.168.0.19 in my case) and logging into pfsense.
  6. After setting this up, I was able to make my first pfSense VM instance headless, and shutdown my second VM instance to lighten the load on my PC, while still having full access to pfSense using my browser and ssh.