Лабораторная работа №8. ЛВС, web-сервер с CMS.

Основные теоритические сведения

Цель: Получить теоритических и практических навыков построения ЛВС и web-сервера на примере установки CMS.

ЛВС (Локальная вычислительная сеть) - компьютерная сеть, покрывающая обычно относительно небольшую территорию или небольшую группу зданий (дом, офис, фирму, институт). Также существуют локальные сети, узлы которых разнесены географически на расстояния более 12 500 км (космические станции и орбитальные центры). Несмотря на такие расстояния, подобные сети всё равно относят к локальным.

Типы подключения в Oracle VM VirtualBox

Не подключен

В этом режиме, VirtualBox сообщает гостю что сетевой адаптер есть, но он не подключен – так как если бы Ethernet кабель не присоединен к карте. Таким образом возможно симулировать «выдергивание» кабеля из виртуальной сетевой карты и обрыв соединения,что может быть полезно для информирования гостевой ОС об отсутствии сетевого соединения, но возможности его настройки.

Network Address Translation (NAT)

Режим Network Address Translation (NAT) предоставляет наиболее простой способ доступа к внешней среде из виртуальной машины. Обычно, для него не требуется никаких настроек хоста и гостевой системы. Поэтому он является сетевым режимом, настраиваемым по умолчанию.

Виртуальная машина с сетевым интерфейсом в режиме NAT подключается к сети, также как реальный компьютер подключается к Internet через маршрутизатор. «Маршрутизатором» в данном случае выступает сетевой модуль VirtualBox, который обрабатывает сетевой трафик виртуальной машины. Недостаток режима NAT, как и в случае локальной сети за маршрутизатором, в том что виртуальная машина недоступна для внешней сети (internet); вы не можете обрабатывать сетевые запросы, пока не настроите переброс портов

Можно настроить сеть NAT, выбрав этот тип подключения в настройках сети, предварительно необходимо создать сеть NAT в Файл-Настройки-Сеть.

Сетевой мост

В данном режиме VirtualBox использует драйвер устройства на хост системе , который обрабатывает данные проходящие через физический сетевой интерфейс. Этот драйвер обычно называют «net filter». Он позволяет перехватывать VirtualBox пакеты из физической сети и изменять данные в них, а также создавать новые программные сетевые интерфейсы. Когда гость использует такой программный интерфейс, то выглядит это так как будто бы гостевая система подключается к физической сети, хост система может посылать и принимать данные от гостевой. Это означает, что вы можете использовать физический интерфейс хоста в качестве маршрутизатора или шлюза между гостевой системой и вашей физической сетью.

Внутренняя сеть

Режим Внутренняя сеть похож на режим Сетевой мост в котором ВМ может связываться с внешним миром. Однако, «внешний мир» ограничен другими виртуальными машинами на том же хосте и которые подключены к той же внутренней сети.

Хотя с технической стороны, все что можно сделать используя режим внутренняя сеть , можно также сделать в режиме сетевого моста, но в режиме внутренней сети есть преимущества в безопасности. В режиме моста, весь трафик проходит через физический интерфейс хоста. Поэтому возможно подключение анализаторов пакетов (например, Wireshark) к интерфейсу хоста и сбор всего трафика проходящего через него. Если по каким либо причинам вам необходимо чтобы две и более виртуальные машины имели защищенное соединение, скрывая свои данные от хост системы и других пользователей, то режим сетевой мост не является лучшим выбором.

Внутренние сети создаются автоматически, т.е. не существует централизованной настройки . Каждая внутренняя сеть идентифицируется своим именем. При существовании более чем одной виртуальной сетевой карты с одним идентификатором внутренней сети, драйвер VirtualBox автоматически поддерживает соединение этих интерфейсов в одну сеть, выступая в роли сетевого коммутатора. VirtualBox поддерживает полностью Ethernet коммутацию, широковещательную и многоадресную рассылку сетевых пакетов и режим promiscuous mode.

Виртуальный адаптер хоста

Данный режим можно использовать для создания сетей из хоста и нескольких виртуальных машин, без использования физического сетевого интерфейса хоста. На хосте создается виртуальный сетевой интерфейс (подобный петлевому интерфейсу) , обеспечивающий соединения между хост системой и виртуальными машинами.

Данный режим можно рассматривать как гибрид режимов сетевого моста и внутренней сети: как и режиме моста виртуальные машины могут соединяться друг с другом и с хост системой, как будто бы они соединены через физический коммутатор. Как и в режиме внутренней сети, нет необходимости в предоставления физического сетевого интерфейса и виртуальные машины не могут общаться с внешней сетью хоста, т.к. они никак не связаны с физическим сетевым интерфейсом.

При использовании режима внутренней сети, VirtualBox создает новый программный интерфейс на хосте, который добавляется к списку существующих сетевых интерфейсов хоста. Другими словами, в режиме сетевого моста существующий физический интерфейс используется для подключения виртуальных машин, а в режиме «виртуальный адаптер хоста» создается новый «петлевой» интерфейс хоста. В режиме внутренней сети трафик между виртуальными машинами не «виден», а трафик «петлевого» интерфейса возможно перехватить.

Режим виртуального адаптера хоста удобно использовать для нескольких предварительно настроенных виртуальных систем, которые предназначены для совместного использования. Например, одна виртуальная машина представляет собой web сервер который использует вторую с сервером базы данных. Другой дополнительный, сетевой интерфейс (мост) может соединить web сервер с внешним миром для выдачи данных, но внешнему миру не будет доступа к серверу базы данных.

Универсальный драйвер

Редко используемый режим универсального сетевого интерфейса (Rarely used modes share the same generic network interface), позволяет выбирать пользователю драйвер, который может быть включен в VirtualBox или поставляться с пакетом расширений (extension pack).

Примечание

Подробнее о настройке сети в VirtualBox можно прочитать на сайте virtualbox.

Утилита ping

Команда PING используется для проверки состояния между двумя сетевыми соединениями. Эти соединения могут быть локальными, глобальными или подключения к интернету в целом. Команда PING посылает пакеты информации с определением IP-адреса, а затем измеряет время, которое потребуется, чтобы получить ответ от указанного компьютера или устройства.

ping [ -LRUbdfnqrvVaAB] [ -c количество] [ -i интервал] [ -l преднагрузка] [ -p шаблон] [ -s размер-пакета] [ -t ttl] [ -w ограничение-на-время-работы] [ -F идентификатор-потока] [ -I адрес] [ -M указание] [ -Q тип-обслуживания] [ -S буфер-отправки] [ -T параметр-временной-метки] [ -W время-ожидания-ответа] [ переход …] назначение

Используем команду:

ping 192.168.58.103, где 192.168.58.103 - ip адрес цели

Получим следующую информацию:

  • IP адрес
  • Количество отправленных байт
  • Время, которое потребовалось для соединения в миллисекундах
  • TTL – время жизни пакета данных в протоколе IP, предельно допустимое время его пребывания в системе.

Предупреждение

Необходимо нажать CTRL+C, чтобы остановить команду и показать результаты.

Чем больше круглое число соединения в миллисекундах, тем выше ожидания, что может свидетельствовать о сетевой проблеме между вашим компьютером и сервером. <ping> использует обязательные датаграммы ECHO_REQUEST протокола ICMP для получения по этому протоколу ответов ECHO_RESPONSE от хоста или шлюза. Датаграммы ECHO_REQUEST состоят из заголовков IP и ICMP, структуры данных struct timeval и произвольного числа не смысловых байтов для заполнения пакета.

CMS

Система управления содержимым (контентом) (англ. Content management system, CMS) — информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления контентом (то есть содержимым).

Основные функции CMS:

  • Предоставление инструментов для создания содержимого, организация совместной работы над содержимым,
  • Управление содержимым: хранение, контроль версий, соблюдение режима доступа, управление потоком документов и т. п.,
  • Публикация содержимого,
  • Представление информации в виде, удобном для навигации, поиска.
  • В системе управления содержимым могут находиться самые различные данные: документы, фильмы, фотографии, номера телефонов, научные данные и так далее. Такая система часто используется для хранения, управления, пересмотра и публикации документации. Контроль версий является одним из основных её преимуществ, когда содержимое изменяется группой лиц.

WordPress

WordPress — система управления содержимым сайта с открытым исходным кодом, распространяемая под GNU GPL. Написана на PHP, в качестве сервера базы данных использует MySQL. Сфера применения — от блогов до достаточно сложных новостных ресурсов и интернет-магазинов. Встроенная система «тем» и «плагинов» вместе с удачной архитектурой позволяет конструировать практически любые проекты. WordPress выпущен под лицензией GPL версии 2.

Требования:

  • PHP version 5.6 or greater
  • MySQL version 5.5 or greater

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц»; произносится пи-эйч-пи) — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.

MySQL — свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

Задания к лабораторной работе

Часть 1

  • Установите на 4 виртуальные машины операционную систему Ubuntu Server. Условно назовем эти машины: Hacker, Server, WWW, DataBase.
_images/lvs.png
  • Настроите сеть. В настройках сети (По умолчанию Файл-> настройки-> сеть, на вкладке Виртуальные сети хоста) создаем 2 адаптера ( По умолчанию 1 уже создан).

  • Для каждого из них прописать разные IP-адреса 192.168.*.*, где * - любое число от 0 до 255 (Если хотите сделать все как на схеме, на первом оставьте значения по умолчанию - 192.168.56.1, а на втором 192.168.57.1). На уже имеющимся адаптере можете посмотреть настройки DHCP и, по аналогии, настроить DHCP для второго адаптера. DHCP-сервер будет выдавать всем подключенным в сеть машинам IP-адреса автоматически через определенные промежутки времени. В данной лабораторной работе настройка DHCP в VirtualBox никак не отразиться на ее выполнении, а наоборот, только упростит построение сети между виртуальными машинами.

  • Теперь в настройках каждой из виртуальных машин выберите вкладку сеть.

  • В машине Hacker создайте 2 адаптера. В первом, чтобы вы могли использовать интернет, выберите тип подключения NAT. Во втором - виртуальный адаптер хоста (если Вы делаете все по схеме выберите тот, где ip-адрес 192.168.56.*).

  • На машине Server создайте 3 адаптера. Первый - чтобы использовать интернет. Второй - тот же виртуальный адаптер хоста, что и в машине Hacker. Третий - виртуальный адаптер хоста, но выбираете уже второй ( если вы делаете все по схеме выбираете тот, где ip-адрес 192.168.57.*).

  • На машинах WWW и DataBase создайте 2 адаптера. Первый - выход в интернет. Второй - виртуальный адаптер хоста (второй, тот где 196.168.57.*).

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

  • Настройка статического IP-адреса (если используется на DHCP). Настройка сети осуществляется с помощью создания виртуального адаптера хоста. При первичном запуске всех виртуальных машин необходимо внести изменения в файл /etc/network/interfaces.

    nano /etc/network/interfaces
    
  • В нем необходимо прописать новое соединение в форме:

    auto eth1
    iface eth1 inet static
    address 192.168.58.103
    netmask 255.255.255.0
    gateway 192.168.58.102
    

Поле address — ip адрес, выделяющийся машине, netmask — маска сети, используемая для разграничения адреса сети и непосредственно машины в ней, а gateway — шлюз, на который пойдут отправляемые пакеты. В данной лабораторной работе, например, в поле gateway пишется ip-адрес виртуального адаптера хоста на сервере, соответствующего локальной сети. Поэтому gateway не нужно прописывать для сервера, если этот сервер сам не подключается к какому-либо другому серверу. Запись осуществляется с правами суперпользователя. После записи необходима перезагрузка системы.

Вы можете использовать те же ip-адреса, что указаны на схеме. Для машины Server в настройках пропишите два сетевых интерфейса eth1 и eth2, из-за двух виртуальных адаптеров хоста. Названия сетевых интерфейсов начинаются с eth0, и во всех машинах, настраиваемых нами, eth0 будет автоматически использован первым виртуальным адаптером, который мы используем для выхода в интернет.

  • Чтобы изменения вступили в силу необходимо перезапустить систему.

  • Просмотреть сетевые интерфейсы вы можете, использовав команду ifconfig

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

  • Машина Hacker – «злоумышленник», который попытается просканировать нашу сеть. Для того, чтобы он смог это сделать, необходимо установить универсальное средство сканирования – Nmap:

    sudo apt-get install nmap
    
  • Server – сервер, атаку на который совершает Hacker. Во второй части работы будем устанавливать на него CMS WordPress.

  • WWW – web-сервер, с помощью которого осуществляется доступ к базе данных DataBase. Соответственно, как и для Server, устанавливаем web-сервер. Также необходимо установить PHP.

    sudo apt-get install php5 libapache2-mod-php5 php5-mysql
    

Далее, необходимо создать файл /var/www/index.php, в который прописывается следующий скрипт:

<?php

$link = mysql_connect('192.168.57.101', 'sit', 'sit');

if (!$link) {

die('Error: ' . mysql_error());

}

echo 'Ok';

mysql_close($link);

?>

Этот скрипт определяет подключение WWW к DataBase, и если ввести в адресное поле браузера ip-адрес WWW /index.php, то при успешном подключении к базе данных будет выведено «ОК».

  • Настройка базы данных. На DataBase необходимо установить Mysql – универсальную систему управления базами данных.

    sudo apt-get install mysql-server
    
  • Запускаем MySQL:

    sudo mysql -p
    
    Затем, в MySql необходимо добавить набор привилегий для пользователя
    
    (по умолчанию sit)
    
    ``GRANT ALL PRIVILEGES ON *.* TO sit@localhost IDENTIFIED``
    
    BY 'sit' WITH GRANT OPTION
    
    ``GRANT ALL PRIVILEGES ON *.* TO sit@"%" IDENTIFIED BY``
    
    'sit' WITH GRANT OPTION
    
  • Далее необходимо в файле /etc/mysql/my.cnf найти и закомментировать (поставить в начале строки символ #) строчку bind-address = 127.0.0.1.

Часть 2

  • Установку CMS необходимо производить на виртуальную машину Server из первой части лабораторной работы.

  • Для настройки CMS WordPress, виртуальная машина Server должна быть подключена по локальной сети с машиной с графической оболочкой.

  • На виртуальную машину Server необходимо установить набор програмного обеспечения LAMP (Linux Apache MySQL PHP)

    sudo apt-get update
    
    sudo apt-get install tasksel
    
    sudo tasksel
    
  • Выберите LAMP. Чтобы отметить выделите и нажмите пробел. И нажмите Enter. Задайте пароль root ( Используйте sit)

  • Установите phpmyadmin <sudo apt-get install phpmyadmin>. Выберите Apache, выберите Yes, введите пароль.

  • На второй машине в браузере введите ip-адрес/phpmyadmin (Например 192.168.1.113/phpmyadmin)

  • Введите имя пользователя и пароль. (Пользователь по умолчанию - root. Пароль - тот который вводили при установке phpmyadmin)

  • Перейдите на вкладку Databases. Создайте Новую базу данных. В поле под надписью Create Database введите название базы данных (wordpressdb01) и нажмите Create.

  • Вернитесь к виртуальной машине Server. Скачайте WordPress <wget http://wordpress.org/latest.tar.gz>

  • Распакуйте скачанный архив в /var/www/html <sudo tar -xvpzf latest.tar.gz -C /var/www/html/>

  • Теперь на второй машине введите 192.168.1.113/wordpress и нажимайте на кнопки, чтобы перейти к дальнейшим настройкам, пока не дойдете до настроек БД.

  • В настройках введите имя БД - wordpressdb01, имя пользователя БД - root и пароль - sit. Нажимаете Submit.

  • Вам выводят, каким должен быть быть файл wp-config.php в папке wordpress. И чтобы создать его и настроить, переходим к виртуальной машине Server.

  • Перейдите в папку /var/www/html/wordpress

  • Откройте в текстовом редакторе wp-config-sample.php <nano wp-config-samle.php>

  • Измените настройки так, как показано на скриншоте:

_images/ubuntu_server_3.png
  • Cохраните под именем wp-cjnfig.php в той же папке. Когда будете нажимать CTRL-O и вас будут спрашивать имя сохраняемого файла, поменяйте на wp-config.php
  • Возвращаемся ко второй машине и браузеру, нажимаем кнопки для дальнейшей установки.
  • Заполняем настройки. Настройки потом можно будет поменять, неважно, что вы там в данный момент напишите, но запомните имя и пароль, вам их предстоит использовать сражу же после настройки, чтобы залогиниться.
  • Нажимаете Install WordPress.
  • Нажимаете Log In, вводите имя и пароль, которые вы только что задали.
  • На этом установка CMS WordPress закончена.

Вопросы к лабораторной работе

  1. Что такое ЛВС?
  2. Как проверить есть ли локальное сетевое соединение?
  3. Что такое ping?
  4. Какую информацию можно получить командой ping?
  5. Перечислите типы подключения в Oracle VM VirtualBox.
  6. Как создать локальную сеть в VirtualBox?
  7. Что такое NAT?
  8. Какие ограничения есть у NAT?
  9. Если в настройках двух виртуальных машин выбрать Сетевой мост, будут ли они подключены по локальной сети?
  10. В чем отличия между типами подключений Сетевой мост и Внутренняя сеть?
  11. Что такое PHP?
  12. Что такое MySQL?
  13. Для чего нужна маска сети?

Составьте отчет о выполнении лабораторной работы.

Включите в него копии экрана и ответы на вопросы лабораторной работы.