התקנת kvm על centos 7. התקנת מערכת וירטואליזציה KVM על CentOS. בחירת דיסק להתקנה והשבתת kdump

06.12.2021

KVM היא מסגרת וירטואליזציה עבור לינוקס שעבורה מעבד עם סיומת חומרת וירטואליזציה יכול לארח מערכות אורחות.

KVM הוא פתרון נוח לבדיקת מערכות הפעלה שונות אם אין לכם אפשרות לרכוש מכשירים פיזיים יקרים ועתירי אנרגיה.

המדריך שלהלן מציג התקנה ותצורה של KVM (QEMU) יחד עם תצורת Linux Bridge במערכת ההפעלה CentOS7/RedHat7.

1. בדוק את תמיכת הווירטואליזציה של חומרת המעבד

המעבד שלנו חייב לתמוך בווירטואליזציה של החומרה (VT-x) כדי להפוך ל-KVM Hypervisor ומארח מכונה וירטואלית (מערכות הפעלה אורחות):

# lscpu ארכיטקטורה: x86_64 מצבי הפעלה של מעבד: 32 סיביות, 64 סיביות סדר בתים: מעבדי מעבד קטן אנדיאנים: 4 רשימת מעבדים מקוונים: 0-3 שרשורים לכל ליבה: 2 ליבות לכל שקע: 2 שקעים: 1 NUMA צמתים: 1 מזהה ספק: משפחת מעבדים אמיתיים של Intel: 6 דגם: 42 שם דגם: Intel(R) Core(TM) i5-2520M CPU @ 2.50 גיגה-הרץ: 7 CPU MHz: 800.000 BogoMIPS: 4988.58 וירטואליזציה: VT-x L1d מטמון: 32K L1i מטמון: 32K L2 מטמון: 256K L3 מטמון: 3072K NUMA node0 CPU(s): 0-3

2. השבת והפסק את NetworkManager

ידוע כי NetworkManager גורם לבעיות בעבודה עם Linux Bridge, אז עדיף לנו להשבית אותו:

# systemctl stop NetworkManager # systemctl disable 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

# יאם להתקין qemu-kvm qemu-img libvirt libvirt-python libvirt-client virt-install virt-viewer virt-manager

4. הפעל והפעל את הדמון libvirtd

# systemctl אפשר libvirtd # systemctl התחל את 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")) ( החזר polkit.Result.YES; ) ));

6. צור גשר KVM Linux (ממשק רשת מודם KVM hypervisor עם ממשקי רשת VM)

במדריך זה, אנו רוצים שה-VMs יקבלו את כתובות ה-IP שלהם מאותה רשת שבה מחובר המארח KVM Hypervisor, ולכן נחבר את ממשק הרשת הראשי שלו (em1) לממשקי הרשת של ה-VM.

לשם כך, עלינו ליצור גשר לינוקס מממשק 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 prefered_lft forever inet6::1/128 scope host valid_lft forever prefered_lft forever 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 inet 192.168.2.3/24 brd 192.168.2.255 היקף דינמיקה גלובלית em1 valid_lft 73193sec prefered_lft 73193sec inet6 fe80::d267:e5ff:fe33:153f/6 DN 33:153f/6 מועדף לקישור 333:153f/6 DN לעד 333:153f/6 /ether 00:24:d7:f4:dc:e8 brd ff:ff:ff:ff:ff:ff 4: virbr0: mtu 1500 qdisc noqueue state DOWN link/ether 52:54:00:b7:22: b3 brd ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever prefered_lft forever 5: virbr0-nic: mtu 1500 qdisc pfifo_fast master0 0 קישור: 5 :b7:22:b3 brd ff:ff:ff:ff:ff:ff

קובץ התצורה ifcfg-em1 (לפני יצירת גשר KVM Linux):

# 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, שהיא GUI ידידותי למשתמש עבור ממשק שורת הפקודה KVM.

הערה. ממשק virbr0 נוצר באופן אוטומטי עם התקנת KVM ומייצג רשת וירטואלית שקיימת "בתוך" סביבת KVM עם NAT (תרגום כתובות רשת).

