Install nmap 6.40 on Ubuntu 12.04

13-12-2013 | Remy van Elst

Table of Contents

This tutorial shows you how to install nmap 6.40 on Ubuntu 12.04. Ubuntu 12.04 has nmap 5.21 in the repositories. nmap 6 features a lot of improvements, here is a list of the biggest changes:

  • Nmap Scripting Engine (NSE), 352 scripts
  • Better Website Scanning
  • Full IPv6 Support
  • New Nping Tool
  • Faster scans

This tutorial is tested on a Digital Ocean VPS. If you like this tutorial and want to support me, use this link to order a Digital Ocean VPS:

We'll use checkinstall to create a .deb package instead of make install. checkinstall allows us to easily manage, remove or upgrade the software later on, instead of compiling and making just over the old version. Do note that checkinstall .deb packages are not intended for public distribution, using them on your internal network is OK.

Firt install the required development packages:

apt-get install build-essential checkinstall libpcre3-dev liblua5.2-dev

Then create a folder for the source code:

mkdir -p /usr/local/src/nmap
cd /usr/local/src/nmap

Download nmap:


Unpack nmap

tar xvjf nmap-6.40.tar.bz2
cd nmap-6.40

Start the ./configure


Make it:


Now instead of make install, execute this command to start building the .deb package:


