Bagus
Setiap perusahaan, cepat atau lambat, tiba-tiba, ia membutuhkan akses jarak jauh.
Praktis setiap spesialis IT dihadapkan dengan kebutuhan untuk mengatur akses jarak jauh ke jaringan mereka di perusahaan.
Saya, seperti banyak orang, kebutuhan ini ditutup dengan cap "kemarin." Setelah menganalisis semua pro dan kontra, serta menyekop berton-ton informasi dan menggali sedikit dalam teori, saya memutuskan untuk melanjutkan dengan instalasi.
Untuk alasan keamanan, saya memilih OpenVPN dalam implementasi berikut: mesin virtual diinstal pada server yang menjalankan Windows Server 2012, Windows Server 2012 juga diinstal di dalamnya, dan pada gilirannya, adalah server OpenVPN yang menerbitkan dan menandatangani sertifikat.
Untuk kenyamanan, kami akan menyebutnya "server sertifikasi". Selanjutnya, ia mengambil sertifikat server, mendorongnya ke Mikrotik, dan pada router Mikrotik mengangkat OpenVPN dengan akun, profil. Saya juga menggunakan server sertifikasi untuk mengeluarkan sertifikat klien.
Implementasinya, tentu saja, mengerikan, dan meskipun pada waktu itu pengalaman saya dalam hal-hal seperti itu, katakanlah, tidak cukup, dalam hal keamanan, itu bukan keputusan yang buruk.
Bundel ini berfungsi untuk sementara waktu dan saya diberi pengantar baru: mentransfer server sertifikasi ke Linux, sambil mempertahankan koneksi dengan Mikrotik - klien tidak boleh menderita.
Pengetahuan saya tentang Linux pada waktu itu berakhir pada Ubuntu 16.04LTS dengan antarmuka grafis yang digunakan sebagai terminal untuk terhubung melalui RDP ke server Windows. Yaitu, sudo apt-get -f install -y, dan tidak lebih dari satu sentimeter.
Setelah mempelajari pertanyaan OS mana dari keluarga Linux yang lebih stabil dan menjanjikan untuk organisasi saya, saya memilih CentOS 7 Minimal.
Untuk memulainya, saya memutuskan untuk mempelajari sedikit teori, untuk memahami cara kerjanya dan bekerja secara umum. Saya menonton tutorial video di saluran
www.youtube.com/channel/UCKdRgZWgy42YxoFcTJ30LTA (Umumnya bukan iklan, mereka hanya membuat saya lebih dulu). Gadis dengan suara yang menyenangkan memperkenalkan saya pada dasar-dasar bekerja di OS yang dipilih.
Untuk memulai, saya meluncurkan Hyper-V di komputer saya, menginstal CentOS 7 Minimal di sana, selama instalasi saya membuat pengguna Admin dan benar-benar menutup ssh untuk root. Mengucapkan selamat tinggal pada layar multi-warna yang indah, terjun ke dunia terminal hitam dan putih.
Saya pikir tidak masuk akal untuk menggambarkan proses instalasi perangkat lunak, lebih baik untuk fokus pada masalah yang muncul selama proses dan untuk memecahkan yang saya harus menulis skrip kecil (itu di bawah kucing. Deskripsi masing-masing utilitas dapat ditemukan di Internet, tetapi pada saat itu ketika saya semua apakah itu, skrip ini belum ada di sana, semuanya dilakukan untuk pertama kalinya, dengan sentuhan dan secara acak).
Dalam skrip, saya mencoba mengotomatiskan instalasi utilitas minimum yang diperlukan untuk server, menonaktifkan Selinux, menghubungkan repositori Epel, menginstal OpenVPN, dll. Di bawah ini adalah skrip itu sendiri, itu sederhana, tetapi dapat digunakan. Saya tidak akan membongkarnya, tetapi jika seseorang membutuhkannya, tulis balasan.
Setelah menggunakan skrip, server OpenVPN yang sudah dikonfigurasi akan muncul, mengedipkan mata hijau.
UPD: Membuat beberapa penyesuaian pada skrip, menarik kesimpulan dari komentar. Dia tidak mulai menghapus kesalahannya, tetapi hanya berkomentar sehingga utas komentar tidak akan hilang. Garis yang ditambahkan didorong kembali untuk visibilitas.
Menginstal OpenVPN tidak sepenuhnya berhasil.
Tidak tahu tentang fitur-fitur kebijakan hak pada sistem Linux, saya menghabiskan banyak waktu mempelajari log dan memberikan semua file hak yang diperlukan.
Ketika tombol OpenVPN berubah menjadi hijau, saya sangat senang, tetapi ternyata, ini hanya permulaan. Demi kesederhanaan, saya berharap untuk mengganti sertifikat root dan file crl.pem, berharap semuanya bekerja. Akibatnya, saya perlu mentransfer file berikut dari server ke Windows:
Serv.crt - Sertifikat Server
Serv.key - Server Key
Ca.crt - Root Certificate
Ca.key - Root Key
Crl.pem - File Pencabutan Sertifikat
Dh.pem - Kunci Diffie-Hellman
Index.txt - File dengan informasi tentang sertifikat saat ini
Serial - itu juga bertanggung jawab untuk relevansi sertifikat
Itu juga memerlukan folder certs_by_serial, file vars, dan semua kunci dan sertifikat klien.
Di Mikrotik, sertifikat tetap di tempatnya, jadi berhasil.
Masalah muncul ketika saya mencoba untuk mencabut sertifikat, itu sama sekali tidak bekerja dari kata - file index.txt perlu dikonversi ke format unix, tetapi saya tidak segera melakukannya. Menggunakan utilitas dos2unix.
Sekarang sertifikat dicabut, tetapi terus bekerja tanpa masalah, karena Mikrotik tidak tahu bahwa itu dicabut dan dia perlu entah bagaimana menginformasikannya.
Setelah membaca instruksi, serta berkonsultasi dengan Alexander ERI (terima kasih banyak!), Saya mengambil server http Apache sederhana di server sertifikasi dan menerbitkan file sertifikat yang dicabut di atasnya. Akses tertutup sepenuhnya untuk itu, kecuali untuk file yang diterbitkan dari satu ip.
Di terminal Mikrotik, di tab / System / Certificates / CRL, ditunjukkan jalur ke crl.pem yang diterbitkan. Di sini harus diklarifikasi bahwa Mikrotik hanya menerima http dan alamat absolut untuk tab CRL, mis. Seharusnya terlihat seperti ini:
127.0.0.1/crl/1.crlSemuanya berfungsi, setidaknya untuk versi 6.4.2.x dari RouterOS, tetapi saya harus membuat konfigurasi klien dengan tangan saya, dan ini sangat disayangkan bagi saya dan menyebabkan banyak ketidaknyamanan. Ketika dalam seminggu saya perlu membuat konfigurasi untuk sekitar 50 klien, saya memutuskan untuk mempercepat proses ini dan untuk ini saya menggunakan sepotong skrip orang lain yang ditemukan di Internet.
Scriptnya bekerja seperti ini: setelah diluncurkan, tentukan "nama klien", jawab pertanyaan "setel kata sandi atau tidak", setelah itu kita ambil file konfigurasi "client.ovpn" yang sudah jadi, dengan sertifikat dan pengaturan yang diintegrasikan ke dalamnya. Untuk menggunakannya, Anda harus memiliki / etc / openvpn. Saya akan menandatangani garis komenty di mana jalan harus diganti dengan Anda sendiri. Anda juga perlu membuat file dengan pengaturan klien sehingga skrip menggantikannya dalam proses membuat konfigurasi.
Setelah beberapa saat, larangan pengantar baru pada akses jarak jauh terpaksa membunuh server ini dan bundel yang berfungsi dengan Mikrotik. Server OpenVPN baru dibuat untuk departemen TI, yang sekarang berfungsi sepenuhnya di CentOS. Tetapi ini adalah kisah yang sangat berbeda.
Saya mengucapkan terima kasih kepada Ivan dan Pavel atas bantuan mereka dalam mengedit artikel.