Port Knocking: Keamanan terbaik yang dapat Anda miliki di komputer atau server Anda (Deployment + Konfigurasi)

Port yang mencolok (dalam bahasa Inggris ketukan pelabuhan) Tidak diragukan lagi merupakan praktik bahwa kita semua yang mengelola server harus mengetahuinya dengan baik, di sini saya menjelaskan secara rinci apa itu dan bagaimana menerapkan dan mengkonfigurasi ini šŸ˜‰

Saat ini kita yang mengelola server memiliki akses SSH ke server itu, beberapa kami mengubah port default SSH dan itu tidak lagi menggunakan port 22 dan yang lain biarkan seperti itu (sesuatu yang tidak disarankan), namun server telah mengaktifkan akses SSH melalui beberapa port dan ini sudah menjadi 'kerentanan'.

dengan Ketukan Pelabuhan kita dapat mencapai yang berikut:

1. Akses SSH tidak diaktifkan oleh port apa pun. Jika kita memiliki SSH yang dikonfigurasi untuk port 9191 (misalnya) port tersebut (9191) akan ditutup untuk semua orang.
2. Jika seseorang ingin mengakses server dengan SSH, mereka jelas tidak akan bisa, karena port 9191 ditutup ... tetapi, jika kita menggunakan kombinasi 'ajaib' atau rahasia, port itu akan dibuka, misalnya:

1. Saya telnet ke port 7000 server
2. Saya melakukan telnet lain ke port 8000 server
3. Saya melakukan telnet lain ke port 9000 server
4. Server mendeteksi bahwa seseorang telah membuat kombinasi rahasia (port sentuh 7000, 8000 dan 9000 dalam urutan itu) dan akan membuka port 9191 sehingga login diminta oleh SSH (itu akan membukanya hanya untuk IP dari mana kombinasi itu dibuat memuaskan).
5. Sekarang untuk menutup SSH saya hanya telnet ke port 3500
6. Saya akan melakukan telnet lain ke port 4500
7. Dan akhirnya telnet lain ke port 5500
8. Melakukan kombinasi rahasia lain yang terdeteksi server ini akan menutup port 9191 lagi.

Dengan kata lain, menjelaskan ini dengan lebih sederhana ...

dengan Ketukan Pelabuhan server kami mungkin memiliki port tertentu yang ditutup, tetapi ketika server mendeteksinya dari X IP kombinasi port yang benar telah dibuat (konfigurasi yang sebelumnya ditentukan dalam file konfigurasi) akan menjalankan perintah tertentu pada dirinya sendiri dengan jelas (perintah juga didefinisikan dalam file konfigurasi).

Apakah itu tidak dimengerti? šŸ™‚

Bagaimana cara menginstal daemon untuk Port Knocking?

Saya melakukannya dengan paket terkoyak, yang akan memungkinkan kami menerapkan dan mengkonfigurasi dengan sangat, sangat sederhana dan cepat Ketukan Pelabuhan.

Instal paketnya: knockd

Bagaimana cara mengkonfigurasi Port Knocking dengan knockd?

Setelah terinstal, kami melanjutkan untuk mengkonfigurasinya, untuk ini kami mengedit (sebagai root) file /etc/knockd.conf:

nano /etc/knockd.conf

Seperti yang Anda lihat di file itu sudah ada konfigurasi default:

 Menjelaskan pengaturan default sangat sederhana.

- Pertama, UseSyslog artinya untuk merekam aktivitas (log) yang akan kita gunakan / var / log / syslog.
- Kedua, di bagian [openSSH] Di sinilah jelas instruksi untuk membuka SSH akan pergi, pertama kita memiliki urutan port (kombinasi rahasia) yang dikonfigurasi secara default (port 7000, port 8000 dan terakhir port 9000). Jelas port dapat diubah (sebenarnya saya merekomendasikannya) serta mereka tidak harus 3 harus, mereka bisa lebih atau kurang, itu tergantung pada Anda.
- Ketiga, seq_timeout = 5 berarti waktu untuk menunggu kombinasi port rahasia berlangsung. Secara default disetel ke 5 detik, ini berarti bahwa begitu kita mulai melakukan port knocking (yaitu, ketika kita telnet ke port 7000) kita memiliki waktu maksimum 5 detik untuk menyelesaikan urutan yang benar, jika 5 detik berlalu dan kami belum menyelesaikan port knocking maka itu hanya akan seolah-olah urutannya tidak valid.
- Keempat, Command tidak perlu banyak penjelasan. Ini hanya akan menjadi perintah yang akan dijalankan server ketika mendeteksi kombinasi yang ditentukan di atas. Perintah yang disetel secara default yang dilakukannya adalah membuka port 22 (ubah port ini untuk port SSH Anda) hanya ke IP yang membuat kombinasi port yang benar.
- Kelima, tcpflags = syn Dengan baris ini kami menentukan jenis paket yang akan dikenali oleh server sebagai valid untuk port knocking.

