Sebelum kita mempelajari tentang membuka port di Linux, mari kita pahami apa itu port jaringan. Sebuah pelabuhan adalah titik akhir komunikasi. Dalam sistem operasi, port mengizinkan paket data proses atau layanan jaringan tertentu.
Biasanya, port mengidentifikasi layanan jaringan tertentu yang ditetapkan untuknya. Ini dapat diubah dengan mengkonfigurasi layanan secara manual untuk menggunakan port yang berbeda, tetapi secara umum, default dapat digunakan.
1024 pertama port (Port 0-1023 ) disebut sebagai nomor port yang terkenal dan dicadangkan untuk layanan yang paling umum digunakan termasuk SSH (port 22), HTTP dan HTTPS (port 80 dan 443), dll. Nomor port di atas 1024 disebut sebagai ephemeral pelabuhan .
Di antara port sesaat, nomor Port 1024-49151 disebut Terdaftar/Pengguna Pelabuhan. Port lainnya, 49152-65535 disebut sebagai Dinamis/Pribadi Pelabuhan.
Dalam tutorial ini, kami akan menunjukkan bagaimana kami dapat membuka port ephemeral di Linux, karena layanan yang paling umum menggunakan port yang terkenal.
Mencantumkan semua port yang terbuka
Sebelum membuka port di Linux, mari kita periksa dulu daftar semua port yang terbuka, dan pilih port ephemeral untuk dibuka dari daftar itu.
Kita dapat menggunakan netstat perintah untuk membuat daftar semua port yang terbuka, termasuk port TCP , UDP , yang merupakan protokol paling umum untuk transmisi paket di lapisan jaringan.
CATATAN :Jika distribusi Anda tidak memiliki netstat
, Itu bukan masalah. Anda dapat menggunakan ss
perintah untuk menampilkan port yang terbuka melalui soket pendengar.
netstat -lntu
Ini akan mencetak semua mendengarkan soket (-l
) bersama dengan nomor port (-n
), dengan TCP port (-t
) dan UDP port (-u
) juga tercantum dalam output.

Hanya untuk memastikan bahwa kita mendapatkan output yang konsisten, mari kita verifikasi menggunakan ss
perintah untuk membuat daftar soket pendengar dengan port terbuka.
ss -lntu

Ini memberikan kurang lebih port terbuka yang sama dengan netstat
, jadi kami siap berangkat!
Membuka port di Linux untuk Mengizinkan Koneksi TCP
Mari kita buka port yang tertutup dan membuatnya mendengarkan TCP Koneksi, demi contoh ini.
Sejak port 4000 tidak digunakan di sistem saya, saya memilih untuk membuka port 4000 . Jika port tersebut tidak terbuka di sistem Anda, silakan pilih port lain yang tertutup. Pastikan lebih besar dari 1023 !
Sekali lagi, hanya untuk memastikan, mari kita pastikan port 4000 tidak digunakan, menggunakan netstat
atau ss
perintah.
netstat -na | grep :4000
ss -na | grep :4000
Output harus tetap kosong, sehingga memverifikasi bahwa saat ini tidak digunakan, sehingga kita dapat menambahkan aturan port secara manual ke system iptables firewall .
Untuk Pengguna Ubuntu dan Sistem berbasis firewall ufw
Ubuntu memiliki firewall bernama ufw
, yang menangani aturan ini untuk port dan koneksi, bukan iptables
old yang lama firewall. Jika Anda pengguna Ubuntu, Anda dapat langsung membuka port menggunakan ufw
sudo ufw allow 4000
Anda dapat melewati beberapa langkah berikutnya, dan langsung menguji port yang baru dibuka!
Untuk Sistem berbasis CentOS dan firewalld
Untuk jenis sistem ini, jika Anda memiliki firewalld
sebagai firewall utama Anda, disarankan agar Anda menggunakan firewall-cmd
untuk memperbarui aturan firewall Anda, bukan iptables
yang lama firewall.
firewall-cmd --add-port=4000/tcp
CATATAN:Ini akan mengatur ulang firewalld
aturan ke default pada reboot, jadi jika Anda ingin mengubah pengaturan ini secara permanen, tambahkan --permanent
tandai ke perintah.
firewall-cmd --add-port=4000/tcp --permanent
Anda dapat melewati beberapa langkah berikutnya, dan langsung menguji port yang baru dibuka!
Untuk Distribusi Linux Lainnya
Jadi mari tambahkan port baru ini ke aturan iptables sistem kita, menggunakan iptables
perintah.
Jika perintah ini belum diinstal, dapatkan menggunakan manajer paket Anda.
iptables -A INPUT -p tcp --dport 4000 -j ACCEPT
Ini menyetel firewall ke menambahkan (-A
) aturan baru untuk menerima paket input melalui protokol (-p
) TCP di mana pelabuhan tujuan (--dport
) adalah 4000 , dan menentukan target lompat (-j
) aturan sebagai TERIMA .
Untuk memperbarui aturan firewall, mulai ulang iptables
layanan.
sudo service iptables restart
ATAU menggunakan systemctl
jika Anda memilikinya.
sudo systemctl restart iptables
Uji port yang baru dibuka untuk Koneksi TCP
Sekarang kami telah berhasil membuka TCP baru port (Port 4000 dalam kasus saya), mari kita uji.
Pertama, kita akan memulai netcat (nc
) dan dengarkan pada port 4000, saat mengirim output ls
ke setiap klien yang terhubung. Jadi setelah klien membuka koneksi TCP pada port 4000, mereka akan menerima output ls
.
ls | nc -l -p 4000
Hal ini membuat netcat mendengarkan pada port 4000. Biarkan sesi ini untuk saat ini.
Buka sesi terminal lain di mesin yang sama.
Karena saya telah membuka port TCP, saya akan menggunakan telnet
untuk memeriksa Konektivitas TCP. Jika perintah tidak ada, sekali lagi, instal menggunakan manajer paket Anda.
Format untuk telnet :
telnet [hostname/IP address] [port number]
Jadi masukkan IP server Anda dan nomor port, yaitu 4000 dalam kasus saya, dan jalankan perintah ini.
telnet localhost 4000
Ini mencoba membuka koneksi TCP di localhost
pada port 4000.
Anda akan mendapatkan output yang mirip dengan ini, yang menunjukkan bahwa koneksi telah dibuat dengan program mendengarkan (nc
).

