Dienkripsi menurut GOST: memo tentang pengaturan perutean lalu lintas dinamis


Jika perusahaan Anda mentransmisikan atau menerima melalui data pribadi jaringan dan informasi rahasia lainnya untuk dilindungi sesuai dengan hukum, maka diperlukan untuk menggunakan enkripsi sesuai dengan GOST. Hari ini kami akan memberi tahu Anda bagaimana kami menerapkan enkripsi semacam itu berdasarkan S-Terra crypto-gateway (KS) di salah satu pelanggan. Kisah ini akan menarik bagi spesialis keamanan informasi, serta insinyur, desainer, dan arsitek. Kami tidak akan menyelami nuansa konfigurasi teknis dalam posting ini - kami akan membahas poin-poin penting dari pengaturan dasar. Sejumlah besar dokumentasi tentang mengkonfigurasi daemon OS Linux, yang menjadi dasar S-Terra KS, tersedia secara bebas di Internet. Dokumentasi konfigurasi perangkat lunak milik S-Terra juga tersedia untuk umum di portal pabrikan.

Beberapa kata tentang proyek ini


Topologi jaringan pelanggan adalah khas - hubungan penuh antara pusat dan cabang. Itu diperlukan untuk memperkenalkan enkripsi saluran pertukaran informasi antara semua situs, yang ada 8 buah.

Biasanya, dalam proyek seperti itu, semuanya statis: pada crypto-gateway (KS), rute statis ditetapkan ke jaringan area lokal situs, daftar alamat IP (ACL) untuk enkripsi ditulis. Namun, dalam hal ini, situs tidak memiliki manajemen terpusat, dan apa pun dapat terjadi di dalam jaringan lokal mereka: jaringan dapat ditambahkan, dihapus, dan dimodifikasi dengan segala cara. Untuk menghindari konfigurasi ulang perutean dan ACL ke KS ketika mengubah pengalamatan jaringan lokal di situs, diputuskan untuk menggunakan GRE tunneling dan routing dinamis OSPF, yang mencakup semua KS dan sebagian besar router tingkat inti jaringan di situs (di beberapa situs, administrator infrastruktur lebih disukai gunakan SNAT ke arah KS pada router kernel).

Penerowongan GRE memecahkan dua masalah:
1. Gunakan dalam ACL untuk enkripsi alamat IP dari antarmuka KS eksternal, di mana semua lalu lintas yang dikirim ke situs lain dienkapsulasi.
2. Atur terowongan ptp di antara KS, yang memungkinkan Anda mengonfigurasi perutean dinamis (dalam kasus kami, penyedia MPLS L3VPN diatur di antara situs-situs).

Klien memerintahkan implementasi enkripsi sebagai layanan. Jika tidak, ia tidak hanya harus mendukung crypto-gateway atau meng-outsource beberapa organisasi, tetapi juga secara independen memonitor siklus hidup sertifikat enkripsi, memperbaharui mereka dalam waktu dan menginstal yang baru.

Dan sekarang memo itu sendiri - bagaimana dan apa yang kami atur

Catatan subjek KII: kami mengkonfigurasi crypto-gateway


Penyiapan jaringan dasar


Pertama-tama, kami meluncurkan cache baru dan masuk ke konsol administrasi. Anda harus mulai dengan mengubah kata sandi administrator bawaan - perintah administrator kata sandi perubahan pengguna . Maka perlu untuk melakukan prosedur inisialisasi (perintah inisialisasi ) dalam proses memasukkan data lisensi dan sensor angka acak (DSN) diinisialisasi.