Lalu ada bagian untuk menutup SSH, bahwa konfigurasi defaultnya tidak lebih dari urutan port yang sama di atas tetapi dengan urutan yang berlawanan.

Berikut adalah konfigurasi dengan beberapa modifikasi:

 Bagaimana cara memulai daemon ketukan?

Untuk memulainya kita harus terlebih dahulu memodifikasi (sebagai root) file tersebut / etc / default / knockd:

nano /etc/default/knockd

Di sana kami mengubah baris nomor 12 yang mengatakan: Ā«START_KNOCKD = 0Ā»Dan ubah 0 menjadi 1, kita akan memiliki:Ā«START_KNOCKD = 1Ā«

Setelah ini selesai sekarang kita langsung memulainya:

service knockd start

Dan voila, sudah dikonfigurasi dan berfungsi.

Port Knocking dengan knockd up dan berlari!

Seperti yang Anda lihat pada konfigurasi sebelumnya, jika port knock dilakukan ke port 1000, lalu ke 2000 dan terakhir ke 3000 maka port 2222 (SSH saya) akan terbuka, nah di sini komputer lain yang menjalankan port knock:

Setelah saya menekan [Enter] di Knock No.1, di No.2 dan terakhir di No.3 port akan terbuka, berikut lognya:

Seperti yang Anda lihat, ketika mengetuk port 1000, tahap 1 telah terdaftar, kemudian pada tahun 2000 akan menjadi tahap 2 dan akhirnya pada 3 dengan 3000, ketika melakukan ini, perintah yang saya nyatakan di .conf dijalankan dan hanya itu.

Kemudian untuk menutup port hanya akan mengetuk 9000, 8000 dan akhirnya 7000, berikut lognya:

Dan nah disini penjelasan pemakaiannya berakhir šŸ˜€

Seperti yang Anda lihat, Port Knocking sangat menarik dan berguna, karena meskipun kita tidak ingin hanya membuka port setelah kombinasi port tertentu, perintah atau perintah yang akan dijalankan oleh server mungkin berbeda-beda, yaitu ... membuka port kita dapat mendeklarasikan untuk mematikan proses, menghentikan layanan seperti apache atau mysql, dll ... batasnya adalah imajinasi Anda.

Port Knocking hanya berfungsi jika Anda memiliki server fisik atau jika server virtual menggunakan teknologi KVM. Jika VPS Anda (server virtual) adalah OpenVZ maka Port Knocking menurut saya tidak berfungsi untuk Anda karena Anda tidak dapat secara langsung memanipulasi iptables

Nah dan sejauh ini artikel ... Sejauh ini saya bukan ahli dalam masalah ini, tetapi saya ingin berbagi dengan Anda proses yang menarik ini.

