KVM هو إطار عمل افتراضي لنظام Linux حيث يمكن للمعالج المزود بامتداد المحاكاة الافتراضية للأجهزة استضافة الضيوف.
يعد KVM حلاً مناسبًا لاختبار أنظمة التشغيل المختلفة إذا كنت غير قادر على شراء أجهزة مادية باهظة الثمن ومستهلكة للطاقة.
يقدم الدليل أدناه تثبيت وتكوين KVM (QEMU) بالإضافة إلى تكوين Linux Bridge على نظام التشغيل CentOS7/RedHat7.
يجب أن يدعم معالجنا المحاكاة الافتراضية للأجهزة (VT-x) ليصبح Hypervisor KVM ويستضيف الأجهزة الافتراضية (الضيوف). أنظمة التشغيل):
# بنية lscpu: الوضع (الأنماط) التشغيلية لوحدة المعالجة المركزية x86_64: 32 بت، 64 بت ترتيب البايت: وحدات المعالجة المركزية (وحدات المعالجة المركزية) Endian الصغيرة: 4 قائمة (وحدات) وحدة المعالجة المركزية عبر الإنترنت: 0-3 سلاسل رسائل لكل نواة: 2 مركز (مراكز) لكل مقبس: 2 مقبس (مقابس): 1 عقدة (عقد) NUMA: 1 معرف البائع: عائلة وحدة المعالجة المركزية الأصلية من Intel: 6 الطراز: 42 اسم الطراز: Intel(R) Core(TM) i5-2520M CPU @ 2.50 خطوة جيجاهرتز: 7 وحدة المعالجة المركزية ميجاهرتز: 800.000 BogoMIPS: 4988.58 المحاكاة الافتراضية: ذاكرة التخزين المؤقت VT-x L1d: ذاكرة التخزين المؤقت 32K L1i: ذاكرة التخزين المؤقت 32K L2: ذاكرة التخزين المؤقت 256K L3: 3072K NUMA عقدة 0 وحدة المعالجة المركزية (وحدات المعالجة المركزية): 0-3
من المعروف أن NetworkManager يسبب مشاكل عند تشغيل Linux Bridge، لذا فمن الأفضل لنا تعطيله:
# systemctl stop NetworkManager # systemctl تعطيل NetworkManager تمت إزالة الارتباط الرمزي /etc/systemd/system/multi-user.target.wants/NetworkManager.service. تمت إزالة الرابط الرمزي /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service. تمت إزالة الرابط الرمزي /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
نحن بحاجة إلى إضافة لدينا مستخدم عادي tuxfixer إلى مجموعة kvm حتى يتمكن من تشغيل Virt-manager
# usermod -a -G kvm tuxfixer
نحتاج أيضًا إلى تثبيت قواعد polkit (مجموعة السياسات) لـ KVM.
قم بتحرير الملف 49-polkit-pkla-compat.rules:
# vim /etc/polkit-1/rules.d/49-polkit-pkla-compat.rules
وأضف ما يلي:
Polkit.addRule(function(action, subject) ( if (action.id == "org.libvirt.unix.manage" && subject.isInGroup("kvm")) ( return polkit.Result.YES; ) ));
في هذا البرنامج التعليمي، نريد أن تحصل الأجهزة الافتراضية على عناوين IP الخاصة بها من نفس الشبكة التي يتصل بها مضيف KVM Hypervisor، لذلك سنقوم بتوصيل واجهة الشبكة الرئيسية (em1) بواجهات شبكة VM.
للقيام بذلك، نحتاج إلى إنشاء Linux Bridge من واجهة em1 على مضيف KVM Hypervisor.
التكوين الحالي لشبكة Hypervisor (مباشرة بعد تثبيت KVM):
# ip a 1: lo: mtu 65536 qdisc noqueue State رابط/استرجاع غير معروف 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 نطاق المضيف lo valid_lft إلى الأبد Favorite_lft إلى الأبد inet6::1/128 نطاق المضيف valid_lft إلى الأبد Favorite_lft إلى الأبد 2: em1: mtu 1500 qdisc pfifo_fast State UP qlen 1000 link/ether d0:67:e5:33:15:3f brd ff:ff:ff:ff:ff :ff inet 192.168.2.3/24 brd 192.168.2.255 النطاق الديناميكي العالمي em1 valid_lft 73193sec Favorite_lft 73193sec inet6 fe80::d267:e5ff:fe33:153f/64 رابط النطاق valid_lft إلى الأبد Favorite_lft إلى الأبد 3: wlp3s0: mtu 1500 qdis c حالة مستجد إلى الأسفل رابط qlen 1000/ether 00:24:d7:f4:dc:e8 brd ff:ff:ff:ff:ff:ff 4: virbr0: mtu 1500 qdisc noqueue State الرابط السفلي/ether 52:54:00:b7:22 : b3 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 النطاق العالمي virbr0 valid_lft إلى الأبد مفضل_lft إلى الأبد 5: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 الحالة أسفل qlen 500 link/ether 52 :54:00:b7:22:b3 brd ff:ff:ff:ff:ff:ff
ملف التكوين Ifcfg-em1 (قبل إنشاء KVM Linux Bridge):
# cat /etc/sysconfig/network-scripts/ifcfg-em1 DEVICE = "em1" TYPE = "Ethernet" BOOTPROTO = "none" NAME = "em1" ONBOOT = "yes" HWADDR = "D0:67:E5:33: 15:3F" IPADDR=192.168.2.3 PREFIX=24 GATEWAY=192.168.2.1 PEERDNS = "no" NM_CONTROLLED = "no"
لتكوين شبكة KVM، سنستخدم تطبيق virt-manager، وهو عبارة عن واجهة مستخدم رسومية سهلة الاستخدام للواجهة سطر الأوامر KVM.
ملحوظة. تم إنشاء واجهة virbr0 تلقائيًا مع تثبيت KVM وتمثل شبكة افتراضية موجودة "داخل" بيئة KVM مع NAT (ترجمة عنوان الشبكة).
نظرًا لأننا لا نحتاج إلى NAT في بيئة KVM (نريد إخفاء واجهة Hypervisor)، فيمكننا حذف شبكة KVM الافتراضية الحالية استنادًا إلى واجهة virbr0.
قم بتشغيل Virt-manager كمستخدم جذري:
#المدير الفاضل
... يجب أن تظهر نافذة Virt-manager:
انقر بزر الماوس الأيمن على كيمو/KVM -> تفاصيل -> الشبكات الافتراضية -> تعطيل الشبكة: "الافتراضي" -> حذف الشبكة: "افتراضي" استنادًا إلى virbr0
يمكننا الآن توصيل واجهة Hypervisor KVM (em1):
انقر بزر الماوس الأيمن: كيمو/KVM -> تفاصيل -> واجهات الشبكة -> إضافة واجهة:
...انقر فوق "إنهاء" لتجاوز التكوين الحالي وإنشاء KVM Linux Bridge.
يمكننا الآن اختبار جسر Linux الذي تم إنشاؤه حديثًا (br-em1):
تحقق من تكوين IP الحالي (تم تعيين IP الآن لـ br-em1 ويعمل em1 الآن كواجهة فقط):
# ip a 1: lo: mtu 65536 qdisc noqueue State رابط/استرجاع غير معروف 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 نطاق المضيف lo valid_lft إلى الأبد Favorite_lft إلى الأبد inet6::1/128 نطاق المضيف valid_lft إلى الأبد Favorite_lft إلى الأبد 2: em1: mtu 1500 qdisc pfifo_fast master br-em1 State UP qlen 1000 link/ether d0:67:e5:33:15:3f brd ff:ff:ff :ff:ff:ff 3: wlp3s0: mtu 1500 qdisc noop State DOWN qlen 1000 link/ether 00:24:d7:f4:dc:e8 brd ff:ff:ff:ff:ff:ff 6: br-em1: mtu 1500 qdisc noqueue State UP link/ether d0:67:e5:33:15:3f brd ff:ff:ff:ff:ff:ff inet 192.168.2.3/24 brd 192.168.2.255 نطاق عالمي br-em1 صالح_لفت إلى الأبد مفضل_لفت إلى الأبد inet6 fe80::d267:e5ff:fe33:153f/64 رابط النطاق صالح_lft إلى الأبد Favorite_lft إلى الأبد
التحقق من إعداد الجسر:
# brctl عرض اسم الجسر معرف الجسر STP الواجهات الممكّنة br-em1 8000.d067e533153f نعم em1
الآن تم تكوين جسر KVM Linux، ويمكننا متابعة تثبيت الجهاز الظاهري.
هناك الكثير من المقالات المشابهة، ولكن بما أنني قمت بإعداد المزيد من المقالات حول الإعدادات المتعلقة بـ CentOS، لذلك سأظل أصف عملية التثبيت. علاوة على ذلك، فإنه لن يدوم طويلا. لذلك، انتقل إلى الموقع الرسمي في قسم التنزيل وقم بالتنزيل، في حالتي DVD ISO:
إذا لم ترضيك السرعة فجأة، فهناك أدناه فرصة التنزيل عبر التورنت، على سبيل المثال - أنا أيضًا أقوم بتوزيع هذا التوزيع، ويقوم شخص آخر بتوزيعه... وبهذه الطريقة ستحقق أقصى سرعة تنزيل، في حدود إمكانيات قناة الإنترنت الخاصة بك. سأستمر في التنزيل النسخة الكاملة CentOS، وليس الحد الأدنى، كما نشرت في وقت سابق.
بعد التنزيل، نقوم بإنشاء جهاز افتراضي ونربط الصورة التي تم تنزيلها حديثًا به. في حالتي سيكون Oracle VM VirtualBox. انقر فوق إنشاء، وليكن الاسم “centos”، النوع هو Linux وبما أنه للأسف لا يوجد CentOS في قائمة الإصدارات، لذلك نختار القبعة الحمراء 64 بت (حتى إذا كان جهازك الظاهري يحتوي على أقل من 2 غيغابايت من ذاكرة الوصول العشوائي، قم بتثبيت 64 بت، فغالبًا ما تكون هناك حالات لن يعمل فيها تثبيت نظام التشغيل):
انقر فوق "التالي" وبعد ذلك - "إنشاء افتراضية جديدة". القرص الصلب»:
وحدد القرص الافتراضي "VDI":
انقر فوق "التالي" واترك الغطاء على "القرص الثابت الافتراضي الديناميكي":
انقر فوق "التالي" ثم حدد الحجم القرص الصلب، حتى لا تقلق بشأن المساحة الحرة، دعنا نشير إلى ما يقرب من 40 جيجابايت، نظرًا لأن القرص الخاص بنا ديناميكي، سيتم شغل المساحة على القرص الصلب الحقيقي حسب الحاجة، أي أنه لن يتم حجز كل الـ 40 جيجابايت على القرص الصلب الخاص بنا في وقت واحد:
بعد ذلك، انقر فوق الزر "إنشاء"، وبعد ذلك انقر فوق الزر "تكوين"، وانتقل إلى قائمة "النظام" وفي علامة التبويب "المعالج"، إذا لزم الأمر، حدد 2-3 وحدات المعالجة المركزية (في حالتي، التثبيت موجود على Core i7 - 8 مراكز، لذا يمكنني تحمل تكاليفه):
بعد اختيار الصورة سيكون لدينا مثل هذا:
دعنا نذهب إلى قائمة "الشبكة"، لأنه في حالتي لدي جهاز توجيه منزلي يصدر عناوين IP (خادم DHCP)، ثم سأختار نوع الاتصال " جسر الشبكة"مع اختيار بطاقة الشبكة الخاصة بي على جهاز العمل، في "متقدم" أتأكد من أن نوع المحول قياسي بطاقة الشبكةإنتل برو/1000MT:
بعد ذلك، انقر على زر "موافق".
بالمناسبة، إذا كنت تستخدم VmWare، فستحتاج إلى تحرير ملف vmx الخاص بجهازنا الظاهري (بعد الإنشاء)، وانقر بزر الماوس الأيمن على ملف vmx وافتحه، على سبيل المثال، في المفكرة أو Notepad++:
وفي الأسفل أضف:
إيثرنت0. VirtualDev = "e1000" |
وحفظ ملف vmx الخاص بنا. يعد هذا ضروريًا لـ CentOS 7 لرؤية ملفك الافتراضي بطاقة الشبكةفي إم وير.
لذلك، دعونا نعود إلى VirtualBox الخاص بنا ونطلق الجهاز الظاهري باستخدام زر "تشغيل":
بعد ذلك، حدد "Intall CentOS 7":
ستبدأ عملية التثبيت، اختر اللغة الروسية:
بعد ذلك، انقر فوق الزر "متابعة" وحدد البرامج المراد تثبيتها:
بعد ذلك، في الزاوية اليسرى العليا، انقر فوق الزر "إنهاء"، بعد ذلك، انتقل إلى "موقع التثبيت":
حدد القرص الصلب الخاص بنا وانقر فوق الزر "إنهاء":
انقر على لدينا محول الشبكةوتشغيله بالضغط على هذا الزر:
بعد ذلك، انقر على زر "تم". في هذه المرحلة، يكون الإعداد في القائمة قد اكتمل تقريبًا وانقر على زر "بدء التثبيت":
أثناء التثبيت، سنحتاج إلى تعيين كلمة مرور للمستخدم الجذر وإنشاء مستخدم. للبدء، انقر على "كلمة مرور ROOT" وقم بتعيين كلمة المرور المعقدة، وتأكد من تعيينها اللغة الإنجليزية(في الزاوية اليمنى العليا "نحن"):
إذا كانت كلمة المرور ليست معقدة بما فيه الكفاية، فسيقوم النظام بإعلامك بذلك؛ ما عليك سوى النقر فوق الزر "تم" مرتين وسيتم قبول كلمة المرور.
بعد ذلك قم بإنشاء مستخدم:
كل شيء بهذه البساطة هنا - الاسم الكامل- اسمك الكامل، ثم اسم المستخدم (في حالتي سيرجي)، ثم يمكننا منح المستخدم حقوق المسؤول على الفور، للقيام بذلك، حدد المربع "اجعل هذا المستخدم مسؤولاً" وأدخل "كلمة المرور" أدناه مباشرة وقم بتأكيد كلمة المرور أدناه مباشرة:
إذا لم تكن كلمة المرور معقدة بما فيه الكفاية، فانقر على زر "تم" مرتين. بعد ذلك، ننتظر حتى يتم تثبيت نظام التشغيل الخاص بنا وتكوينه:
بعد التثبيت، انقر فوق الزر "إعادة التشغيل" أدناه وانتظر حتى يتم إعادة تشغيل نظام التشغيل المثبت حديثًا:
بعد إعادة التشغيل، نحتاج إلى قبول الترخيص، للقيام بذلك، انقر فوق "معلومات الترخيص"
وقبول (تأكد من تذكر قراءتها، فهذه واحدة من أقصر اتفاقيات الترخيص :)):
وانقر على زر "إنهاء الإعداد":
بعد ذلك، سيُطلب منك تكوين Kdump، وهنا لا يمكننا لمس أي شيء والنقر على "إعادة التوجيه":
بعد ذلك نقوم بالدخول إلى ملف تعريف المستخدم. لا تنس تغيير لغة إدخال كلمة المرور الخاصة بك:
هاهوذا، تم تثبيت كل شيء:
بعد ذلك، قم بتوصيل صورة قرص إضافات نظام التشغيل Guest:
بعد ذلك، انقر فوق ملف autorun.sh، وأدخل كلمة المرور الخاصة بنا مع الامتيازات وتأكد من تثبيت كل شيء:
بعد التثبيت، اضغط على زر Enter في وحدة التحكم وأعد تشغيل نظامنا. بعد ذلك نطبق جميع الإضافات. هذا كل شيء.
التثبيت على الآخرين الآلات الافتراضية، ويتم عن طريق القياس. أعتقد أنه لن يكون من الصعب التثبيت على الأجهزة الافتراضية الأخرى.
لدي فقط الخادم المثبتمن CentOS 7 إلى VDS مع محاكاة KVM الافتراضية.
سأتحدث عن كيفية إجراء الإعداد الأساسي للخادم لاستخدامه بأي صفة وفقًا لتقديرك. يمكن أن يكون خادم الويب, خادم فبن , مراقبة الخادمأ.
سأتحدث عنه الإعدادات الأوليةأنظمة CentOS التي تزيد من الأمان وسهولة الاستخدام للخادم. ألاحظ أنه في الإصدار السابع من النظام حدثت بعض التغييرات مقارنة بالإصدارات السابقة.
لذلك لدينا:
# اسم -أ
Linux Zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP الخميس 29 يناير 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
أولا وقبل كل شيء، دعونا تحديث النظام الأساسي:
# تحديث يم -y
لسهولة الإدارة، أقوم دائمًا بالتثبيت قائد منتصف الليلأو فقط مولودية:
# إذاالتكوين
وسترى الجواب:
باش: ifconfig: لم يتم العثور على الأمر
على الأقل عندما رأيته لأول مرة، كنت مندهشًا تمامًا. اعتقدت أنني أخطأت في كتابة الأمر، لقد قمت بفحص كل شيء عدة مرات، ولكن دون جدوى. اتضح أنني بحاجة إلى تثبيت حزمة بشكل منفصل لتشغيل ifconfig والأدوات المساعدة الأخرى للشبكة.
بدلاً من ifconfig في CentOS 7، توجد الآن أداة مساعدة الملكية الفكرية. لا أفهم سبب الحاجة إلى إنشاء برامج منفصلة لإدارة إعدادات الشبكة إذا كان ifconfig يقوم بعمل رائع على أي حال. بالإضافة إلى ذلك، أحببت دائما أنه في توزيعات Linux المختلفة، كل شيء هو نفسه تقريبا. باستخدام ifconfig، يمكنك تكوين الشبكة ليس فقط في Linux، ولكن أيضًا في freebsd. انها مريحة. وعندما يكون لكل توزيع أداة خاصة به، فهذا غير مريح. لذلك أقترح تثبيت ملف ifconfig المعتاد.
دعونا نفعل هذا:
# yum -y install net-tools.x86_64
الآن، لكي تعمل أوامر nslookup أو أوامر المضيف على سبيل المثال، نحتاج إلى تثبيت حزمة bind-utils. إذا لم يتم ذلك، فاستخدم الأمر:
#nslookup
سيكون الإخراج:
باش: nslookup: لم يتم العثور على الأمر
لذلك دعونا نقوم بتثبيت bind-utils:
# yum -y install bind-utils
تعطيل سيلينوكس. استخدامه وتكوينه أمر منفصل. لن أفعل هذا الآن. لذلك دعونا نطفئه:
# mcedit /etc/sysconfig/selinux
قم بتغيير القيمة SELINUX=معطل
لكي تدخل التغييرات حيز التنفيذ، قم بإعادة التشغيل:
# إعادة التشغيل
تحديد معلمات الشبكة
الآن دعونا نقوم بتكوين الشبكة في CentOS. للقيام بذلك، افتح الملف /etc/sysconfig/network-scripts/ifcfg-eth0
# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0
في الحقل IPADDR، ندخل عنوانك، وفي NETMASK قناع الشبكة، وفي GATEWAY البوابة، وDNS1 عنوان خادم DNS. احفظ الملف وأعد تشغيل الشبكة لتطبيق الإعدادات:
# /etc/init.d/network Restart تكوين جدار الحماية
لقد نظرت في مسألة إعداد iptables في CentOS 7 بتفصيل كبير بشكل منفصل. الآن سنقوم بإعداد جدار الحماية بسرعة وسهولة. في CentOS 7، يعمل iptables كجدار حماية. بشكل افتراضي يتم تشغيله. لعرض القواعد الحالية، تحتاج إلى إدخال الأمر:
# iptables -L -v -n
أريد أن أحذرك على الفور أنه بدون الوصول إلى وحدة تحكم الخادم، فإن إعداد جدار الحماية يعد فكرة سيئة. حتى لو كنت تفهم جيدًا ما تفعله وقمت بذلك عدة مرات، فلا تزال هناك فرصة لتركك دون الوصول إلى الخادم. لذا فإن أول شيء قبل إعداد iptables هو التحقق من الوصول إلى وحدة التحكم عبر KVM أو فعليًا.
في الإصدار السابع من CentOS، تم تطوير أداة جديدة تسمى جدار الحماية لإدارة iptables وتتم كل الإدارة من خلالها. لم أفهم لماذا فعلوا ذلك، ولا أستطيع أن أقول ما إذا كان الأمر أكثر ملاءمة أم لا. بالنسبة لي، من الملائم أكثر استخدام نفس تطويرات iptables. عند الترحيل من خادم إلى خادم ومن توزيع إلى توزيع، أقوم ببساطة بتحرير البرنامج النصي لإعدادات جدار الحماية.
ولكن لسبب ما، جاء CentOS مع جدار الحماية، Ubuntu لديه ufw، ولكن الجوهر هو نفسه - هذه أدوات مساعدة لتكوين iptables، وهي نفسها في جميع التوزيعات. أنا معتاد على إدارة iptables من خلال نص مكتوب ذاتيًا، والذي أنقله من خادم إلى خادم وأقوم بتحريره ليناسب احتياجات محددة. سوف أشارك هذا البرنامج النصي. لذا أولاً، دعونا نتوقف ونعطل جدار الحماية:
# توقف جدار الحماية systemctl
#systemctl تعطيل جدار الحماية
rm "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service"
rm "/etc/systemd/system/basic.target.wants/firewalld.service"
دعونا نقوم بتمكين التشغيل التلقائي لـ iptables:
#systemctl تمكين iptables
لنقم الآن بإنشاء ملف /etc/iptables_rules.sh بالمحتوى التالي:
#!/بن/باش
#
#الإعلان عن المتغيرات
تصدير IPT = "iptables"
# الواجهة التي تنظر إلى الإنترنت
تصدير شبكة WAN = eth0
تصدير WAN_IP=149.154.71.205
# مسح كافة سلاسل iptables
$IPT-F
$IPT -F -t نات
$IPT -F -t تشابك
$ آي بي تي -X
$IPT -t nat -X
$IPT -t mangle -X
# قم بتعيين السياسات الافتراضية لحركة المرور التي لا تتطابق مع أي من القواعد
$IPT -P انخفاض الإدخال
$IPT -P انخفاض الإخراج
$IPT -P تراجع للأمام
# السماح بحركة المرور المحلية للاسترجاع
$IPT -A INPUT -i lo -j قبول
$IPT -A OUTPUT -o lo -j قبول
# السماح بالاتصالات الصادرة من الخادم نفسه
$IPT -A OUTPUT -o $WAN -j قبول
# تم تأسيس الحالةيشير إلى أن هذه ليست الحزمة الأولى في الاتصال.
# تخطي جميع الاتصالات التي بدأت بالفعل، وكذلك أطفالهم
$IPT -A INPUT -p all -m State -state ESTABLISHED،RELATED -j قبول
# تخطي الاتصالات الجديدة وكذلك التي بدأت بالفعل واتصالات الأطفال الخاصة بهم
$IPT -A OUTPUT -p all -m State -state ESTABLISHED، RELATED -j قبول
# السماح بإعادة توجيه الاتصالات التي بدأت بالفعل والاتصالات التابعة لها
$IPT -A FORWARD -p all -mstate -state ESTABLISHED،RELATED -j قبول
# تمكين تجزئة الحزمة. ضروري بسبب قيم MTU المختلفة
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# قم بإسقاط كافة الحزم التي لا يمكن تحديدها
# وبالتالي لا يمكن أن يكون لها حالة محددة.
$IPT -A INPUT -m State -state INVALID -j DROP
$IPT -A FORWARD -m State --state INVALID -j DROP
# يتسبب في تقييد موارد النظام، وهو أمر حقيقي جدًا
# يصبح تبادل البيانات مستحيلاً، فنقطعه
$IPT -A INPUT -p tcp! --syn -m State --state NEW -j DROP
$IPT -A OUTPUT -p tcp! --syn -m State --state NEW -j DROP
# افتح المنفذ لـ SSH
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j قبول
# افتح منفذ DNS
$IPT -A INPUT -i $WAN -p udp --dport 53 -j قبول
# افتح منفذ NTP
$IPT -A INPUT -i $WAN -p udp --dport 123 -j قبول
# التسجيل
# سيتم إرسال كل ما هو غير مسموح به، باستثناء الفواصل، إلى سلسلة undef
$IPT -N undef_in
$IPT -N undef_out
$IPT -N undef_fw
$IPT -A INPUT -j undef_in
$IPT -A OUTPUT -j undef_out
$IPT -A FORWARD -j undef_fw
# سجل كل شيء من undef
$IPT -A undef_in -j LOG --معلومات مستوى السجل --بادئة السجل "-- IN -- DROP "
$IPT -A undef_in -j DROP
$IPT -A undef_out -j LOG --معلومات مستوى السجل --بادئة السجل "-- OUT -- DROP "
$IPT -A undef_out -j DROP
$IPT -A undef_fw -j LOG --معلومات مستوى السجل --بادئة السجل "-- FW -- DROP "
$IPT -A undef_fw -j DROP
#اكتب القواعد
/sbin/iptables-save > /etc/sysconfig/iptables
من حيث المبدأ، ليس هناك ما يمكن إضافته؛ جميع التعليقات موجودة في الملف. في هذا النموذج، سيتم كتابة سجلات كل شيء محظور في الملف /var/log/messages وسيكون هناك الكثير من الإدخالات هناك. لذا، في العمل العادي، يجب التعليق على هذه السطور واستخدامها فقط أثناء تصحيح الأخطاء. أكثر وصف تفصيليقواعد وأمثلة لإعدادات جدار الحماية عندما يكون الخادم الخاص بك عبارة عن بوابة الشبكة المحلية، موجود في الرابط في بداية القسم.
اجعل الملف بالقواعد قابلاً للتنفيذ وقم بتشغيله:
# chmod 0740 /etc/iptables_rules.sh
# /etc/iptables_rules.sh
دعونا نتحقق من تطبيق القواعد:
# iptables -L -v -n
في كل مرة تقوم فيها بتشغيل ملف قواعد iptables، تتم كتابة جميع التغييرات إلى الملف /etc/sysconfig/iptables ويتم تطبيقها عند تشغيل النظام.
بعد ذلك، سنقوم بإجراء بعض التغييرات على كيفية عمل ssh لزيادة الأمان. بشكل افتراضي، تعمل الخدمة على المنفذ 22، وإذا تركنا كل شيء كما هو، فسنحصل على عدد كبير من محاولات تسجيل الدخول. تقوم الروبوتات بفحص الإنترنت باستمرار وتحديد كلمات مرور ssh. لحماية نفسك من عمليات الفحص التي تجريها برامج الروبوت البسيطة، فلنغير المنفذ الذي يعمل عليه ssh. يمكنك اختيار أي رقم مكون من خمسة أرقام، لا يهم. هذا سوف يحميك من المسح التلقائي.
دعونا نعلق البرنامج الخفي ssh على المنفذ 25333. للقيام بذلك، قم بتحرير الملف /etc/ssh/sshd_config
# mcedit /etc/ssh/sshd_config
دعونا نزيل تعليق السطر Port 22 ونستبدل القيمة 22 بالقيمة 25333.
عادةً ما أسمح للمستخدم الجذر بالاتصال عبر ssh. إنه أكثر ملاءمة بالنسبة لي. لم يكن لدي أي مشاكل مع هذا. إذا كنت لا تعتقد أن هذا آمن، فلا تلمس هذا الإعداد. للسماح للمستخدم الجذر بالاتصال عبر ssh، قم بإلغاء التعليق على سطر PermitRootLogin Yes.
احفظ الملف. الآن نتأكد من تغيير إعدادات iptables، وإضافة المنفذ 25333 إلى الاتصالات المسموح بها بدلاً من 22. إذا لم نفعل ذلك، فبعد إعادة تشغيل sshd سنفقد الوصول عن بعدإلى الخادم. لذلك، افتح /etc/iptables_rules.sh وقم بتغيير السطر
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j قبول
22 إلى 25333 وتنفيذ الملف.
ملكنا الاتصال الحاليلن تتم مقاطعته، نظرًا لأنه مثبت بالفعل، ولكن لن يكون من الممكن إعادة الاتصال عبر ssh بالمنفذ 22.
إعادة تشغيل سشد:
# إعادة تشغيل systemctl sshd
تحقق من المنفذ الذي يستمع إليه sshd:
# نتستت -tulpn | جريب SSHD
برنامج التعاون الفني 0 0 0.0.0.0:25333 0.0.0.0:* الاستماع 1799/sshd
tcp6 0 0:::25333:::* الاستماع 1799/sshd
إذا كان الإخراج هو نفسه، فكل شيء على ما يرام، والآن يمكنك الاتصال بـ ssh عبر المنفذ 25333.
يمكنك معرفة الوقت على الخادم باستخدام أمر التاريخ:
لتغيير المنطقة الزمنية، يجب عليك تحديد ملف المنطقة الزمنية المناسب في /usr/share/zoneinfo. إذا كانت منطقتك الزمنية هي موسكو، فقم بما يلي:
# mv /etc/localtime /etc/localtime.bak
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
إذا لم يعمل ntpdate، فاطلع على المادة، فربما تكون هذه هي حالتك. لنبدأ برنامج المزامنة الخفي ونسجل إطلاقه عند بدء التشغيل:
# بدء تشغيل Systemctl ntpd
# تمكين نظام ntpd
ln -s "/usr/lib/systemd/system/ntpd.service" "/etc/systemd/system/multi-user.target.wants/ntpd.service"
الآن ستتزامن ساعتنا تلقائيًا مع خادم الوقت.
مزيد من التفاصيل حول هذا الموضوع مكتوبة بشكل منفصل في المواد الخاصة بي - التثبيت والتكوين ومزامنة الوقت في CentOS.
لتثبيت برامج مختلفة، تحتاج إلى توصيل المستودعات في CentOS. الأكثر شعبية هي EPEL وrpmforge، لذلك دعونا نضيفها. أولا نقوم بتثبيت EPEL. كل شيء بسيط معه، تتم إضافته من المستودع القياسي:
# yum -y install epel-release
تثبيت برنامج rpmforge:
# دورة في الدقيقة - استيراد http://apt.sw.be/RPM-GPG-KEY.dag.txt
# يم -y تثبيت http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
وأخيرًا، دعونا نضيف بعض الأدوات المساعدة المفيدة التي قد تكون مفيدة أثناء تشغيل الخادم.
يُظهر iftop تحميل واجهة الشبكة في الوقت الفعلي، ويمكن تشغيله بمفاتيح مختلفة، ولن أتطرق إلى هذا بالتفصيل، فهناك معلومات حول هذا الموضوع على الإنترنت. نضع:
# يم -y تثبيت iftop
واثنين من مديري المهام المثيرين للاهتمام، غالبًا ما أستخدم htop، ولكن في بعض الأحيان يكون atop مفيدًا. دعنا نثبت كليهما، ونرى بنفسك، ونكتشف ما تفضله أكثر، وما يناسبك:
# يم -y تثبيت htop
# yum -y التثبيت فوق
هذا ما يبدو عليه htop:
هذا كل شيء بالنسبة لي. الإعداد الأساسيتم الانتهاء من CentOS 7، ويمكنك البدء في تثبيت وتكوين الوظيفة الرئيسية.
لقد مررنا ببعض خطوات الإعداد الأولية التي أقوم بها عادةً عند إعداد الخادم. أنا لا أدعي أنني الحقيقة المطلقة؛ ربما أفتقد شيئًا ما أو أفعل شيئًا غير صحيح تمامًا. سأكون سعيدًا بالحصول على تعليقات واقتراحات معقولة وذات مغزى.
من المفيد توصيل الخادم على الفور بنظام المراقبة بعد التكوين. أو قم بإعداده إذا لم يكن لديك بالفعل.
شكرا على المعلومات: http://serveradmin.ru
مهمة: ثَبَّتَ سينت أو إس 7إلى الجهاز الظاهري فرط الخامس الجيل الثاني(الجيل 2). أولاً، انتقل إلى موقع CentOS الرسمي وقم بتنزيل صورة ISO للإصدار المطلوب من النظام.
1. قم بإنشاء جهاز افتراضي
لنقم بإنشاء جهاز افتراضي جديد في Hyper-V. لنعطيه اسمًا، على سبيل المثال VM-CentOS.
في الخطوة التالية سنشير إلى أنه سيكون كذلك الآلة الافتراضيةالجيل الثاني(الجيل 2).
ثم "تكوين الشبكة" - حدد الاتصال - LAN.
الآن "توصيل القرص الصلب الظاهري" - اختر إنشاء قرص جديد (إنشاء قرص افتراضي القرص الصلب) وتعيين حجمها واسمها وموقعها. على سبيل المثال، VM-CentOS.vhdx.
التالي "خيارات التثبيت" - حدد تثبيت النظام من الصورة (تثبيت نظام تشغيل من ملف صورة قابل للتشغيل)، والذي يجب تنزيله كملف ISO من موقع CentOS الرسمي، وحدد السماح له (ملف صورة ISO).
تم إنشاء الجهاز الظاهري.
انقر بزر الماوس الأيمن للانتقال إلى إعدادات الجهاز (الإعدادات). في كتلة الأجهزة، حدد البرامج الثابتة وقم بإلغاء تحديد المربع " يُمكَِن التمهيد الآمن ".
إذا لم يتم ذلك، فسيظهر الخطأ التالي عند بدء التشغيل: " فشل التمهيد. جهاز EFI SCSI. فشل التحقق من التمهيد الآمن."
2. تثبيت سينت أو إس 7 إلى الجهاز الظاهري الذي تم إنشاؤه
الآن نبدأ السيارة (ابدأ). سيتم عرض نافذة الترحيب الخاصة بمثبت CentOS. إذا لزم الأمر، سنضيف الروسية.
الآن يمكنك إجراء الإعدادات الأولية.
دعنا نذهب إلى زر "لوحة المفاتيح". هنا يمكننا تغيير معلمات التخطيط، إذا لزم الأمر (على سبيل المثال، نقل اللغة الإنجليزية إلى الأعلى، وتغيير مفاتيح التخطيط، على سبيل المثال، إلى المجموعة "Ctrl+Shift").
انقر فوق الزر "تحديد البرامج" لتحديدها برمجة، حيث يمكنك تحديد الحزم التي سيتم تثبيتها مسبقًا. تعتمد هذه المعلمات بشكل كبير على ما تخطط لاستخدامه في المستقبل. هذا النظام. إذا كان الأداء مهمًا، فيمكنك تحديد "الحد الأدنى من التثبيت"، ثم "إعادة تثبيت" كافة المكونات الضرورية.
عند التخطيط لاستخدام جهاز CentOS لاستضافة مواقع الويب، يمكنك ضبط خيار "خادم الويب القياسي" وإضافة أيضًا، على سبيل المثال، "دعم PHP" و"عميل MariaDB" وغيرها.
إذا كنت بحاجة إلى واجهة رسومية، يمكنك تحديد "بيئة جنوم" أو "مساحات عمل كيدي بلازما"، أضف إليها " جناح المكتب" إلخ.
الآن دعونا نقوم بتعيين معلمات الشبكة. انتقل إلى "اسم الشبكة والمضيف"، وقم بتعيين اسم المضيف وتشغيل الشبكة باستخدام زر الاختيار الأيمن العلوي.
الآن انقر فوق "بدء التثبيت".
بينما في خلفيةالتثبيت قيد التقدم، تثبيت كلمات المرور المطلوبةللوصول.
انقر فوق "كلمة مرور الجذر" وقم بتعيين كلمة مرور حسابمسؤول.
إذا لزم الأمر، قم بإنشاء مستخدم.
ننتظر الآن اكتمال تثبيت CentOS 7.
انقر فوق "إنهاء الإعداد" وانتظر حتى تكتمل عملية التثبيت. بعد ذلك، سيُطلب منك إعادة التشغيل.
3. التحقق من جيل الجهاز الظاهري
بعد إعادة التشغيل، أدخل كلمة مرور تسجيل الدخول التي تم إنشاؤها مسبقًا.
ملاحظة لأولئك التثبيت نظام لينكسلأول مرة: لا يتم عرض كلمة المرور على الشاشة عند إدخالها.
بعد ذلك، دعونا نتحقق مما إذا كان الجهاز الظاهري الذي تم إنشاؤه هو بالفعل جهاز من الجيل الثاني (الجيل الثاني). للقيام بذلك، دعونا نعمل على برنامج Hypervisor ويندوز باورشيلوقم بتشغيل الأمر التالي (بدلاً من "VM-CentOS" أدخل اسم جهازك):
احصل على vm VM-CentOS | اسم فلوريدا، الجيل
تأكد من الإشارة إلى اكتمال التثبيت.
مراقبة طلبات HTTP لخادم ويب IIS باستخدام Fiddler |
كوبو. الدرس الأول: مقدمة |
في الآونة الأخيرة، أصبح من المألوف استخدام المحاكاة الافتراضية في كل مكان.
لدينا خادم مثبت CentOS 7 الحد الأدنى إلى x64ونحن نخطط للاستخدام KVM .
بالطبع، سيكون من الجيد التأكد من أن خادمنا يدعم المحاكاة الافتراضية (ولكن إذا كان لديك خادم عادي حديث، فأعتقد أنه يدعم هذا بنسبة 100%).
Egrep "(vmx|svm)" /proc/cpuinfo
قم بتثبيت الحزم والأدوات اللازمة:
يم تثبيت qemu-kvm libvirt libvirt-python libguestfs-tools virt-install –y
لا تنس أن تضيف إلى بدء التشغيل:
Systemctl تمكين libvirtd && systemctl بدء libvirtd
لنقم بإنشاء دليل لتخزين صور الجهاز الظاهري:
مكدير /var/vm
حسنًا، لدينا هنا طريقتان، أو نضيف السياق المناسب لدليلنا حتى لا يقسم SElinux:
Semanage fcontext --add -t virt_image_t "/var/vm(/.*)؟"
Restorecon -R -v /var/vm أو ببساطة قم بتعطيله.
حسنًا، بشكل عام، إنه جاهز. كل ما تبقى هو إجراء تغييرات على إعدادات الشبكة إذا لزم الأمر. يمكنك عرض قائمة الشبكات المحتملة باستخدام الأمر "»
قائمة شبكة virsh افتراضيا لدينا واحدالشبكة الداخلية والتي يمكن تحريرها باستخدام الأمر " virsh net-edit الافتراضي
لنقم بإنشاء جهاز افتراضي على سبيل المثال (تحقق)، لنقم بإنشاء أول جهاز افتراضي بهإعدادات بسيطة
والاتصال بالشبكة "الافتراضية". أولاً، لنقم بتنزيل صورة نظام التشغيل التي سنقوم بتثبيتها على الخادم.
تثبيت Virt --شبكة الشبكة = افتراضي --name vm1 --ram=2048 --vcpus=1 --مسار القرص=/var/vm/vm1.img,size=20,format=qcow2 --graphics vnc,password =123 --cdrom /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso --boot cdrom,hd,menu=on
يمكن إدخال الأوامر المذكورة أعلاه في سطر واحد: virt-install --networknetwork=default --name vm1 --ram=2048 --vcpus=1 --disk path=/var/vm/vm1.img,size=20 التنسيق = qcow2 --graphics vnc,password=123 --cdrom /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso --boot cdrom,hd,menu=on
وسوف نرى:
الاتصال بجهاز افتراضي عبر VNC منذ خادمنا لاثم من أجل التثبيت والتكوين نحتاج إلى الاتصال بطريقة أو بأخرى. في الإعدادات عند إنشاء الجهاز الظاهري "--graphics vnc,password=123" أشرنا إلى أنه يمكننا الاتصال بالجهاز عبر VNC.
تم تخصيص منفذ VNC لجهازنا الظاهري، ويمكنك معرفة المنفذ المخصص لجهاز افتراضي محدد باستخدام الأمر (حيث "vm1" هو اسم الجهاز الظاهري):
فيرش vncdisplay vm1 127.0.0.1:0
وهذا يعني أن منفذ VNC هو 5900+0=5900. إذا كانت النتيجة "127.0.0.1:1"، فسيكون منفذ VNC 5901. إلخ. تحتاج إلى الاتصال بالمنفذ الموجود على المضيف (خادمنا الذي قمنا بتكوينه) للأجهزة الافتراضية.
افتراضيًا، يجب ألا يسمح مضيف الجهاز الظاهري (مضيفنا هو CentOS 7 بالحد الأدنى) بالاتصال بأي منفذ آخر غير ssh (22/tcp). لا أنصحك بفتح الوصول إلى منافذ VNC من الخارج. انها ليست آمنة. من أجل الوصول إلى شاشة الجهاز الظاهري من محطة عمل Windows التي أقوم بتكوين كل شيء منها، قمت بإجراء نفق المنفذ في المعجون: 5900 -> 127.0.0.1:5900.
بعد تسجيل الدخول بنجاح عبر ssh، يمكنك تشغيل TightVNC وتحديد المنفذ 127.0.0.1::5900 (لاحظ النقطتين المزدوجتين).
من خلال الاتصال بالجهاز الظاهري، يمكننا تثبيت نظام التشغيل وإجراء التكوين اللاحق.
التشغيل على الجهاز الظاهري
بداية فيرش vm1
إيقاف تشغيل الجهاز الظاهري
اغلاق فيرش vm1
فصل كابل الطاقة:
تدمير فيرش vm1
تعليق:
تعليق فيرش vm1
قم بتوصيل صورة ISO بالجهاز الظاهري كقرص مضغوط
قرص إرفاق Virsh vm1 /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso hda - نوع cdrom - الوضع للقراءة فقط
Virsh Attach-disk vm1 "" hda --type cdrom --mode للقراءة فقط
للتأكد من أنه عند إعادة تشغيل المضيف، يبدأ تشغيل الجهاز الظاهري vm1 تلقائيًا:
فيرش تشغيل تلقائي vm1
تعطيل التشغيل التلقائي لـ vm1:
قم بتعطيل صورة ISO (لا تقم بإزالة الجهاز من الضيف، ولكن ببساطة "قم بإزالة القرص المضغوط من محرك الأقراص"):
Virsh Attach-disk vm1 "" hda --type cdrom --mode للقراءة فقط