Архив метки: Linux

Установка и настройка KVM на Ubuntu Server

Сегодня в статье установим и настроим KVM сервер на операционной системе Ubuntu Server 20.04 LTS.




KVM (kernel-based virtual machine) – это программное обеспечения для Linux, использующее аппаратные средства x86-64-совместимых процессоров для работы с технологией виртуализации Intel VT или AMD SVM.




Подготовка к установки KVM на Ubuntu Server




Для начала давайте проверим поддерживается ли виртуализация Intel VT или AMD-V нашим процессором, для этого установим небольшую утилиту:




sudo apt install cpu-checker




Далее набираем команду:




 kvm-ok




Если вывод будет такой как ниже, то виртуализация поддерживается вашим процессором:




 INFO : /dev/kvm exists KVM acceleration can be used




Ещё один способ проверить поддерживается ли технология вашим CPU это посмотреть его флаги:




 egrep -c "svm|vmx" /proc/cpuinfo 




Если вывод не пустой, значит поддерживается, и можно переходить к установке KVM .




Установка KVM на Ubuntu Server




Для того чтобы установить KVM из терминала набираем следующую команду:




sudo apt install qemu-kvm virtinst libvirt-clients libvirt-daemon-system




Для более ранних ОС:




sudo apt install qemu-kvm libvirt-bin virtinst




Следующим шагом при реализации kvm виртуализации будет настройка сетевого моста на вашем сервере. Как это сделать я писал в этой статье.




Да чуть не забыл, управление виртуальными машинами из консоли производится при помощи утилиты virsh. Так что для начала можно посмотреть man или help данной утилиты:




man virsh
virsh -h 




Давайте рассмотрим некоторые полезные команды необходимые для управления нашими будущими гостевыми ОС.




Смотрим список доступных сетей:




sudo virsh net-list




Просмотр информации о конкретной сети (с именем default):




 sudo virsh net-info default




Если уже был сконфигурирован сетевой мост то доступные интерфейсы можно посмотреть так:




sudo virsh iface-list




Смотрим список доступных оптимизаций для гостевых ОС:




sudo virt-install --os-variant list




У меня данная команда не заработала. Если вы столкнулись с такой же проблемой, то для просмотра доступных гостевых ОС проделываем следующее.




Устанавливаем необходимую утилиту:




sudo apt install libosinfo-bin




Теперь набираем команду:




 osinfo-query os




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







Ну вот, когда мы знаем всю интересующую нас информацию можно приступать к установке виртуальной машины.




Установка виртуальной машины Ubuntu 16.04 на KVM




В качестве гостевой системы установим Ubuntu 16.04 с GUI. Также для меня пути по умолчанию не годятся:




  • /var/lib/libvirt/boot/ — ISO-образы для установки гостевых систем;
  • /var/lib/libvirt/images/ — образы жестких дисков гостевых систем;
  • /var/log/libvirt/ — тут следует искать все логи;
  • /etc/libvirt/ — каталог с файлами конфигурации.




Поэтому создаём директорию /home/kvm, а в ней две директории для ISO образов и образов наших гостевых ОС.




sudo mkdir -p /home/kvm/{iso,vhdd}




Качаем ISO-образ системы
в директорию /home/kvm/iso созданную ранее:




 sudo wget -P /home/kvm/iso https://obu4alka.ru/wp-content/Install/Install_OS/ubuntu-16.04.5-desktop-amd64.iso




После завершения скачивания создадим нашу виртуальную машину на дистрибутиве Ubuntu Desktop 16.04 с 2 CPU, 2 Гб RAM и 20 Гб места на диске, подключенную к сети br0.:




 sudo virt-install  
--virt-type=kvm  
--name ubuntu-desktop 
--ram=2048  
--vcpus=2  
--os-variant=ubuntu16.04  
--autostart  
--cdrom=/home/kvm/iso/ubuntu-16.04.5-desktop-amd64.iso  
--network=bridge:br0,model=virtio  
--graphics vnc,listen=0.0.0.0,password=qwerty  
--disk path=/home/kvm/vhdd/ubuntu16.04.img,size=20 




Теперь давайте разберемся что же мы тут написали:
--name – имя виртуальной машины
--ram – количество выделенной памяти.
--vcpus – количество ядер выделенных профессоров
--os-variant – оптимизация под конкретную гостевую ОС.
--autostart – автоматический запуск гостевой ОС.
--cdrom – расположение iso образа устанавливаемой ОС.
--network – к какой сети будет подключена наша виртуальная машина,model=virtio – модель сетевого адаптера.
--graphics – способ подключения к нашей гостевой ОС (в данном случае vnc), listen=0.0.0.0,password=qwerty – на каких IP интерфейсах принимать соединения и с каким паролем).
--disk path – расположение образа виртуального hdd (диска), size=20 – размер диска 20 Гбайт.




