تثبيت kvm على Centos 7. تثبيت نظام المحاكاة الافتراضية KVM على CentOS. تحديد قرص لتثبيت وتعطيل kdump

06.12.2021

KVM هو إطار عمل افتراضي لنظام Linux حيث يمكن للمعالج المزود بامتداد المحاكاة الافتراضية للأجهزة استضافة الضيوف.

يعد KVM حلاً مناسبًا لاختبار أنظمة التشغيل المختلفة إذا كنت غير قادر على شراء أجهزة مادية باهظة الثمن ومستهلكة للطاقة.

يقدم الدليل أدناه تثبيت وتكوين KVM (QEMU) بالإضافة إلى تكوين Linux Bridge على نظام التشغيل CentOS7/RedHat7.

1. تحقق من دعم المحاكاة الافتراضية لأجهزة وحدة المعالجة المركزية

يجب أن يدعم معالجنا المحاكاة الافتراضية للأجهزة (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

2. قم بتعطيل وإيقاف NetworkManager

من المعروف أن 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.

3. قم بتثبيت الحزم ذات الصلة بـ KVM

# yum install qemu-kvm qemu-img libvirt libvirt-python libvirt-client virt-install virt-viewer virt-manager

4. ابدأ تشغيل البرنامج الخفي libvirtd وقم بتمكينه

# systemctl تمكين libvirtd # systemctl start libvirtd

5. قم بتعيين الامتيازات على مستوى النظام لـ KVM

نحن بحاجة إلى إضافة لدينا مستخدم عادي 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; ) ));

6. قم بإنشاء جسر KVM Linux (واجهة شبكة مودم برنامج Hypervisor KVM إلى واجهات شبكة VM)

في هذا البرنامج التعليمي، نريد أن تحصل الأجهزة الافتراضية على عناوين 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 -> تفاصيل -> واجهات الشبكة -> إضافة واجهة:

  • نوع الواجهة: جسر
  • اسم الواجهة: br-em1
  • وضع البدء: عند التمهيد
  • التنشيط الآن: ممكّن
  • إعدادات IP: انسخ التكوين من 'em1'
  • إعدادات الجسر: تشغيل STP، تأخير 0.00 ثانية

...انقر فوق "إنهاء" لتجاوز التكوين الحالي وإنشاء 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 التي تزيد من الأمان وسهولة الاستخدام للخادم. ألاحظ أنه في الإصدار السابع من النظام حدثت بعض التغييرات مقارنة بالإصدارات السابقة.

  1. مقدمة
  2. الإعداد الأولي لـ CentOS 7
  3. تحديد معلمات الشبكة
  4. إعداد جدار الحماية
  5. إعداد SSH على CentOS 7
  6. تحديد الوقت
  7. إضافة المستودعات
  8. خاتمة
  9. فيديو إعداد CentOS 7

مقدمة

الإعداد الأولي لـ CentOS 7

لذلك لدينا:

# اسم -أ
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:

# yum -y تثبيت iptables-services

دعونا نقوم بتمكين التشغيل التلقائي لـ 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 على CentOS 7

بعد ذلك، سنقوم بإجراء بعض التغييرات على كيفية عمل 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

قم بتثبيت الأداة المساعدة لمزامنة الوقت في CentOS:

# يم تثبيت -y ntp

دعونا مزامنة الوقت مرة واحدة:

# /usr/sbin/ntpdatepool.ntp.org

إذا لم يعمل 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 وatop وhtop على CentOS 7

وأخيرًا، دعونا نضيف بعض الأدوات المساعدة المفيدة التي قد تكون مفيدة أثناء تشغيل الخادم.

يُظهر iftop تحميل واجهة الشبكة في الوقت الفعلي، ويمكن تشغيله بمفاتيح مختلفة، ولن أتطرق إلى هذا بالتفصيل، فهناك معلومات حول هذا الموضوع على الإنترنت. نضع:

# يم -y تثبيت iftop

واثنين من مديري المهام المثيرين للاهتمام، غالبًا ما أستخدم htop، ولكن في بعض الأحيان يكون atop مفيدًا. دعنا نثبت كليهما، ونرى بنفسك، ونكتشف ما تفضله أكثر، وما يناسبك:

# يم -y تثبيت htop
# yum -y التثبيت فوق

هذا ما يبدو عليه htop:

هذا كل شيء بالنسبة لي. الإعداد الأساسيتم الانتهاء من CentOS 7، ويمكنك البدء في تثبيت وتكوين الوظيفة الرئيسية.

فيديو إعداد 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

قم بتثبيت KVM على خادمنا:

قم بتثبيت الحزم والأدوات اللازمة:

يم تثبيت 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

  • لذا، فلنستعرض قليلاً المعلمات التي نحددها:--شبكة الشبكة = افتراضية
  • قم بتوصيل الجهاز الظاهري بشبكة افتراضية تسمى الافتراضي--اسم
  • حدد اسم الجهاز الظاهري--رام= حدد الحجمكبش
  • الذي نسلط الضوء عليه--vcpus=
  • نشير إلى عدد المعالجات التي نخصصها--disk تحديد الموقع والشكل والحجم
  • القرص الظاهري--الرسومات فنك، كلمة المرور = 123
  • حدد كلمة المرور والقدرة على الاتصال بمحطة الجهاز الظاهري عبر VNC--cdrom
  • نشير إلى موقع الصورة التي سنقوم بتثبيت النظام منها--boot
ما يتم توصيله أثناء التمهيد

يمكن إدخال الأوامر المذكورة أعلاه في سطر واحد: 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

وسوف نرى:

جارٍ التثبيت... جارٍ تخصيص الموارد "vm1.img"... | 10 جيجابايت 00:00:00 إنشاء مجال... | 0 ب 00:00:00 يستمر تثبيت المجال. في انتظار اكتمال التثبيت...

الاتصال بجهاز افتراضي عبر 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 للقراءة فقط