Skip to content

Sean's Blag Posts

re2c on EPEL7

I’ve just pushed a build of re2c to epel-testing. This has been asked for in a bugzilla ticket and is required for building openvpn-auth-ldap, which I’ll be working on next.

You can look at the specific build here and, if you test it, please make your comments on its bodhi page.

openvpn-auth-ldap on EL7 (CentOS 7/RHEL 7)

Following-up on my last post, I was able to successfully build and test openvpn-auth-ldap on EL 7. You can get it from my copr by adding the repository to your system and running the following:

# yum install openvpn-auth-ldap

The plugin will install to /usr/lib64/openvpn/plugin/lib/ and you can use that in your OpenVPN configuration file.


I built the RPM from the openvpn-auth-ldap-2.0.3-14.fc21 SRPM, but modified it to build against the 2.3.10 (current) version of OpenVPN, which implements plugin version 3.

I’ve reached out to see about getting both this and my re2c package included in EPEL7, which will probably require me to become the maintainer. We shall see how that plays out.

Never Gonna Catch Me, Copr

The openvpn-auth-ldap package doesn’t exist for EL7. Since the new OpenVPN servers I’m trying to setup run CentOS 7 and use LDAP (Active Directory) for user authentication, this is problematic.

So, I’m trying to build it. I’ve built the single dependency that didn’t already exist for EL7 (re2c), but am still having issues. Although the chroot environment installs gcc-objc, configure  complains that there’s no Objective C environment available.

Will update with progress, but you can check out my Copr here.

Rooting an LG G3 and Flashing the Fulmics ROM

I’ve been disappointed with the performance of my LG G3 (D850) for some time now. Swiping from screen to screen was laggy. It would fail to connect to the Bluetooth in my car. Apps would hang for almost no reason. It was not fun to use anymore. So, I did a factory reset on it. That’ll fix things, right? No. My phone was just as bad as it was before wiping all of my apps and settings.

So, I put the phone away for a while and switched to a Nexus 5. I greatly enjoyed Marshmallow and the clean Nexus experience. Not having McAfee on my phone was a plus, too.

But alas, I pined for the power of my G3. Having a working phone in my possession, I decided that I’d try rooting the phone and flashing the Fulmics ROM that everyone on /r/lgg3 seems to be raving about.

Step 1: Rooting the Phone

It took me a few attempts, but here’s what I found to work.

  1. Enable Developer Options and USB Debugging.
  2. Attach your phone to a Windows computer with the LG drivers installed.
  3. Download and extract the following zip file: (Mirror)
  4. Run the root.bat script and follow the on-screen instructions.

While not likely to be needed, additional instructions can be found here.

Step 2: Installing TWRP

TWRP is Team Win’s recovery partition that allows for the backing up of the phone and installing custom ROMs. Once rooted, this can be installed via the Play Store. Once you launch the application, SuperSU will notify you that it needs permissions to access your phone’s storage. You’ll need to allow this for TWRP to be installed.

Step 3: Backing Up Your Phone

Turn off your phone. Ensure you have a micro SD card inserted.

Boot into Recovery Mode by holding down the Power and Volume Down buttons until the LG logo appears. Quickly release the power button, then hold it down again.

Click on the Backup menu option, choose Advanced, then select all of the items for backup. Ensure your backup is going to your SD card, then start it by swiping at the bottom of the screen.

Check all of the boxes, not just the ones shown here.

Once this completes, shut down your phone (Reboot -> Power Off), remove the SD card, connect it to your computer, and copy the backup onto your hard drive.

Step 4: Install Fulmics

On the Windows computer, with the SD card still attached, go and download Fulmics 4.1. Once the download completes, copy the zip file to the SD card, then put it back into the phone and again boot into Recovery.

Click the Install button and select the zip file. This will launch the Aroma Installer for Fulmics. When you get to the Select Your Device screen, ensure that you select the proper one. Selecting the wrong model will likely brick your phone. As I have an AT&T D850, that’s what I selected.

The rest of the installer presents you with the opportunity to remove bundled applications (i.e. carrier bloatware) and install additional Fulmics packages (which can be installed later). The choice is yours on these.

