Leumpang sapanjang jalur ningkatkeun infrastruktur, kuring mutuskeun pikeun ngabéréskeun patarosan kuno sareng nyeri - tanpa sikep anu teu perlu, masihan kasempetan pikeun kolega (pamekar, panguji, pangurus, jsb) pikeun ngatur mesin virtualna sacara mandiri dina ovirt. Ovirt gaduh sababaraha komponén anu kedah dikonpigurasikeun pikeun ngabéréskeun masalah kuring: antarmuka wéb sorangan, konsol noVNC sareng unggah gambar disk.
Abdi henteu mendakan tombol "Make It Bad", janten kuring nunjukkeun anjeun knobs anu kuring tos pikeun ngabéréskeun masalah ieu. Pitunjuk lengkep di handap cut:

Bantahan:
Sateuacan ngamimitian, abdi hoyong ngagambar perhatian anjeun kanyataan yén pikeun sababaraha alesan kanyahoan kuring, domain infrastruktur dijieun di zona swasta lan, lokal, jeung saterusna.
Kuring henteu weruh naon anu nyegah kuring tina ngagunakeun domain organisasi di zona publik. Contona, tinimbang domain Alex-GLuck-Awesome-Company.local, anjeun tiasa aman ngagunakeun domain pikeun ramatloka parusahaan Alex-GLuck-Awesome-Company.com.
Upami anjeun sieun yén anjeun moal tiasa ngalacak domain dina organisasi anjeun, sareng ieu bakal ngalanggar hiji hal, maka pikeun 100 rubles saderhana sataun anjeun tiasa mésér domain anu misah pikeun infrastruktur aglac.com.
Naha éta langkung nguntungkeun ngagunakeun domain di zona umum:
1. Organisasi anjeun gaduh layanan anu tiasa diaksés ku masarakat: VPN, babagi file (seafile, nextcloud), sareng anu sanésna. Nyetél énkripsi lalu lintas dina layanan sapertos kitu biasana rada sesah, sareng urang moal ngabela tina serangan MitM sabab sesah (sanés leres-leres).
Atanapi anjeun gaduh hiji alamat jasa di jero kantor, sareng anu sanés ti Internét, sareng sambungan ieu kedah dijaga, anu ngabuang sumber daya spesialis kami anu terbatas. Nya, karyawan kedah émut alamat anu béda-béda, anu henteu pikaresepeun.
2. Anjeun tiasa make otoritas sertipikat bébas pikeun encrypt jasa internal Anjeun.
PKI anjeun nyalira mangrupikeun jasa anu kedah dirojong; 100 rubel sataun kanggo kasempetan ngagunakeun PKI ti otoritas sertifikasi gratis langkung seueur tibatan mayar waktos karyawan anu tiasa nyéépkeunana pikeun tugas-tugas sanés.
3. Lamun ngagunakeun otoritas sertipikat sorangan, anjeun bakal nempatkeun spoke dina roda karyawan jauh anjeun sareng kolega anu rék gawé bareng BYOD (mawa laptop sorangan, telepon, tablet) jeung anjeun teu bisa ngadalikeun alat maranéhanana. Aranjeunna mawa Macs, Linux, Androids, iOS, Windows - teu aya gunana pikeun ngarojong kebon binatang kitu.
Dina sagala hal, tangtosna, aya pengecualian, sareng bank sareng perusahaan kasar sanés anu parantos netepkeun kawijakan kaamanan moal pernah tiasa ningkatkeun jasa pikeun karyawanna.
Pikeun aranjeunna, aya otoritas sertifikasi anu mayar anu tiasa ngadaptarkeun sertipikat CA pikeun jumlah anu tangtu (Google "layanan tandatangan akar").
Aya alesan sejen naha éta leuwih nguntungkeun ngagunakeun domain publik (pangpentingna éta milik anjeun), tapi artikel ieu teu ngeunaan éta.
Intina nyaeta...
PERHATOSAN! Upami anjeun nambihan sertipikat Hayu Encrypt CA kana daptar anu dipercaya ovirt, éta tiasa mangaruhan kaamanan sistem anjeun!
Hal kahiji anjeun kudu nengetan éta exposing interfaces Ovirt ka Internet prakték goréng, sabab Ieu teu aya rasa praktis, sareng nyiptakeun ancaman kaamanan tambahan.
Kituna, anjeun kudu ménta sertipikat dina salah sahiji host bastion kami, lajeng mindahkeun sertipikat jeung konci pikeun host kami kalawan ovirt-mesin.
Urang tambahkeun alamat éksternal host bastion kami ka dns kalayan nami ovirt kami ovirtengine.example.com, Kuring bakal ninggalkeun pamasangan certbot na nginx balik layar (kumaha ngalakukeun ieu geus dijelaskeun dina Habré).
Nyetél versi jinx >=1.15.7
/etc/nginx/conf.d/default.conf
server {
server_name _;
listen 80 default_server;
location /robots.txt { alias /usr/share/nginx/html/robots.txt; }
location /.well-known {
root /usr/share/nginx/html;
}
location / {
return 444;
}
}
server {
server_name _;
listen 443 ssl http2 default_server;
location /robots.txt { alias /usr/share/nginx/html/robots.txt; }
location /.well-known {
root /usr/share/nginx/html;
}
ssl_certificate /etc/nginx/ssl/$ssl_server_name/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/$ssl_server_name/privkey.pem;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
# позволяем серверу прикреплять OCSP-ответы, тем самым уменьшая время загрузки страниц у пользователей
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
location / {
return 444;
}
}
Teras kami nampi sertipikat sareng konci kami:
certbot certonly --nginx -d ovirtengine.example.com
Arsipkeun sertipikat sareng konci kami:
tar Phczf /tmp/ovirtengine.example.com.tgz /etc/letsencrypt/live/ovirtengine.example.com
Unduh arsip tina host bastion sareng unggah kana mesin ovirt kami:
scp bastion-host:/tmp/ovirtengine.example.com.tgz /tmp/
scp /tmp/ovirtengine.example.com.tgz ovirtengine.example.com:/
Hayu urang ngaléngkah ka tujuan
Salajengna, urang ngabongkar arsip kami sareng nyiptakeun symlink pikeun nyederhanakeun pamahaman sistem lokasi file:
tar Pxzf /ovirtengine.example.com.tgz && rm -f ovirtengine.example.com.tgz
mkdir -p /etc/letsencrypt/live
ln -f -s /etc/letsencrypt/live /etc/pki/letsencrypt
Kami ngonpigurasikeun pki anu diwangun dina Ovirt supados toko sertipikat java (openjdk) dianggo pikeun pariksa sertipikat:
cat << EOF > /etc/ovirt-engine/engine.conf.d/99-setup-pki.conf
ENGINE_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts"
ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD=""
EOF
Urang ngarobah CA ti hayu urang encrypt kana format der tur nambahkeun kana ovirt java toko sertipikat toko sertipikat (ieu wadahna ngandung daptar sertipikat, sistem sapertos anu dipaké dina java):
openssl x509 -outform der -in /etc/pki/letsencrypt/ovirtengine.example.com/chain.pem -out /tmp/ovirtengine.example.com.chain.der
keytool -import -alias "Let's Encrypt Authority X3" -file /tmp/ovirtengine.example.com.chain.der -keystore /etc/pki/ovirt-engine/.truststore -storepass $(grep '^ENGINE_PKI_TRUST_STORE_PASSWORD' /etc/ovirt-engine/engine.conf.d/10-setup-pki.conf | cut -f 2 -d '"')
rm -f /tmp/ovirtengine.example.com.chain.der
Kami ngédit setélan SSL pikeun Apache, tambahkeun parameter pikeun ngadukung symlinks sareng cabut parameter pikeun CA pikeun mariksa sertipikat (sacara standar, set sistem CA anu dipercaya bakal dianggo pikeun verifikasi):
sed -r -i 's|^(SSLCACertificateFile.*)|#1|g' /etc/httpd/conf.d/ssl.conf
sed -r -i '0,/(^#?SSLCACertificateFile.*)/ s//1nOptions FollowSymlinks/' /etc/httpd/conf.d/ssl.conf
Teras, upami bisi, urang nyadangkeun file asli anu dibangkitkeun ku PKI otomatis ovirt sareng ngagentosna ku symlink sareng file tina Let's Encrypt:
ln -f -s /etc/pki/letsencrypt/ovirtengine.example.com/fullchain.pem /etc/pki/ovirt-engine/apache-chain.pem
services=( 'apache' 'imageio-proxy' 'websocket-proxy' )
for i in "${services[@]}"; do
cp /etc/pki/ovirt-engine/certs/$i.cer{,."$( date +%F )".bak}
cp /etc/pki/ovirt-engine/keys/$i.key.nopass{,."$( date +%F )".bak}
ln -f -s /etc/pki/letsencrypt/ovirtengine.example.com/privkey.pem /etc/pki/ovirt-engine/keys/$i.key.nopass
ln -f -s /etc/pki/letsencrypt/ovirtengine.example.com/cert.pem /etc/pki/ovirt-engine/certs/{apache,imageio-proxy,websocket-proxy}.cer
done
Kami mulangkeun konteks SElinux dina file sareng balikan deui jasa kami (httpd, ovirt-engine, ovirt-imageio-proxy, ovirt-websocket-proxy):
restorecon -Rv /etc/pki
systemctl restart httpd ovirt-engine ovirt-imageio-proxy ovirt-websocket-proxy
httpd — server wéb Apache
ovirt-engine - panganteur wéb ovirt
ovirt-imageio-proxy - daemon pikeun ngundeur gambar disk
ovirt-websocket-proxy - jasa pikeun ngajalankeun konsol noVNC
Sadaya di luhur diuji dina versi Ovirt 4.2.
pembaharuan otomatis tina sertipikat on ovirt
Numutkeun prakték kaamanan alus, kudu aya euweuh sambungan antara host bastion na ovirt, sarta sertipikat ieu dikaluarkeun ukur pikeun 3 bulan. Ieu mangrupikeun masalah kontroversial ngeunaan kumaha kuring ngalaksanakeun pembaharuan sertipikat.
Kuring boga hiji playbook ansible nu dijalankeun dina mandor unggal dinten di 5 am nurutkeun jadwal a. playbook Ieu mana anu ka ovirt, pariksa periode validitas sertipikat, sarta lamun aya kirang ti 5 poé ditinggalkeun saméméh béakna, eta mana kana host bastion tur mimitian ngamutahirkeun sertipikat.
Saatos ngamutahirkeun sertipikat, éta arsip polder sareng file, unduh ka host Forman sareng unzip ka host Ovirt. Saatos éta SElinux malikkeun kontéks dina file sareng balikan deui jasa kami.
sumber: www.habr.com