מכיוון שאיננו צריכים NAT בסביבת KVM (אנחנו רוצים להסתיר את ממשק Hypervisor), נוכל להסיר את הרשת הוירטואלית הקיימת של KVM על בסיס ממשק virbr0.

הפעל את virt-manager כמשתמש שורש:

# וירט-מנהל

... חלון virt-manager אמור להופיע:

קליק ימני על QEMU/KVM -> פרטים -> רשתות וירטואליות -> השבת את הרשת: "ברירת מחדל" -> מחק רשת: "ברירת מחדל" מבוסס על virbr0

כעת נוכל לחבר את ממשק Hypervisor KVM (em1):

מקש ימני: QEMU/KVM -> פרטים -> ממשקי רשת -> הוסף ממשק:

  • סוג ממשק: גשר
  • שם הממשק: br-em1
  • מצב התחלה: באתחול
  • הפעל עכשיו: מופעל
  • הגדרות IP: העתק תצורה מ'em1'
  • הגדרות גשר: STP פועל, השהיה של 0.00 שניות

... לחץ על סיום כדי לעקוף את התצורה הקיימת וליצור את גשר KVM 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 prefered_lft forever inet6::1/128 scope host valid_lft forever prefered_lft forever 2: em1: mtu 1500 qdisc pfifo_fast master br-em1 state UP qlen 1000 קישור/ether d0:67:e5:33:15:3ff: brd :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 scope global brd_lft-em1 מועדף לנצח forever inet6 fe80::d267:e5ff:fe33:153f/64 scope link valid_lft forever prefer_lft forever

בדוק את הגדרת הגשר שלך:

# brctl הצג את שם הגשר הגשר מזהה STP המאפשרים ממשקים br-em1 8000.d067e533153f yes em1

כעת גשר KVM Linux מוגדר, ונוכל להמשיך להתקין את המכונה הוירטואלית.

יש הרבה מאמרים דומים, אבל מכיוון שהכנתי מאמרים על ההגדרות הקשורות ל- CentOS, לכן, אני עדיין אתאר את תהליך ההתקנה. בנוסף, זה לא ייקח הרבה זמן. אז, עבור אל האתר הרשמי בקטע ההורדות והורד, במקרה שלי DVD ISO:

אם פתאום המהירות לא מוצאת חן בעיניכם, קצת יותר נמוכה יש הזדמנות להוריד באמצעות טורנט, למשל - אני גם מחלק את ערכת ההפצה הזו, מישהו אחר מפיץ.. וכך תשיגו את מהירות ההורדה המקסימלית, במסגרת היכולות של ערוץ האינטרנט שלך. אני עדיין אוריד את הגרסה המלאה של CentOS, ולא את המינימום, כפי שפרסמתי קודם לכן.

לאחר ההורדה, אנו יוצרים מכונה וירטואלית ומחברים אליה את התמונה החדשה שהורדה. במקרה שלי זה יהיה Oracle VM VirtualBox. אנו לוחצים על צור, השם, תן לזה להיות "centos", הסוג הוא לינוקס ומכיוון שאין, למרבה הצער, CentOS ברשימת הגרסאות, לכן אנו בוחרים Red Hat 64 ביט (גם אם במכונה הוירטואלית שלך יש פחות מ-2 GB של זיכרון RAM, שים 64 סיביות, רק לעתים קרובות יש מקרים שבהם התקנת מערכת ההפעלה נכשלת):

לחץ על "הבא" ולאחר מכן - "צור דיסק קשיח וירטואלי חדש":

ובחר בדיסק ברירת המחדל "VDI":

לחץ על "הבא" והשאיר את תיבת הסימון ב"דיסק קשיח וירטואלי דינמי":

לחץ על "הבא" ולאחר מכן ציין את גודל הדיסק הקשיח, כדי לא לדאוג לגבי שטח פנוי - נציין כ-40 ג'יגה-בייט, מכיוון שיש לנו דיסק דינמי, המקום יתפוס בדיסק קשיח אמיתי לפי הצורך, כלומר, כל 40 GB בבת אחת לא יגובו בכונן הקשיח שלנו:

לאחר מכן, לחץ על כפתור "צור", לאחר מכן לחץ על כפתור "הגדר", עלה לתפריט "מערכת" ובלשונית "מעבד", במידת הצורך, בחר 2-3 מעבדים (במקרה שלי, ההתקנה הוא על Core i7 - 8 ליבות, אז אני יכול להרשות זאת לעצמי):

לאחר בחירת התמונה, יהיה לנו משהו כזה:

אנחנו עוברים לתפריט "רשת", שכן במקרה שלי - יש נתב ביתי עם הנפקת כתובות IP (שרת DHCP), אז אבחר את סוג החיבור "גשר רשת" עם בחירת כרטיס הרשת שלי ב- מכונה עובדת, ב"מתקדם" אני מוודא שסוג המתאם הוא כרטיס רשת סטנדרטי של Intel PRO/1000 MT:

לאחר מכן, לחץ על כפתור "אישור".

אגב, אם אתה משתמש ב-VmWare, אז תצטרך לערוך את קובץ ה-vmx של המחשב הווירטואלי שלנו (לאחר היצירה), ללחוץ לחיצה ימנית על קובץ ה-vmx ולפתוח, למשל, ב-notepad או Notepad ++:

ולמטה הוסיפו:

אתרנט0. virtualDev="e1000"

ושמור את קובץ ה-vmx שלנו. זה הכרחי כדי ש-CentOS 7 יראה את ה-NIC הווירטואלי שלך ב-VmWare.

אז, אנו חוזרים ל-VirtualBox שלנו, הפעל את המכונה הוירטואלית באמצעות כפתור "הפעלה":

לאחר מכן, בחר "Intall CentOS 7":

תהליך ההתקנה יתחיל, בחר את השפה הרוסית:

לאחר מכן, לחץ על כפתור "המשך" ובחר את התוכניות להתקנה:

לאחר מכן, בפינה השמאלית העליונה, לחץ על כפתור "סיום", לאחר מכן - עבור אל "מיקום התקנה":

בחר את הכונן הקשיח שלנו ולחץ על כפתור "סיום":

לחץ על מתאם הרשת שלנו והפעל אותו על ידי לחיצה על כפתור זה:

לאחר מכן, לחץ על כפתור "סיום". על זה, ההגדרה בתפריט כמעט הסתיימה ולחץ על כפתור "התחל התקנה":

במהלך ההתקנה, נצטרך להגדיר סיסמה עבור משתמש השורש וליצור משתמש. כדי להתחיל - לחצו על "סיסמא ROOT" והגדרו את הסיסמה המורכבת שלנו, וודאו שהשפה מוגדרת לאנגלית (בפינה הימנית העליונה "אנחנו"):

אם הסיסמה אינה מורכבת מספיק, אז המערכת תודיע לך על כך, אתה רק צריך ללחוץ פעמיים על כפתור "בוצע" והסיסמה תתקבל.

לאחר מכן, צור משתמש:

הכל פשוט כאן באותה מידה - שם מלא - שמך המלא, ואז שם המשתמש (במקרה שלי, סרגיי), ואז, נוכל מיד לתת למשתמש זכויות מנהל, לשם כך שמים סימון ב"הפוך את המשתמש הזה למנהל" והזן "סיסמה" ממש מתחת וקצת למטה אנו מאשרים את הסיסמה שלנו:

אם הסיסמה אינה מורכבת מספיק, לחץ פעמיים על כפתור "סיום". בשלב הבא, אנו ממתינים להתקנת מערכת ההפעלה שלנו ותצורה:

לאחר ההתקנה, לחץ על כפתור "הפעל מחדש" למטה והמתן עד להפעלה מחדש של מערכת ההפעלה החדשה שלנו:

לאחר האתחול מחדש - עלינו לקבל את הרישיון, לשם כך - לחץ על "מידע על רישיון"

וקבל (חובה, אל תשכח לקרוא אותו, זה אחד מהסכמי הרישיון הקצרים ביותר :)):

ולחץ על כפתור "סיים הגדרה":

לאחר מכן, תתבקש להגדיר את Kdump, כאן לא נוכל לגעת בכלום וללחוץ על "העבר":

לאחר מכן, ניכנס לפרופיל המשתמש. אל תשכח לשנות את שפת הזנת הסיסמה:

וואלה, הכל מוכן:

לאחר מכן, אנו מעלים את תמונת הדיסק של מערכת ההפעלה Guest Additions:

לאחר מכן, לחץ על קובץ autorun.sh, הזן את הסיסמה שלנו עם הרשאות וראה שהכל מותקן:

לאחר ההתקנה, לחץ על כפתור Enter במסוף והפעל מחדש את המערכת שלנו. לאחר מכן, כל התוספות שהחלנו. זה הכל.

התקנה על מכונות וירטואליות אחרות מתבצעת באנלוגיה. אני חושב שזה לא יהיה קשה להתקין על מכונות וירטואליות אחרות.

יש לי שרת CentOS 7 שהותקן לאחרונה ב-VDS עם וירטואליזציה של KVM.

אני אדבר על איך לעשות את התצורה הבסיסית של השרת כדי להשתמש בו בכל יכולת לפי שיקול דעתך. זה יכול להיות שרת אינטרנט, שרת vpn, ניטור שרתא.

אדבר על ההגדרות הראשוניות של מערכת CentOS, שמגבירות את האבטחה והשימושיות של השרת. אני מציין שבגרסה ה-7 של המערכת חלו כמה שינויים בהשוואה לגרסאות קודמות.

  1. מבוא
  2. הגדרה ראשונית של CentOS 7
  3. ציין פרמטרים של רשת
  4. הקמת חומת אש
  5. הגדרת SSH ב- CentOS 7
  6. הגדרת השעה
  7. הוספת מאגרים
  8. סיכום
  9. סרטון על הגדרת CentOS 7

מבוא

הגדרה ראשונית של CentOS 7

אז יש לנו:

# uname -a
Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

קודם כל, בואו נעדכן את מערכת הבסיס:

# יאם - עדכון

כדי להקל על הניהול, אני תמיד מתקין את Midnight Commander, או פשוט mc:

#ifconfig

ותראה את התשובה:

Bash: ifconfig: הפקודה לא נמצאה

לפחות כשראיתי את זה לראשונה, די הופתעתי. חשבתי שטעיתי בכתיבת הפקודה, בדקתי הכל כמה פעמים, אך ללא תוצאה. התברר שהייתי צריך להתקין את החבילה בנפרד כדי להפעיל את ifconfig וכלי עזר אחרים ברשת.

במקום ifconfig ב- CentOS 7 הוא כעת כלי עזר ip. אני לא מבין למה יש צורך ליצור תוכניות נפרדות לניהול הגדרות רשת אם ifconfig עושה את העבודה בסדר גמור. בנוסף, תמיד אהבתי שבהפצות לינוקס שונות הכל בערך אותו דבר. באמצעות ifconfig, אתה יכול להגדיר את הרשת לא רק בלינוקס, אלא גם ב-freebsd. זה נוח. וכאשר לכל הפצה יש כלי משלה, זה לא נוח. אז אני מציע להתקין את ifconfig הרגיל.

בוא נעשה את זה:

# yum -y התקן את net-tools.x86_64

כעת, כדי שהפקודות של nslookup יעבדו עבורנו או, למשל, מארח, עלינו להתקין את חבילת bind-utils. אם זה לא נעשה, הפקודה:

# nslookup

יהיה פלט:

Bash: nslookup: הפקודה לא נמצאה

אז התקן bind-utils:

# yum -y להתקין bind-utils

השבת את SELinux. השימוש וההגדרה שלו הם שיחה נפרדת. עכשיו אני לא אעשה את זה. אז בוא נכבה את זה:

# mcedit /etc/sysconfig/selinux

שנה את הערך SELINUX=disabled

כדי שהשינויים ייכנסו לתוקף, הפעל מחדש:

# אתחול מחדש

ציין פרמטרים של רשת

עכשיו בואו נגדיר את הרשת ב- 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 פותח כלי חדש בשם Firewalld לניהול iptables וכל הניהול נעשה באמצעותו. לא הבנתי למה הם עשו את זה, ואני לא יכול להגיד אם זה נעשה יותר נוח איתו או לא. לי יותר נוח להשתמש באותם פיתוחי iptables. במעבר משרת לשרת ומהפצה להפצה, אני פשוט עורך את סקריפט הגדרות חומת האש.

אבל מסיבה כלשהי CentOS הגיעה עם חומת אש, לאובונטו יש 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 עם התוכן הבא:

#!/bin/bash
#
# הצהרת משתנים
exportIPT="iptables"

# ממשק שמסתכל על האינטרנט
ייצא WAN=eth0
ייצוא WAN_IP=149.154.71.205

# נקה את כל שרשראות iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t מאנגל
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# הגדר מדיניות ברירת מחדל לתנועה שאינה תואמת לאף אחד מהכללים
$IPT -P ירידת קלט
$IPT -P ירידת פלט
$IPT -P ירידה קדימה

# אפשר תעבורה מקומית ל-loopback
$IPT -A INPUT -i lo -j קבל
$IPT -A OUTPUT -o lo -j קבל

# אפשר חיבורים יוצאים מהשרת עצמו
$IPT -A OUTPUT -o $WAN -j קבל

# המצב ESTABLISHED מציין שזו לא החבילה הראשונה בחיבור.
# דלג על כל הקשרים שכבר יזמו, כמו גם על ילדיהם
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# דלג על קשרים חדשים, כמו גם שכבר יזמו והילדים שלהם
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# אפשר העברה עבור קשרים שכבר יזמו וילדיהם
$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# אפשר פיצול מנות. נדרש עקב ערכי 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 --log-level info --log-prefix "-- IN -- DROP "
$IPT -A undef_in -j DROP
$IPT -A undef_out -j LOG --log-level info --log-prefix "-- OUT -- DROP "
$IPT -A undef_out -j DROP
$IPT -A undef_fw -j LOG --log-level info --log-prefix "-- FW -- DROP "
$IPT -A undef_fw -j DROP

# רשמו את הכללים
/sbin/iptables-save > /etc/sysconfig/iptables

עקרונית אין מה להוסיף, כל ההערות ניתנות בקובץ. בטופס הזה, היומנים של כל מה שנחסם ייכתבו לקובץ /var/log/messages ויהיו שם הרבה ערכים. אז בעבודה רגילה, יש להעיר את השורות הללו ולהשתמש בהן רק במהלך איתור באגים. תיאור מפורט יותר של הכללים והדוגמאות של הגדרות חומת אש במקרה שבו השרת שלך הוא שער LAN ניתן בקישור בתחילת הסעיף.

אנו הופכים את הקובץ עם הכללים לניתנים להפעלה ומריצים:

# 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.

אנחנו שומרים את הקובץ. כעת, הקפידו לשנות את הגדרות iptables, להוסיף לחיבורים המותרים פורט 25333 במקום 22. אם זה לא נעשה, אז לאחר הפעלה מחדש של sshd נאבד גישה מרחוק לשרת. אז, פתח את /etc/iptables_rules.sh ושנה בשורה

$IPT -A INPUT -i $WAN -p tcp --dport 22 -j קבל

22 על 25333 והפעל את הקובץ.

החיבור הנוכחי שלנו לא יישבר, מכיוון שהוא כבר נוצר, אבל זה לא יעבוד להתחבר מחדש דרך ssh ליציאה 22.

הפעל מחדש את sshd:

# systemctl הפעל מחדש את sshd

בדוק באיזו יציאה sshd מאזין:

# netstat -tulpn | grep sshd
tcp 0 0 0.0.0.0:25333 0.0.0.0:* LISTEN 1799/sshd
tcp6 0 0:::25333:::* LISTEN 1799/sshd

אם הפלט זהה לשלי, אז הכל בסדר, עכשיו אתה יכול להתחבר ל-ssh ביציאה 25333.

הגדרת השעה

אתה יכול לגלות מה השעה בשרת באמצעות פקודת התאריך:

כדי לשנות את אזור הזמן, עליך לבחור את קובץ אזור הזמן המתאים ב- /usr/share/zoneinfo. אם יש לך את אזור הזמן של מוסקבה, בצע את הפעולות הבאות:

# mv /etc/localtime /etc/localtime.bak
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

התקן את כלי סנכרון הזמן ב- CentOS:

# yum install -y ntp

סנכרון חד פעמי של זמן:

# /usr/sbin/ntpdate pool.ntp.org

אם ntpdate לא עובד, ראה את החומר, אולי זה המקרה שלך. בואו נתחיל את דמון הסנכרון ונכתוב את ההפעלה שלו לטעינה אוטומטית:

# systemctl התחל ntpd
# systemctl אפשר 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 להתקין epel-release

התקן את rpmforge:

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# yum -y התקן http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

התקנת iftop, atop, htop ב- CentOS 7

ולבסוף, בואו נוסיף כמה כלי עזר שימושיים שעשויים להיות שימושיים במהלך פעולת השרת.

iftop מראה בזמן אמת את הטעינה של ממשק הרשת, ניתן להתחיל עם מקשים שונים, לא אתעכב על זה בפירוט, יש מידע בנושא זה באינטרנט. אנחנו שמים:

# yum -y התקן iftop

ושני מנהלי משימות מעניינים, אני משתמש ב-htop רוב הזמן, אבל לפעמים atop בא שימושי. שמנו את שניהם, תראה בעצמך, תבין מה אתה הכי אוהב, זה מתאים:

# yum -y התקן את htop
# yum -y התקן למעלה

כך נראה htop:

זה הכל בשבילי. ההגדרה הבסיסית של CentOS 7 הושלמה, אתה יכול להמשיך בהתקנה ובהגדרה של הפונקציונליות הראשית.

סרטון על הגדרת CentOS 7

סיכום

השלמנו כמה משלבי ההגדרה הראשוניים שאני בדרך כלל עושה בעת הכנת שרת. אני לא מתיימר להיות אמת מוחלטת, אולי אני מפספס משהו או עושה משהו לא ממש נכון. אשמח להערות והערות סבירות ומשמעותיות עם הצעות.

כדאי לחבר מיד את השרת למערכת הניטור לאחר ההגדרה. או הגדר אותו אם עדיין לא עשית זאת.

תודה על המידע: http://serveradmin.ru


מְשִׁימָה: להתקין CentOS 7למכונה הוירטואלית Hyper-V דור שני(דור 2). ראשית, עבור לאתר הרשמי של CentOS והורד את תמונת ה-iso של הגרסה הרצויה של המערכת.

1. צור מכונה וירטואלית

בואו ניצור מכונה וירטואלית חדשה ב-Hyper-V. בואו ניתן לזה שם, למשל VM-CentOS.

בשלב הבא, אנו מציינים שזה יהיה מכונה וירטואלית דור שני(דור 2).

לאחר מכן "הגדר רשת" - בחר חיבור - LAN.

כעת "חבר דיסק קשיח וירטואלי" - בחר ביצירת דיסק חדש (צור דיסק קשיח וירטואלי) וקבע את גודלו, שמו ומיקומו. לדוגמה, VM-CentOS.vhdx.

לאחר מכן, "אפשרויות התקנה" - בחרו את התקנת המערכת מהתמונה (התקנת מערכת הפעלה מקובץ תמונה שניתן לאתחול), אותה יש להוריד כקובץ iso מהאתר הרשמי של CentOS, ולהצביע עליו (קובץ תמונה iso) .

המכונה הוירטואלית נוצרה.

לחץ לחיצה ימנית כדי לעבור להגדרות המכשיר (הגדרות). בגוש החומרה, בחר קושחה ובטל את הסימון של " הפעל אתחול מאובטח".

אם זה לא נעשה, השגיאה הבאה תופיע בעת ההפעלה: " האתחול נכשל. התקן EFI SCSI. אימות אתחול מאובטח נכשל."

2. התקנת CentOS 7 על המחשב הוירטואלי שנוצר

עכשיו אנחנו מתניעים את המכונית (התחל). חלון הפתיחה של מתקין מערכת CentOS יוצג. במידת הצורך, הוסף את השפה הרוסית.

עכשיו אתה יכול להגדיר מראש.

בוא נעבור ללחצן "מקלדת". כאן נוכל לשנות את פרמטרי הפריסה, במידת הצורך (לדוגמה, להעלות את השפה האנגלית לראש, לשנות את מקשי הפריסה, למשל, לשילוב "Ctrl + Shift").

על ידי לחיצה על כפתור "בחר תוכניות", אנו עוברים לבחירת התוכנה, שם ניתן לציין אילו חבילות יותקנו מראש. פרמטרים אלו תלויים מאוד במה מתוכננת להשתמש במערכת זו בעתיד. אם הביצועים חשובים, אז אתה יכול לבחור "התקנה מינימלית", ולאחר מכן "להתקין מחדש" את כל הרכיבים הדרושים.

כאשר מתכננים להשתמש במכונת CentOS לאירוח אתרים, ניתן להגדיר את האפשרות "שרת אינטרנט סטנדרטי", להוסיף, למשל, "תמיכה בPHP", "MariaDB Client" ואחרים.

אם אתה צריך ממשק גרפי, אז אתה יכול לבחור "סביבת GNOME" או "סביבות עבודה פלזמה של KDE", להוסיף לו "חבילת Office" וכו'.

עכשיו בואו נגדיר את פרמטרי הרשת. עבור אל "רשת ושם מארח", הגדר את שם המארח והפעל את הרשת באמצעות לחצן הבחירה הימני העליון.

כעת לחץ על "התחל התקנה".

בזמן שההתקנה ברקע, נגדיר את הסיסמאות הדרושות לגישה.

לחץ על "שורש סיסמה" והגדר את הסיסמה עבור חשבון המנהל.

צור משתמש במידת הצורך.

כעת אנו ממתינים להתקנת CentOS 7.

לחץ על "סיום התקנה" והמתן עד שתהליך ההתקנה יסתיים. לאחר מכן, תתבקש לאתחל.

3. בדיקת יצירת המכונה הוירטואלית

לאחר האתחול, הזן את סיסמת הכניסה שנוצרה קודם לכן.

הערה למי שמתקין מערכת לינוקס בפעם הראשונה: הסיסמה לא מוצגת על המסך עם הכניסה אליה.

לאחר מכן, נבדוק האם המכונה הוירטואלית שנוצרה היא אכן מכונה מהדור השני (דור 2). כדי לעשות זאת, הפעל את Windows PowerShell ב-hypervisor והפעל את הפקודה הבאה (במקום "VM-CentOS" הזן את שם המחשב שלך):

Get-vm VM-CentOS | שם פל, דור

אנו מוודאים שדור 2 מצוין. ההתקנה הושלמה.

ניטור בקשות HTTP של שרת האינטרנט של IIS עם Fiddler

קובו. שיעור 1: מבוא

לאחרונה זה הפך לאופנתי להשתמש בווירטואליזציה בכל מקום.
יש לנו שרת מותקן 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

בואו ניצור ספרייה לאחסון תמונות מכונות וירטואליות:

Mkdir /var/vm

ובכן, יש לנו שתי דרכים, או שנוסיף את ההקשר המתאים לספרייה שלנו כדי ש-SELinux לא ישבע:

Semanage fcontext --add -t virt_image_t "/var/vm(/.*)?" restorecon -R -v /var/vm או פשוט השבת אותו.

ובכן, באופן כללי, זה מוכן. נותר רק במידת הצורך לבצע שינויים בהגדרות הרשת אם קיים צורך כזה.
אתה יכול להציג את רשימת הרשתות האפשריות עם הפקודה " virsh net-list»
כברירת מחדל, יש לנו רשת פנימית אחת שניתן לערוך באמצעות הפקודה " virsh net-edit ברירת מחדל» , כאשר «ברירת מחדל» הוא שם הרשת

בואו ניצור מכונה וירטואלית

לדוגמה (בדיקה), בואו ניצור את המכונה הווירטואלית הראשונה עם הגדרות פשוטות וחיבור לרשת "ברירת מחדל". ראשית, בואו נוריד את תמונת מערכת ההפעלה שנתקין על השרת.

Virt-install --network network=default --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

אז בואו נעבור קצת על הפרמטרים שאנו מציינים:

  • --רשת רשת=ברירת מחדלאנו מחברים את המכונה הוירטואלית לרשת הווירטואלית בשם ברירת מחדל
  • --שֵׁםציין את שם המכונה הוירטואלית
  • --ram=ציין את כמות ה-RAM להקצאה
  • --vcpus=ציין את מספר המעבדים שאנו מקצים
  • --דִיסקציין את המיקום, הפורמט והגודל של הדיסק הוירטואלי
  • --graphics vnc,password=123ציין את הסיסמה ואת היכולת להתחבר למסוף של המכונה הווירטואלית באמצעות VNC
  • --תקליטורציין את מיקום התמונה ממנה נתקין את המערכת
  • --מַגָףמה מחובר באתחול
ניתן להזין את הפקודות לעיל בשורה אחת: virt-install --network network=default --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

ונראה:

מתחיל בהתקנה... הקצאת משאבי "vm1.img"... | 10 GB 00:00:00 יצירת דומיין... | 0 B 00:00:00 הגדרת הדומיין נמשכת. ממתין להשלמת ההתקנה...

התחברות למכונה הוירטואלית באמצעות VNC

מכיוון שאין מנהל חלונות בשרת שלנו, כדי להתקין ולהגדיר, אנחנו צריכים להתחבר איכשהו. בהגדרות בעת יצירת המכונה הוירטואלית "--graphics vnc, password = 123", ציינו שאנו יכולים להתחבר למסוף באמצעות VNC.

למכונה הוירטואלית שלנו הוקצתה יציאת VNC, אתה יכול לגלות איזו יציאה מוקצה למכונה וירטואלית מסוימת עם הפקודה (כאשר "vm1" הוא שם המכונה הוירטואלית):

Virsh 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 ממנה הגדרתי הכל, עשיתי מנהור פורטים ב- Putty: 5900 -> 127.0.0.1:5900.


לאחר כניסה מוצלחת של ssh, תוכל להפעיל את TightVNC ולציין יציאה 127.0.0.1::5900 (שים לב לנקודתיים הכפולה).


לאחר חיבור למכונה הוירטואלית, נוכל להתקין את מערכת ההפעלה ולאחר מכן להגדיר אותה.

ניהול מכונות וירטואליות:

הפעל את המכונה הוירטואלית

Virsh start vm1

כבה את המכונה הוירטואלית

כיבוי Virsh vm1

הוצאת כבל החשמל:

Virsh להשמיד את vm1

הפסקת עבודה:

Virsh suspend vm1

חבר את תמונת ה-ISO למחשב וירטואלי כ-cdrom

Virsh attach-disk vm1 /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso hda --type cdrom --mode read-only

Virsh attach-disk vm1 "" hda --type cdrom --mode לקריאה בלבד

על מנת שהמכונה הווירטואלית vm1 תחל אוטומטית כאשר המארח מופעל מחדש:

Virsh autostart vm1

השבת את ההפעלה האוטומטית עבור vm1:

השבת את תמונת ה-ISO (אל תסיר את המכשיר מהאורח, פשוט "תוציא את התקליטור מהכונן"):

Virsh attach-disk vm1 "" hda --type cdrom --mode לקריאה בלבד