GeoIP – Converting IPs to Physical Locations. | locate based on IP geoip maxmind tracing

I manage a large scale SSH server. This server is open to the world via SSH port 22.

Considering I only have Australian clients I would expect only Australian IP’s connected to it, so how would I know?

You can google the IP but that is a manual time consuming process. So I have automated it!

There is a open source tool called GeoIP. Its available by default on Debian and Redhat based distros. Install it with the following method.







As you can see above, it resolves IP to country. This was perfect for the work I was doing but if you want specific city and GPS coordinates you need to download a higher detailed database from Maxmind.

So to update the database perform the following.


Now that you have the new database, you need to advise Geoip of the new database file.


As you can see, more detail than before.

Hacking your way out of corporate networks. | bypassing corporate networks with ssh proxy corkscrew

Most corporate networks have implemented some tight security, especially around their outbound connections.

So connecting to your home Linux box over SSH is a “no-no”

Usually corporations have two services they cannot block, HTTP and HTTPS (port 80 and 443) . But they can control them via URL filtering, this does not really affect us for this exercise.

To start off with, on your home router ensure you have a rule forwarding all 443 (https) traffic to your linux box on port 22. This way, if you work is monitoring connections it doesn’t stick out like dogs balls!

Im most cases this may be enough to get you connected, that is if they dont redirect the HTTPS traffic though a proxy server.


If you still cant connect, do this.

On your ubuntu box,

The corkscrew help screen looks like this

you can test corkscrew by doing the following

When you see “SSH-2.0” or something similar you can be sure that you are talking to the other end.

Ok now you’ll need to configure your SSH configuration file, located in ~/.ssh/config , if its not there create it. By default the ssh client looks there first before establishing ssh connections.

Edit the file like this

Paste something like this

So,  here is a description of the listed variables

home = pick any name, once file is save this is the hostname you will ssh to.

hostname = this is the IP address of your home router

port = this is the port we changed on the router, 443 recommended

user = the username on your home system

proxy = this is where you enter your proxies ip and port.

Once all this is finished and saved, just enter the following.

This will ask you for a password and should be in!



Killing stale SSH connections | linux centos bash stale ssh connections script ClientAliveInterval

I administer a large scale SSH server with upwards of 300+ concurrent sessions. This server presents some challenges.  When migrated to AWS it started experiencing a large number of stale SSH sessions.

Fixing this was achieved in two parts. First was a bash script which ran every hour which culled all the stale connections.

The second part was to specify keepalive packets at 5 second intervals in the /etc/ssh/sshd_config file.