Seperti yang Anda lihat, output dari ls
(while.sh
dalam kasus saya) juga telah dikirim ke klien, menunjukkan Koneksi TCP berhasil!
Untuk menunjukkan bahwa port memang terbuka, kita dapat menggunakan nmap
untuk memeriksa ini.
nmap localhost -p 4000

Memang, pelabuhan kami telah dibuka! Kami telah berhasil membuka port baru di sistem Linux kami!
CATATAN :nmap
hanya mencantumkan port terbuka yang memiliki aplikasi yang sedang mendengarkan. Jika Anda tidak menggunakan aplikasi pendengar seperti netcat, ini akan menampilkan port 4000 sebagai tertutup, karena tidak ada aplikasi yang mendengarkan pada port tersebut saat ini. Demikian pula, telnet juga tidak akan berfungsi, karena ia juga memerlukan aplikasi pendengar untuk mengikat. Inilah alasan mengapa nc
adalah alat yang sangat berguna. Ini mensimulasikan lingkungan seperti itu dalam perintah sederhana.
Tapi ini hanya sementara, karena perubahan akan diatur ulang setiap kali kita me-reboot sistem.
Perlu memperbarui aturan setelah setiap reboot
Pendekatan yang disajikan dalam artikel ini hanya akan memperbarui aturan firewall untuk sementara hingga sistem dimatikan/di-boot ulang. Jadi langkah serupa harus diulang untuk membuka port yang sama lagi setelah restart.
Untuk ufw Firewall
ufw
aturan tidak reset saat reboot, jadi jika Anda pengguna Ubuntu, Anda tidak perlu khawatir tentang bagian ini!
Ini karena terintegrasi ke dalam proses boot dan kernel menyimpan aturan firewall menggunakan ufw
, melalui file konfigurasi yang sesuai.
Untuk firewall
Seperti disebutkan sebelumnya, firewalld
juga mengalami masalah yang sama, tetapi ini dapat dihindari dengan menambahkan --permananent
tandai ke perintah awal, saat membuka port atau menyetel aturan lain.
Misalnya, Anda dapat membuka Port TCP 4000 secara permanen menggunakan perintah di bawah ini:
firewall-cmd --zone=public --add-port=400/tcp --permanent
Untuk iptables
Untuk iptables
firewall, meskipun ketidaknyamanan ini tidak dapat dihindari, kami dapat meminimalkan kerumitan tersebut.
Kita dapat menyimpan iptables
aturan ke file konfigurasi, seperti /etc/iptables.conf
.
sudo iptables-save | sudo tee -a /etc/iptables.conf
Kami kemudian dapat mengambilnya dari file konfigurasi setelah kami reboot, menggunakan perintah di bawah ini:
sudo iptables-restore < /etc/iptables.conf
Sekarang, iptables
aturan sekarang diperbarui, dan port kami dibuka lagi!
Kesimpulan
Dalam tutorial ini, kami menunjukkan kepada Anda bagaimana Anda dapat membuka port baru di Linux dan mengaturnya untuk koneksi masuk.