Cara membuat akses aman ke server dalam mode jauh



Di sini, di Habré, sudah ada puluhan artikel yang menceritakan bagaimana orang mengalami transisi ke tempat yang jauh, bagaimana mereka mengalami hari-hari pertama dari sebuah situs terpencil, kemudian bagaimana minggu pertama, dan seterusnya. Terkadang beberapa saran praktis menyelinap di antara deskripsi emosi. Kami, sebagai orang dengan 12 tahun pengalaman dalam administrasi server jarak jauh, memutuskan untuk berbicara tentang alat yang tanpanya server jauh berubah menjadi peristiwa yang agak berbahaya untuk bisnis Anda. Mengapa? - Karena orang berpikir tentang apa pun (pertama-tama, tentu saja, tentang 40 menit gratis di "zoom"), tetapi bukan tentang keamanan. Lebih tepatnya, tentu saja, Anda memikirkan masalah ini - tetapi kami yakin dia bukan yang pertama dalam barisan?

Dan pertanyaan balasan: Saya ingin tahu apa yang menyebabkan pikiran Anda. Bagaimanapun, kolega Anda, duduk di apartemen dan rumah yang nyaman, pergi dengan peralatan yang tidak terlindungi melalui saluran yang tidak aman dan benar-benar menyentuh server perusahaan dengan semua ini ...

Kami ingin berbagi dengan Anda versi open-source dari alat yang digunakan di perusahaan kami sebagai server benteng. Ini disebut Server Otentikasi Isolate Isolate DevOpsProdigy .

Bagaimana itu bekerja


1. Isolate menambahkan kata sandi satu kali dan otentikasi dua faktor ke login SSH. Anda dapat menggunakan peralatan YubiKey atau aplikasi Google Authenticator untuk ini . Bahkan jika pengguna telah kehilangan kata sandi dari akunnya, tanpa kunci OTP, penyerang tidak dapat menggunakannya dan sampai ke server Isolate. Untuk mengimplementasikan otentikasi dua faktor, kami menggunakan pam-module. Anda dapat membaca lebih lanjut tentang ini di artikel lama ini .

2. Pengguna tidak mendapatkan akses langsung ke server akhir - koneksi melewati server Isolate, dan sistem memonitor dan mencatat semua aktivitas mereka.

Semua tindakan pengguna dilakukan menggunakan dua perintah:

s <search-str>- untuk mencari informasi berdasarkan nama proyek atau nama server, informasi disimpan dalam basis data Redis bawaan, yang ditutup dengan otorisasi.

g <ip-address> / g <project-name> <server-name>- panggilan ke perintah ini dimulai /usd/bin/ssh . Argumen untuk panggilan (misalnya, nama pengguna, alamat ip, port, proxy) diambil dari basis data.

3. Mudah mengelola akses ke server otentikasi - tambah / hapus pengguna, dll. Anda dapat menemukan sejumlah besar contoh tentang penggunaan perintah di readme auth-add-user, auth-add-hostdll.

Secara teknis, Anda perlu membuat dan meletakkan kunci server Isolate di server tujuan, dan pengguna Anda harus mendapatkan akses reguler ke server Isolate dari sudo ke ssh.

Dan ketika mereka ingin terhubung ke server tujuan, sistem akan menjalankan perintah ssh. Selanjutnya, klien ssh yang berjalan sebagai pengguna istimewa akan menerima kunci, yang dengannya sistem, pada gilirannya, akan mendapatkan akses ke server yang diinginkan.

Itu saja. Isolate berjalan pada pengaturan CentOS 7 / Ubuntu 16.04 / Debian 9 . Diperlukan 2.3+ juga .

Saya tidak bisa tidak mencatat bahwa DevOpsProdigy IsolateIni juga berguna dalam "masa damai": Anda bisa tenang dengan itu untuk server Anda, bahkan jika seseorang kehilangan laptop dengan kunci SSH. Dan ketika seorang karyawan yang memiliki akses meninggalkan perusahaan, Anda tidak perlu terburu-buru mengubah semua kata sandi dan kunci. Sekarang kami sedang mempersiapkan daftar perbaikan dan fitur untuk versi terbaru dari alat ini, yang diimplementasikan dalam sistem internal kami. Kami menunggu keinginan, masalah, PR dalam repositori github kami . Untuk diskusi dan pertanyaan, ada juga obrolan telegram dan obrolan di Slack .

Jadi sekarang pekerjaan jarak jauh di perusahaan Anda mungkin menjadi sedikit lebih mudah. Dan yang pasti - jauh lebih aman. Semoga berhasil

All Articles