Rumah >Tutorial sistem >LINUX >Selamatkan pemasangan enjin keselamatan pelbagai pelayan dengan HTTPS
Bahagian ini akan menyelesaikan masalah keselamatan yang disebabkan oleh komunikasi HTTP Plaintext dalam pemasangan enjin keselamatan multi-server sebelumnya. Untuk menyelesaikan masalah ini, kami mengesyorkan mewujudkan komunikasi antara enjin keselamatan melalui saluran yang disulitkan. Penyelesaian ini membolehkan Server 2 atau Server 3 untuk mempercayai identiti pelayan 1 dan mengelakkan serangan lelaki-dalam-pertengahan.
menggunakan sijil ditandatangani sendiri
Buat sijil Pertama, anda perlu membuat sijil. Ini dapat dicapai dengan mengikuti satu arahan baris:
openssl req -x509 -newkey rsa:4096 -keyout encrypted-key.pem -out cert.pem -days 365 -addext "subjectAltName = IP:172.31.100.242"Pada masa ini, enjin keselamatan tidak boleh meminta kata laluan untuk kunci peribadi apabila ia dimulakan. Oleh itu, anda boleh memilih untuk menyahsulit secara manual kunci peribadi setiap kali anda memulakan atau memuatkan semula enjin keselamatan, atau menyimpan kunci yang tidak disulitkan. Sama ada cara, untuk memadam kata laluan, anda boleh menggunakan arahan berikut:
openssl rsa -in encrypted-key.pem -out key.pemKemudian, selepas enjin keselamatan dimulakan, fail kunci yang tidak disulitkan dapat dihapuskan dengan selamat.
Konfigurasi enjin keselamatan untuk menggunakan sijil ditandatangani sendiri pada pelayan 1, anda perlu mengkonfigurasi enjin keselamatan untuk menggunakan sijil yang dihasilkan. Seperti yang ditunjukkan di bawah, pilihan dan /etc/crowdec/config.yaml
di bahagian api.server
dari petikan berikut tls.cert_file
ditetapkan ke fail sijil yang dihasilkan. tls.key_file
api: server: log_level: info listen_uri: 10.0.0.1:8080 profiles_path: /etc/crowdsec/profiles.yaml online_client: # Crowdsec API credentials (to push signals and receive bad tls: cert_file: /etc/crowdsec/ssl/cert.pem key_file: /etc/crowdsec/ssl/key.pemPada pelanggan, perubahan konfigurasi berlaku dalam kedua -dua fail. Pertama, ubah suai
untuk menerima sijil yang ditandatangani sendiri dengan menetapkan /etc/crowdec/config.yaml
ke insecure_skip_verify
. true
untuk mencerminkan perubahan ini. Perubahan kecil ini mesti dilakukan pada ketiga -tiga pelayan (Server 1, Server 2 dan Server 3). /etc/crowdsec/local_api_credentials.yaml
NOTA: Ingat bahawa jika pelayan 1 juga digunakan sebagai pemproses log, anda juga mesti melakukan konfigurasi LAPI ini pada pelayan ini.
url: https://10.0.0.1:8080/ login: <login> password: <password></password></login>
Nota sampingan: Jelas sekali, menggunakan sijil ditandatangani sendiri tidak memberikan jaminan kepada pemilikan pelayan LAPI. Pelayan yang menggunakan perkhidmatan (Server 2 atau Server 3 dalam tetapan ini) masih terdedah kepada serangan manusia-dalam-pertengahan, tetapi sekurang-kurangnya tetapan ini menyediakan komunikasi yang disulitkan. Inilah sebabnya pilihan diperlukan. InsecureSkipVerify
atau pelayan DNS tempatan. Anda kemudiannya boleh mengisi /etc/hosts
dengan nama domain yang berkelayakan sepenuhnya ini. InsecureSkipVerify
Ini berfungsi dan menghalang pilihan InsecureSkipVerify
daripada ditetapkan. Selagi konfigurasi DNS dipercayai, ini memastikan bahawa komunikasi antara klien dan pelayan tidak diganggu, tetapi ini masih harus dianggap sebagai penyelesaian.
Proses mengkonfigurasi dan mengurus infrastruktur utama awam SSL (PKI) tidak berada dalam skop tutorial ini, tetapi saya sangat mengesyorkan agar anda menyemak dokumentasi OpenSSL rasmi. Penyelesaian PKI yang mudah mencukupi untuk memenuhi keperluan persediaan enjin keselamatan ini.
Menurut dokumentasi OpenSSL, terdapat beberapa perkara yang perlu disebutkan.
yang akan digunakan dalam senario TLS CrowdSec kami, permintaan sijil mesti dikeluarkan dengan nama alternatif topik yang sepadan dengan IP pelayan LAPI CrowdSec. Ini boleh dilakukan dengan mencari pembolehubah persekitaran SAN apabila memanggil OpenSSL untuk permintaan sijil (lihat Langkah 3.3 dalam skim PKI Simple OpenSSL).
openssl req -x509 -newkey rsa:4096 -keyout encrypted-key.pem -out cert.pem -days 365 -addext "subjectAltName = IP:172.31.100.242"
Sebelum memulakan enjin keselamatan CrowdSec, bahagian umum sijil root dan sijil yang ditandatangani (fail yang dibundel dibuat dalam langkah 4.5 skim PKI mudah OpenSSL) mesti ditambah ke kedai sijil tempatan. Dalam persediaan ini, ini perlu menyambung ke pelayan LAPI. Terdapat banyak cara untuk melakukan ini, Kod Sumber Golang menentukan lokasi sijil yang dijangkakan, atau anda boleh menggunakan pembolehubah persekitaran SSL_CERT_FILE
dalam fail perkhidmatan SystemD untuk menentukan di mana untuk mencari sijil apabila memulakan enjin keselamatan.
Selepas artikel ini mula -mula diterbitkan, kami telah menambah ciri baru kepada enjin keselamatan, di mana anda kini tidak hanya melindungi komunikasi di TLS, tetapi juga memastikan pengesahan dengan sijil. Dalam dokumentasi rasmi, anda boleh mencari contoh yang baik yang menunjukkan cara menggunakan sijil untuk pengesahan TLS antara enjin keselamatan atau antara enjin keselamatan dan komponen pemulihan.
Artikel ini memberi tumpuan kepada cara melindungi komunikasi antara pemasangan enjin keselamatan CrowdSec yang berbeza. Kes penggunaan yang dipertimbangkan ialah pemasangan enjin keselamatan dalam rangkaian peribadi, tetapi ini juga boleh digunakan di rangkaian awam dengan komunikasi internet. Dalam kes ini, sijil pihak ketiga dapat menyelesaikan masalah dengan mudah.
Seperti yang diperlukan, kami mencadangkan tiga kaedah yang berbeza untuk mencapai komunikasi TLS yang selamat antara enjin keselamatan-menggunakan sijil ditandatangani sendiri, menggunakan sijil yang dikeluarkan oleh pihak berkuasa sijil, dan menggunakan infrastruktur utama awam SSL.
Penyelesaian pertama (menggunakan sijil ditandatangani sendiri) hanya sesuai untuk situasi di mana anda ingin memastikan komunikasi yang disulitkan tanpa pengesahan. Penyelesaian kedua hanya boleh dipertimbangkan apabila anda boleh mengubah suai resolusi DNS tempatan. Penyelesaian ketiga adalah yang paling kompleks, tetapi ia sesuai dengan kes penggunaan dan mungkin pilihan terbaik apabila masalah keselamatan serius.
Saya harap tutorial ini dapat membantu anda. Terima kasih kerana membaca, sila tunggu!
Jika anda mempunyai sebarang pertanyaan atau maklum balas, sila hubungi kami melalui platform masyarakat perselisihan dan wacana kami.
Atas ialah kandungan terperinci Selamatkan pemasangan enjin keselamatan pelbagai pelayan dengan HTTPS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!