When this is complete, reboot your phone into your new, working Fulmics ROM. Initial boot will take some time, but you should see indications of Fulmics in the splash screens.

DODSCP: A Web Control Panel for Linux Game Server Managers

I’ve been working on a Flask-based web application for controlling my latest game server. This time around, I used LGSM to run the server. It’s a painless way to get it up and running and does all of the steam_cmd dirty work for me. The only issue is that I don’t want to hand out shell access to the other people who may need to restart or update the server from time-to-time. So, DODSCP was born.

I am currently working on determining how to best distribute it, but hope to have version 0.1 available by this weekend.


Running a Terraria Server on Linux

In this quick tutorial, I’ll run you through how to quickly setup a dedicated Terraria server on Linux.

In this setup, I’m using Ubuntu Server 14.04 64-bit. I have tried it on CentOS without success (mono libs aren’t up-to-date), so I can’t guarantee it’d work on other platforms. Your server will also need at least 2GB of RAM. Any less and the server will fail to start.

First, we’ll need to install some prerequisites.

$ sudo apt-get install screen wget mono-complete

We’ll need wget to download the server files, screen to ensure the server doesn’t stop when we disconnect/logoff, and mono because Terraria is written in .NET.

Now that we have all that, let’s grab the server files. My example URL is current as of this posting, but you can grab in URL of the current version here.

$ wget
$ tar xzf terraria-server-linux-1308.tar.gz
$ mv terraria-server* terraria
$ cd terraria

What we’ve done here is download the server files, unarchived them, renamed the folder to ‘terraria’, then moved into that folder.

At this point, we’ll want to start our screen session. Screen will allow the server to keep running in the background, so we can logoff the server without having to stop the Terraria server.

$ screen -S terrariads

Now, we’re inside the screen. To leave it, press Ctrl+A then Ctrl+D. To get back into the server console, enter screen -r terrariads and you’ll be right back in.

Once inside the screen session, we can start the server with the following:

$ mono –server –gc=sgen -O=all TerrariaServer.exe

The --server option reduces the header size and let’s Mono know that we won’t be using a GUI. --gc=sgen helps reduce memory fragmentation. -O=all turns on all optimizations.

That’s it. You now have a running Terraria server on Linux!

SSH Login without Password

Have you copied your public key to your remote ~/.ssh/authorized_keys file and are still being prompted for your password? There’s a good change that the permissions are wrong on that file. If you look at the ssh logs, you can see entries like this:

$ sudo tail /var/log/secure
Jun  5 17:27:16 server sshd[12001]: Authentication refused: bad ownership or modes for file /home/sean/.ssh/authorized_keys

Change the permissions mode to 600 and you should be able to login as intended.

Installing Cisco ASDM on Linux

Cisco’s Adaptive Security Device Manager is a GUI tool for managing and configuring Cisco security appliances. It runs perfectly well under Linux, but can be a little tricky to get running. Today, I’ll show you how.

I am currently running the following:

  • Fedora 22 Workstation w/ Gnome 3.16
  • Oracle Java 8 (1.8.0_45)

Adding a Security Exception

The first thing we need to do is add a security exception for the ASA. Open up the Java Control Panel with the following command:

$ /usr/java/latest/bin/ControlPanel &

Click on the Security tab and then on the Edit Site List… button.

Once the Exception Site List window opens, click on Add and type in “https://” followed by the IP of your ASA and a trailing forward-slash. If you’ve configured ASDM to be available on a different port, you’ll need to specify that. For example, if your ASA has the IP address of and you’ve configured ASDM to be on port 4430, you’d enter the following:

Click OK to close the Exception Site List window, then OK again to close the Java Control Panel.

Installing ASDM

Go back to your terminal window and enter the following command, replacing <SITE_ADDRESS> with the IP and port number, if changed, of your ASA:

$ javaws https://<SITE_ADDRESS>/admin/public/asdm.jnlp

Accept the security warnings and login to your ASA. ASDM will install itself and, if you have the Applications Menu extension turned on, you’ll find it under Java WebStart.

HTTPS Enforced

I’ve finally gotten around to requesting an SSL certificate for this site and configured it this morning. I need to add a few more rewrite rules so that old image tags and such are redirected to the secured version, but it’s not high on my priority list.