Андрей Смирнов
Время чтения: ~16 мин.
Просмотров: 27

Домашний web сервер: Ubuntu Server + LAMP (установка и основные настройки)

Ubuntu Server — это дистрибутив Linux для установки на серверы. Он не содержит графической оболочки, по умолчанию доступны только консольные утилиты. После завершения установки вы получаете голую систему Ubuntu и прежде чем она станет способна выполнять свои функции сервера, вам предстоит потратить еще немного времени на ее настройку.

Начнем с обновления системы. Я предполагаю, что сеть у вас уже настроена автоматически. Если это не так, то воспользуйтесь статьей про настройку сети с помощью Netplan.

Snimok-ekrana-ot-2019-01-02-16-11-08-1024x576.png

Первым делом, после завершения установки любой операционной системы ее необходимо обновить. Для этого выполните такие команды:

Чем больше времени прошло с момента релиза установочного образа Ubuntu Server, тем больше времени займет обновление системы, но это необходимая операция. После обновления перезагрузите систему:

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

Сначала необходимо сменить порт SSH на удаленном сервере, иначе рано или поздно кто-то попытается его перебрать. Откройте файл /etc/ssh/sshd.conf, найдите строчку Port 22 и измените значение порта на другое число, например, на 2323:

Port 2323

Для запуска службы SSH и добавления ее в автозагрузку выполните:

Теперь вы можете авторизоваться на вашем сервере с другой машины. Но каждый раз вводить пароль при входе не очень удобно. Настроем авторизацию по ключу. Для этого на вашей рабочей машине выполните команду для генерации ключа:

Программа спросит вас путь, куда нужно сохранить ключ, не оставляйте по умолчанию, используйте например, ~/.ssh/id_rsa_ubuntu.  Затем утилита предложит ввести пароль для ключа. Если вы не хотите вводить этот пароль каждый раз при входе по SSH, то его задавать не нужно. Но в целях безопасности очень не рекомендуется использовать ключи без паролей.

Snimok-ekrana-ot-2019-01-02-16-31-06-1024x576.png

Затем отправьте только что созданный ключ на свой сервер:

Snimok-ekrana-ot-2019-01-02-16-32-16-1024x576.png

Теперь вы сможете авторизоваться на этом сервере без ввода пароля:

Snimok-ekrana-ot-2019-01-02-16-34-33-1024x576.png

Дальнейшую настройку сервера можно проводить через SSH.

Сервер будет находиться в сети, а поэтому к нему будет иметь доступ множество пользователей. Необходимо спрятать все запущенные на сервере службы с помощью брандмауэра и оставить только разрешенные. В Ubuntu для управления брандмауэром используется надстройка над iptables — ufw.

По умолчанию, после запуска брандмауэр закрывает доступ ко всем не разрешенным службам извне. Мы сейчас работаем на сервере по SSH, поэтому нужно разрешить эту службу:

Если вы изменили стандартный порт SSH на втором шаге, необходимо разрешать именно тот порт, который вы указали:

Snimok-ekrana-ot-2019-01-02-16-41-24-1024x576.png

Затем выполните такую команду для включения ufw:

Snimok-ekrana-ot-2019-01-02-16-41-43-1024x576.png

Далее нужно нажать y для подтверждения. Брандмауэр будет запущен и добавлен в автозагрузку. Вы можете посмотреть его состояние командой:

Snimok-ekrana-ot-2019-01-02-16-43-18-1024x576.png

Установщик не предлагает вам выбрать часовой пояс и по умолчанию остается UTC. Таким образом, вы получаете время по Гринвичу. Вы можете проверить какое время показывает ваш сервер с помощью команды:

Snimok-ekrana-ot-2019-01-02-16-51-48-1024x576.png

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

Snimok-ekrana-ot-2019-01-02-16-52-19-1024x576.png

А для выбора нужного выполните:

Snimok-ekrana-ot-2019-01-02-16-53-14-1024x576.png

Также желательно настроить NTP сервер, чтобы время автоматически синхронизировалось с серверами в интернете. Для установки NTP выполните:

А затем добавьте его в автозагрузку:

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

Snimok-ekrana-ot-2019-01-02-17-37-57-1024x576.png

И введите новый пароль. Затем вы сможете авторизоваться от имени этого пользователя.

