GNU/Linux >> Belajar Linux >  >> Linux

Membuka port di Linux

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.


Linux
  1. Bagaimana Cara Menutup Port Di Linux?

  2. Periksa penggunaan port di Linux

  3. Dapatkan daftar Port Terbuka di Linux

  1. cara menggunakan netstat pada port tertentu di Linux

  2. Daftar port SATA yang tidak digunakan di Linux

  3. Perintah Linux dapatkan port yang tidak digunakan

  1. Cara Mengubah Port SSH Di Linux

  2. Menguji secara efisien apakah port terbuka di Linux?

  3. Berapa nomor port maksimum?