Perhatikan! Ketika S-Terra KS diinisialisasi, kebijakan keamanan dibuat di mana antarmuka Gateway Keamanan tidak lulus paket. Anda harus membuat kebijakan sendiri, atau menggunakan menjalankan perintah aktivasi csconf_mgr untuk mengaktifkan kebijakan izin yang telah ditentukan.
Selanjutnya, Anda perlu mengkonfigurasi pengalamatan antarmuka eksternal dan internal, serta rute default. Lebih baik bekerja dengan konfigurasi jaringan cache dan mengkonfigurasi enkripsi melalui konsol mirip Cisco. Konsol ini dirancang untuk memasukkan perintah yang mirip dengan perintah Cisco IOS. Konfigurasi yang dibuat menggunakan konsol mirip Cisco, pada gilirannya, dikonversi ke file konfigurasi yang sesuai yang bekerja dengan daemon OS. Anda dapat pergi ke konsol mirip Cisco dari konsol administrasi dengan perintah configure .

Ubah kata sandi untuk cscons pengguna internal dan aktifkan:

> aktifkan
Kata sandi: csp (sudah ditentukan sebelumnya)
# konfigurasikan terminal
#username cscons privilege 15 secret 0 #enable secret 0 Atur konfigurasi jaringan dasar:

#interface GigabitEthernet0 / 0
#IP address 10.111.21.3 255.255.255.0
#tidak ada shutdown
#interface GigabitEthernet0 / 1
#IP address 192.168.2.5 255.255.255.252
#tidak ada shutdown
#ip route 0.0.0.0 0.0.0.0 10.111.21.254

GRE


Kami keluar dari konsol mirip Cisco dan pergi ke shell debian dengan perintah sistem . Setel kata sandi Anda sendiri untuk pengguna root dengan perintah passwd .
Terowongan terpisah untuk setiap situs dikonfigurasikan pada setiap KSh. Antarmuka terowongan dikonfigurasikan dalam file / etc / network / interfaces . Utilitas terowongan IP, yang merupakan bagian dari set iproute2 yang telah ditentukan, bertanggung jawab untuk membuat antarmuka itu sendiri. Perintah untuk membuat antarmuka ditulis ke dalam opsi pre-up.

Contoh konfigurasi antarmuka terowongan yang khas:
situs otomatis1
iface site1 inet statis
alamat 192.168.1.4
netmask 255.255.255.254
pre-up ip tunnel menambahkan mode site1 dari gre local 10.111.21.3 remote 10.111.22.3 kunci hfLYEg ^ vCh6p

Perhatikan! Perlu dicatat bahwa pengaturan antarmuka terowongan harus ditempatkan di luar bagian

### netifcfg-begin ###
*****
### netifcfg-end ###

Jika tidak, pengaturan ini akan dihapus ketika mengubah pengaturan jaringan antarmuka fisik melalui konsol mirip Cisco.

Routing dinamis


Di S-Terra, routing dinamis diimplementasikan menggunakan paket perangkat lunak Quagga. Untuk mengkonfigurasi OSPF, kita perlu mengaktifkan dan mengkonfigurasi daemon zebra dan ospfd . Daemon zebra bertanggung jawab atas interaksi antara routing daemon dan OS. Daemon ospfd, seperti namanya, bertanggung jawab untuk mengimplementasikan protokol OSPF.
OSPF dikonfigurasi baik melalui konsol daemon atau langsung melalui file konfigurasi /etc/quagga/ospfd.conf . Semua antarmuka fisik dan terowongan yang terlibat dalam perutean dinamis ditambahkan ke file, dan jaringan diumumkan yang akan diumumkan dan menerima pengumuman.

Contoh konfigurasi untuk ditambahkan ke ospfd.conf :
antarmuka eth0
!
antarmuka eth1
!
situs antarmuka1
!
situs antarmuka2
router ospf
ospf router-id 192.168.2.21
jaringan 192.168.1.4/31 area 0.0.0.0
jaringan 192.168.1.16/31 area 0.0.0.0
jaringan 192.168.2.4/30 area 0.0.0.0

Dalam hal ini, alamat 192.168.1.x / 31 dicadangkan untuk jaringan terowongan ptp antar situs, alamat 192.168.2.x / 30 dialokasikan untuk jaringan transit antara KS dan router kernel.

Perhatikan! Untuk mengurangi tabel perutean dalam instalasi besar, Anda dapat memfilter pengumuman jaringan transit itu sendiri dengan menggunakan tidak ada redistribusi yang terhubung atau mendistribusikan kembali konstruksi peta rute yang terhubung .

Setelah mengatur daemon, Anda perlu mengubah status peluncuran daemon di / etc / quagga / daemon . Dalam opsi zebra dan ospfd tidak memperbaiki ya. Jalankan quagga daemon dan atur autorun ketika memulai cache dengan perintah update-rc.d quagga enable .

Jika terowongan GRE dan OSPF dikonfigurasi dengan benar, maka rute ke jaringan situs lain akan muncul di KS dan router kernel, dan dengan demikian konektivitas jaringan antara jaringan lokal muncul.

Kami mengenkripsi lalu lintas yang dikirimkan


Seperti yang telah disebutkan, ketika mengenkripsi antar situs, kami biasanya menentukan rentang alamat IP (ACL) di mana lalu lintas dienkripsi: jika sumber dan alamat tujuan jatuh ke dalam rentang ini, maka lalu lintas di antara mereka dienkripsi. Namun, dalam proyek ini, strukturnya dinamis dan alamat dapat berubah. Karena kami telah menyiapkan tunneling GRE, kami dapat menentukan alamat KS eksternal sebagai sumber dan alamat tujuan untuk enkripsi lalu lintas - karena untuk enkripsi datang lalu lintas yang sudah dienkapsulasi oleh protokol GRE. Dengan kata lain, semua yang memasukkan cache dari jaringan lokal dari satu situs ke jaringan yang diumumkan oleh situs lain dienkripsi. Dan sudah dalam setiap situs penerusan dapat dilakukan. Dengan demikian, dengan perubahan apa pun dalam jaringan lokal, cukup bagi administrator untuk memodifikasi pengumuman dari jaringannya ke arah sekolah menengah, dan itu akan tersedia untuk situs lain.

Enkripsi dalam S-Terra KS dilakukan menggunakan protokol IPSec. Kami menggunakan algoritma Grasshopper sesuai dengan GOST R 34.12-2015, dan untuk kompatibilitas dengan versi yang lebih lama, GOST 28147-89 dapat digunakan. Otentikasi secara teknis dapat dilakukan pada kedua kunci yang telah ditentukan sebelumnya (PSK) dan sertifikat. Namun demikian, dalam operasi industri perlu menggunakan sertifikat yang diterbitkan sesuai dengan GOST R 34.10-2012.

Bekerja dengan sertifikat, wadah, dan CRL dilakukan menggunakan utilitas cert_mgr . Pertama-tama, menggunakan perintah create cert_mgr , Anda harus membuat wadah kunci pribadi dan permintaan sertifikat, yang akan dikirim ke Pusat Manajemen Sertifikat. Setelah menerima sertifikat, itu harus diimpor dengan perintah impor cert_mgr bersama dengan sertifikat root CA dan CRL (jika digunakan). Anda dapat memverifikasi bahwa semua sertifikat dan CRL diinstal dengan perintah show cert_mgr .

Setelah berhasil menginstal sertifikat, pergi ke konsol mirip Cisco untuk mengkonfigurasi IPSec.
Kami membuat kebijakan IKE yang menetapkan algoritma dan parameter yang diinginkan dari saluran aman yang dibuat, yang akan ditawarkan kepada mitra untuk persetujuan.

Kebijakan #crypto isakmp 1000
#encr gost341215k
#hash gost341112-512-tc26
Tanda #authentication
#group vko2
#lifetime 3600

Kebijakan ini berlaku saat membangun fase pertama IPSec. Keberhasilan penyelesaian fase pertama adalah pembentukan SA (Asosiasi Keamanan).
Selanjutnya, kita perlu mendefinisikan daftar sumber dan alamat IP tujuan (ACL) untuk enkripsi, membentuk seperangkat transformasi, membuat peta kriptografi (peta kripto) dan mengikatnya ke antarmuka eksternal CAB.

Atur ACL:
#ip daftar akses situs tambahan1
#permit gre host 10.111.21.3 host 10.111.22.3

Serangkaian transformasi (dan juga untuk fase pertama, kami menggunakan algoritma enkripsi Grasshopper menggunakan mode simulasi):

#crypto ipsec transform-set GOST esp-gost341215k-mac

Buat peta kripto, tentukan ACL, ubah set dan alamat rekan:

#crypto map MAIN 100 ipsec-isakmp
Situs #match address1
#set transform-set GOST
#set peer 10.111.22.3

Kami melampirkan peta crypto ke antarmuka eksternal CABG:

#interface GigabitEthernet0 / 0
#IP address 10.111.21.3 255.255.255.0
#crypto map MAIN

Untuk mengenkripsi saluran dengan situs lain, Anda harus mengulangi prosedur untuk membuat ACL dan kartu kripto, mengubah nama ACL, alamat IP dan nomor kartu kripto.

Perhatikan! Jika verifikasi sertifikat CRL tidak digunakan, ini harus ditentukan secara eksplisit:

#crypto pki trustpoint s-terra_technology_trustpoint
# pencabutan-cek tidak ada

Pada pengaturan ini dapat dianggap lengkap. Output dari perintah konsol mirip-Cisco menunjukkan crypto isakmp sa dan show crypto ipsec sa harus mencerminkan fase pertama dan kedua dari IPSec. Informasi yang sama dapat diperoleh dengan menggunakan perintah show sa_mgr dieksekusi dari debian shell. Output dari perintah show cert_mgr harus menampilkan sertifikat situs jarak jauh. Status sertifikat semacam itu akan jauh . Jika terowongan tidak dibangun, Anda perlu melihat log layanan VPN, yang disimpan dalam file /var/log/cspvpngate.log . Daftar lengkap file log dengan deskripsi isinya tersedia dalam dokumentasi.

Pantau "kesehatan" sistem


S-Terra KS menggunakan daemon snmpd standar untuk pemantauan. Selain parameter Linux yang khas, S-Terra out of the box mendukung keluaran terowongan IPSec menurut CISCO-IPSEC-FLOW-MONITOR-MIB, yang kami gunakan untuk memantau status terowongan IPSec. Fungsi OID khusus juga didukung, memberikan hasil skrip sebagai nilai. Fitur ini memungkinkan kita untuk melacak tanggal kedaluwarsa sertifikat. Script tertulis mem-parsing output dari perintah show cert_mgr dan sebagai hasilnya memberikan jumlah hari sebelum berakhirnya sertifikat lokal dan root. Teknik ini sangat diperlukan ketika memberikan sejumlah besar CABG.


Apa cimus dari enkripsi semacam itu


Semua fungsi yang dijelaskan di atas didukung "di luar kotak" KS S-Terra. Artinya, tidak perlu memasang modul tambahan apa pun yang dapat memengaruhi sertifikasi crypto-gateway dan sertifikasi seluruh sistem informasi. Saluran antar situs dapat berupa apa saja, bahkan melalui internet.

Karena kenyataan bahwa ketika mengubah infrastruktur internal tidak perlu mengkonfigurasi ulang crypto-gateway, sistem bekerja sebagai layanan , yang sangat nyaman bagi pelanggan: ia dapat menempatkan layanannya (klien dan server) di alamat apa pun, dan semua perubahan secara dinamis ditransfer antara peralatan enkripsi.

Tentu saja, enkripsi karena overhead memengaruhi kecepatan transfer data, tetapi tidak signifikan - bandwidth saluran dapat berkurang maksimal 5-10%. Selain itu, teknologi ini diuji dan menunjukkan hasil yang baik bahkan pada saluran satelit, yang agak tidak stabil dan memiliki bandwidth rendah.

Igor Vinokhodov, insinyur garis kedua administrasi Rostelecom Solar

Source: https://habr.com/ru/post/id471470/


All Articles