Урок 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.
Мини-тест: проверьте себя
Закрепите урок: несколько вопросов, разбор ответов — в конце.
-
Почему вход на сервер по SSH-ключу лучше, чем по паролю?
Серверы в интернете постоянно атакуют подбором паролей. Ключ такой длины подобрать практически невозможно.
-
Сайт должен открываться по адресу shop.example.ru на сервере 203.0.113.10. Какая DNS-запись нужна?
A-запись связывает имя с IPv4-адресом. MX нужна для почты.
-
Сисадмин включил брандмауэр на удалённом сервере, не разрешив порт 22. Что случится?
Брандмауэр закроет всё, что не разрешено, — включая подключение, через которое вы работаете. Сначала разрешают SSH, потом включают.