Snimok-ekrana-ot-2019-01-02-17-38-21-1024x576.png

В этой статье мы разобрали как выполняется настройка Ubuntu Server после установки. Мы сделали только основные шаги, и для того чтобы эта система переварилась в полноценный веб-сервер, сервер баз данных или приложений нужно установить еще много программ. Но обо всем этом уже есть отдельные статьи на Losst.

88x31.png Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна. ubuntu-mug-notebook.png

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

Подключение от имени root Первым делом, вам нужно подключиться к серверу по SSH от имени root. Откройте терминал и выполните команду:

$ ssh root@server_ip

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

Создание пользователя Так как постоянное использование учетной записи root не безопасно, то следующее, что вам нужно будет сделать – добавить нового пользователя и дать ему root привилегии. Создадите нового пользователя. В данном примере создается пользователь с именем joe. Можете заменить его на любое другое.

# adduser joe

# adduser joe sudo

# su - joe

Генерация SSH ключа На данном этапе вам нужно будет сгенерировать SSH ключ. Ключ состоит из 2 файлов: приватный, который находится на вашей машине и публичный, который будет нужно загрузить на сервер. Если SSH ключа у вас нет – вам необходимо его сгенерировать. В ином случае – пропустите этот шаг и переходите к следующему. И так, вам необходимо сгенерировать SSH ключ. Для этого выполните следующую команду (заменив joe@example.com на ваш email):

$ ssh-keygen -t rsa -b 4096 -C "joe@example.com"

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

Вариант 1: Используя ssh-copy-id На локальной машине выполните следующую команду:

$ ssh-copy-id joe@server_ip

После введения пароля вы должны увидеть сообщение о том, что ключ был успешно скопирован на сервер.

Вариант 2: Вручную 1. Создадите в корне вашего пользователя каталог .ssh и задайте необходимые права.

$ mkdir ~/.ssh$ chmod go-rx ~/.ssh

2. Внутри каталога .ssh создайте файл authorized_keys. Например, используя редактор nano:

$ nano ~/.ssh/authorized_keys

Вставьте в него содержимое публичного ключа. Нажмите CTRL-x для того, чтобы выйти из редактора, затем y, чтобы сохранить изменения, затем ENTER для подтверждения. Далее установите необходимы права на файл, чтобы доступ к файлу с ключами был только у его владельца. Для этого выполните следующую команду:

$ chmod go-r ~/.ssh/authorized_keys

Теперь вы можете подключаться к серверу, используя SSH ключ.

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

$ sudo nano /etc/ssh/sshd_config

1. Изменение стандартного порта. Первым делом, измените стандартный порт. Чтобы боты не пытались подключиться к вашему серверу и не засоряли тем самым лог. Для этого измените значение Port на что-нибудь нестандартное, например:

Port 2222

2. Запрещение удаленного доступа для root. Так как для работы на сервере вы будете использовать учетную запись обычного пользователя, то подключаться к серверу через SSH от имени root необходимости нет. Выставите значение для PermitRootLogin в no.

PermitRootLogin no

3. Отключение парольной аутентификации. Так как при использовании SSH ключей у вас нет необходимости в аутентификации по паролям – отключите ее. Выставите значения для PasswordAuthentication в no.

PasswordAuthentication no

Так же убедитесь в том, что ваш сервер использует 2 версию протокола.

Protocol 2

После всех изменений сохраните файл и перезагрузите настройки SSH сервера, чтобы изменения вступили в силу.

$ sudo systemctl reload ssh.service

Если все сделано верно, то при попытке подключиться на стандартный порт 22 вы увидите следующую ошибку:

ssh: connect to host server_ip port 22: Connection refused

А при попытке подключится от имени root (уже на новый порт):

Permission denied (publickey).

Чтобы подключаться к серверу, используя нестандартный порт – укажите номер порта в параметре -p.

$ ssh joe@server_ip -p 2222

Настройка Firewall UFW (Uncomplicated Firewall) – простой файрволл, который представляет из себя утилиту для более удобного управления iptables. Если в вашей системе его нет, то установите его командой:

$ sudo apt install ufw

Для начала проверьте статус файрволла:

$ sudo ufw status

Статус должен быть inactive.

Внимание: не активируйте файрволл до того, как укажете необходимые правила. Иначе вы рискуете потерять доступ к серверу.

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

$ sudo ufw default deny incoming

А так же разрешите все исходящие:

$ sudo ufw default allow outgoing

Добавьте новое правило, чтобы были разрешены входящие запросы на SSH порт (в нашем случае 2222).

$ sudo ufw allow 2222/tcp

Далее включите файрволл командой:

$ sudo ufw enable

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

$ sudo ufw status

Для более подробной информации нужно использовать команду:

$ sudo ufw status verbose

Заключение На этом первоначальная настройка сервера завершена. Теперь вы можете устанавливать любое программное обеспечение, которое вам нужно.

install-ubuntu-server-000.jpgПервое знакомство с любой новой системой начинается с ее установки. Несмотря на то, что эта тема довольно избита и не писал об этом только ленивый, без описания процесса установки наш цикл для начинающих будет неполным. Мы постараемся не только рассказать, как поставить систему, но и почему мы выбираем те или иные настройки и на что они влияют. Также мы будем рассматривать установку именно серверной версии Ubuntu, так как наш цикл предназначается именно начинающим администраторам, чтобы они могли устранить пробелы в знаниях и осознанно подойти к восприятию остальных наших материалов.

Так как основной системой для наших решений является Ubuntu Server, то ставить мы будем именно ее. Свежий релиз всегда можно получить со страницы: http://www.ubuntu.com/download/server. Мы настоятельно рекомендуем использовать только LTS-версии, как наиболее стабильные и имеющие продолжительный срок поддержки. Обычные версии, как правило, являются полигоном для обкатки новых технологий и могут работать нестабильно, не говоря уже о том, что срок поддержки в 9 месяцев абсолютно неприемлем для работающих серверных систем.

Первое что вы увидите, загрузившись с установочного носителя — это меню выбора языка:

install-ubuntu-server-001-thumb-600xauto-5058.jpgОт его выбора зависит не только то, на каком языке с вами будет общаться инсталлятор и система, но и какие локали будут сгенерированы. Набор локалей влияет не только на то, каким образом будут отображаться символы национальных алфавитов, но и на работу некоторых программ и служб, которые критичны к региональным установкам, например, Сервера 1С.

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

install-ubuntu-server-002-thumb-600xauto-5061.jpgОт автоматического определения раскладки следует отказаться:

install-ubuntu-server-003-thumb-600xauto-5064.jpgИ выбрать необходимую раскладку из списка, в большинстве случаев достаточно согласиться с выбором системы:

install-ubuntu-server-004-thumb-600xauto-5067.jpgЗатем следует указать комбинацию клавиш для ее переключения. Мы категорически не рекомендуем, если только это не ваша личная система, указывать что-либо иное, нежели принятое по умолчанию Alt+Shift. Потому как крайне неприятно, оказавшись в незнакомой системе, угадывать, какую именно комбинацию выбрал устанавливавший ее администратор.

install-ubuntu-server-005-thumb-600xauto-5070.jpgСледующим шагом система попробует получить сетевые настройки, так как в большинстве сетей присутствует DHCP сервер, то уже на этом этапе система сконфигурирует сеть и получит доступ в интернет.

install-ubuntu-server-006-thumb-600xauto-5073.jpgЕсли по каким-либо причинам автоматически получить сетевые настройки не удастся, вы можете указать их вручную или пропустить данный этап. Мы, исключительно с образовательной целью, выберем пункт Пропустить пока настройку сети.

install-ubuntu-server-007-thumb-600xauto-5076.jpgПосле этого потребуется указать имя системы и имя пользователя. Следует помнить, что в Ubuntu учетная запись root отключена и созданный на этом этапе пользователь получает полномочия повышать свои права до суперпользователя при помощи команды sudo. Подробнее смотрите в нашей статье: Ubuntu Server — административные права пользователей. Также не забывайте, что Linuх — регистрозависимая система, поэтому правилом хорошего тона будет использование, в том числе и в именах пользователей, только нижнего регистра.

install-ubuntu-server-008-thumb-600xauto-5079.jpgОт предложения зашифровать домашний каталог также следует отказаться.

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

install-ubuntu-server-009.jpgВ российских реалиях может произойти так, что дистрибутив был выпущен раньше, чем были произведены изменения временных зон, и актуального пояса в списке нет, что мы и видим на рисунке выше. В этом случае следует выбрать тот пояс, который был до перевода часов и уже после установки и обновления системы воспользоваться рекомендациями из нашей статьи: Перевод часов в РФ 26 октября 2014 года — проблемы и решения.

После настройки времени мы переходим к наиболее ответственному этапу — настройке диска. Система предлагает несколько вариантов, среди которых автоматическая разметка. В большинстве случаев мы выбираем именно этот пункт. Если говорить о единственном диске, то мы не видим смысла разбивать его на разделы, за исключением настольных систем, где на отдельный раздел стоит вынести /home.

В нагруженных системах имеет смысл выносить разделы с данными, например, /var/www или /opt/zimbra, на отдельные дисковые массивы. Если вы хотите установить систему на программный RAID, то обратитесь к статье: Ubuntu Server. Настраиваем программный RAID. В остальных случаях смело выбирайте автоматическую разметку без LVM, в этом случае на диске будет создан раздел подкачки (swap) размером в единицы ГБ и корневой раздел на остальном пространстве.

install-ubuntu-server-010-thumb-600xauto-5086.jpgЕще один важный вопрос — установка обновлений. С одной стороны, обновления позволяют своевременно закрывать уязвимости и поддерживать систему в актуальном состоянии, с другой, неконтролируемое обновление вполне способно привести к серьезным сбоям. Как поступить — выбирать вам. Мы предпочитаем на ответственных системах устанавливать обновления вручную, после их тестирования на специально выделенной системе, но если вы настраиваете роутер, то обновления можно включить.

install-ubuntu-server-011-thumb-600xauto-5089.jpgУстановив основу системы, инсталлятор предложит вам выбрать наборы ПО для установки. Можно выбрать на этом этапе необходимые роли и получить готовую к настройке систему. Разве это плохо, особенно для начинающего администратора? Плохо! И вот почему: при таком подходе система остается для администратора «черным ящиком», нет представления о назначении отдельных пакетов, их роли и влиянии на систему в целом. Поэтому мы рекомендуем отказаться от предлагаемых вариантов и устанавливать требуемые пакеты вручную. Это поможет вам глубже понять систему и взаимодействие между ее компонентами. А когда вы станете чувствовать себя в среде Linux как рыба в воде, вы сами решите нужно ли вам устанавливать софт автоматически.

Поэтому не выбираем ничего и (нажав Tab) переходим к пункту Продолжить.

install-ubuntu-server-012-thumb-600xauto-5092.jpg

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

install-ubuntu-server-013-thumb-600xauto-5095.jpgВ завершение этого процесса инсталлятор предложит вам установить загрузчик, с этим предложением стоит согласиться, если только вы не планируете систему с какой-либо «хитрой» системой загрузки:

install-ubuntu-server-014-thumb-600xauto-5098.jpgПосле чего вам будет предложено перезагрузить систему, установка на этом будет закончена и в вашем распоряжении окажется полноценная серверная операционная система.

Итак, первый вход в систему, мы бы не стали об этом писать, если бы не читательский отклик, который показал, что на этом моменте у многих возникали затруднения. Так вот, в Linux-системах процесс ввода пароля никак визуально не отображается, вам просто нужно набрать нужную комбинацию символов и нажать Enter, хотя внешне система ведет себя так, как будто ничего не происходит. Такое поведение унаследовано от UNIX-систем и преследует цели безопасности, чтобы злоумышленник не мог узнать длину вашего пароля.

install-ubuntu-server-015.jpg

После того, как вы вошли в систему, в первую очередь стоит настроить сеть. Как помните, мы не производили никаких настроек на стадии установки, поэтому возможности установить дополнительные пакеты у нас нет и следует выходить из положения тем, что есть в наличии. По умолчании в системе имеется текстовый редактор nano, он не столь удобен, как встроенный редактор mc, но нужно уметь им пользоваться, как раз на случай таких ситуаций.

Прежде всего повысим свои права до суперпользователя:

sudo -s

И откроем редактором конфигурационный файл с настройками сети:

nano /etc/network/interfaces

И приведем его содержимое к следующему виду:

auto lo iface lo inet loopbackauto eth0 iface eth0 inet static  address 192.168.44.62  netmask 255.255.255.0  gateway 192.168.44.2  dns-nameservers 192.168.44.2 8.8.8.8

Первая секция auto lo задает настройки для петлевого интерфейса и уже присутствует в файле. Вторая секция задает настройки внешнего сетевого интерфейса eth0 для работы со статическим адресом. Опции понятны и отдельных разъяснений не требуют, адреса, естественно, взяты исключительно для примера. Если в вашем сервере несколько сетевых адаптеров, то следует прописать секцию для каждого из них.

Допустим мы хотим получать настройки второго сетевого адаптера eth1 по DHCP, для этого добавим секцию:

auto eth1 allow-hotplug eth1 iface eth1 inet dhcp

Немного остановимся на опциях auto и auto-hotplug. Первая указывает инициировать подключение при загрузке, а вторая запускает механизм отслеживания горячего переподключения и инициировать получение адреса при наступлении данного события.

Закончив редактировать файл следует выйти из редактора по Ctrl + X, утвердительно (Y) ответив на предложение записать файл.

install-ubuntu-server-016-thumb-600xauto-5102.jpgПосле чего перезагрузите компьютер:

reboot

Если все сделано правильно, то система получит доступ к сети и интернет. Проверить это можно командой ping:

ping ya.ru

Прервать выполнение команды следует комбинацией Ctrl + С, запомните эту комбинацию, она еще не раз вам пригодится.

Просмотреть настройки сетевых интерфейсов можно командой

ifconfig

install-ubuntu-server-017-thumb-600xauto-5105.jpgЭтой же командой можно выяснить, какие именно сетевые карты видит система и под какими именами, для этого воспользуйтесь параметром HWaddr, который представляет MAC-адрес сетевой платы.

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

apt-get update

Затем обновим систему командой:

apt-get upgrade

install-ubuntu-server-018-thumb-600xauto-5108.jpgВнимательно изучаем вывод команды, как видим, по какой-то причине не обновляются три пакета, в данном случае это пакеты ядра. Поэтому попробуем обновить их вручную. Для этого выполним команду:

apt-get install linux-generic

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

После перезагрузки установим инструменты администрирования: пакет ssh для удаленного доступа к серверу и файловый менеджер mc, который значительно упрощает работу с системой.

apt-get install ssh mc

Для запуска mc используйте простую команду:

mc 

или

sudo mc

если хотите запустить его с правами суперпользователя.

Работа с ним довольно проста, те кто работал в DOS с менеджерами Norton Commander или Volkov Commander вообще не должны испытывать затруднений.

install-ubuntu-server-019-thumb-600xauto-5115.jpgНавигация осуществляется стрелками, переход между панелями клавишей Tab, а выделение клавишей Insert. Основные действия указаны внизу, цифры рядом с ними обозначают номер функциональной клавиши, отвечающей за это действие, так, например, F4 — Правка, F8 — Удаление, F10 — Выход. Вы всегда можете свернуть, а затем развернуть, mc сочетанием клавиш Ctrl + O и получить доступ к консоли.

Также советуем сразу произвести некоторые настройки, нажимаем F9 для переключения на верхнее меню, выбираем Настройки — Конфигурация.

install-ubuntu-server-020.jpgВ открывшемся окне стрелками перейдите на опцию Встроенный редактор и выберите ее при помощи клавиши Пробел. Для подтверждения настроек и выхода нажмите Далее.

install-ubuntu-server-021-thumb-600xauto-5118.jpgЭто позволит сразу использовать для редактирования конфигурационных файлов более удобный чем nano встроенный редактор.

install-ubuntu-server-022-thumb-600xauto-5121.jpgВ заключение проверим возможность удаленного подключения, для этого будем использовать популярную утилиту PuTTY (скачать). В последней версии просто достаточно указать IP-адрес или доменное имя сервера:

install-ubuntu-server-023.jpgОднако, на всякий случай, проверьте в Window — Translation кодировку соединения, там должно быть указано UTF-8.

install-ubuntu-server-024.jpg

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

Используемые источники:

  • https://losst.ru/nastrojka-ubuntu-server-posle-ustanovki
  • https://sysadmin-note.ru/nastrojka-ubuntu-server/
  • https://interface31.ru/tech_it/2014/11/linux-nachinayushhim-chast-2-ustanovka-ubuntu-server.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации