Защита Apache с помощью Let’s Encrypt на Ubuntu 20.04: Полное руководство

В условиях современного цифрового мира потребность в безопасных и надежных веб-серверах достигла нового уровня. С увеличением числа компаний, переходящих на онлайн-формат, важность наличия безопасного, стабильного и высокоэффективного сервера становится критически актуальной. Этот подробный гид предлагает пошаговое руководство по установке и защите одного из наиболее распространенных веб-серверов — Apache — на платформе Ubuntu 20.04, которая считается предпочтительным выбором для многих серверных приложений благодаря своей надежности и поддержке сообщества.

Вопрос безопасности веб-сервера приобретает особую значимость в условиях нарастающих киберугроз. В этом контексте на помощь приходит Let’s Encrypt. Let’s Encrypt — это бесплатный, автоматизированный и открытый центр сертификации, предоставляемый некоммерческой организацией Internet Security Research Group (ISRG), который помогает защитить ваш сайт с помощью HTTPS. Этот гайд не только проведет вас через установку и настройку Apache, но и даст рекомендации по повышению безопасности вашего сервера с использованием Let’s Encrypt, обеспечивая более защищенное присутствие в интернете.

Перед началом процесса установки важно убедиться, что ваш сервер обновлен. Запустите команду sudo apt update && sudo apt upgrade, чтобы установить последние обновления и патчи безопасности. Также убедитесь, что у вас установлен необходимый пакет software-properties-common, который позволит добавлять репозитории.

Чтобы установить Apache, используйте команду sudo apt install apache2. После установки проверьте статус сервера, перейдя по адресу http://your_domain_or_IP в браузере. Если все сделано правильно, вы увидите страницу приветствия Apache.

Для установки Let’s Encrypt используйте инструмент Certbot, который упрощает процесс получения сертификатов. Установите его с помощью команды sudo apt install certbot python3-certbot-apache. После этого выполните команду sudo certbot --apache для автоматической настройки HTTPS на вашем сервере.

Certbot также позволяет автоматизировать процесс обновления сертификатов. Для этого убедитесь, что у вас запланирована задача cron, выполнив sudo crontab -e и добавив строку 0 */12 * * * certbot renew --quiet, что обеспечит регулярную проверку и автоматическое обновление сертификатов.

В завершение, не забывайте про регулярное резервное копирование ваших данных и конфигураций, чтобы защитить себя от потерь в случае непредвиденных ситуаций. Следуя этим шагам, вы сможете создать безопасный и надежный веб-сервер на базе Apache с поддержкой Let’s Encrypt на Ubuntu 20.04.

Перед началом

Прежде чем приступить к работе:

  • Запустите систему Ubuntu 20.04 с доступом к терминалу с правами sudo.
  • Завершите первичную настройку сервера.
  • Доменное имя должно быть зарегистрировано и настроено на публичный IP-адрес вашего сервера. В этом уроке мы используем webhost.tecadmin.net, который указывает на наш сервер.
  • Убедитесь, что сервер обновлён до последней версии. Выполните команды sudo apt update и sudo apt upgrade.
  • Установите необходимые пакеты, такие как curl и git, если они ещё не установлены. Используйте sudo apt install curl git.
  • Проверьте доступность вашего доменного имени с помощью команды ping webhost.tecadmin.net.
  • Настройте брандмауэр с помощью ufw, открыв необходимые порты, например, 80 (HTTP) и 443 (HTTPS) с помощью команд sudo ufw allow 80 и sudo ufw allow 443.

Установка Apache

Пакеты Apache доступны в стандартных репозиториях Ubuntu. Вы можете легко установить их с помощью стандартного инструмента управления пакетами. Сначала обновите локальный индекс пакетов, чтобы получить последние обновления. Затем выполните установку веб-сервера Apache2.

sudo apt update
sudo apt install apache2

После подтверждения команда apt установит Apache и все необходимые зависимости на вашу систему.

После установки вы можете проверить статус Apache с помощью команды:

sudo systemctl status apache2

Если сервер запущен, вы увидите сообщение о том, что служба работает. Чтобы убедиться, что Apache работает корректно, откройте веб-браузер и введите в адресной строке http://localhost или http://ваш_IP_адрес. Если всё настроено правильно, вы увидите стандартную страницу приветствия Apache.

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

sudo systemctl enable apache2

Это позволит вашему серверу Apache автоматически запускаться при включении компьютера.

Проверка веб-сервера

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

sudo systemctl status apache2

Конечно, введите текст, который необходимо перевести.

