GNU/Linux >> Belajar Linux >  >> Linux

Menyiapkan pengalihan port di Linux dengan ncat

Seperti yang Anda ketahui dari dua artikel saya sebelumnya, pemecahan masalah Linux:Menyiapkan pendengar TCP dengan ncat dan Perintah ncat adalah alat keamanan bermasalah untuk sysadmin Linux, netcat adalah perintah yang merupakan sahabat dan musuh terburuk Anda. Dan artikel ini lebih lanjut mengabadikan fakta ini dengan melihat bagaimana ncat memberikan opsi yang berguna, tetapi berpotensi berbahaya, untuk membuat tautan pengalihan port. Saya tunjukkan cara menyiapkan port atau tautan penerusan situs sehingga Anda dapat melakukan pemeliharaan di situs sambil tetap melayani pelanggan.

Skenario

Anda perlu melakukan pemeliharaan pada instalasi Apache di server1 , tetapi Anda tidak ingin layanan tampil offline untuk pelanggan Anda, yang dalam skenario ini adalah pengguna korporat internal dari portal tenaga kerja yang mencatat jam kerja untuk pengguna jarak jauh Anda. Daripada memberi tahu mereka bahwa portal akan offline selama enam hingga delapan jam, Anda telah memutuskan untuk membuat layanan penerusan ke sistem lain, server2 , sementara Anda mengurus server1 kebutuhan.

Metode ini adalah cara mudah untuk menjaga layanan tertentu tetap hidup tanpa mengutak-atik DNS atau setelan NAT firewall perusahaan.

Server1:Port 8088

Server2:Port 80

Langkah-langkah

Untuk menyiapkan penerusan situs/layanan ini, Anda harus memenuhi prasyarat berikut:

  1. ncat-nmap paket (harus diinstal secara default)
  2. Duplikat fungsional server1 portal di server2
  3. Akar atau sudo akses ke server 1 dan 2 untuk perubahan firewall

Jika Anda telah melewati rintangan ini, inilah saatnya untuk mewujudkan perubahan ini.

Pelaksanaan

Mengonfigurasi ncat dengan cara ini menggunakan pipa bernama, yang merupakan cara efisien untuk membuat tautan komunikasi dua arah ini dengan menulis ke dan membaca dari file di direktori home Anda. Ada beberapa cara untuk melakukannya, tetapi saya akan menggunakan salah satu yang paling sesuai untuk jenis penerusan port ini.

Buat pipa bernama

Membuat pipa bernama mudah menggunakan mkfifo perintah.

$ mkfifo svr1_to_svr2

$ file svr1_to_svr2
svr1_to_svr2: fifo (named pipe)

Saya menggunakan file perintah untuk menunjukkan bahwa file ada di sana dan itu adalah pipa bernama. Perintah ini tidak diperlukan agar layanan berfungsi. Saya menamai file tersebut svr1_to_svr2 , tetapi Anda dapat menggunakan nama apa pun yang Anda inginkan. Saya memilih nama ini karena saya meneruskan dari server1 ke server2 .

Buat layanan penerusan

Secara formal, ini disebut menyiapkan relai Pendengar-ke-Klien , tetapi akan sedikit lebih masuk akal jika Anda memikirkan hal ini dalam istilah firewall, oleh karena itu nama dan deskripsi "teruskan" saya.

$ ncat -k -l 8088 < svr1_to_svr2 | ncat 192.168.1.60 80 > svr1_to_svr2 &

Mengeluarkan perintah ini mengembalikan Anda ke prompt karena Anda meletakkan layanan di latar belakang dengan & . Seperti yang Anda lihat, pipa bernama dan layanan keduanya dibuat sebagai pengguna standar. Saya membahas alasan pembatasan ini di artikel saya sebelumnya, Perintah ncat adalah alat keamanan yang bermasalah untuk sysadmin Linux.

Perincian perintah

Bagian pertama dari perintah, ncat -k -l 8088 , menyiapkan listener untuk koneksi yang biasanya akan dijawab oleh layanan Apache di server1 . Layanan itu offline, jadi Anda membuat pendengar untuk menjawab permintaan tersebut. -k option adalah fitur keep-alive, artinya dapat melayani banyak permintaan. -l adalah opsi mendengarkan. Port 8088 adalah port yang ingin Anda tiru, yang merupakan portal pelanggan.

Bagian kedua, di sebelah kanan operator pipa (| ), menerima dan menyampaikan permintaan ke 192.168.1.60 pada port 80. Pipa bernama (svr1_to_svr2 ) menangani data masuk dan keluar.

Penggunaan

Sekarang setelah Anda mengatur relai, itu mudah digunakan. Arahkan browser Anda ke host asli dan portal pelanggan, yaitu http://server1:8088 . Ini secara otomatis mengalihkan browser Anda ke server2 pada port 80. Browser Anda masih menampilkan URL dan port asli.

Saya menemukan bahwa terlalu banyak permintaan berulang dapat menyebabkan layanan ini gagal dengan pesan pipa yang rusak di server1 . Ini tidak selalu mematikan layanan, tetapi bisa. Saran saya adalah menyiapkan skrip untuk memeriksa forward perintah, dan jika tidak ada, mulai ulang. Anda tidak dapat memeriksa keberadaan svr1_to_svr2 file karena selalu ada. Ingat, Anda membuatnya dengan mkfifo perintah.

Peringatan

Kelemahan dari ncat . ini kemampuannya adalah bahwa pengguna dapat meneruskan lalu lintas ke situs duplikat mereka sendiri dan mengumpulkan nama pengguna dan kata sandi. Aktor jahat harus mematikan pendengar port/layanan web saat ini untuk membuatnya berfungsi, tetapi dimungkinkan untuk melakukan ini bahkan tanpa akses root. Sysadmin harus menjaga kewaspadaan melalui pemantauan dan peringatan untuk menghindari jenis celah keamanan ini.

Penutup

ncat perintah memiliki begitu banyak kegunaan sehingga memerlukan satu artikel per fitur untuk menjelaskan masing-masing. Artikel ini memperkenalkan Anda pada konsep relai Listener-to-Client, atau penerusan layanan, seperti yang saya sebut. Ini berguna untuk periode pemeliharaan singkat tetapi tidak boleh digunakan untuk pengalihan permanen. Untuk itu, Anda harus mengedit DNS dan aturan NAT firewall perusahaan untuk mengirim permintaan ke tujuan baru mereka. Anda harus mengingatkan diri sendiri untuk mematikan ncat pendengar ketika Anda selesai dengan mereka saat mereka membuka sistem untuk kompromi. Jangan pernah membuat layanan ini dengan akun pengguna root.

[ Jadikan pengelolaan jaringan Anda lebih mudah dari sebelumnya dengan Otomatisasi jaringan untuk semua orang, buku gratis dari Red Hat. ]


Linux
  1. Perintah Tee Linux dengan Contoh

  2. Tutorial Perintah layanan Linux untuk Pemula (dengan Contoh)

  3. Perintah kepala Linux dengan Contoh

  1. Pemecahan masalah Linux:Menyiapkan pendengar TCP dengan ncat

  2. Perintah JQ di Linux dengan Contoh

  3. Contoh Perintah layanan di Linux

  1. Perintah wc Linux dengan Contoh

  2. Perintah sortir Linux dengan Contoh

  3. Perintah Ncat Linux