GNU/Linux >> Belajar Linux >  >> Linux

Pemindaian Port Linux yang Efektif untuk Admin Jaringan

Apakah Anda mencari cara untuk meningkatkan keamanan jaringan Anda? Mengapa tidak mempelajari cara melakukan pemindaian port Linux seperti seorang profesional?

Dalam tutorial ini, Anda akan mempelajari tentang beberapa alat dan teknik paling populer serta mengantisipasi potensi risiko dan manfaat yang terkait dengan pemindaian port.

Kedengarannya menjanjikan? Mulai pemindaian port untuk mengamankan jaringan Anda hari ini!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki sistem Linux – Tutorial ini menggunakan Ubuntu 20.04, tetapi semua distribusi Linux modern akan berfungsi.

Memindai Port yang Terbuka dengan Nmap

Ada berbagai cara untuk memindai port, dan Nmap adalah alat yang sangat baik untuk penemuan jaringan dan audit keamanan. Nmap memungkinkan Anda menemukan host dan layanan di jaringan komputer dengan mengirimkan paket dan menganalisis responsnya.

Nmap tersedia gratis dan kompatibel dengan Windows, Linux, dan OS X.

Pemindaian port memungkinkan Anda memeriksa server atau host untuk port terbuka, yang berguna karena berbagai alasan:

  • Mencari tahu layanan mana yang berjalan di sebuah host.
  • Menemukan kerentanan
  • Menghitung sistem.

Namun sebelum memanfaatkan Nmap, Anda harus menginstal Nmap terlebih dahulu di komputer Anda:

1. Jalankan perintah apt update di bawah ini untuk memperbarui indeks paket sistem.

apt update -y

2. Selanjutnya, jalankan perintah apt install berikut untuk menginstal Nmap.

apt install nmap -y

3. Jalankan perintah nmap –version di bawah ini untuk memeriksa versi Nmap yang terinstal di komputer Anda.

nmap --version

Di bawah ini, versi Nmap yang terinstal adalah 7.80, rilis terbaru dari tulisan ini.

4. Sekarang, jalankan perintah nmap berikut untuk memindai nama host atau alamat IP target (scanme.nmap.org). Anda hanya memerlukan opsi minimal untuk memulai.

nmap scanme.nmap.org

Di bawah ini adalah rincian hasil pemindaian.:

  • Alamat IPv4 target – 45.33.32.156 .
  • Alamat IPv6 target (jika tersedia) – 2600:3c01::f03c:91ff .
  • Nama DNS terbalik (jika tersedia).

Anda juga dapat melihat setiap port dan statusnya di output:

  • buka – Menunjukkan port terbuka dan mendengarkan koneksi masuk.
  • tutup – Menunjukkan port ditutup dan tidak mendengarkan koneksi masuk.
  • difilter – Menunjukkan port sedang difilter, dan Nmap tidak dapat menentukan apakah port terbuka atau tertutup. Nmap mengirimkan probe ke port tetapi tidak mendapat tanggapan.

Memindai Port Tertentu

Nmap melakukan banyak hal di latar belakang untuk mencoba dan menentukan status setiap port. Anda dapat menyesuaikan pemindaian lebih lanjut dengan menambahkan opsi CLI untuk kontrol lebih, seperti -p pilihan. Opsi ini memungkinkan Anda menentukan port mana yang akan dipindai.

1. Jalankan perintah berikut untuk memindai port 80 di hostname target Anda (scanme.nmap.org). Perintah ini memberi tahu Anda jika port 80 dari host target terbuka atau tertutup.

nmap -p 80 scanme.nmap.org

Di bawah, Anda dapat melihat bahwa port 80 terbuka. Status ini memberi tahu Anda bahwa server web berjalan pada port 80.

2. Selanjutnya, jalankan perintah berikut untuk menggunakan server DNS Publik Google (8.8.8.8 dan 8.8.4.4) untuk memindai port 80 nama host (scanme.nmap.org).

Opsi –dns-servers memungkinkan Anda menentukan server DNS mana yang akan digunakan untuk pemindaian. Opsi ini berguna saat Anda ingin memindai host di jaringan lain. Sementara flag -v memberi Anda lebih banyak informasi tentang pemindaian.

nmap --dns-servers -p 80 8.8.8.8,8.8.4.4 -v scanme.nmap.org

Anda dapat melihat di bawah bahwa Nmap menggunakan server DNS Publik Google untuk menyelesaikan nama host, dan pemindaian berhasil.

3. Terakhir, jalankan perintah di bawah ini untuk memindai port 80 dari nama host (scanme.nmap.org) seperti yang Anda lakukan pada langkah pertama. Tapi kali ini, tambahkan opsi -d untuk meningkatkan level debug ke 3. Opsi ini berguna untuk memecahkan masalah dengan Nmap.

Opsi -d mengambil bilangan bulat (antara 0 dan 9) sebagai argumen. Semakin tinggi angkanya, semakin banyak output debug yang akan Anda lihat.

Level 9 adalah untuk keluaran yang sangat verbose., yang berguna untuk pengembang yang bekerja di Nmap.

nmap -d 3 -p 80 scanme.nmap.org

Memindai Port Menggunakan Netcat (Ncat)

Netcat (nc ) adalah alat baris perintah untuk eksplorasi jaringan, audit keamanan, dan pengujian penetrasi. Anda dapat menggunakan Netcat untuk membuat koneksi TCP dan UDP sederhana dan SOCKS dan proxy HTTP yang lebih kompleks. Namun dalam tutorial ini, Anda akan menggunakan Netcat untuk memindai port yang terbuka pada sistem jarak jauh.

1. Jalankan perintah nc di bawah ini untuk memindai port yang terbuka tanpa mengirim data apa pun (-z) dari port 20 hingga 1000 pada 159.89.176.25. Opsi -v memberi tahu Netcat untuk bertele-tele sehingga Anda dapat melihat apa yang terjadi selama pemindaian.

nc -z -v 159.89.176.25 20-1000

Jangkauan port dapat ditambah atau dikurangi sesuai kebutuhan. Namun port 20-1000 mencakup berbagai port yang umum digunakan.

Output di bawah ini menunjukkan port mana yang terbuka, dan status koneksinya adalah sebagai berikut:

  • Sambungan ditolak – Menunjukkan koneksi telah ditolak oleh port yang sesuai, yang mungkin disebabkan oleh kurangnya layanan yang berjalan pada port tersebut — port ditutup.
  • Berhasil! – Menunjukkan koneksi berhasil — port terbuka.

Selain port 22 (SSH), yang terbuka pada sistem jarak jauh, Anda juga akan melihat banyak pesan lain, yang dapat mengganggu. Jadi, lompat ke langkah berikut untuk memfilter output.

2. Jalankan perintah grep di bawah ini untuk memindai port 20 hingga 100 pada 159.89.176.25, dan hanya menampilkan port yang terbuka dari setiap hasil pemindaian yang memiliki kata berhasil.

Bagian 2>&1 memberi tahu shell untuk mengarahkan ulang stderr (deskriptor file 2) ke stdout (deskriptor file 1)., jadi Anda akan melihat pesan kesalahan di output jika ada.

nc -z -v 159.89.176.25 20-100 2>&1 | grep succeeded

Seperti yang Anda lihat di bawah, hanya port 22 yang terbuka, yang juga memiliki pesan berhasil.

3. Terakhir, jalankan perintah yang sama seperti langkah kedua. Tapi kali ini, tambahkan opsi -u untuk memindai port UDP, seperti yang ditunjukkan di bawah ini.

nc -z -v -u 159.89.176.25 20-100 2>&1 | grep succeeded

