[Nasıl] Ubuntu 12.04 üzerine (sunucu) Nmap 6.40 kurulumu

Başlatan heartsmagic, 07 Ağustos 2013 - 06:35:27

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

heartsmagic

12.04 üzerindeki Nmap sürümü oldukça geride kalmış durumda. Yeni sürümler içinse Nmap'in kendi sitesinde derlenmiş paket olmayıp, hızlı bir aramada kendim PPA da bulamadım. Bu nedenle derleme yoluna gittim. Sorunsuz bir derlemesi olsa bu başlığı da açmazdım ancak derleme esnasında ufak bir sorun çıktığı için internet üzerinde bir not düşmek istedim.

Tüm işlemleri root kullanıcısı ile veya sudo -i komutundan sonra yürttüğünüzü varsayıyorum.

Öncelikle kendisini derlemek için bağımlıkları kuralım:
apt-get install build-essential libssl-dev libpathfinder-openssl-1 liblinear-dev libpcap0.8-dev libpcre3-dev checkinstall


Yukarıdaki öneriyi Google üzerinden elde etmeniz mümkün. checkinstall ise sadece .deb paketi oluşturmak için gerekli. Eğer böyle bir derdiniz yoksa kurmanıza gerek yok. Anlatımda checkinstall aşamasını make install şeklinde değiştirebilirsiniz.

### Konu dışı ###

Yukarıdaki komuttan sonra derleme için gereken bir sürü paket kurulacaktır. Derlemeden sonra birçoğuna ihtiyacım olmaz diyerek genelde bu tür paketleri kurulu tutmuyor ve derlemeden sonra kaldırıyorum. Bunun için de öncelikle apt-get komutuna -s parametresini ilave ediyorum. Ardından sadece kurulacak paketleri içeren kısmı kopyala/yapıştır yöntemiyle bir dosyaya aktarıyor. Derlemenin ardından da:

apt-get purge `cat paket_listesi`


gibi bir komutla kaldırıyorum. İsteyen bu yöntemi kullanabilir.

### Konu dışı ###

Nmap'in güncel sürümünü indirip derlemeye koyulabiliriz:

wget http://nmap.org/dist/nmap-6.40.tar.bz2
tar xvf nmap-6.40.tar.bz2
cd nmap-6.40
./configure
make
checkinstall


Normal şartlar altında kendisinin bu şekilde derlenip, sonuç olarak da checkinstall aşamasından sonra paketin oluşturulması, ardından kurulması lazım. Fakat benim karşıma ncat ve lua kütüphaneleri ile ilgili şuna benzer bir sorun çıktı:

/usr/bin/ld: ./../liblua/liblua.a(loadlib.o): undefined reference to symbol 'dlopen@@GLIBC_2.1'
/usr/bin/ld: note: 'dlopen@@GLIBC_2.1' is defined in DSO /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libdl.so so try adding it to the linker command line
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libdl.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status



Çözümü için şunu uyguluyoruz.
nmap'in kaynak kodlarının olduğu dizinde şu komutla ilgili dosyayı açıyoruz:

vim ncat/Makefile

Not: vim bilmeyenler nano da kullanılabilir.

ile ilgili dosyayı açıyor ve aşağıdaki satırı:

LUA_LIBS = $(top_srcdir)/../liblua/liblua.a -lm

şu şekilde değiştiriyoruz:

LUA_LIBS = $(top_srcdir)/../liblua/liblua.a -ldl -lm

veya doğrudan sed ile şu şekilde de değiştirebiliriz:

sed -i 's/^LUA_LIBS.*/LUA_LIBS = $(top_srcdir)\/..\/liblua\/liblua.a -ldl -lm/1' ncat/Makefile

Yukarıdaki sed komutu LUA_LIBS ile başlayan ilk satırı bulacak ve gereken değişikliği yapacaktır. Bir başka else bloğunda LUA_LIBS isimli boş değişken var, ona dokunmayacaktır.

Ardından derlemeyi tekrar yürütüyoruz:

make

Bir önceki aşamada derleme başarılı olmadığı için checkinstall'u da yürütüyoruz:

checkinstall

Eğer başka sorun yoksa checkinstall'un sorularını varsayılan olarak cevapladıktan sonra paketimiz hazırlanıp kurulacaktır. Kurulum /usr/local/bin altına yapılıyor, bu dizinin çalıştırılabilir yollar arasında olduğundan emin olun.

Eğer benim gibi bağımlılıkları kaldırıp nmap'i çalıştırmak istediğinizde şu çıktıyı alıyorsanız bir iki işlem daha yapmanız gerekiyor:

