Product SiteDocumentation Site

10.8. Alat Diagnosis Jaringan

Ketika sebuah aplikasi jaringan tidak berjalan seperti yang diharapkan, sangat penting untuk dapat melihat di belakang layar. Bahkan ketika semuanya tampaknya berjalan lancar, menjalankan diagnosis jaringan dapat membantu memastikan semuanya bekerja seperti seharusnya. Ada beberapa alat diagnosis untuk tujuan ini; masing-masing beroperasi pada tingkat yang berbeda.

10.8.1. Diagnosis Lokal: netstat

Pertama mari kita bahas perintah netstat (dalam paket net-tools); itu menampilkan suatu ringkasan seketika dari aktivitas jaringan komputer. Ketika dipanggil tanpa argumen, perintah ini menmpilkan daftar semua koneksi yang terbuka; daftar ini bisa jadi sangat panjang karena itu termasuk soket-soket domain Unix (yang biasa dikenal sebagai daemon) yang sama sekali tidak melibatkan jaringan (sebagai contoh, komunikasi dbus, lalu lintas X11, dan komunikasi antar sistem berkas virtual dan dekstop.
Invokasi yang umum karena itu menggunakan pilihan yang mengubah perilaku netstat. Pilihan yang paling sering digunakan antara lain:
  • -t, yang menyaring hasil untuk hanya menyertakan koneksi TCP;
  • -u, yang bekerja secara serupa untuk koneksi UDP; pilihan ini tidak saling eksklusif, dan salah satunya cukup untuk menghentikan menampilkan hubungan Unix-domain;
  • -, juga menampilkan daftar soket yang mendengar (menunggu untuk koneksi masuk);
  • -n, untuk menampilkan hasil secara numerik: alamat IP (tanpa resolusi DNS), nomor port (bukan alias sebagaimana didefinisikan dalam /etc/services) dan id pengguna (tidak ada nama login);
  • -p, untuk daftar proses yang terlibat; pilihan ini hanya berguna ketika netstat dijalankan sebagai root, karena pengguna normal hanya akan melihat proses mereka sendiri;
  • -c, untuk terus-menerus menyegarkan daftar koneksi.
Pilihan lain, didokumentasikan dalam halaman manual netstat(8), menyediakan kontrol yang bahkan lebih halus atas hasil yang ditampilkan. Dalam prakteknya, lima pilihan pertama begitu sering digunakan bersama bahwa sistem dan administrator jaringan praktis mengakuisisi netstat -tupan sebagai refleks. Hasil yang khas, pada mesin bermuatan ringan, mungkin terlihat seperti berikut:
# netstat -tupan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      397/rpcbind     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      431/sshd        
tcp        0      0 0.0.0.0:36568           0.0.0.0:*               LISTEN      407/rpc.statd   
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      762/exim4       
tcp        0    272 192.168.1.242:22        192.168.1.129:44452     ESTABLISHED 1172/sshd: roland [
tcp6       0      0 :::111                  :::*                    LISTEN      397/rpcbind     
tcp6       0      0 :::22                   :::*                    LISTEN      431/sshd        
tcp6       0      0 ::1:25                  :::*                    LISTEN      762/exim4       
tcp6       0      0 :::35210                :::*                    LISTEN      407/rpc.statd   
udp        0      0 0.0.0.0:39376           0.0.0.0:*                           916/dhclient    
udp        0      0 0.0.0.0:996             0.0.0.0:*                           397/rpcbind     
udp        0      0 127.0.0.1:1007          0.0.0.0:*                           407/rpc.statd   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           916/dhclient    
udp        0      0 0.0.0.0:48720           0.0.0.0:*                           451/avahi-daemon: r
udp        0      0 0.0.0.0:111             0.0.0.0:*                           397/rpcbind     
udp        0      0 192.168.1.242:123       0.0.0.0:*                           539/ntpd        
udp        0      0 127.0.0.1:123           0.0.0.0:*                           539/ntpd        
udp        0      0 0.0.0.0:123             0.0.0.0:*                           539/ntpd        
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           451/avahi-daemon: r
udp        0      0 0.0.0.0:39172           0.0.0.0:*                           407/rpc.statd   
udp6       0      0 :::996                  :::*                                397/rpcbind     
udp6       0      0 :::34277                :::*                                407/rpc.statd   
udp6       0      0 :::54852                :::*                                916/dhclient    
udp6       0      0 :::111                  :::*                                397/rpcbind     
udp6       0      0 :::38007                :::*                                451/avahi-daemon: r
udp6       0      0 fe80::5054:ff:fe99::123 :::*                                539/ntpd        
udp6       0      0 2001:bc8:3a7e:210:a:123 :::*                                539/ntpd        
udp6       0      0 2001:bc8:3a7e:210:5:123 :::*                                539/ntpd        
udp6       0      0 ::1:123                 :::*                                539/ntpd        
udp6       0      0 :::123                  :::*                                539/ntpd        
udp6       0      0 :::5353                 :::*                                451/avahi-daemon: r
Seperti yang diharapkan, daftar ini menampilkan koneksi yang terjalin, dua koneksi SSH dalam kasus ini, dan aplikasi yang menunggu koneksi masuk (terdaftar sebagai LISTEN), terutama server surel Exim4 yang mendengarkan di port 25.

10.8.2. Diagnosis Jarak Jauh: nmap

nmap (dalam paket yang bernama mirip) adalah, sedikit banyak, ekuivalen remote untuk netstat. Itu dapat memindai suatu set port yang "dikenal luas" untuk satu server remote atau lebih, dan menampilkan daftar port dimana suatu aplikasi ditemukan yang menjawab koneksi masuk. Lebih jauh, nmap dapat mengidentifikasi beberapa dari aplikasi ini, bahkan terkadang nomor versi mereka. Kekurangan dari perkakas ini adalah, karena itu dijalankan secara remote, tidak dapat menyediakan informasi tentang proses-proses atau para pengguna; namun, itu dapat beroperasi pada beberapa target sekaligus.
Pemanggilan tipikal nmap hanya menggunakan pilihan -A (sehingga nmap mencoba mengidentifikasi versi perangkat lunak server yang ditemukannya) diikuti oleh satu atau lebih alamat IP atau nama DNS mesin yang akan dipindai. Sekali lagi, lebih banyak opsi yang ada untuk mengendalikan perilaku nmap; silakan lihat dokumentasi di halaman manual nmap(1).
# nmap mirtuel

Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-09 16:46 CET
Nmap scan report for mirtuel (192.168.1.242)
Host is up (0.000013s latency).
rDNS record for 192.168.1.242: mirtuel.internal.placard.fr.eu.org
Not shown: 998 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind

Nmap done: 1 IP address (1 host up) scanned in 2.41 seconds
# nmap -A localhost

Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-09 16:46 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000013s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 997 closed ports
PORT    STATE SERVICE VERSION
22/tcp  open  ssh     OpenSSH 6.7p1 Debian 3 (protocol 2.0)
|_ssh-hostkey: ERROR: Script execution failed (use -d to debug)
25/tcp  open  smtp    Exim smtpd 4.84
| smtp-commands: mirtuel Hello localhost [127.0.0.1], SIZE 52428800, 8BITMIME, PIPELINING, HELP, 
|_ Commands supported: AUTH HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP 
111/tcp open  rpcbind 2-4 (RPC #100000)
| rpcinfo: 
|   program version   port/proto  service
|   100000  2,3,4        111/tcp  rpcbind
|   100000  2,3,4        111/udp  rpcbind
|   100024  1          36568/tcp  status
|_  100024  1          39172/udp  status
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.7 - 3.15
Network Distance: 0 hops
Service Info: Host: mirtuel; OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.54 seconds
Seperti yang diharapkan, aplikasi SSH dan Exim4 tercantum. Perhatikan bahwa tidak semua aplikasi mendengarkan pada semua alamat IP; karena Exim4 ini hanya dapat diakses pada antarmuka loopback lo, itu hanya muncul selama analisis localhost dan tidak ketika pemindaian mirtuel (yang terpetakan ke antarmuka eth0 di mesin yang sama).

10.8.3. Sniffer: tcpdump dan wireshark

Kadang-kadang, orang perlu untuk melihat apa yang sebenarnya terjadi pada kabel, paket per paket. Kasus ini panggilan untuk “penganalsis frame”, lebih dikenal sebagai niffer. Suatu alat yang mengamati semua paket yang mencapai antarmuka jaringan tertentu, dan menampilkan mereka dalam cara yang ramah pengguna.
Alat mulia dalam domain ini adalah tcpdump, tersedia sebagai alat standar pada berbagai platform. Hal ini memungkinkan menangkap banyak jenis lalu lintas jaringan, tapi representasi dari lalu lintas ini tetap agak kabur. Karenanya kami tidak akan menjelaskan secara lebih terperinci.
Perkakas yang lebih terkini (dan lebih modern), wireshark (dalam paket wireshark), telah menjadi acuan baru dalam analisis lalu lintas jaringan karena banyak modul pendekodeannya yang mengizinkan analisis yang disederhanakan atas paket-paket yang ditangkap. Paket-paket ditampilkan secara grafis dengan suatu pengorganisasian berbasis layer protokol. Ini memungkinkan pengguna memvisualisasi semua protokol yang terlibat dalam sebuah paket. Sebagai contoh, diberikan suatu paket yang memuat sebuah permintaan HTTP, wireshark menampilkan, secara terpisah, informasi terkait layer fisik, layer Ethernet, informasi paket IP, parameter koneksi TCP, dan akhirnya permintaan HTTP itu sendiri.
wireshark penganalisis lalu lintas jaringan

Gambar 10.1. wireshark penganalisis lalu lintas jaringan

Dalam contoh kita, paket-paket yang berjalan di atas SSH disaring (dengan penyaring !tcp.port == 22). Paket yang sedang ditampilkan dikembangkan pada layer HTTP.