Using OpenVPN to Manage Multisourced Infrastructure

Saw this article when looking for information on using OpenVPN with Amazon Web Services.  It is not exactly what I am looking to do with my latest project.  But it is some good helpful information for those with existing infrastructure looking to use AWS.  There is also VPN-Cubed which is another option if looking for a supported product.  I have not used it but would love to hear some comments by those who have.

Managing EC2 Configurations Using SVN

I am a big fan of using Subversion for things other than just versioning code.  In the past I have used SVN to manage configuration files across many servers.  Making it easy to deploy and (if needed) roll back changes.  It is also a big help on development servers for PHP developers to commit changes and see them live on the development server.  This is easily accomplished using SVN hooks.  There are plenty of HowTos on this topic if seeking that information.

Now that I am up to my eyeballs in Amazon Web Services I am looking to use SVN to help me leverage the new found power of the cloud.  Now I am not saying it is a good thing to use SVN for things other than code versioning.  But it has always worked for me in many other ways as well.

Some of the things I am thinking of using SVN:

  • Update DEV web server using hook scripts for devs to see changes to trunk.
  • Maintain Apache and other config files for AMIs.
  • Maintain code repository for versioning along with take advantage of S3 for backup and processing power of EC2.

This is a work in progress so I am looking to perfect the design to my liking soon.

Amazon EC2,S3,EBS,CloudFront. . .OH MY!

I have been working on some new projects since leaving my last job about 6 months ago.  One is to build an entire infrastructure that is highly available and redundant.  With Amazon Web Services this is a snap and almost makes my job obsolete.  With EC2, S3, EBS, and CloudFront you can build a scalable solution with dependable backups with ease.  My goal now is to also use AWS to create an intranet for the company.  I have not found much on this topic so I ma taking the time to document it here.  My ideas so far:

  • Use Fedora Directory Server as main LDAP solution.  This can be used with EBS (Elastic Block Storage) with striped volumes to store the LDAP data.  Along with having redundant multi-master replication geographically depending on where the EC2 instance is set.
  • Subversion server using EBS for storage.  Using EC2 for something along the lines of SVN is a good use since it speeds up performance.  Along with having the backup ability of EBS and EBS Snapshots
  • Twiki as documentation for intranet.
  • SugarCRM for customer relationship management which will include project management and bug tracking.
  • S3 for backing up users data automatically.  This is helpful since it is a telecommuting company. Using a tool like JungleDisk or similar.
  • The DEV and Staging environments will also be on AWS with same Amazon Machine Images (AMIs) as the production environment.

That is all I have so far I will update as the project comes along.

OpenVPN Setup

I found the setup and configuration of OpenVPN to be very easy and straight forward.  Much easier than setting up IPSec for sure.  It was as easy as doing a yum install openvpn then editing the configuration file to fit my needs.  One thing I also installed was the OpenVPN Webmin module.  The way I use Webmin is to set it up to use SSL after installing it.  Then I run it once I log in via SSH to a server.  That way it is not running continuously, nor do I keep it on the default port of 10000.

Once the server is configured it is quite easy using the Webmin module to create a CA (Certificate Authority) and generate certs.  Another function the module does well is generate a zip file with the needed keys and a client config file for the user you create.  This makes is easy to maintain a large list of VPN users.  Some clients I use in our environment:

I have found from testing that even with the use of 2048bit keys performance is very good.  By forcing users connected to use our internal DNS servers people can access our intranet sites easily from anywhere.

Monitoring Your Racks for Cheap

When we were setting up our locking cabinets at the new data center for my job I was wondering how to actively monitor the security around our cabinets. Being that only myself and the data center staff have keys to the cabinets I wanted to be able to monitor when anyone entered them. I came up with a simple solution to be able to monitor the racks and keep track of changes. First I downloaded ZoneMinder, which is cam software that runs on Linux. It allows you to setup cheap consumer grade cams to monitor security. With such advanced features as motion detection. This made it ideal for my needs since I could go buy two cheap $30 web cams to use for front and back of cabinets. Then all I had to do was install ZoneMinder on our monitoring server and configure it for motion detection captures. Now the only step for me to do was put a sign-in sheet inside our cabinet with fields for techs name, date, time, and what was done in cabinet. Then require the data center staff to fill out the sheet every time they enter the rack. Another good idea is to do this before signing a contract with the data center you have chosen. Then you can stipulate that if they enter the rack without signing the sheet you get X amount off your bill that month for each infraction.