Build IP Management Server with Ubuntu, GIT and Nmap

Have 25 Vlans in your lab and Storage, Servers, Switches and other equipment all over the place?

Build a good Ubuntu box


If you need more help on this leave some comments. It is pretty straight forward. Be sure to select openssh server as a role. After you login: Remember to $sudo apt-get update $sudo apt-get upgrade #If you are adventurous $sudo apt-get dist-upgrade

Install VMware Tools (you ARE doing this in a VM right?)


From your VI Client set the VMware tools install to start, this will insert the disk for VMware Tools, but unfortunately doesn’t automate the install. $sudo -s #apt-get install build-essential #apt-get install #apt-get install apache2 The last two steps might not be needed but I do them out of habit. They allow the VMware tools to build the Kernel modules needed for VMXNET drivers.#mount /dev/cdrom /mnt/cd #cp /mnt/cd/VMwareTools-8.6.0-425873.tar.gz #tar xvzf /tmp/VMwareTools-8.6.0-425873.tar.gz #cd vmware-tools-distrib #./ Now Run through the install of VMware tools.#apt-get install nmap #apt-get install gitweb #exit You want to do some of the next steps as your normal user not root. $cd ~ $mkdir nmaps $git init nmaps $sudo vi /etc/gitweb.conf Modify the project root var to match your path to you nmaps.


Now restart apache. $sudo /etc/init.d/apache2 force-reload


Ok great, the webpage will be up at http://yourhost/gitweb

Now to add your network information:

$nmap -sP -oG /pathtoyour/nmapsdirectory/

The above command is to scan a subnet with pings then dump the output to a file.

Nmap - great network scanner, the -sP sets it to “Ping” mode, you don’t need to crawl ports or anything so ping is fine, it will resolve the DNS if that is working. my example: $nmap -sP -oG /home/lab-admin/nmaps/

For what it is worth a /16 network takes forever. If you know the usable ip’s are a way smaller subset you can specify a range. $nmap -sP -oG /home/lab-admin/nmaps/

Next on the first time you must add the file to the git repository $cd nmaps $git add /home/lab-admin/nmaps/ $git commit -m “My Network Maps”

Now we have some content on the gitweb page.


Click tree to see the files you have added.


Click on blob to see your IP’s in use.

Let’s automate it with crontab


As you can see it is fairly easy to get rolling. Before you finish, run the nmap command for each subnet and git add each file to the repository.Now we will tell cron to run the nmap scans on a regular interval and git commit the changes. $vi In this file put each ip scan on its own line. As seen above. Save the changes and exit. $chmod +x $./ This will create all the files you want in one swoop. $cd nmaps $git add * This will add all the new files in the nmaps directory to the git repository.Edit the script one more time. $vi


By adding the git commit line to the script you can now set this up to automatically run with cron.

$crontab -e

[note]I was having issues with the range line in the screenshot above. Still testing.

[2nd note] change the git commit line to include a ‘-a’ example:

git commit -a -m “My IP Lists”

If you need help with crontab this is where I go when I can’t remember.

I set mine to run every 4 hours.Hope this is helpful, not much reason to buy a fancy product when this can be up and running so quickly.

More References:

Written on January 16, 2013