В данном руководстве предполагается, что у вас уже установлена актуальная версия сервера Ubuntu 20.04 LTS (Focal Fossa). Мы советуем использовать LTS-версию Ubuntu для серверных решений, например, Ubuntu 20.04 LTS (Focal Fossa). После установки сервера Ubuntu 20.04 переходите к шагам, которые нужно выполнить после установки. Это руководство включает важные шаги для настройки сервера и обеспечения базовой безопасности.
Следуйте шагам, описанным ниже.
Обновление системы: Сразу после установки рекомендуется обновить пакеты. Выполните команды:
sudo apt update
sudo apt upgrade -y
Создание нового пользователя: Создайте нового пользователя для работы с сервером и добавьте его в группу sudo для получения административных прав:
sudo adduser имя_пользователя
sudo usermod -aG sudo имя_пользователя
Настройка SSH: Убедитесь, что SSH-сервер установлен и работает. Установите его при необходимости:
sudo apt install openssh-server
Настройка брандмауэра: Используйте UFW (Uncomplicated Firewall) для настройки правил брандмауэра:
sudo ufw allow OpenSSH
sudo ufw enable
Отключение root-доступа через SSH: Для повышения безопасности редактируйте файл конфигурации SSH:
sudo nano /etc/ssh/sshd_config
Измените строку PermitRootLogin yes на PermitRootLogin no, затем перезапустите SSH:
sudo systemctl restart sshd
Установка необходимых пакетов: В зависимости от ваших нужд, установите дополнительные пакеты, такие как веб-сервер (например, Nginx или Apache), базы данных (MySQL, PostgreSQL) и т.д.
Регулярные обновления: Настройте автоматическое обновление системы, чтобы не пропустить важные патчи безопасности.
Настройка временной зоны: Убедитесь, что временная зона настроена правильно. Для изменения временной зоны выполните команду:
sudo timedatectl set-timezone Europe/Moscow
Установка Fail2Ban: Для защиты от атак типа «brute force» рекомендуется установить Fail2Ban. Это приложение следит за логами и блокирует IP-адреса, с которых было зафиксировано слишком много неудачных попыток входа:
sudo apt install fail2ban
Мониторинг системы: Установите инструменты мониторинга, такие как htop или netdata, для отслеживания загрузки системы и сети в реальном времени:
sudo apt install htop
# Для netdata
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Следуя этим шагам, вы сможете обеспечить базовую безопасность вашего сервера и подготовить его к дальнейшему использованию.
Содержание статьи
Обновите систему
Для начала войдите в систему Ubuntu 20.04 через терминал. Затем выполните следующие команды для обновления кэша apt и обновления всех установленных пакетов.
sudo apt update && sudo apt upgrade
После выполнения этих команд, вы можете использовать sudo apt dist-upgrade для выполнения более комплексного обновления, которое может установить или удалить пакеты для решения зависимостей. Не забудьте также периодически очищать ненужные пакеты с помощью команды sudo apt autoremove.
Рекомендуется проверять наличие обновлений регулярно, чтобы ваша система оставалась защищенной и работала на последней версии программного обеспечения.
Создание учетной записи пользователя
Не рекомендуется использовать учетную запись root для работы в Ubuntu 20.0Давайте создадим учетную запись для администрирования и предоставим ей доступ к sudo.
sudo adduser sysadmin
После этого добавьте нового пользователя в группу sudo, чтобы он получил все необходимые права.
sudo usermod -aG sudo sysadmin
Для повышения безопасности рекомендуется задать надежный пароль для нового пользователя и дополнительно настроить двухфакторную аутентификацию. Вы можете установить необходимые пакеты с помощью команды:
sudo apt install libpam-google-authenticator
После установки выполните настройку двухфакторной аутентификации, запустив команду:
google-authenticator
Следуйте инструкциям на экране, чтобы завершить настройку. Также полезно периодически обновлять систему и устанавливать обновления безопасности с помощью команды:
sudo apt update && sudo apt upgrade
Создание учетной записи с правами sudo позволит вам выполнять административные задачи без необходимости входа в учетную запись root, что снижает риск случайных изменений в системе.
Обеспечение безопасности SSH-сервера
Рекомендуется изменить стандартный порт для SSH, что поможет защитить вашу систему от попыток несанкционированного доступа. Чтобы изменить порт, отредактируйте файл конфигурации OpenSSH /etc/ssh/sshd_config и внесите следующие изменения.
- Измените стандартный порт – это поможет отвлечь злоумышленников от стандартных портов.
Кроме изменения порта, рассмотрите возможность использования ключевой аутентификации вместо паролей для повышения безопасности. Это значительно усложнит доступ к вашему серверу для злоумышленников.
- Добавьте следующую строку в файл конфигурации для отключения аутентификации по паролю:
PasswordAuthentication no
Также рекомендуется ограничить доступ к вашему серверу по IP-адресу, если это возможно. Это можно сделать с помощью параметра AllowUsers или настроив файрволл.
- Включите следующее для разрешения доступа только определённым пользователям:
AllowUsers username
Дополнительно, следите за журналами доступа, чтобы оперативно реагировать на подозрительную активность. Вы можете использовать инструмент fail2ban для автоматического блокирования IP-адресов, с которых происходят попытки несанкционированного доступа.
- Установите
fail2banи настройте его для защиты SSH:
sudo apt-get install fail2ban
sudo systemctl start fail2ban
Помните, что безопасность – это непрерывный процесс, и регулярные обновления системы также играют важную роль в защите вашего SSH-сервера.
Кроме того, рассмотрите возможность использования двухфакторной аутентификации (2FA). Это добавит дополнительный уровень безопасности и значительно усложнит задачу злоумышленникам.
- Чтобы настроить 2FA, вы можете установить пакет
libpam-google-authenticator:
sudo apt-get install libpam-google-authenticator
После установки следуйте инструкциям для настройки 2FA для SSH. Также рекомендуется отключить возможность входа через root и использовать обычные учётные записи с правами суперпользователя через sudo.
- Добавьте следующую строку в файл конфигурации:
PermitRootLogin no
Эти меры помогут значительно повысить безопасность вашего SSH-сервера и защитят его от многих распространённых угроз.
Настройка SSH с использованием ключей
Рекомендуется использовать вход по SSH с помощью ключей, а не паролей. Для этого создайте пару SSH-ключей на вашей локальной машине.
Пользователи Linux могут воспользоваться следующей командой, а пользователи Windows — использовать puttygen.exe для генерации пары ключей.
ssh-keygen
Пожалуйста, введите текст, который нужно перевести.
Generating public/private rsa key pair. Enter file in which to save the key (/home/sysadmin/.ssh/id_rsa): Created directory '/home/sysadmin/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sysadmin/.ssh/id_rsa Your public key has been saved in /home/sysadmin/.ssh/id_rsa.pub The key fingerprint is: SHA256:Wewuzm5MjMkiTQA4zFKPpGWpOcEE7TGRlFSgYGpsWHE sysadmin@tecadmin The key's randomart image is: +---[RSA 3072]----+ |@O%OE | |@@O+. | |*X.+. o | |*. + | |. o. +S. | |. o + o. | |. o. | | oo. | | o+ | +----[SHA256]-----+
Теперь скопируйте содержимое только что созданного файла публичного ключа .ssh/id_rsa.pub на сервер в файл .ssh/authorized_keys. Вы можете либо напрямую скопировать ключ, либо использовать следующую команду.
ssh-copy-id user@remote_host
Теперь вы сможете войти на сервер через SSH без запроса пароля.
Обратите внимание, что для повышения безопасности рекомендуется установить права доступа для директории .ssh и файла authorized_keys. Для этого выполните следующие команды:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Также полезно настроить SSH-сервер так, чтобы он не принимал пароли, отключив аутентификацию по паролю в файле /etc/ssh/sshd_config, установив параметр PasswordAuthentication no. Не забудьте перезапустить SSH-сервер после внесения изменений:
sudo systemctl restart sshd
Теперь ваша система будет более безопасной, и вы сможете пользоваться входом по SSH с использованием ключей.
Настройка брандмауэра с помощью FirewallD
По умолчанию в серверной версии Ubuntu 20.04 отсутствует firewalld. Вы можете установить необходимые пакеты, выполнив следующую команду.
sudo apt install firewalld
После установки запустите брандмауэр и активируйте его автозапуск при загрузке системы.
systemctl start firewalld systemctl enable firewalld
Брандмауэр по умолчанию разрешает доступ SSH для удаленных пользователей. Вам также может потребоваться разрешить доступ к другим службам через брандмауэр.
Вы можете указать имя службы, например "http" или "https", для её разрешения. Firewalld использует файл /etc/services для определения соответствующего порта службы.
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https
Если какое-либо из указанных имен сервисов отсутствует в файле /etc/services, вы можете применить правило брандмауэра, указав номер порта напрямую. Например, чтобы разрешить TCP-порт 8080 или 10000 (порт по умолчанию для Webmin) в вашем брандмауэре.
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --permanent --add-port=10000/tcp
После того как вы внесли изменения в брандмауэр, обязательно загрузите их, используя следующую команду.
firewall-cmd --reload
Чтобы увидеть все разрешенные порты и службы, выполните следующую команду.
firewall-cmd --permanent --list-all
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http https ssh ports: 8080/tcp 10000/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Не забудьте, что брандмауэр может блокировать не только входящие, но и исходящие соединения. Чтобы разрешить исходящий трафик для определённых служб, используйте команду:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name="http" accept'
Также важно следить за логами брандмауэра, чтобы видеть, какие соединения блокируются. Вы можете включить логирование, добавив следующие правила:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" log prefix="firewalld: " level="info"'
После внесения всех изменений, снова выполните команду перезагрузки для применения правил.
firewall-cmd --reload
Ваша система Ubuntu 20.04 LTS (Focal Fossa) готова к эксплуатации. Пожалуйста, не забудьте поделиться своими идеями по первоначальной настройке сервера, это будет полезно другим.
Основные настройки безопасности сервера
Обновление системы - Регулярное обновление программного обеспечения и системы является важным шагом. Это позволяет закрыть уязвимости, которые могут быть использованы злоумышленниками. Используйте команду sudo apt update && sudo apt upgrade для загрузки последних обновлений.
Настройка брандмауэра - Необходимость настройки брандмауэра для контроля входящего и исходящего трафика не вызывает сомнений. С помощью ufw (Uncomplicated Firewall) можно легко управлять правилами доступа. Для его активации используйте команду sudo ufw enable.
Использование SSH - Доступ к системе через SSH должен быть защищён. Рекомендуется изменить стандартный порт, отключить вход с помощью паролей и использовать ключи SSH. Эти меры значительно усложнят задачу злоумышленникам.
Ограничение прав пользователей - Необходимо предоставлять минимально необходимые права каждому пользователю. Это значит, что обычные пользователи не должны иметь административные полномочия, что значительно снизит риски.
Регулярные резервные копии - Создание резервных копий данных позволяет быстро восстановить информацию в случае инцидента. Убедитесь, что резервные копии хранятся в безопасном месте и проверяйте их целостность.
Следуя этим рекомендациям, можно значительно повысить защиту вашей информационной системы и предотвратить возможные атаки.