Salam šŸ˜€


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ɓngel GatĆ³n
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   erunomoJAZZ dijo

    Artikel yang sangat bagus, cukup menarik dan saya tidak tahu itu ada ... alangkah baiknya jika Anda terus mengeluarkan artikel untuk pemula sysadmin dan itu šŸ˜€

    Salam dan terima kasih ^ _ ^

    1.    KZKG ^ Gaara dijo

      Terima kasih atas komentarnya
      Ya ... memang dengan adanya artikel tentang DNS dari FICO, saya tidak mau ketinggalan LOL !!!

      Tidak ada yang serius. Beberapa bulan yang lalu saya mendengar sesuatu tentang Port Knocking dan langsung menarik perhatian saya, tetapi karena saya pikir itu akan menjadi sangat kompleks pada saat saya tidak memutuskan untuk membahasnya, baru kemarin meninjau beberapa paket dari repo saya menemukan knockd dan memutuskan untuk mencobanya, dan inilah tutorialnya.

      Saya selalu suka meletakkan artikel teknis, beberapa mungkin tidak cukup menarik tapiā€¦ Saya harap yang lain šŸ˜‰

      salam

    2.    Mario dijo

      Halo, saya tahu bahwa artikel ini telah ada selama beberapa waktu tetapi saya mengirimkan pertanyaan saya untuk melihat apakah seseorang dapat menyelesaikannya untuk saya.
      Faktanya adalah saya telah mengimplementasikan port knocking ke raspberry saya untuk mencoba meningkatkan keamanan ketika saya menghubungkannya dari luar jaringan lokal. Agar ini berfungsi, saya harus membuka kisaran port pada router 7000-9990 yang mengarahkan ke mesin. Apakah aman untuk membuka porta ini di router atau, sebaliknya, ketika mencoba memiliki keamanan lebih, apakah yang saya lakukan sebaliknya?

      Salam dan terima kasih.

  2.   pernah dijo

    Hebat, saya sudah menjadi sysadmin selama bertahun-tahun dan tidak mengenalnya.
    Satu pertanyaan ... bagaimana Anda melakukan "ketukan"?
    Apakah Anda melakukan telnet terhadap port tersebut? Apa telnet menjawab Anda? Atau apakah ada perintah gelombang "ketukan"?
    Keren bagus adalah artikel. Spektakuler. Terima kasih banyak

    1.    KZKG ^ Gaara dijo

      Saya melakukan tes dengan telnet dan semuanya bekerja dengan sangat baik ... tetapi, anehnya, ada perintah 'ketukan', lakukan a pria mengetuk jadi Anda bisa melihat šŸ˜‰

      Telnet tidak benar-benar menanggapi saya sama sekali, iptables dengan kebijakan DROP membuatnya tidak merespons sama sekali dan telnet tetap di sana menunggu beberapa tanggapan (yang tidak akan pernah tiba), tetapi daemon ketukan akan mengenali ketukan bahkan jika tidak ada satu tanggapan

      Terima kasih banyak atas komentar Anda, senang mengetahui bahwa artikel saya masih suka ^ _ ^

  3.   st0rmt4il.dll dijo

    Ditambahkan ke Favorit! : D!

    Gracias!

    1.    KZKG ^ Gaara dijo

      Terima kasih šŸ˜€

  4.   pemburu dijo

    Ahh keamanan, perasaan menyenangkan ketika kita mengamankan pc ke tegak lurus, dan kemudian berhari-hari / minggu kemudian mencoba untuk terhubung dari beberapa tempat terpencil kita tidak dapat mengakses karena firewall dalam mode "tidak ada untuk siapa pun", ini disebut tetap di luar kastil dalam hal sysadmin. šŸ˜‰

    Itulah mengapa posting ini sangat berguna, dengan knockd Anda dapat mengakses dari mana saja yang dapat mengirim paket ke jaringan lokal Anda, dan penyerang kehilangan minat ketika mereka melihat bahwa port ssh ditutup, saya rasa mereka tidak akan mengetuk brute force untuk membuka port.

  5.   Manuel dijo

    Hei, artikelnya bagus.

    Satu hal: apakah itu berfungsi untuk terhubung dari luar jaringan lokal?

    Saya mengatakan ini karena saya memiliki router dengan port tertutup dikurangi yang sesuai dengan ssh yang diarahkan ke server.

    Saya membayangkan bahwa agar dapat berfungsi dari luar jaringan lokal, perlu membuka port router yang sesuai dengan Port Knocking dan membuatnya juga dialihkan ke server.

    Mmm ...

    Saya tidak tahu seberapa aman melakukan ini.

    Bagaimana menurut anda?

    1.    KZKG ^ Gaara dijo

      Saya tidak terlalu yakin, saya belum melakukan tes tetapi saya pikir ya, Anda harus membuka port di router jika tidak, Anda tidak dapat mengetuk server.

      Lakukan tes tanpa membuka port di router, jika tidak berhasil untuk Anda itu memalukan, karena saya setuju dengan Anda, tidak disarankan untuk membuka port ini di router.

      1.    Manuel dijo

        Memang, kita harus membuka port dan mengarahkannya ke komputer yang kita panggil.

        Kasihan.

  6.   rabba08 dijo

    Terima kasih banyak! Saya baru mulai mempelajari jaringan dan tutorial ini bagus untuk saya! terima kasih telah meluangkan waktu untuk berbagi ilmu

    1.    KZKG ^ Gaara dijo

      Saya telah belajar banyak selama bertahun-tahun dengan komunitas Linux global ... selama beberapa tahun saya ingin berkontribusi juga, itulah mengapa saya menulis šŸ˜€

  7.   janus981 dijo

    Terima kasih banyak, Anda tidak tahu bagaimana ini membantu saya, saya akan menyiapkan server dan ini bagus untuk saya.

    salam

    1.    KZKG ^ Gaara dijo

      Itulah tujuan kami, untuk membantu šŸ˜‰

  8.   Jean ventura dijo

    Artikel yang bagus! Saya tidak memiliki pengetahuan tentang ini dan itu sangat membantu saya (saya menggunakan RackSpace yang menggunakan KVM, jadi itu cocok untuk saya seperti sarung tangan!). Ditambahkan ke favorit.

    1.    KZKG ^ Gaara dijo

      Terima kasih telah berkomentar šŸ™‚

  9.   ganggang dijo

    Seperti biasa DesdeLinux nos trae excelentes post con tutoriales que son realmente utiles para poner en acciĆ³n, gracias por compartir!! šŸ™‚

    1.    KZKG ^ Gaara dijo

      Terima kasih atas komentar Anda šŸ™‚
      Ya, kami selalu berusaha memuaskan dahaga akan pengetahuan yang dimiliki pembaca kami šŸ˜€

  10.   Timbleck dijo

    Menarik, saya tidak tahu pilihannya.
    Langsung saja menggemukkan perpustakaan daging saya.
    Gracias!

    1.    KZKG ^ Gaara dijo

      Senang bagiku šŸ˜€
      salam

  11.   Frederick. A. ValdĆ©s Toujague dijo

    Salam KZKG ^ Gaara !!! Anda meremas. Artikel luar biasa untuk mengamankan server. Tidak ada gagasan @% * & ^ bahwa hal seperti itu ada. Saya akan mencobanya. Terima kasih

  12.   Kalung ^ putih dijo

    ini bagusā€¦. ^ - ^

  13.   LearnLinux dijo

    Halo, bisakah Anda menjelaskan cara menginstalnya di CentOS 5.x?

    Saya telah mengunduh rpm:
    http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm

    Dipasang:
    rpm -i knock-0.5-3.el5.rf.x86_64.rpm

    Konfigurasikan file konfigurasi dengan waktu 15 detik dan port yang saya gunakan untuk menghubungkan oleh ssh ke vps saya

    Setan itu mulai:
    / usr / sbin / knockd &

    Saya telnet dan tidak ada port tidak menutup, secara default port terbuka, tetapi tidak menutup.

    Apakah saya melakukan sesuatu yang salah?

  14.   halo dijo

    Mmmm, permintaan telnet ke port-port itu bisa dipelajari oleh admin jaringan lokal kita, atau oleh penyedia layanan kita, bukan? Itu akan memblokir orang eksternal tetapi bukan mereka, jadi jika mereka ingin mengaktifkan port kita mereka bisa melakukannya karena See permintaan yang kami buat, mmm katakanlah itu melindungi tetapi tidak 100%

    1.    Roberto dijo

      Bisa jadi, tetapi saya tidak berpikir mereka akan membayangkan bahwa telnet tertentu menjalankan tindakan X. Kecuali jika mereka melihat pola telnet yang sama diikuti.

  15.   Pablo Andres Diaz Aramburo dijo

    Artikel yang menarik, saya punya pertanyaan. Saya kira ada kesalahan pada gambar file konfigurasi, karena jika Anda menganalisis dengan baik, di kedua baris perintah Anda menggunakan ACCEPT di Iptables. Saya pikir yang satu harus MENERIMA dan yang lain harus MENOLAK.

    Jika tidak, inisiatif luar biasa. Terima kasih banyak telah meluangkan waktu untuk menjelaskan pengetahuan Anda kepada orang lain.

    salam