Основные команды virsh




Давайте теперь рассмотрим основные команды для работы с KVM.




Получение списка всех гостевых ОС:




 sudo virsh list --all




Получение информации о конкретной гостевой ОС:




sudo virsh dominfo ubuntu-desktop




Запустить гостевую ОС:




 sudo virsh start ubuntu-desktop




Остановить гостевую ОС:




sudo virsh shutdown ubuntu-desktop




Приостановить гостевую ОС:




 sudo virsh suspend ubuntu-desktop




Возобновить работу гостевой ОС:




 sudo virsh resume ubuntu-desktop




Выключить гостевую ОС:




 sudo virsh destroy ubuntu-desktop




Перезагрузить гостевую ОС:




sudo virsh reboot ubuntu-desktop




Сбросить гостевую ОС:




 sudo virsh reset ubuntu-desktop




Склонировать гостевую ОС:




sudo virt-clone -o ubuntu-desktop -n ubuntu-desktop-clone  
--file /home/kvm/vhdd/ubuntu-desktop-clone.img




Включить/выключить автозапуск:




sudo virsh autostart ubuntu-desktop  
sudo virsh autostart 
--disable ubuntu-desktop




Запуск virsh в диалоговом режиме (все команды в диалоговом режиме — как описано выше):




sudo virsh




Установка Windows 7 на kvm с помощью virt-install




 sudo virt-install  
--name WIN-7  
--autostart  
--network=bridge:br0  
--ram 2048  
--disk path=/home/kvm/vhdd/wIN-7.img,size=30  
--cdrom /home/Install/Install_OS/Windows 7 Ultimate.iso  
--graphics vnc,listen=0.0.0.0,password=qwerty 




Обратите внимание на Слэш в имени пути к iso-образу. Оборотный Слэш ставится если у вас в названии файла есть пробелы.




На сервере вводим:




virsh vncdisplay WIN-7




команда покажет, на каком порту работает VNC для машины WIN-7. У меня было:




:1




:1 значит, что нужно к 5900 прибавить 1 — 5900 + 1 = 5901.




Установка Virt-Manager




Для более комфортной работы с виртуальными машинами можно установить virt-maneger и с него производить установку и настройку всех виртуальных машин.
Для того чтобы установить virt-manager нам понадобится:
Сервер с графическим интерфейсом (Ubuntu Desktop)
ПК с графическим интерфейсом (Ubuntu Desktop | Linux Mint)




Я же буду использовать свой ПК с операционной системой Linux Mint 19. И так для установки пакета virt-manager в терминале набираем:




sudo apt install virt-manager



[endtxt]




RSS




2019-03-29T10:32:40
KVM

Настройка DNSSEC на Ubuntu Server + Bind9

Технология DNS в нынешнем виде была разработана более 20 лет назад, когда о защите информации мало кто задумывался. Поэтому в сегодняшним состоянии система DNS имеет несколько ключевых уязвимостей.

Достоверность ответа DNS-сервера никак не проверяется. Это позволяет отправить пользователя, обратившегося к доменному имени, на произвольный IP-адрес, подменив ответ сервера. Читать

Рассылка E-Mail с помощью Mailgun API + PHP

PHP имеет встроенные функции для отправки почтовых сообщений однако обычно такие письма сразу же попадают в спам. Поэтому необходимо использовать API для отправки электронных писем, которые будут попадать именно в папку «Входящие» почтового ящика адресата, а не в спам. Большинство APIплатные, но если вам необходимо с чего-то начать нужен бесплатный сервис. Тут на сцене появляется Mailgun. 10.000 электронных писем бесплатно каждый месяц. Регистрация также бесплатная, данные кредитной карты не требуются.




Зарегистрируйтесь на https://mailgun.com/signup и войдите в свой аккаунт. Для использования сервиса вам понадобиться Mailgun API Key а также указать свой домен. Также необходимо будет подвердить право владения доменом. Без этого, количество писем будет ограничено 300 в сутки.
Перейдите на https://mailgun.com/cp/my_account и в левом верхнем углу вы увидите свой API Key, строка вида key-3358fhrhs333dsj43e3e5532.




Mailgun предлагает собственный класс для отсылки сообщений, однако здесь я бы хотел бы поделиться более простым решением на базе PHP + cURL. На базе cURL написана функция send_mail:




<? function send_mail($email,$subject,$msg) { 
$api_key="";/* Api Key got from https://mailgun.com/cp/my_account */ 
$domain ="";/* Domain Name you given to Mailgun */ 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, 'api:'.$api_key); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($ch, CURLOPT_URL, 'https://api.mailgun.net/v2/'.$domain.'/messages'); 
curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'from' => 'Open <mail@youriste.com>',
'to' => $email,
'subject' => $subject,
'html' => $msg
));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
?>




Не забудьте задать переменные $api_key и $domain.
Теперь можно отсылать письма, передавая в функцию параметры:




$email - адрес получателя
$subject - тема письма
$msg - тело письма




Пример:




<?
send_mail("receiver@domain.com", "Hello!", "Have a nice day!");
?>



2019-03-20T13:08:44
Без рубрики

Редактирование файла hosts в Linux: зачем это нужно?

На вашем компьютере есть один файл, который служит небольшим шлюзом между вами и сетью. Это называется файлом hosts. Если вам нужно заблокировать веб-сайты или создать персональные веб-ярлыки в Linux, вы можете заняться этими заданиями, добавив или изменив несколько строк в файле hosts.

Что такое файл Linux Hosts?

Файл hosts — это простой текстовый файл, который все операционные системы используют для перевода имен хостов (также называемых веб-адресами или URL-адресами) в IP-адреса. Когда вы вводите имя хоста, такое как wikipedia.org, ваша система ищет файл хостов, чтобы получить IP-адрес, необходимый для подключения к соответствующему серверу.

Если вы откроете файл hosts, вы быстро заметите, что в нем нет каталога всего Интернета. Вместо этого может быть только пара строк и все. Что дает?

Оказывается, ваша система сначала проверит файл hosts, прежде чем искать сайт на DNS-серверах, определенных в настройках вашей сети (обычно это DNS-серверы вашего провайдера).

Это означает, что вы можете использовать файл hosts, чтобы добавить к тому, что DNS-серверы не могут предоставить (например, псевдонимы для местоположений в вашей локальной сети, что в противном случае возможно только в том случае, если в вашей локальной сети настроен DNS-сервер) или переопределите IP-адреса, которые обычно предоставляют ваши DNS-серверы.

Например, если вы попросите wikipedia.org, DNS-серверы вернут IP-адрес Википедии на ваш компьютер. Но если вы хотите заблокировать Википедию на этом компьютере, вы можете добавить в файл hosts запись о том, что wikipedia.org указывает на какой-то другой IP-адрес, который отличается от фактического IP-адреса Википедии.

Есть много других вещей, которые вы можете сделать с файлом hosts, но это лишь некоторые основные примеры, и другие варианты использования сильно зависят от ваших потребностей.

Расположение файла хоста Linux

В Linux вы можете найти файл hosts в /etc/hosts. Поскольку это простой текстовый файл, вы можете открыть файл hosts с помощью предпочитаемого вами текстового редактора.

Однако, поскольку файл hosts является системным файлом, вам понадобятся права администратора для сохранения изменений. Таким образом, чтобы отредактировать файл с помощью текстового редактора на основе терминала Linux, такого как nano , вам нужно сначала набрать sudo для получения доступа суперпользователя:

sudo nano /etc/hosts

Чтобы использовать графический текстовый редактор, такой как gedit, вместо этого вы можете попробовать gksu:

gksu gedit /etc/hosts

Вы должны использовать терминал, чтобы вы могли запустить соответствующее приложение с правами администратора. Просто замените nano или gedit вашим любимым терминальным или графическим текстовым редактором. В nano, как только вы закончите редактирование файла, нажмите Ctrl + X , а затем y, чтобы подтвердить перезапись изменений.

Как добавить сайты в файл hosts

В файле hosts каждая запись имеет свою собственную строку. Синтаксис прост. Введите IP-адрес, на который вы хотите перевести имя хоста, нажмите клавишу Tab на клавиатуре, а затем введите имя хоста.

Например, чтобы заблокировать Википедию, вы должны ввести (не забывая использовать клавишу табуляции, а не пробел):

127.0.0.1 wikipedia.org

127.0.0.1 — это петлевой IP-адрес, который всегда будет указывать на вашу собственную систему. Поскольку Интернет не хранится на вашем компьютере, ваш браузер скажет, что сайт не может быть найден. Теперь он эффективно заблокирован.

Если вы чувствуете, что терминал запугивает вас, ознакомьтесь с приложением Linux Mint Domain Blocker (также известным как mintnanny). Он добавит записи в файл hosts, которые указывают указанные вами имена хостов на 127.0.0.1. Но чтобы сделать что-то еще, вам все равно придется вносить изменения в текстовом редакторе.

Скачать: блокировщик домена (бесплатно)

Создать ярлыки в файле Hosts

Если у вас есть компьютер в домашней сети (например, с IP-адресом 192.168.1.10), на котором есть простой веб-сайт, который делает что-то полезное для вас, вы можете ввести в свой файл hosts следующее:

192.168.1.10 homeserver

Затем, если вы откроете свой браузер и просто http://homeserver, он автоматически перенаправит вас на 192.168.1.10. И это намного проще, чем вводить IP-адрес каждый раз.

Кроме того, вы можете использовать файл hosts для создания ярлыков для определенных сайтов в Интернете. Используйте команду, такую ​​как nslookup, чтобы найти IP-адрес веб-сайта, затем добавьте его в файл hosts вместе с нужным ярлыком, как в примере выше. Но это работает только на сайтах с выделенными IP-адресами. Вероятно, он не будет работать с большинством сайтов, которые вы посещаете.

Потенциальные проблемы с файлом Hosts

Итак, мы установили, как вносить изменения в файл хоста, но у вас могут возникнуть проблемы при использовании Google Chrome. Этот веб-браузер имеет тенденцию игнорировать файл hosts, если вы не выполните одно из двух возможных действий:

  • Укажете http:// в начале каждого адреса. Например, если у вас заблокирована Википедия в файле hosts, Chrome обойдет блокировку, если вы просто wikipedia.com в адресную строку. Если вы введете http://wikipedia.com в адресную строку, она будет следовать за файлом hosts.
  • Отключите «Использование веб-службы для устранения ошибок навигации» в настройках Chrome, и тогда вам не придется каждый раз вводить http:// в начале. Это один из нескольких советов по Google Chrome стоит делать в любом случае.

Как вы измените файл Hosts?

Файл hosts предлагает простой способ заблокировать доступ к определенным веб-сайтам на вашем компьютере. Поскольку многие версии Linux не поставляются с встроенным программным обеспечением для родительского контроля, эти знания могут пригодиться, если вы решите завести своих детей на ПК с Linux.



2019-03-20T11:33:12
Вопросы читателей

Установка и настройка Systemback Debian | Ubuntu | Linux

Сегодня рассмотрим очень полезную утилиту под названием SystemBack.




SystemBack – позволяет создавать резервные копии и точки восстановления вашей системы, а также создавать Live-образа и iso-образа, основанного на вашей системе, с возможностью инсталляции на другие компьютеры.




Имеется ещё ряд полезных функций таких как:




  • обновление системы,



  • удаления старых ядер,



  • резервное копирование по расписанию,



  • восстановление системы.




Установка Systemback в Debian | Ubuntu | Linux




Дня начала давайте скачаем сам пакет Systemback по следующей ссылке:




Скачать SystemBack




Далее необходимо распаковать и установить скаченный архив. Откройте терминал и выполните следующие действия:




cd /путь/куда/загрузили/пакет
tar -xvf systemback-install_pack-1.9.3.tar.xz
cd systemback-install_pack-1.9.3/
sudo sh ./install.sh




или можно пойти другим путем, добавить репозиторий в source лист:




sudo add-apt-repository ppa:nemh/systemback
sudo apt update
sudo apt install systemback




По окончании установки вы можете открыть Systemback из системного меню.




Программу нужно запускать с правами суперпользователя (root). При запуске из главного меню системы пароль будет запрошен автоматически. При запуске из терминала может возникнуть сообщение: «Root privileges are required for running the Systemback!».




Чтобы сообщение не появлялось необходимо запускать утилиту через sudo:




sudo systemback




Если программа установилась без поддержки русского языка, тогда доустановите пакеты локализации:




sudo apt-get install systemback-locales




Настройка русского языка в SystemBack




Если по какой либо причине русская локализация работает некорректно, например созданный iso-образ отображается при загрузке кракозябрами, то чтобы исправить это, вам необходимо загрузить исправленный языковой пакет, которым заменим пакет в SystemBack.
Загрузите и распакуйте языковый пакет по следующей ссылке:




Скачать SystemBack_ru-uk




Или так




cd /home/ваш_юзер/ 
wget https://yadi.sk/d/8ERBrAHRpyzXk 




Распаковываем скачанный архив в директории юзера:




unzip systemback_lang.zip 




После распаковки в директории будут располагаться файлы языковых пакетов которыми надо заменить существующие файлы в утилите SystemBack.




Для замены локализации проделаем следующие действия:




  • Удалить файл systemback_ru.qm установленный в системе. Для этого в терминале набираем следующую команду:




sudo rm /user/share/systemback/lang/systemback_ru.qm 




  • Копируем нужный языковой файл в директорию с программой:




sudo cp /home/ваш_юзер/systemback_lang/systemback_ru.qm /user/share/systemback/lang/




  • После замены файла, откройте Systemback – Настройки:



  • Перейдите в пункты и язык.




После всех этих изменений вы можете создать live-систему и iso-образ, основанных на вашей системе, с возможностью установки на другие компьютеры:




Все созданные файлы находятся в директории home, файловой системы дистрибутива:




Запишите iso-образы на флешку специальной программой (Cоздание загрузочного диска; mintinstall, Etcher и т.д.) и загрузитесь с неё.




Теперь Systemback Live будет отображаться без кракозябров:




Примечание. Подобное можно выполнить если у вас украинская локализация. В этом случае применяется второй файл из архива:




systemback_uk.qm.




Исправляем ошибку XDG_RUNTIME_DIR




Если после запуска у вас появляется предупреждение вроде этого:




QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root’

Небезопасная авторизация X Windows




То для исправления данной ошибки нам необходимо сделать следующее:




Создадим файл для sudoers




sudo visudo -f /etc/sudoers.d/local




внесем в него следующее:




Defaults env_keep += "DISPLAY XAUTHORITY"




После данной манипуляции предупреждение должно исчезнуть.



[endtxt]




. . . .




2019-03-20T07:46:30
BackUp

Установка RPM-пакетов в Ubuntu

Репозитории Ubuntu содержат тысячи пакетов deb, которые можно установить из Центра программного обеспечения Ubuntu или с помощью утилиты командной строки apt. Deb — это формат установочного пакета, используемый всеми дистрибутивами на основе Debian, включая Ubuntu. Некоторые пакеты недоступны в стандартных репозиториях Ubuntu, но их можно легко установить, включив соответствующий источник.

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

Хотя не так часто, некоторые программы могут распространяться только в виде пакета RPM. RPM — это формат пакета, используемый Red Hat и его производными, такими как CentOS. К счастью, есть инструмент под названием alien, который позволяет нам установить RPM-файл в Ubuntu или преобразовать RPM-пакет в файл Debian.

 

Это не рекомендуемый способ установки пакетов программного обеспечения в Ubuntu. По возможности, вы должны предпочитать установку программного обеспечения из репозиториев Ubuntu.

Не все пакеты RPM могут быть установлены в Ubuntu. Установка RPM, упакованного в Ubuntu, может привести к конфликтам зависимостей пакетов.

Вы никогда не должны использовать этот метод для замены или обновления важных системных пакетов, таких как libc, systemd или других служб и библиотек, которые необходимы для правильного функционирования вашей системы. Это может привести к ошибкам и нестабильности системы.

 

Alien — это инструмент, который поддерживает преобразование между форматами файлов Red Hat rpm, Debian deb, Stampede slp, Slackware tgz и Solaris pkg.

Перед установкой инопланетного пакета убедитесь, что репозиторий Universe включен в вашей системе:

sudo add-apt-repository universe

Как только хранилище будет включено, обновите индекс пакетов и установите пакет с alien:

sudo apt updatesudo apt install alien

Команда выше также установит необходимые инструменты сборки.

 

Чтобы преобразовать пакет из RPM в формат DEB, используйте команду alien, а затем имя пакета RPM:

sudo alien package_name.rpm

 

В зависимости от размера пакета преобразование может занять некоторое время. В большинстве случаев вы увидите предупреждающие сообщения на вашем экране. Если пакет успешно конвертирован, вывод покажет, что пакет DEB сгенерирован:

package_name.deb generated

 

Чтобы установить пакет deb, вы можете использовать утилиту dpkg или apt:

sudo dpkg -i package_name.deb

sudo apt ./package_name.deb

 

Пакет должен быть установлен, если он совместим с вашей системой и все зависимости соблюдены.

Вы должны войти в систему как пользователь с доступом sudo, чтобы иметь возможность устанавливать пакеты в вашей системе Ubuntu.

 

Вместо того, чтобы конвертировать и затем устанавливать пакет, вы можете использовать опцию -i, которая скажет инопланетянину установить RPM-пакет напрямую.

sudo alien -i package_name.rpm

 

Приведенная выше команда автоматически сгенерирует и установит пакет и удалит файл пакета после его установки.

 

Из этой статьи вы узнали, как устанавливать RPM-пакеты в Ubuntu.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2019-03-17T15:24:48
Настройка Ubuntu