Perhatikan bahwa pemindaian membutuhkan waktu lebih lama saat memindai UDP daripada port TCP:

  • Pemindaian TCP mencoba membuat koneksi dengan host target, memindai semua 65.535 port untuk melihat port mana yang terbuka.
  • Pemindaian UDP tidak mencoba membuat koneksi tetapi mengirimkan paket UDP ke setiap port host target untuk melihat port mana yang terbuka. Pemindaian UDP lebih rendah daripada pemindaian TCP karena Anda mengirim paket dan menyelesaikan penanganan kesalahan dan jabat tangan 3 arah.

Anda dapat melihat di bawah bahwa output kosong karena tidak ada layanan UDP yang berjalan pada sistem jarak jauh.

Menguji Apakah Port Terbuka Menggunakan Skrip Bash

Sejauh ini, Anda telah melihat cara menggunakan Netcat dan Nmap untuk memindai port yang terbuka pada suatu sistem. Meskipun alat ini berguna, alat ini tidak dapat diandalkan saat mengotomatiskan tugas pemindaian port.

Misalnya, Anda berencana untuk memindai port terbuka pada 1000 host. Dalam hal ini, pemindaian port secara manual menjadi membosankan dan membutuhkan waktu lama untuk diselesaikan. Tetapi bagaimana Anda mengotomatiskan tugas pemindaian port di Linux? Menulis skrip Bash akan berhasil.

Untuk membuat skrip Bash untuk mengotomatiskan pemindaian port:

1. Buka file baru di editor teks favorit Anda. Beri nama file sesuka Anda, tetapi file tersebut disebut ports.sh untuk tutorial ini.

nano ports.sh

2. Tambahkan kode di bawah ini ke ports.sh file, tetapi pastikan untuk mengganti nilai SERVER dan PORT dengan alamat IP Anda sendiri atau nama host dan port yang akan dipindai.

Setelah mengubah nilai, simpan perubahan, dan tutup editor.

# Defines the server you want to scan. 
SERVER=adamtheautomator.com
# Defines the port to scan.
PORT=443
# Runs the nmap command and assigns the output to the state variable. 
# The grep command filters and displays the output of the nmap command
# with the lines containing the "open" keyword.
state=`nmap -p $PORT $SERVER | grep "$PORT" | grep open`
# Checks if the state variable is blank (port is closed).
if [ -z "$state" ]; then
	# Displays a message if the connection fails.
  echo "Connection to $SERVER on port $PORT has failed"
else
	# Displays a message if the connection succeeded.
  echo "Connection to $SERVER on port $PORT was successful"
	# Exits the script with an exit code of 1 
	# to determine if the script was successful or not.
  exit 1
fi # Ends the if statement

3. Terakhir, jalankan perintah bash di bawah ini untuk menjalankan skrip ports.sh Anda.

bash ports.sh

Jika semuanya berjalan dengan baik, Anda akan melihat output berikut yang mengatakan port 443 terbuka di adamtheautomator.com.

Kesimpulan

Dalam tutorial ini, Anda telah belajar memindai port yang terbuka pada sistem dengan Netcat dan Nmap. Selain alat ini, Anda telah menulis skrip Bash untuk mengotomatiskan pemindaian port sehingga Anda dapat melakukan tugas lain di piring Anda.

Pada titik ini, Anda sudah memiliki pemahaman yang baik tentang cara menggunakan alat ini untuk memindai port terbuka pada sistem sehingga Anda dapat menjaga keamanan jaringan Anda. Tetapi untuk lebih mengotomatiskan tugas pemindaian port, mengapa tidak membuat tugas cron untuk menjadwalkan eksekusi skrip Bash Anda?


Linux
  1. Panduan terminal Linux untuk pemula

  2. 8 tips untuk baris perintah Linux

  3. 10 Perintah Linux Untuk Diagnostik Jaringan

  1. 8 perintah Linux untuk manajemen proses yang efektif

  2. Contoh Penggalian Linux yang Berguna untuk Admin Jaringan

  3. Menemukan Paket untuk Kali Linux

  1. Kirim pindaian Anda ke mesin Linux melalui jaringan Anda

  2. Kali di Subsistem Windows untuk Linux

  3. Kali Linux untuk Gemini PDA