Встановлюємо CentOS в VirtualBox. Установка системи віртуалізації KVM на CentOS Встановимо утиліти для iptables

Подібних статей досить багато, але, так як далі я підготував статті з налагодження пов'язаним з CentOS, тому, все ж опишу процес установки. До того ж він не буде довгим. Отже, заходимо на офіційний сайт в розділ скачування і викачуємо, в моєму випадку DVD ISO:

Якщо раптом швидкість Вас не порадує, трохи нижче є можливість скачати через торрент, наприклад - я так само роздаю цей дистрибутив, ще хтось роздає .. і так Ви досягнете максимальної швидкості скачування, в межах можливості Вашого інтернет каналу. Качати я буду все ж повну версію CentOS, а не мінімальну, як в якій я опубліковував раніше.

Після скачування, створюємо віртуальну машину і підключаємо до неї тільки що скачав образ. в моєму випадку це буде Oracle VM VirtualBox. Натискаємо створити, ім'я, нехай буде «centos», тип - Linux і так як в списку версій, на жаль немає CentOS, тому вибираємо Red Hat 64 bit (навіть якщо у Вашої віртуальної машини менше 2 гб озу, поставте 64 біт, просто часто бувають випадки що установка ОС не вийти):

Натискаємо «Next» і після цього - «Створити новий віртуальний жорсткий диск»:

І вибираємо диск за замовчуванням «VDI»:

Натискаємо «Next» і залишаємо Крижик на «Динамічний віртуальний жорсткий диск»:

Натискаємо «Next» і далі вкажемо розмір жорсткого диска, щоб не паритися з приводу вільного місця - вкажемо приблизно 40 гб., Так як диск у нас динамічний, то місце буде займати на реальному жорсткому диску у міру потреби, тобто відразу все 40 гб НЕ зарезервує на нашому жорсткому диску:

Далі, натискаємо на кнопку «Створити», після цього натискаємо на кнопку «Налаштувати», залазимо в меню «Система» і у вкладці «Процесор» при необхідності вибираємо 2-3 ЦПУ (в моєму випадку установка йде на Core i7 - 8 ядер, тому, я можу собі це дозволити):

Після вибору способу у нас буде що то типу того:

Переходимо в меню «Мережа», так як в моєму випадку - є домашній роутер з видачею IP адрес (DHCP сервером), то, я виберу тип підключення «Мережевий міст» з вибором моєї мережевої карти на робочій машині, в «Додатково» переконуюся, що тип адаптера - це стандартна мережева карта Intel PRO / 1000 MT:

Після цього натискаємо на кнопку «ОК».

До речі, якщо Ви використовуєте VmWare, то Вам необхідно буде відредагувати vmx файл нашої віртуальної машини (після створення), натискаємо правою кнопкою миші на vmx файлі і відкриваємо наприклад в блокноті або Notepad ++:

і в самий низ додаємо:

ethernet0. virtualDev = "e1000"

і зберігаємо наш vmx файл. Це потрібно для того, щоб CentOS 7 побачив Вашу віртуальну мережеву плату в VmWare.

Отже, повертаємося в нашому VirtualBox'у, запускаємо віртуальну машину за допомогою кнопки «Запустити»:

Після цього вибираємо «Intall CentOS 7»:

Запускається процес установки, вибираємо російську мову:

Після цього, натискаємо кнопку «Продовжити» і вибираємо програми для установки:

Після цього, у верхньому лівому кутку натискаємо на кнопку «Готово», після цього - заходимо в «Місце установки»:

Вибираємо наш жорсткий диск і натискаємо кнопку «Готово»:

Натискаємо на наш мережевий адаптер і включаємо його шляхом натискання на цю кнопку:

Після цього, натискаємо на кнопку «Готово». На цьому, настройка в меню практично закінчена і натискаємо на кнопку «Почати установку»:

Під час установки, нам буде необхідно встановити пароль від користувача root і створити користувача. Для початку - натискаємо на «Пароль ROOT» і встановлюємо наш складний пароль, переконайтеся що встановлений англійську мову (у верхньому правому куті «us»):

Якщо пароль недостатньо складний, то, система сповістить Вас про це, треба буде всього лише двічі натиснути на кнопку «Готово» і пароль візьметься.

Після цього, створюємо користувача:

Тут все так само просто - повне ім'я - Ваше повне ім'я, далі ім'я користувача (в моєму випадку sergey), далі, можемо відразу наділити користувача правами адміністратора, для цього ставимо галку в «Зробити цього користувача адміністратором» і вводимо трохи нижче «Пароль» і ще трохи нижче підтверджуємо наш пароль:

Якщо пароль недостатньо складний, два рази натискаємо на кнопку «Готово». Далі, чекаємо поки у нас встановитися і налаштуватися наша ОС:

Після установки, внизу натискаємо на кнопку «Перезавантажити» і чекаємо поки перезавантажиться наша ново встановлена ​​ОС:

Після перезавантаження - нам треба прийняти Ліцензію, для цього - натискаємо на «Ліцензійна інформація»

і приймаємо (обов'язково, не забуваємо прочитати його, це одне з найкоротших ліцензійних угод :)):

і натискаємо на кнопку «Завершити налаштування»:

Після цього, буде запропоновано налаштувати Kdump, тут можемо нічого не чіпати і натиснемо на «Вперед»:

Після цього, увійдемо в призначений для користувача профіль. Не забуваємо поміняти мову введення пароля:

Вуаля, все встановлено:

Після цього, підключаємо образ диска Додатків гостьовий ОС:

Після цього, натискаємо на файл autorun.sh, вводимо наш пароль з привілеями і бачимо що все встановлюється:

Після установки натискаємо кнопку Enter в консолі і перезавантажуємо нашу систему. Після цього, всі доповнення у нас застосовуватися. На цьому все.

Установка на інших віртуальних машинах, здійснюється за аналогією. Думаю не складе складності встановити і на інших віртуальних машинах.

KVM - це інфраструктура віртуалізації для Linux, для якої процесор з апаратним розширенням віртуалізації може приймати гостьові системи.

KVM - це зручне рішення для тестування різних операційних систем, якщо у вас немає можливості купувати дорогі і енергоємні фізичні пристрої.

У наведеному нижче керівництві представлена ​​установка і настройка KVM (QEMU) разом зі зміною Linux Bridge в операційній системі CentOS7 / RedHat7.

1. Перевірте підтримку віртуалізації обладнання процесора

Наш процесор повинен підтримувати апаратну віртуалізацію (VT-x), щоб стати Hypervisor KVM і хостом віртуальних машин (гостьові операційні системи):

# Lscpu Architecture: x86_64 CPU op-mode (s): 32-bit, 64-bit Byte Order: Little Endian CPU (s): 4 On-line CPU (s) list: 0-3 Thread (s) per core: 2 Core (s) per socket: 2 Socket (s): 1 NUMA node (s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 42 Model name: Intel (R) Core (TM) i5-2520M CPU @ 2.50 GHz Stepping: 7 CPU MHz: 800.000 BogoMIPS: 4988.58 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU (s): 0-3

2. Вимкніть і зупиніть NetworkManager

Відомо, що NetworkManager викликає проблеми при роботі з Linux Bridge, тому для нас краще відключити його:

# Systemctl stop NetworkManager # systemctl disable NetworkManager Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service. Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service. Removed symlink /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 enable libvirtd # systemctl start libvirtd

5. Встановіть загальносистемні привілеї для KVM

Нам потрібно додати нашого звичайного користувача tuxfixer в групу kvm, щоб він міг запустити virt-manager

# Usermod -a -G kvm tuxfixer

Нам також необхідно встановити правила polkit (policy kit) для 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 Bridge (модемний мережевий інтерфейс гипервизора KVM з мережевими інтерфейсами VM)

У цьому уроці ми хочемо, щоб віртуальні машини отримували свої IP-адреси з тієї ж мережі, де підключений хост KVM Hypervisor, тому ми підключимо його основний мережевий інтерфейс (em1) до мережевих інтерфейсів VM.

Для цього нам потрібно створити Linux Bridge з інтерфейсу em1 на хості KVM Hypervisor.

Поточна конфігурація мережі Hypervisor (відразу після установки KVM):

# Ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 :: 1/128 scope host valid_lft forever preferred_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 : ff inet 192.168.2.3/24 brd 192.168.2.255 scope global dynamic em1 valid_lft 73193sec preferred_lft 73193sec inet6 fe80 :: d267: e5ff: fe33: 153f / 64 scope link valid_lft forever preferred_lft forever 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 4: virbr0: mtu 1500 qdisc noqueue state DOWN link / 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 scope global virbr0 valid_lft forever preferred_lft forever 5: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN 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, яке є зручним інтерфейсом GUI для інтерфейсу командного рядка KVM.

Примітка. Інтерфейс virbr0 був створений автоматично разом з установкою KVM і представляє віртуальну мережу, що існує «всередині» середовища KVM з NAT (трансляція мережевих адрес).

Оскільки ми не потребуємо NAT в середовищі KVM (ми хочемо приховати інтерфейс Hypervisor), ми можемо видалити існуючу віртуальну мережу KVM на основі інтерфейсу virbr0.

Запустіть virt-manager від користувача root:

# Virt-manager

... має з'явитися вікно virt-manager:

Правий клацання на QEMU / KVM -> Details -> Virtual Networks -> Disable network: "default" -> Delete network: "default" based on virbr0

Тепер ми можемо підключити інтерфейс Hypervisor KVM (em1):

Клацніть правою кнопкою миші: QEMU / KVM -> Details -> Network Interfaces -> Add Interface:

  • Interface type: Bridge
  • Interface name: br-em1
  • Start mode: on boot
  • Activate now: enabled
  • IP settings: copy configuration from 'em1'
  • Bridge settings: STP on, delay 0.00 sec

... натисніть Finish, щоб перевизначити існуючу конфігурацію і створити KVM Linux Bridge.

Тепер ми можемо перевірити новостворений Linux Bridge (br-em1):

Перевірте поточну конфігурацію IP (тепер IP призначається br-em1, а em1 діє тепер тільки як інтерфейс):

# Ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 :: 1/128 scope host valid_lft forever preferred_lft forever 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 scope global br-em1 valid_lft forever preferred_lft forever inet6 fe80 :: d267: e5ff: fe33: 153f / 64 scope link valid_lft forever preferred_lft forever

Перевірте настройку моста:

# Brctl show bridge name bridge id STP enabled interfaces br-em1 8000.d067e533153f yes em1

Тепер KVM Linux міст налаштований, і ми можемо продовжити установку виртуалки.

Якщо ви читаєте цю статтю, то, швидше за все, добре знаєте, навіщо вам потрібен веб-сервер і зупинятися на цьому я не буду. Але і просто описати, як відбувається установка CentOS 7 і як налаштувати оточення, мені здалося нецікавим. Тому ми візьмемо Windows, VirtualBox і будемо налаштовувати веб-сервер у віртуальній машині, у віртуальній мережі. Паралельним завданням, крім як розібратися з установкою і налаштуванням веб-сервера на Linux, будемо створювати зручне середовище на подобі OpenServer або Denwer, але з усіма перевагами повноцінного nix-сервера.

Що нам знадобиться

Створюємо контейнер віртуальної машини для CentOS в VirtualBox

Запускаємо VirtualBox, заходимо в налаштування і дивимося конфігурацію віртуальної мережі:

Ок, мережа 192.168.56.0/24, DHCP роздає адреси зі 101 до 254. Запам'ятаємо цю інформацію.

Переходимо до створення контейнера для CentOS 7. Для цього натискаємо на кнопочку "Створити" і перемикається в "Експертна режим".
Тип OS - Linux, Версія - RedHat (64-bit). Обсяг ОЗУ поставимо в 512 Мб, працювати будемо тільки в консолі, так що цього нам вистачить із запасом. Жорсткий диск створюємо новий.


Натискаємо кнопку "Створити" і визначаємо конфігурацію жорсткого диска - можна все залишити за замовчуванням: розмір 8Гб (можете відразу збільшити, якщо розумієте, що вам не вистачить), тип VDI, Динамічний. Знову натискаємо кнопку "Створити".

Контейнер для віртуальної машини створений. Трохи підкоригуємо настройки:

На вкладці "Система" -> "Материнська плата" міняємо порядок завантаження:


Ставимо в "процесор" 2 штуки і галочку PAE / NX


Переходимо в "Дисплей" і додаємо відеопам'яті до 16 Мб. Прискорення графіки нам ні до чого, тому що у нас тільки консоль.


Переходимо в носії і вказуємо наш образ з CentOS 7.




Мережа. Ми будемо використовувати 2 інтерфейсу. Перший в режимі bridge (мережевий міст). У СЕЛЕКТА "Ім'я" виберіть той інтерфейс, через який ви підключаєтеся до вашого роутеру. Це дозволить виртуалке отримати IP з вашої домашньої мережі, що часто корисно і інтернет вона буде отримувати від вашого роутера. Якщо у вас не так (ходите в інтернет без роутера), або ви плануєте, що вашій виртуалке завжди потрібен буде інтернет - використовуйте NAT.


Для другого інтерфейсу вибираємо "Віртуальний адаптер хоста" для підключення до віртуальної мережі. Завдяки цьому, ваш web-сервер буде доступний незалежно від того, в якій мережі ви працюєте. Якби ми обмежилися тільки першим адаптером, то як тільки ви відключіться від вашого роутера, довелося б переконфигурировать мережеве з'єднання під нові умови. А так веб-сервер буде вам завжди доступний у віртуальній мережі.


Ну і останнім кроком відключимо USB. Навряд чи нам знадобиться.


На це власне все, запускаємо віртуальну машину.

Запуск установника CentOS 7

Якщо ви все зробили правильно, у вас запуститься інсталятор і почнеться установка CentOS 7 (а якщо не запустився, перевірте ще раз порядок завантаження і, що в носіях у нас вказано iso з дистрибутивом CentOS 7). Вибираємо перший пункт - Install CentOS 7 (зверніть увагу, що за замовчуванням обраний другий пункт "Test this media ..." - якщо ви вибрали його то можете почекати поки не перевірятися контрольні суми образу, а можете під час перевірки натиснути Esc).

На першому кроці нам пропонують вибрати мову установника. Ми залишаємо все як є і натискаємо кнопку Contunue.


Другий крок - основне меню установника.


Налаштування локалізації і дати / часу

Налаштування з датою / часом і мовні настройки залишимо як є. Ці моменти ми налаштуємо потім вручну - це корисно як практики. Якщо ви купуєте VDS, наприклад, в Німеччині, важко очікувати, що мовні настройки будуть російські та час виставлено по Москві.

Вибираємо профіль безпеки

Налаштовуємо профіль безпеки - SECURITY. Натискаємо Security Policy, вибираємо Standart System Security Profile. Натискаємо кнопку "Select Profile", потім "Done".


Вибір диска для установки і відключення kdump

Переходимо до групи SYSTEM.

Відключимо механізм збору інформації про збої ядра KDUMP. Заходимо в КDUMP, знімаємо галочку з "Enable kdump" і натискаємо "Done".

Розбиття для жорсткого диска той же залишимо без зміни. Натисніть "Installation destination", виберіть наш жорсткий диск. Переконайтеся, що встановлена ​​галочка "Automatically configure partitions" і натискайте "Done".


Налаштування мережі

Переходимо до налаштування мережевих інтерфейсів. Натискаємо NETWORK & HOST NAME і переходимо до вікна конфігурації. Насамперед задайте hostname для вашого сервера - у мене це web.local, ви можете повторити за мною або ж написати все що хочете.

Тепер подивимося на список мережевих інтерфейсів. Перший у нас для інтернету, налаштування він отримує від роутера по DHCP або через NAT. Давайте включимо його, встановивши перемикач в статус ON. Статус повинен зміниться на connected і інтерфейс отримати IP адресу.


Тепер натиснемо кнопку "Configure" і на закладці "General" встановимо галочку "Automatically connect to the ..." - для того що б при завантаженні операційної системи, інтерфейс був відразу включений.
Відключаємо IPv6 (звичайно якщо ви їм не користуєтесь 😉) На закладці "IPv6 Settings" ставимо "Method" в Ignore. Натискаємо "Save".

Переходимо до другого інтерфейсу. Включаємо, і бачимо що IP адреса отримали вже від DCHP віртуальної мережі. Але адресу який може в один прекрасний момент помінятися, нам не підходить. Давайте задамо статичний. Натискаємо "Configure" і першим ділом, за аналогією з першим інтерфейсом, задаємо автоматичне включення і відключаємо IPv6. Потім переходимо на закладку "IPv4 Settings". "Method" вибираємо Manual, в списку адрес Addresses натискаємо Add і додаємо IP адрес.

Пам'ятайте, вище ми запам'ятали з вами настройки віртуальної мережі? DHCP роздає адреси починаючи з 56.101, отже нам треба вибрати адресу менше ніж 101. Я вибрав 192.168.56.80. Задаємо маску підмережі 24 і натискаємо "Save". Налаштування мережі завершена, тиснемо "Done".

Ну ось установка CentOS 7 майже закінчена. Натискаємо кнопку "Begin Installation" і процес установки запускається.


Пароль root і користувач для роботи

Поки йде установка задамо пароль адміністратора.

Так само можна створити обліковий запис з під якої будемо працювати. Натискаємо "USER CREATION" і задаємо логін, пароль і ставимо галочку "Make this user administrator", що помістити нашого користувача в групу wheel. Зверніть увагу - якщо задали пароль, який установник вважав слабким - то на кнопку "Done", треба буде натиснути два рази. На загальнодоступних серверах такі паролі звичайно ж ставити не можна, але в рамках нашого завдання з паролем можна особливо не мудрувати.

Тепер залишилося трохи почекати, поки встановляться все пакети і по завершенні натиснути кнопку Reboot. Вітаю, установка CentOS 7 завершена.


Запуск віртуальної машини з CentOS 7

Запуск віртуальної машини в VirtualBox можливий в трьох режимах:

1. Звичайний запуск. В цьому випадку віртуальна машина завантажиться в звичайному вікні, яке буде тим чи іншим способом присутнім у вас на робочому столі або в згорнутому вигляді на панелі завдань. Це звичайно не зовсім зручно, особливо коли виртуалка перехоплює миша.
2. Запуск у фоновому режимі. В цьому випадку віртуальна машина запускається фоновим процесом і після того як вона їм заважає, ми можемо спокійно закрити головне вікно VirtualBox. Процес залишиться і ми можемо, наприклад, спокійно підключиться до сервера по ssh.
3. І нарешті запуск в фоновому режимі з інтерфейсом. Віртуальна машина завантажиться у вікні, але при необхідності, ми можемо відправити її в фон.

Запуск в тлі звичайно дуже зручний, але відсутність будь-якої індикації про стан віртуальної машини або просто про факт такого запуску досить напружує. Але світ не без добрих людей і тут нам допоможемо утилитка. Вона запускає обрану виртуалку в фоновому режимі і поміщає в трей іконку.

Натиснувши на іконку правою кнопкою побачимо меню, за допомогою якого можна управляти запущеної віртуальної машиною. Погодьтеся, так це робити набагато зручніше.

Підключенні по ssh за допомогою putty

Працювати з сервером набагато зручніше використовуючи ssh-клієнт. Ось уже багато років стандартом для win систем залишається putty. Детально на всіх настройках цього клієнта я зупинятися не буду, давайте просто підключимося до нашого сервера. Запускаємо putty і вводимо в "HostName" IP адреса нашого сервера 192.168.56.80. Підключаться до нього ми будемо постійно, тому давайте збережемо цей IP в списку. В "Saved Sessions" вводимо назву і натискаємо кнопку "Save". А що б підключиться - натискаємо "Open".


і бачимо рядок запрошення нашого сервера:

Після того як установка CentOS 7 завершена - нам треба зробити чимало налаштувань, що б підлаштувати сервер під себе. Про це наступній частині.

У мене є тільки що встановлений сервер з CentOS 7 на VDS з виртуализацией KVM.

Я розповім про те, як зробити базову настройку сервера для використання його в будь-якій якості на ваш розсуд. Це може бути web сервер, vpn сервер, сервер моніторинга.

Я розповім про початкових настройках системи CentOS, які підвищують безпеку і зручність роботи з сервером. Зазначу, що в 7-й версії системи відбулися деякі зміни в порівнянні з попередніми версіями.

  1. Вступ
  2. Початкова настройка CentOS 7
  3. Вказуємо мережеві параметри
  4. налаштовуємо firewall
  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

Насамперед оновимо базову систему:

# Yum -y update

Для зручності адміністрування, я завжди встановлюю Midnight Commander, або просто mc:

# ifconfig

І побачите відповідь:

Bash: ifconfig: command not found

Принаймні я, коли вперше це побачив, пристойно здивувався. Подумав, що помилився в написанні команди, перевірив ще раз все кілька разів, але без результату. Виявилося, що треба окремо встановити пакет для виконання ifconfig та інших мережевих утиліт.

Замість ifconfig в CentOS 7 тепер утиліта ip. Я не розумію, навіщо пиляти окремі програми для управління мережевими настройками, якщо ifconfig і так відмінно справляється із завданням. До того ж мені завжди подобалося, що в різних дистрибутивах Лінукс все приблизно однакове. За допомогою ifconfig можна налаштувати мережу не тільки в linux, але і в freebsd. Це зручно. А коли в кожному дистрибутиві свій інструмент це незручно. Так що пропоную встановити звичний ifconfig.

Зробимо це:

# Yum -y install net-tools.x86_64

Тепер, щоб у нас працювали команди nslookup або, наприклад, host необхідно встановити пакет bind-utils. Якщо цього не зробити, то на команду:

# nslookup

Буде висновок:

Bash: nslookup: command not found

Так що встановлюємо bind-utils:

# Yum -y install bind-utils

Відключаємо SELinux. Його використання та налаштування окрема розмова. Зараз я не буду цим займатися. Так що відключаємо:

# Mcedit / etc / sysconfig / selinux

міняємо значення SELINUX = disabled

Щоб зміни вступили в силу, перезавантажуємося:

# reboot

Вказуємо мережеві параметри

Тепер проведемо настройку мережі в CentOS. Для цього відкриваємо файл / etc / sysconfig / network-scripts / ifcfg-eth0

# Mcedit / etc / sysconfig / network-scripts / ifcfg-eth0

В поле IPADDR вводимо свою адресу, в NETMASK маску мережі, в GATEWAY шлюз, DNS1 адреса ДНС сервера. Зберігаємо файл і перезапускаємо мережу для застосування налаштувань:

# /Etc/init.d/network restartНастраіваем firewall

Дуже детально питання настройки iptables в CentOS 7 я розглянув окремо. Зараз ми швидко і просто налаштуємо firewall. У CentOS 7 в якості фаервола виступає iptables. За замовчуванням він запущений. Щоб подивитися поточні правила, потрібно ввести команду:

# Iptables -L -v -n

Відразу хочу попередити, що не маючи доступу до консолі сервера, налаштовувати firewall погана ідея. Навіть якщо ви дуже добре розумієте що робите і робили подібне багато разів, все одно є шанс залишитися без доступу до сервера. Так що в першу чергу перед налаштуванням iptables перевіряємо доступ до консолі через KVM або фізично.

У 7-й версії CentOS для управління iptables розроблений новий інструмент під назвою firewalld і все керування здійснюється через нього. Я не зрозумів навіщо це зробили, і не можу сказати, зручніше з ним стало чи ні. Як на мене, так зручніше використовувати одні і ті ж напрацювання по iptables. Мігруючи від сервера до сервера і від дистрибутива до дистрибутива, я просто редагую скрипт налаштувань фаєрвола.

Але CentOS чогось придумали firewalld, в Ubuntu варто ufw, але суть одна і та ж - це утиліти для конфігурування iptables, який один і той же у всіх дистрибутивах. Я звик керувати iptables через самопісний скрипт, який переношу від сервера до сервера і редагую під конкретні потреби. Цим скриптом я і поділюся. Так що для початку зупинимо і відключимо firewalld:

# Systemctl stop firewalld
# Systemctl disable firewalld
rm "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service"
rm "/etc/systemd/system/basic.target.wants/firewalld.service"

Встановимо утиліти для iptables:

# Yum -y install iptables-services

Включимо автозапуск iptables:

# Systemctl enable iptables

Тепер створимо файл /etc/iptables_rules.sh такого змісту:

#! / Bin / bash
#
# Оголошення змінних
export IPT = "iptables"

# Інтерфейс який дивиться в інтернет
export WAN = eth0
export WAN_IP = 149.154.71.205

# Очищення всіх ланцюжків iptables
$ IPT -F
$ IPT -F -t nat
$ IPT -F -t mangle
$ IPT -X
$ IPT -t nat -X
$ IPT -t mangle -X

# Встановимо політики за замовчуванням для трафіку, який не відповідає жодному з правил
$ IPT -P INPUT DROP
$ IPT -P OUTPUT DROP
$ IPT -P FORWARD DROP

# Дозволяємо локальний трафік для loopback
$ IPT -A INPUT -i lo -j ACCEPT
$ IPT -A OUTPUT -o lo -j ACCEPT

# Дозволяємо вихідні з'єднання самого сервера
$ IPT -A OUTPUT -o $ WAN -j ACCEPT

# Стан 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 ACCEPT
# Відкриваємо порт для DNS
$ IPT -A INPUT -i $ WAN -p udp --dport 53 -j ACCEPT
# Відкриваємо порт для NTP
$ IPT -A INPUT -i $ WAN -p udp --dport 123 -j ACCEPT

# Логування
# Все що не дозволено, але ломиться відправимо в ланцюжок 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 і записів там буде дуже багато. Так що в звичайній роботі ці рядки потрібно закомментировать, і використовувати тільки під час налагодження. Більш докладний опис правил і приклади налаштувань firewall в разі, коли ваш сервер є шлюзом локальної мережі, наведено за посиланням на початку розділу.

Робимо файл c правилами виконуваним і запускаємо:

# 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 користувачеві root. Мені так зручніше. Проблем з цим у мене ніколи не виникало. Якщо ви вважаєте, що це не безпечно, не чіпайте цю настройку. Щоб дозволити користувачеві root підключатися по ssh, розкоментуйте рядок PermitRootLogin yes.

Зберігаємо файл. Тепер обов'язково змінюємо налаштування iptables, додаємо в дозволені підключення замість 22 порту 25333. Якщо цього не зробити, то після перезапуску sshd ми втратимо віддалений доступ до сервера. Отже, відкриваємо /etc/iptables_rules.sh і міняємо в рядку

$ IPT -A INPUT -i $ WAN -p tcp --dport 22 -j ACCEPT

22 на 25333 і виконуємо файл.

Наше поточне з'єднання не обірветься, так як воно вже встановлено, але заново підключитися по ssh до 22 порту вже н вийде.

Перезапускаємо sshd:

# Systemctl restart 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 порту.

налаштовуємо час

Дізнатися, який час на сервері можна за допомогою команди date:

Щоб змінити часовий пояс, необхідно вибрати відповідний файл годинної зони в / 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 start ntpd
# Systemctl enable 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:

# Rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# Yum -y install 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 install iftop

І два цікавих диспетчера задач, я найчастіше користуюся htop, але іноді стане в нагоді і atop. Ставимо обидва, самі подивіться, розберетеся, що вам більше подобається, підходить:

# Yum -y install htop
# Yum -y install atop

Ось як виглядає htop:

На цьому у мене все. Базова настройка CentOS 7 закінчена, можна приступати до встановлення та налаштування основного функціоналу.

Відео з налаштування CentOS 7

висновок

Ми виконали деякі початкові кроки по налаштуванню, які я зазвичай роблю при підготовці сервера. Я не претендую на абсолютну істину, можливо щось пропускаю або роблю не зовсім вірно. Буду радий розумним і осмисленим коментарям і зауваженням з пропозиціями.

Корисно після настройки відразу ж підключити сервер до системи моніторингу. Або налаштувати її, якщо у вас ще немає.

За інформацію спасибі: http://serveradmin.ru

підготовка сервера

Перевіряємо наявність підтримки з боку процесора:

cat / proc / cpuinfo | egrep "(vmx | svm)"

Якщо команда нічого не поверне, на сервері відсутня підтримка віртуалізації або вона відключена в налаштуваннях БІОС. Сам KVM поставити на такий сервер можна, але при спробі ввести команду управління гіпервізором ми отримаємо помилку «WARNING KVM acceleration not available, using" qemu "». В такому випадку необхідно перезавантажити сервер, увійти в БІОС, знайти підтримку технології віртуалізації (Intel VT або AMD-V) і включити її.

Створимо каталоги, в яких будемо зберігати все, що стосується віртуалізації (пропоновані за умовчанням не зручні):

mkdir -p / kvm / (images, iso)

* каталог / Kvm / imagesдля віртуальних дисків; / Kvm / iso- для iso-образів.

Установка і запуск

Установка виконується зі сховищ за допомогою такої команди:

yum install qemu-kvm libvirt virt-install

* де qemu-kvm- сам гипервизор; libvirt- бібліотека управління виртуализацией; virt-install- утиліта для управління віртуальними машинами.

Дозволяємо автозапуск:

systemctl enable libvirtd

Запускаємо KVM:

systemctl start libvirtd

Налаштування мережі

У даній інструкції розглянемо використання мережевого моста.

Налаштовуючи мережевий міст через віддалене підключення, уважно перевіряйте вводяться дані. У разі помилки з'єднання буде перервано.

Встановлюємо пакет для роботи з bridge:

yum install bridge-utils

Дивимося список мережевих інтерфейсів і їх налаштувань:

У моєму прикладі були наступні дані:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00
inet 127.0.0.1/8 scope host lo

inet6 :: 1/128 scope host
valid_lft forever preferred_lft forever
2: enp4s0f0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

inet 192.168.1.24/24 brd 192.168.1.255 scope global enp4s0f0
valid_lft forever preferred_lft forever

valid_lft forever preferred_lft forever
3: enp5s5:

4: virbr0:


valid_lft forever preferred_lft forever
5: virbr0-nic:
link / ether 52: 54: 00: cd: 86: 98 brd ff: ff: ff: ff: ff: ff

* З цього для нас важливі enp4s0f0- реальний мережевий інтерфейс з налаштованим IP-адресою 192.168.1.24 , Через який йде підключення сервера до локальної мережі (з нього ми будемо робити міст); 00: 16: 76: 04: 26: c6- mac-адресу реального ethernet адаптера; virbr0- віртуальний мережевий адаптер.

Редагуємо настройки реального адаптера:

vi / etc / sysconfig / network-scripts / ifcfg-enp4s0f0

Наводимо його до виду:

ONBOOT = yes
BRIDGE = br0
TYPE = Ethernet
DEVICE = enp4s0f0
BOOTPROTO = none

Створюємо інтерфейс для мережевого моста:

vi / etc / sysconfig / network-scripts / ifcfg-br0

DEVICE = br0
TYPE = Bridge
ONBOOT = yes
BOOTPROTO = static
IPADDR = 192.168.1.24
NETMASK = 255.255.255.0
GATEWAY = 192.168.1.1
DNS1 = 8.8.8.8
DNS2 = 77.88.8.8

Перезапускаємо мережеву службу:

systemctl restart network

Мережеві настройки повинні змінитися - в моєму випадку:

2: enp4s0f0: mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
link / ether 00: 16: 76: 04: 26: c6 brd ff: ff: ff: ff: ff: ff
3: enp5s5: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link / ether 00: 16: 76: 04: 26: c7 brd ff: ff: ff: ff: ff: ff
4: virbr0: mtu 1500 qdisc noqueue state DOWN qlen 1000
link / ether 52: 54: 00: cd: 86: 98 brd ff: ff: ff: ff: ff: ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link / ether 52: 54: 00: cd: 86: 98 brd ff: ff: ff: ff: ff: ff
6: br0: mtu 1 500 qdisc noqueue state UP qlen 1000
link / ether 00: 16: 76: 04: 26: c6 brd ff: ff: ff: ff: ff: ff
inet 192.168.1.24/24 brd 192.168.1.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80 :: 216: 76ff: fe04: 26c6 / 64 scope link
valid_lft forever preferred_lft forever

Наполягаємо перенаправлення мережевого трафіку:

vi /etc/sysctl.d/99-sysctl.conf

net.ipv4.ip_forward = 1

Застосовуємо настройки:

sysctl -p /etc/sysctl.d/99-sysctl.conf

Перезапускаємо libvirtd:

systemctl restart libvirtd

Створення віртуальної машини

Дивимося доступні варіанти гостьових операційних систем:

Для створення першої віртуальної машини вводимо наступну команду:

virt-install -n FirstTest \
--noautoconsole \
--network = bridge: br0 \
--ram 1024 --arch = x86_64 \
--vcpus = 1 --cpu host --check-cpu \
--disk path = / kvm / images / FirstTest-disk1.img, size = 16 \
--cdrom /kvm/iso/CentOS-7-x86_64-Minimal-1611.iso \
--graphics vnc, listen = 0.0.0.0, password = my_password \
--os-type linux --os-variant = rhel7 --boot cdrom, hd, menu = on

  • FirstTest -ім'я створюваної машини;
  • noautoconsole -після створення не вдалося підключитися автоматично до консолі віртуальної машини;
  • network -тип мережі (в нашому прикладі мережевий міст);
  • ram -обсяг оперативної пам'яті, який буде виділений;
  • vcpus -кількість віртуальних процесорів;
  • disk -віртуальний диск: path - шлях до диска; size - його обсяг;
  • cdrom -віртуальний привід з образом системи;
  • graphics -параметри підключення до віртуальної машини за допомогою графічної консолі (в даному прикладі використовуємо vnc); listen - на який адресу приймає запити vnc (в нашому прикладі на всіх); password - пароль для підключення за допомогою vnc;
  • os-variant -гостьова операційна система (весь список ми отримували командою osinfo-query os, В даному прикладі встановлюємо Reв Hat 7 / CentOS 7).

Дозволяємо автостарт для створеної ВМ:

virsh autostart FirstTest

Підключення до віртуальної машини

Для подальшої установки операційної системи викачуємо VNC-клієнт на комп'ютер адміністратора, наприклад, TightVNC і встановлюємо його.

На сервері дивимося, на якому порту слухає VNC створеної машини:

virsh vncdisplay FirstTest

в моєму випадку було:

Це означає, що потрібно до 5900 додати 0. Якщо результат команди буде: 1 - 5900 + 1 = 5901 і так далі.

Відкриваємо порт на брандмауері:

firewall-cmd --permanent --add-port = 5900-5905 / tcp

firewall-cmd --reload

* В даному прикладі додано відразу 6 tcp-портів від 5900 до 5905 .

Запускаємо встановлений TightVNC Viewer, у вікні вводимо IP-адресу сервера KVM і порт, на якому слухає наша ВМ (в даному прикладі, 5900):

натискаємо Connect. Програма запросить пароль - вводимо той, що вказали при створенні ВМ, (в даному прикладі, my_password). Ми підключимося до віртуальної машини, як ніби, до неї підключений монітор або віддалена консоль KVM.

Admin і пароль, який створили при виконанні команди engine-setup. Після успішного входу можна управляти віртуальними машинами через веб-інтерфейс.

Сподобалася стаття? Поділіться з друзями!