nmap: error while loading shared libraries: liblinear.so.1: cannot open shared object file: No such file or directory

Kendisi liblinear (ve aslında bir başka paketi daha) istiyor. Ancak liblinear1 de bir sürü bağımlılık gerektiriyor:

apt-get -s install liblinear1
The following NEW packages will be installed:
  cmap-adobe-japan1 fontconfig fonts-liberation ghostscript gnuplot gnuplot-nox gnuplot-x11 groff gs-cjk-resource gsfonts hicolor-icon-theme imagemagick imagemagick-common
  libatk1.0-0 libatk1.0-data libavahi-client3 libavahi-common-data libavahi-common3 libblas3gf libcairo2 libcdt4 libcroco3 libcups2 libcupsimage2 libdatrie1 libdjvulibre-text
  libdjvulibre21 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgraph4 libgs9 libgs9-common libgstreamer-plugins-base0.10-0
  libgstreamer0.10-0 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libgvc5 libice6 libijs-0.35 libilmbase6 libjasper1 libjbig2dec0 liblcms1 liblcms2-2 liblinear-tools liblinear1
  libllvm3.0 liblqr-1-0 libmagickcore4 libmagickcore4-extra libmagickwand4 libnetpbm10 libopenexr6 liborc-0.4-0 libpango1.0-0 libpaper-utils libpaper1 libpathplan4
  libpixman-1-0 librsvg2-2 libsm6 libsvm-tools libthai-data libthai0 libtiff4 libwmf0.2-7 libwxbase2.8-0 libwxgtk2.8-0 libx11-xcb1 libxaw7 libxcb-glx0 libxcb-render0
  libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxi6 libxinerama1 libxmu6 libxrandr2 libxrender1 libxt6 libxxf86vm1 netpbm psutils ttf-liberation
  x11-common


Haliyle ben hepsini kurmak istemedim, şansımı bağımlılıkları olmadan kurma yoluyla denedim.

apt-get download liblinear1 libblas3gf

Ardından iki paketi de zorlama yoluyla kurdum:

dpkg --force-all -i liblinear1_1.8+dfsg-1_i386.deb libblas3gf_1.2.20110419-2ubuntu1_i386.deb

Bu aşamayı eğer sorun çıkarsa altından kalkabilecekler uygulasın lütfen. Sonra bağımlılıklar arasında boğuşup durmayın. Kısacası isteyen bu paketleri bağımlılıkları ile beraber doğrudan depodan kurabilirler.

Sonuç:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.2 LTS
Release:        12.04
Codename:       precise



nmap --version

Nmap version 6.40 ( http://nmap.org )
Platform: i686-pc-linux-gnu
Compiled with: nmap-liblua-5.2.2 openssl-1.0.1 libpcre-8.12 libpcap-1.1.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select



Bütün bunlarla uğraşmak istemeyenler için sağda solda nmap'i ncat desteği olmadan derlemeyi önermişler ancak ben bunu yapmak istemedim. Çözüm için pek fazla öneri de olmayınca bizim forumda bulunsun istedim anlatım ve çözüm. Eğer güncel paketleri içeren bir PPA bilen varsa buraya not düşsün lütfen. En azından hem derleme zahmetinden kurtulmuş olur hem de güncel kalmış oluruz.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

arpia

@heartsmagic, ellerinize sağlık. Güzel ve detay bir anlatım olmuş :)


Hiç denemedim fakat nmap sitesinde şöyle bir öneride de bulunmuş,

Alıntı Yap
Steps for converting Nmap RPM files to Debian/Ubuntu deb format for installation on Debian/Ubuntu

    If you don't have the alien command, install it with a command such as sudo apt-get install alien

    Download the Nmap RPMs for your platform (x86 or x86-64) from http://nmap.org/download.html. This description will use nmap-5.21-1.x86_64.rpm

    Verify the download integrity as described in the section called "Verifying the Integrity of Nmap Downloads".

    Generate a Debian package with a command such as sudo alien nmap-5.21-1.x86_64.rpm

    Install the Debian package with a command such as sudo dpkg --install nmap_5.21-2_amd64.deb

    Steps 2–5 can be repeated for the other Nmap RPMs such as Zenmap, Ncat, and Nping.

heartsmagic

Alien aklımın bir köşesinde duruyordu, eğer bundan sonuç alamasaydım ona bakacaktım son çare olarak. Fakat iş biraz da inada bindiği için uğraştım, vaktim varmış demek ki o gece :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.