Here's example output from checkinstall:

    root@example:/usr/local/src/nmap/nmap-6.40# checkinstall

    checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
               This software is released under the GNU GPL.

    The package documentation directory ./doc-pak does not exist.
    Should I create a default set of package docs?  [y]:

    Preparing package documentation...OK

    Please write a description for the package.
    End your description with an empty line or EOF.
    >> The network mapper

    **** Debian package creation selected ***
    This package will be built according to these values:

    0 -  Maintainer: [ root@example ]
    1 -  Summary: [ The network mapper ]
    2 -  Name:    [ nmap ]
    3 -  Version: [ 6.40 ]
    4 -  Release: [ 1 ]
    5 -  License: [ GPL ]
    6 -  Group:   [ checkinstall ]
    7 -  Architecture: [ amd64 ]
    8 -  Source location: [ nmap-6.40 ]
    9 -  Alternate source location: [  ]
    10 - Requires: [  ]
    11 - Provides: [ nmap ]
    12 - Conflicts: [  ]
    13 - Replaces: [  ]

    Enter a number to change any of them or press ENTER to continue:

    Installing with make install...

    ========================= Installation results ===========================
    /usr/bin/install -c -d /usr/local/bin /usr/local/share/man/man1 /usr/local/share/nmap
    /usr/bin/install -c -c -m 755 nmap /usr/local/bin/nmap
    /usr/bin/strip -x /usr/local/bin/nmap
    /usr/bin/install -c -c -m 644 docs/nmap.1 /usr/local/share/man/man1/
    if [ "yes" = "yes" ]; then \
              for ll in de es fr hr hu it ja pl pt_BR pt_PT ro ru sk zh; do \
                /usr/bin/install -c -d /usr/local/share/man/$ll/man1; \
                /usr/bin/install -c -c -m 644 docs/man-xlate/nmap-$ll.1 /usr/local/share/man/$ll/man1/nmap.1; \
              done; \
    /usr/bin/install -c -c -m 644 docs/nmap.xsl /usr/local/share/nmap/
    /usr/bin/install -c -c -m 644 docs/nmap.dtd /usr/local/share/nmap/
    /usr/bin/install -c -c -m 644 nmap-services /usr/local/share/nmap/
    /usr/bin/install -c -c -m 644 nmap-payloads /usr/local/share/nmap/
    /usr/bin/install -c -c -m 644 nmap-rpc /usr/local/share/nmap/
    /usr/bin/install -c -c -m 644 nmap-os-db /usr/local/share/nmap/
    /usr/bin/install -c -c -m 644 nmap-service-probes /usr/local/share/nmap/
    /usr/bin/install -c -c -m 644 nmap-protocols /usr/local/share/nmap/
    /usr/bin/install -c -c -m 644 nmap-mac-prefixes /usr/local/share/nmap/
    /usr/bin/install -c -d /usr/local/share/nmap/scripts
    /usr/bin/install -c -d /usr/local/share/nmap/nselib
    (cd /usr/local/share/nmap/scripts && rm -f anonFTP.nse ASN.nse asn-to-prefix.nse brutePOP3.nse bruteTelnet.nse chargenTest.nse daytimeTest.nse dns-safe-recursion-port.nse dns-safe-recursion-txid.nse dns-test-open-recursion.nse domino-enum-passwords.nse echoTest.nse ftpbounce.nse HTTPAuth.nse HTTP_open_proxy.nse HTTPpasswd.nse HTTPtrace.nse iax2Detect.nse ircServerInfo.nse ircZombieTest.nse mac-geolocation.nse MSSQLm.nse MySQLinfo.nse netbios-smb-os-discovery.nse nfs-acls.nse nfs-dirlist.nse popcapa.nse PPTPversion.nse promiscuous.nse RealVNC_auth_bypass.nse ripeQuery.nse robots.nse showHTMLTitle.nse showHTTPVersion.nse showOwner.nse showSMTPVersion.nse showSSHVersion.nse skype_v2-version.nse smb-enumdomains.nse smb-enumsessions.nse smb-enumshares.nse smb-enumusers.nse smb-serverstats.nse smb-systeminfo.nse SMTPcommands.nse SMTP_openrelay_test.nse smtp-check-vulns.nse SNMPcommunitybrute.nse SNMPsysdescr.nse SQLInject.nse SSH-hostkey.nse SSHv1-support.nse SSLv2-support.nse strangeSMTPport.nse UPnP-info.nse xamppDefaultPass.nse zoneTrans.nse db2-info.nse db2-brute.nse html-title.nse robots.txt.nse xmpp.nse sql-injection.nse http-robtex-reverse-ip.nse)
    /usr/bin/install -c -c -m 644 nse_main.lua /usr/local/share/nmap/
    /usr/bin/install -c -c -m 644 scripts/script.db scripts/*.nse /usr/local/share/nmap/scripts
    /usr/bin/install -c -c -m 644 nselib/*.lua /usr/local/share/nmap/nselib
    /usr/bin/install -c -d /usr/local/share/nmap/nselib/data
    for f in `find nselib/data -name .svn -prune -o -type d -print`; do \
                    /usr/bin/install -c -d /usr/local/share/nmap/$f; \
    for f in `find nselib/data -name .svn -prune -o -type f -print`; do \
                    /usr/bin/install -c -c -m 644 $f /usr/local/share/nmap/$f; \
    /usr/bin/install -c -d /usr/local/bin /usr/local/share/man/man1
    cd zenmap && /usr/bin/python --quiet install --prefix "/usr/local" --force
    /usr/bin/install -c -c -m 644 docs/zenmap.1 /usr/local/share/man/man1/
    if [ ! -f /usr/local/bin/nmapfe -o -L /usr/local/bin/nmapfe ]; then \
                    ln -sf zenmap /usr/local/bin/nmapfe; \
    ln -sf zenmap /usr/local/bin/xnmap
    make[1]: Entering directory `/usr/local/src/nmap/nmap-6.40/ncat'
    Installing Ncat
    ../shtool mkdir -f -p -m 755 /usr/local/bin /usr/local/share/man/man1
    /usr/bin/install -c -c -m 755 ncat /usr/local/bin/ncat
    /usr/bin/strip -x /usr/local/bin/ncat
    if [ -n "" ]; then \
                    ../shtool mkdir -f -p -m 755 /usr/local/share/ncat; \
                    /usr/bin/install -c -c -m 644  /usr/local/share/ncat/; \
    /usr/bin/install -c -c -m 644 docs/ncat.1 /usr/local/share/man/man1/ncat.1
    make[1]: Leaving directory `/usr/local/src/nmap/nmap-6.40/ncat'
    cd ndiff && /usr/bin/python install --prefix "/usr/local"
    running install
    running build
    running build_scripts
    running install_scripts
    copying build/scripts-2.7/ndiff -> /usr/local/bin
    changing mode of /usr/local/bin/ndiff to 755
    running install_data
    copying docs/ndiff.1 -> /usr/local/share/man/man1
    running install_egg_info
    make[1]: Entering directory `/usr/local/src/nmap/nmap-6.40/nping'
    /usr/bin/install -c -d /usr/local/bin /usr/local/share/man/man1
    /usr/bin/install -c -c -m 755 nping /usr/local/bin/nping
    /usr/bin/strip -x /usr/local/bin/nping
    /usr/bin/install -c -c -m 644 docs/nping.1 /usr/local/share/man/man1/
    make[1]: Leaving directory `/usr/local/src/nmap/nmap-6.40/nping'

    ======================== Installation successful ==========================

    Copying documentation directory...

    Some of the files created by the installation are inside the build
    directory: /usr/local/src/nmap/nmap-6.40

    You probably don't want them to be included in the package,
    especially if they are inside your home directory.
    Do you want me to list them?  [n]:
    Should I exclude them from the package? (Saying yes is a good idea)  [y]:

    Copying files to the temporary directory...OK

    Stripping ELF binaries and libraries...OK

    Compressing man pages...OK

    Building file list...OK

    Building Debian package...OK

    Installing Debian package...OK

    Erasing temporary files...OK

    Writing backup package...OK

    Deleting temp dir...OK


     Done. The new package has been installed and saved to


     You can remove it from your system anytime using:

          dpkg -r nmap


Tags: nc, netcat, nmap, port-scanner, security,