● apache2.service - Веб-сервер Apache HTTP Loaded: загружен (/lib/systemd/system/apache2.service; включен; настройки поставщика: включены) Active: активен (работает) с Sun 2020-04-26 05:28:08 UTC; 10 мин назад Docs: https://httpd.apache.org/docs/2.4/ Основной PID: 15464 (apache2) Задачи: 55 (лимит: 2283) Память: 6.9M CGroup: /system.slice/apache2.service ├─15464 /usr/sbin/apache2 -k start ├─18646 /usr/sbin/apache2 -k start └─18647 /usr/sbin/apache2 -k start Apr 26 05:28:08 tecadmin systemd[1]: Запуск веб-сервера Apache HTTP. Apr 26 05:28:08 tecadmin systemd[1]: Веб-сервер Apache HTTP запущен.
Страница по умолчанию Apache Ubuntu 20.04

Статус результата, например «Active: active (running)», говорит о том, что служба Apache запущена успешно. Однако наиболее надежный способ проверить работу веб-сервера — это запросить страницу у Apache через веб-браузер. Вы увидите страницу по умолчанию Apache, что подтверждает корректную работу веб-сервера на вашей системе.

Настройка виртуального хоста

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

sudo mkdir /var/www/webhost sudo chmod -R 755 /var/www/webhost sudo chown -R www-data:www-data /var/www/webhost

Затем создайте пример страницы index.html для этого поддомена. Откройте файл в удобном для вас текстовом редакторе, например, vim или nano:

nano /var/www/webroot/index.html

Добавьте следующий HTML-контент:

Успех

Сохраните и закройте файл. С установленным сервером Apache вы найдете файл конфигурации виртуального хоста по умолчанию по адресу etc/apache2/sites-available/000-default.conf. Однако лучше создавать отдельный файл конфигурации для каждого виртуального хоста. Поэтому создайте новый файл виртуального хоста по следующему пути: /etc/apache2/sites-available/webhost.tecadmin.net.conf:

sudo nano /etc/apache2/sites-available/webhost.tecadmin.net.conf

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

Серверный администратор webmaster@tecadmin.net

Серверное имя webhost.tecadmin.net

#ServerAlias www.webhost.tecadmin.net ##Удалите комментарий, чтобы использовать

DocumentRoot /var/www/webhost

Разрешить переопределение всех

Ошибка журнала $< APACHE_LOG_DIR >/n/ ошибка . журнал

Кастомный журнал $< APACHE_LOG_DIR >/ доступ . журнал комбинированный

Сохраните файл и закройте его. По умолчанию Apache считывает файлы конфигурации виртуальных хостов из директории /etc/apache2/sites-available. Включите виртуальный хост с помощью команды a2ensite:

sudo a2ensite webhost.tecadmin.net.conf

Эта команда создаст символическую ссылку на файл webhost.tecadmin.net.conf в директории sites-available. После этого выполните следующую команду для проверки конфигурации:

sudo apache2ctl configtest

Вы должны увидеть следующий вывод:

Syntax OK

Теперь перезапустите службу Apache для применения изменений:

sudo systemctl restart apache2

Apache готов принимать ваш контент на выбранном вами домене. Для проверки этого, перейдите по ссылке http://webhost.tecadmin.net.

Настройка SSL с Let’s Encrypt

Мы используем сертификат SSL от Let’s Encrypt для защиты сайта на сервере Apache. Certbot — это утилита командной строки для работы с сертификатами Let’s Encrypt. Для установки certbot выполните следующую команду:

sudo apt install python3-certbot-apache

Эта команда установит все необходимые пакеты для работы certbot. По завершении установки выполните следующую команду, чтобы запросить сертификат у Let’s Encrypt для нашего домена webhost.tecadmin.net. Вы можете добавить несколько доменов или поддоменов, указав дополнительные параметры «-d».

certbot -d webhost.tecadmin.net

Мастер настройки запросит ваш адрес электронной почты для отправки обновлений. Затем примите Условия обслуживания для продолжения. Ниже представлены полные журналы команд:

Сохранение отладочного журнала в /var/log/letsencrypt/letsencrypt.log Выбранные плагины: аутентификатор apache, инсталлятор apache Введите адрес электронной почты (используется для срочного обновления и уведомлений о безопасности) (Введите 'c' для отмены): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Пожалуйста, ознакомьтесь с Условиями обслуживания на https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Вы должны согласиться, чтобы зарегистрироваться на сервере ACME по адресу https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A) согласиться/(C) отменить: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Готовы ли вы поделиться своим адресом электронной почты с Фондом электронных фронтов, одним из учредителей проекта Let's Encrypt и некоммерческой организацией, развивающей Certbot? Мы хотели бы отправлять вам письма о нашей работе по шифрованию интернета, новостях EFF, акциях и способах поддержки цифровой свободы. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)ес/(N)о: Y Получение нового сертификата Выполнение следующих задач: http-01 задача для webhost.tecadmin.net Включен модуль переписывания Apache Ожидание проверки. Очистка задач Создан виртуальный хост SSL в /etc/apache2/sites-available/webhost.tecadmin.net-le-ssl.conf Включен модуль socache_shmcb Apache Включен модуль ssl Apache Развёртывание сертификата на виртуальный хост /etc/apache2/sites-available/webhost.tecadmin.net-le-ssl.conf Включение доступного сайта: /etc/apache2/sites-available/webhost.tecadmin.net-le-ssl.conf Пожалуйста, выберите, хотите ли вы перенаправить HTTP-трафик на HTTPS, исключив доступ по HTTP. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Нет перенаправления - Не вносить дальнейшие изменения в конфигурацию веб-сервера. 2: Перенаправить - Все запросы перенаправляются на безопасный доступ HTTPS. Выберите этот вариант для новых сайтов или если вы уверены, что ваш сайт работает на HTTPS. Вы можете отменить это изменение, отредактировав конфигурацию вашего веб-сервера. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Выберите соответствующий номер [1-2], затем [enter] (нажмите 'c' для отмены): 2 Включен модуль переписывания Apache Перенаправление vhost в /etc/apache2/sites-enabled/webhost.tecadmin.net.conf на ssl vhost в /etc/apache2/sites-available/webhost.tecadmin.net-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Поздравляем! Вы успешно включили https://webhost.tecadmin.net Вы должны протестировать вашу конфигурацию на: https://www.ssllabs.com/ssltest/analyze.html?d=webhost.tecadmin.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ВАЖНЫЕ ЗАМЕТКИ: - Поздравляем! Ваш сертификат и цепочка сохранены по адресу: /etc/letsencrypt/live/webhost.tecadmin.net/fullchain.pem Ваш файл ключа сохранён по адресу: /etc/letsencrypt/live/webhost.tecadmin.net/privkey.pem Ваш сертификат истечёт 2020-07-2Чтобы получить новую или изменённую версию этого сертификата в будущем, просто запустите certbot снова с опцией "certonly". Для неинтерактивного обновления всех ваших сертификатов запустите "certbot renew" - Ваши учётные данные сохранены в конфигурационном каталоге Certbot по адресу /etc/letsencrypt. Вам следует сделать безопасную резервную копию этой папки сейчас. Этот каталог конфигурации также будет содержать сертификаты и закрытые ключи, полученные с помощью Certbot, поэтому регулярное создание резервных копий этой папки будет идеальным. - Если вам нравится Certbot, пожалуйста, подумайте о поддержке нашей работы: Пожертвования ISRG / Let's Encrypt: https://letsencrypt.org/donate Пожертвования EFF: https://eff.org/donate-le

Настройка правил брандмауэра

Вы можете использовать имя службы, например, «http» или «https», чтобы разрешить его в UFW. Чтобы открыть порты HTTP и HTTPS в FirewallD, выполните следующие команды:

sudo ufw allow https

Управление службой Apache

Теперь, когда ваш веб-сервер Apache запущен, давайте рассмотрим команды для управления этой службой. Чтобы остановить веб-сервер Apache, введите:

sudo systemctl stop apache2

Если вам нужно запустить веб-сервер Apache (если он был остановлен), используйте следующую команду:

sudo systemctl start apache2

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

sudo systemctl restart apache2

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

sudo systemctl reload apache2

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

sudo systemctl disable apache2

Если вы хотите включить автоматический запуск службы Apache при старте системы, выполните:

sudo systemctl enable apache2

В заключение, настройка веб-сервера больше не является эксклюзивной задачей для ИТ-специалистов или тех, кто обладает глубокими техническими знаниями. С помощью данного пошагового руководства вы сможете установить Apache на Ubuntu 20.04 и обеспечить его защиту с помощью Let’s Encrypt, независимо от вашего уровня подготовки. Мы подробно рассмотрели каждый этап, сделав процесс доступным и понятным. Не забывайте, что надежный и безопасный веб-сервер крайне важен для любой онлайн-деятельности. Apache в сочетании с повышением безопасности от Let’s Encrypt представляет собой мощное, надежное и безопасное решение для ваших потребностей в интернете. Так что, независимо от того, запускаете ли вы свой первый сайт, стремитесь улучшить безопасность уже существующего или просто хотите расширить свои знания о настройке и управлении сервером, это руководство станет для вас незаменимым помощником. С приобретенными знаниями вы сможете обеспечить свою онлайн-присутствие на высоком уровне безопасности и эффективности.

Читайте также:  Как установить Zorin OS пошаговое руководство для начинающих

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *