Урок 6 из 8 · 25 мин · обновлено

Сервисы на Linux: SSH, веб-сервер, DNS и контейнеры

Какие сервисы поднимает сисадмин на Linux: удалённый доступ по SSH с ключами, веб-сервер nginx, DNS-записи для домена, DHCP и файловый сервер в офисе, брандмауэр. Где здесь контейнеры Docker. Ставим nginx и открываем свою страницу.

SSH — удалённое управление

Серверы стоят в дата-центрах, и сисадмин управляет ими по сети через SSH — зашифрованное подключение к терминалу сервера:

Терминал
ssh anna@203.0.113.10

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

Вход по паролю уязвим: серверы в интернете постоянно атакуют подбором паролей. Надёжнее SSH-ключи — пара файлов: закрытый ключ хранится только у вас, открытый кладут на сервер.

Терминал
ssh-keygen                       # создать пару ключей на своём компьютере
ssh-copy-id anna@203.0.113.10    # положить открытый ключ на сервер

После этого вход по паролю отключают в настройках SSH-сервера /etc/ssh/sshd_config — параметр PasswordAuthentication no — и перезапускают службу. Закрытый ключ никому не передают.

Веб-сервер

Веб-сервер принимает запросы браузеров и отдаёт страницы. Самые распространённые — nginx и Apache.

Терминал
sudo apt install nginx           # установить
sudo systemctl status nginx      # работает ли
curl -I http://localhost         # ответ сервера: код 200 — всё хорошо

Где что лежит у nginx в Ubuntu:

  • /etc/nginx/ — настройки, сайты описывают в sites-available;
  • /var/www/html/ — файлы сайта по умолчанию;
  • /var/log/nginx/access.log — кто и что запрашивал;
  • /var/log/nginx/error.log — ошибки.

Для HTTPS на сервер ставят сертификат — он шифрует соединение и подтверждает, что сайт настоящий. У сертификатов есть срок действия, и следить за ним — тоже работа сисадмина.

DNS-записи

Чтобы сайт открывался по имени, в DNS домена добавляют записи. Обычно это делают в панели регистратора домена или хостинга:

Запись Для чего Пример
A имя → IPv4-адрес shop.example.ru → 203.0.113.10
CNAME псевдоним другого имени www.example.ru → example.ru
MX куда доставлять почту домена почтовый сервер
TXT служебные записи подтверждение владения доменом, защита почты

Изменения DNS расходятся по интернету не мгновенно — от нескольких минут до нескольких часов.

Сервисы в офисе

  • DHCP — раздаёт адреса компьютерам. Работает на роутере или сервере. Принтерам и серверам обычно закрепляют постоянные адреса.
  • Файловый сервер — общие папки отделов с правами доступа. На Linux для этого используют Samba: папки видны компьютерам с Windows.
  • Внутренний DNS — чтобы сотрудники обращались к серверам по именам: 1c.office.local.
  • Брандмауэр — пропускает только нужные подключения:
Терминал
sudo ufw allow 22        # SSH — разрешить первым делом
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
sudo ufw status

Контейнеры

Всё чаще сервисы не ставят прямо в систему, а запускают в контейнерах Docker: программа упакована вместе со всем, что ей нужно, и одинаково работает на любом сервере. Обновить сервис — значит заменить контейнер, а не переустанавливать пакеты. Как с этим работать — в курсе «Docker для начинающих».

Попробуйте сами. В Linux из урока 4 установите nginx, замените стартовую страницу своей и откройте её в браузере. Затем найдите свой запрос в журнале доступа.

Решение
Терминал
sudo apt update
sudo apt install nginx
sudo systemctl status nginx
echo "<h1>Мой первый сервер</h1>" | sudo tee /var/www/html/index.html
curl http://localhost
sudo tail -n 5 /var/log/nginx/access.log
  • Если status показывает, что служба не запущена, выполните sudo systemctl start nginx.
  • sudo tee нужна, потому что писать в /var/www/html может только администратор: обычная запись > файл выполнялась бы без прав sudo.
  • Откройте http://localhost в браузере — в WSL страница откроется и в браузере Windows.
  • tail -n 5 показывает последние 5 строк журнала: в них видны адрес, время и код ответа 200.

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Почему вход на сервер по SSH-ключу лучше, чем по паролю?

  2. Сайт должен открываться по адресу shop.example.ru на сервере 203.0.113.10. Какая DNS-запись нужна?

  3. Сисадмин включил брандмауэр на удалённом сервере, не разрешив порт 22. Что случится?