Разворачиваем сервисы на Ubuntu

У нас имеется виртуальная машина — тестовая машина, с помощью которой мы будем разворачивать веб службы, ssh службу, ftp, samba server и многое другое.

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

Docker – программное обеспечение, которое позволит быстро и легко запускать выполнение процесса в контейнере, который похож на виртуальную машину (которая потребляет меньше ресурсов и более портативная);

Vagrant — инструмент для создания полноценной среды разработчика, инструмент для создания виртуальных машин;

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

ejLVeotBZ1g

Если мы будем говорить о средствах, которые используются в «продакшен», то тут предпочтение отдают Windows Hyper-V, VMware ESX Server, XenServer (open source project and community managed by Citrix). Гипервизоры применяют чтобы на одном физическом сервере разместить несколько изолированных виртуальных машин под отдельные сервисы и службы.

54

5433

Подробно про это написано тут https://businessarchitecture.ru/virtualization/

Я предварительно скачал образ виртуальной машины — Ubuntu для Vagrant. Сборка ubuntu/trusty64 оптимизирована для веб разработок, ssh сервер уже включен, отсутствует графическая оболочка (gnome или kde)
2

7

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

43

4

Установим ssh сервер

Для установки ssh сервера используем команду

sudo apt install openssh-server

С параметрами по умолчанию сервер SSH не очень безопасен, поэтому перед тем как программа будет готова к полноценному использованию ее нужно немного настроить. Все настройки сервера SSH хранятся в конфигурационном файле sshd_config, который находится в папке /etc/ssh.

Перед тем как вносить изменения в этот конфигурационный файл рекомендуется сделать его резервную копию, для этого можете использовать такую команду:
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults

Дальше вы можете перейти к настройке конфигурационного файла:
$ sudo vi /etc/ssh/sshd_config

Первым делом желательно сменить порт, на котором работает ssh, возможный злоумышленник не знал включен ли у вас этот сервис. Найдите в конфигурационном файле строчку Port и замените ее значение на любое число, например, Port 2222:

Если вы изменили порт, то при подключении в клиенте тоже нужно указать новый порт, так как по умолчанию будет использоваться 22, например:
ssh -p 2222 localhost

К тому же, если на компьютере установлен и настроен брандмауэр, то в нем тоже нужно разрешить доступ к новому порту ssh, для этого выполните:
$ sudo ufw allow 2222

Даже если служба ssh находится на порту по умолчанию, его тоже нужно открыть в брандмауэре если вы собираетесь подключаться к компьютеру через интернет:
$ sudo ufw allow 22

4

Установим веб сервер.

Существует несколько http серверов. Под unix — это Apache и Nginx. На Windows — IIS.

Nginx [engine x] — это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения, изначально написанный Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных российских сайтов, таких как Яндекс, Mail.Ru, ВКонтакте и Рамблер. Согласно статистике Netcraft nginx обслуживал или проксировал 29.10% самых нагруженных сайтов в июне 2017 года. Вот некоторые примеры успешного внедрения nginx (тексты на английском языке): Netflix, WordPress.com, FastMail.FM.

Apache HTTP Server — проект, развиваемый The Apache Software Foundation, в рамках которого разрабатывается кроссплатформенный HTTP сервер с открытым исходным кодом. Входит в состав LAMP и XAMPP.

Мы будем устанавливать apache

$ sudo apt-get install apache2 libapache2-mod-auth-mysql

После установки добавим программу в автозагрузку:
$ sudo systemctl enable apache2

И запустим веб-сервер сейчас:
$ sudo systemctl start apache2

Ubuntu’s Apache2 default configuration is different from the upstream default configuration, and split into several files optimized for interaction with Ubuntu tools. The configuration system is fully documented in /usr/share/doc/apache2/README.Debian.gz. Refer to this for the full documentation. Documentation for the web server itself can be found by accessing the manual if the apache2-doc package was installed on this server.

The configuration layout for an Apache2 web server installation on Ubuntu systems is as follows:


/etc/apache2/
|-- apache2.conf
|       `--  ports.conf
|-- mods-enabled
|       |-- *.load
|       `-- *.conf
|-- conf-enabled
|       `-- *.conf
|-- sites-enabled
|       `-- *.conf42

Команда запуска, перезапуска, остановки сервера Apache:

sudo /etc/init.d/apache2 start

sudo /etc/init.d/apache2 reload

sudo /etc/init.d/apache2 stop

 

Расположение сайтов можно выбрать с помощью 4 способов:

по умолчанию в папке /var/www/html. Доступом является http://localhost/
настройки основного хостинга. Например, http://localhost/phpmyadmin
в любой папке с помощью модуля виртуальных хостов. Например, http://mysite/
в папке пользователя public_html (модуль userdir). Например, http://localhost/~username

Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью mod_alias. Если он не включён — включаем:

sudo a2enmod alias
sudo service apache2 restart

Затем изменяем файл /etc/apache2/sites-enabled/000-default, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву

Redirect / https://example.com/

Если вы хотите установить все доступные модули php, чтобы в будущем не было проблем, вы можете выполнить команду

sudo apt-get install php*

После завершения установки проверим версию php:
$ php -v

43

Устанавливаем сервер базы данных.

Чтобы установить mysql вызываем команду

$ apt-get install mysql-server mysql-client php-mysql

 

53

344
42342
У меня имеется тестовый сайт, который находится на в git репозитории и который можно развернуть на данном тестовом сервере. Файлы сайта сделаны на CMS Joomla, база данных — mysql
Для этого делает git config

$ git config —global user.name «Andrey»
$ git config —global user.email andrey@example.com

# клонируем репозиторий
git clone

# а если без git, то можно использовать
wget и адрес ссылки

234324
Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие. Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander — это файловый менеджер, который можно использовать прямо в терминале. Для установки mc в Ubuntu выполните:

$ sudo apt install mc
file15

Устанавливаем phpmyadmin для управления mysql.

$ apt-get install phpmyadmin

Веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. PHPMyAdmin позволяет через браузер и не только осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс.

Чтобы его запустить выполняем
$ sudo gedit /etc/apache2/apache2.conf
# Добавляем строчку Include /etc/phpmyadmin/apache.conf
# Теперь перезапускаем apache
$ sudo /etc/init.d/apache2 restart
433423423
Заходим с помощью логина и пароля, которые мы генерировали при создании.
345345525
 # Перемеcтим все наши файлы скаченные в папку /var/www/
wrwerew
Устанавливаем простенький сайт.
Joomla — это система управления содержимым, написанная на языках PHP и JavaScript, использующая в качестве хранилища базы данных СУБД MySQL или другие стандартные промышленные реляционные СУБД. Является свободным программным обеспечением, распространяемым под лицензией GNU GPL.
$ git clone https://github.com/joomla/joomla-cms
Заходим на наш сайта
3445
Указываем базу данных
34543534
После установки у нас отобразится index.php созданного сайта.
3454352
Структура база данных нашего сайта теперь выглядит так
34435435
Установка Samba сервера. (Рекомендуем устанавливать на отдельную машину)

Samba — программа, которая позволяет обращаться к сетевым дискам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL.

Samba работает на большинстве Unix-подобных систем, таких как GNU/Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD, в OS/2, Windows. Samba включена практически во все дистрибутивы GNU/Linux, в том числе, конечно, и в Ubuntu.

Создайте папку, к которой будем открывать доступ, например:
$ sudo mkdir -p /samba/allaccessПосле того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:
$ cd /samba
$ sudo chmod -R 0755 allaccess
$ sudo chown -R nobody:nogroup allaccess/Следующим шагом будет описать папку allaccess в файле настройки samba:
[allaccess]
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = noТеперь ваш конфигурационный файл должен выглядеть вот так:
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = srvr1
security = user
map to guest = bad user
name resolve order = bcast host
dns proxy = no
#==============
[AllAccess]
path = /samba/allaccess
browsable =yes
writable = yes
guest ok = yes
read only = noЧтобы применить изменения, перезапустите сервер Samba:
$ sudo service smbd restart
544444

Так же существуют приложения, позволяющие производить настройку Samba через графический интерфейс (см. GUI приложения для работы с Samba).Установить самый простой GUI для Samba можно командой:

sudo apt-get install system-config-samba

Запускается он командой:

sudo system-config-samba

Все изменения он записывает в конфигурационный файл samba.

Для удалённого администрирования Samba в качестве web-интерфейса для Samba отлично подойдёт webmin.