Как правильно настроить web сервер?
Настройка Производственного Сервера: Практическое Руководство
По моему мнению, любой бэкенд или фронтенд разработчик должен уметь настроить производственный сервер. И первое, с чем он сталкивается, это выбор хостинг-провайдера. На рынке представлены как иностранные, так и российские поставщики услуг. За свой продолжительный период работы приходилось обращаться к обеим категориям. В связи с санкциями и курсом доллара, выбор чаще всего падает на российских операторов услуг. После многих испытаний, в настоящее время мой выбор — reg.ru и timeweb.cloud.
Настройка сервера с акцентом на безопасность
Арендовав сервер, вы получаете IP-адрес и пароль root-пользователя, которые отображаются в настройках административной панели. Однако использование учетной записи root по умолчанию представляет угрозу безопасности.
Смена пароля
Для смены пароля введите команду:
passwd
и дважды введите новый пароль.
Создание нового пользователя
adduser myuser
Система спросит ввести новый пароль — используйте смесь цифр, букв и символов. Для пользователя myuser
будет создан
каталог /home/myuser
.
Установка файлового менеджера
apt update
apt install mc
Настройка привилегий
Воспользуйтесь командой sudo visudo
для редактирования файла sudoers и добавьте строку:
myuser ALL=(ALL:ALL) ALL
Это дает пользователю myuser
право использовать команду sudo с полными привилегиями.
Запрет доступа по SSH для пользователя root
Откройте файл конфигурации SSH:
sudo nano /etc/ssh/sshd_config
Измените значение на:
PermitRootLogin no
Перезапустите SSH, чтобы применить изменения:
systemctl restart sshd
Настройка ключей SSH
cd ~
mkdir .ssh
nano .ssh/authorized_keys
Сохраните в файл публичный ключ. Затем измените настройку аутентификации по паролю:
sudo nano /etc/ssh/sshd_config
Установите:
PasswordAuthentication no
Перезапустите SSH:
sudo systemctl restart ssh
Настройка фаервола
Для получения детальной информации о статусе фаервола:
sudo ufw status verbose
Для добавления правила на порт:
sudo ufw allow 22/tcp
Для удаления правила:
sudo ufw delete allow 22/tcp
Отключите ненужные порты для повышения безопасности.