بالمشي على طريق تحسين البنية التحتية ، قررت إنهاء السؤال القديم المؤلم - بدون إيماءات غير ضرورية ، وتزويد الزملاء (المطورين ، المختبرين ، المشرفين ، إلخ) بفرصة لإدارة أجهزتهم الافتراضية بشكل مستقل في البث المباشر. هناك العديد من المكونات في ovirt التي أحتاج إلى تكوينها لحل سؤالي: واجهة الويب نفسها ، وحدة التحكم noVNC ، وملء صور القرص.
لم أجد الأزرار "Make Flicker" ، لذلك أقوم بإظهار الأقلام التي تحولت لحل هذه المشكلة. تعليمات كاملة تحت القطع:

شروط:
قبل البدء ، أود أن ألفت الانتباه إلى حقيقة أنه لسبب غير معروف بالنسبة لي ، يتم إنشاء مجالات البنية التحتية في المناطق الخاصة المحلية والمحلية وما إلى ذلك.
ما يمنعني من استخدام نطاق المؤسسة في المنطقة العامة غير معروف لي. على سبيل المثال ، بدلاً من المجال Alex-GLuck-Awesome-Company.local ، يمكنك استخدام النطاق بأمان لموقع شركة Alex-GLuck-Awesome-Company.com.
إذا كنت تخشى أنك لن تكون قادرًا على تتبع المجالات في مؤسستك ، وهذا سيكسر شيئًا ما ، فبالنسبة إلى 100 روبل متواضعة سنويًا ، يمكنك الحصول على نطاق منفصل للبنية التحتية aglac.com.
لماذا يعد استخدام المجالات في المناطق العامة أكثر ربحية:
1. الخدمات التي تظهر في مساحتك العامة داخل مؤسستك: VPN ومشاركة الملفات (seafile و nextcloud) وغيرها. عادة ما يبدو تكوين تشفير حركة المرور على مثل هذه الخدمات كأنه خطأ فادح ، ولن نحمي أنفسنا من MitM ، لأنه صعب (في الواقع ليس كذلك).
أو داخل المكتب لديك عنوان خدمة ، وآخر من الإنترنت ، ويجب الحفاظ على هذه الاتصالات ، والتي تنفق مواردنا المتخصصة المحدودة عليها. حسنًا ، يجب على الموظفين تذكر عناوين مختلفة ، وهو أمر غير مريح.
2. يمكنك استخدام المراجع المصدقة المجانية لتشفير خدماتك الداخلية.
إن البنية التحتية للمفاتيح العمومية الخاصة هي خدمة تحتاج إلى دعم ، 100 روبل في السنة لإتاحة الفرصة لاستخدام البنية التحتية للمفاتيح العمومية من السلطات المصدقة المجانية أكثر من الدفع مقابل وقت الموظفين الذين يمكنهم إنفاقه على مهام أخرى.
3. عند استخدام المرجع المصدق الخاص بك ، ستضع العصي في عجلات الموظفين البعيدين والزملاء الذين يرغبون في العمل مع BYOD (إحضار أجهزة الكمبيوتر المحمولة والهاتف والأجهزة اللوحية) ولا يمكنك التحكم في أجهزتهم. إنهم يجلبون الخشخاش ، Linux ، androids ، iOS ، Windows - ليس هناك جدوى من دعم حديقة الحيوانات هذه.
إجمالاً ، بالطبع ، هناك استثناءات ، ولن تتمكن البنوك ذات المؤسسات القاسية الأخرى التي وضعت سياسات أمنية من تحسين الخدمة لموظفيها.
هناك سلطات تصديق مدفوعة لهم ، والتي يمكن لمقدار معين أن يوقع شهادة CA الخاصة بهم (جوجل "خدمة توقيع الجذر").
هناك أسباب أخرى تجعل استخدام الملك العام أكثر ربحية (أهم شيء أنه يخصك) ، لكن المقالة ليست حول ذلك.
خلاصة القول ، ولكن النقطة ...
انتباه! إذا قمت بإضافة شهادة CA من Let's Encrypt إلى قائمة موثوق بها ، فقد يؤثر ذلك على أمان أنظمتك!أول شيء تحتاج إلى الانتباه إليه هو أن وضع واجهة الإنترنت على الإنترنت هو ممارسة سيئة ، لأنه هذا ليس له معنى عملي ويخلق تهديدات أمنية إضافية.
لذلك ، تحتاج إلى الحصول على شهادة على بعض مضيفنا المعقل ، ثم نقل الشهادة والمفتاح لمضيفنا باستخدام محرك ovirt.
نضيف العنوان الخارجي لمضيف حصتنا في DNS باستخدام اسم
ovirtengine.example.com الخاص
بنا ، سأترك تثبيت certbot و nginx خلف الكواليس (تم وصف كيفية القيام بذلك على المحور بالفعل).
تكوين نسخة Nginx> = 1.15.7
/etc/nginx/conf.d/default.confserver { 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; } }
ثم نحصل على الشهادة والمفتاح:
certbot certonly --nginx -d ovirtengine.example.com
نقوم بأرشفة الشهادة والمفتاح لدينا:
tar Phczf /tmp/ovirtengine.example.com.tgz /etc/letsencrypt/live/ovirtengine.example.com
قم بتنزيل الأرشيف من مضيف الحصن ، وقم بتحميله على ovirt-enzhin:
scp bastion-host:/tmp/ovirtengine.example.com.tgz /tmp/ scp /tmp/ovirtengine.example.com.tgz ovirtengine.example.com:/
انتقل إلى الهدف
بعد ذلك ، نقوم بفك ضغط أرشيفنا وإنشاء روابط رمزية لتبسيط فهم نظام موقع الملف:
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
نقوم بتكوين pki المدمج في البويضة لاستخدام مخزن شهادات جافا (openjdk) للتحقق من الشهادة:
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
نقوم بتحويل المرجع المصدق من دعنا إلى التشفير إلى تنسيق der وإضافة بخزان إلى مخزن شهادات متجر جافا (هذه الحاوية حيث توجد قائمة الشهادات ، يتم استخدام هذا النظام في جافا):
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
نقوم بتحرير إعدادات SSL لـ apache ، ونضيف المعلمة لدعم الروابط الرمزية وإزالة المعلمة لـ CA ، والتي ستقوم بفحص الشهادات (افتراضيًا ، سيستخدم النظام مجموعة CA الموثوقة للتحقق):
sed -r -i 's|^(SSLCACertificateFile.*)|#\1|g' /etc/httpd/conf.d/ssl.conf sed -r -i '0,/(^#?SSLCACertificateFile.*)/ s//\1\nOptions FollowSymlinks/' /etc/httpd/conf.d/ssl.conf
بعد ذلك ، فقط في حالة ، سنقوم بعمل نسخة احتياطية من الملفات الأصلية التي تم إنشاؤها من خلال PKI ovirt'a تلقائيًا واستبدال الروابط الرمزية بملفات من 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
نحن نستعيد سياقات SElinux على الملفات ونعيد تشغيل خدماتنا (httpd ، محرك ovirt ، ovirt-imageio-proxy ، ovirt-websocket-proxy):
restorecon -Rv /etc/pki systemctl restart httpd ovirt-engine ovirt-imageio-proxy ovirt-websocket-proxy
httpd - خادم الويب اباتشي
محرك ovirt - واجهة ويب ovirt
ovirt-imageio-proxy - البرنامج الخفي لتحميل صور القرص
ovirt-websocket-proxy - خدمة لتشغيل وحدة التحكم noVNC
تم اختبار كل ما سبق على الإصدار 4.2 من البويضة.
تجديد شهادات السيارات بشكل مباشر
وفقًا للممارسات الأمنية الجيدة ، يجب ألا يكون هناك اتصال بين مضيف الحصن والمغسلة ، ويتم إصدار الشهادة لمدة 3 أشهر فقط. هذا هو المكان الذي تظهر فيه نقطة مثيرة للجدل حول كيفية تنفيذ تجديد الشهادة.
لديّ كتاب مسرحي خاص بالمجموعات يعمل يوميًا في الساعة 5 صباحًا وفقًا لجدول زمني. ينتقل دليل التشغيل هذا إلى التجربة المباشرة ، ويتحقق من فترة صلاحية الشهادة ، وإذا بقي أقل من 5 أيام قبل انتهاء الصلاحية ، فإنه يذهب إلى مضيف المعقل ويبدأ تجديد الشهادة.
بعد تحديث الشهادة ، يقوم بأرشفة المجلد بالملفات ، وتنزيل فورمان إلى المضيف ، وفك ضغط مضيف Ovirt. ثم يعيد سياقات SElinux على الملفات ويعيد تشغيل خدماتنا.