Премиальное программное обеспечение и практические уроки
Как настроить сервер Ubuntu, руководство для начинающих по настройке безопасности
Для новых пользователей сервера Ubuntu базовая настройка безопасности может помочь защитить систему от распространённых сетевых угроз. Она включает в себя изменение порта SSH по умолчанию, ограничение числа пользователей, настраиваемых для входа в систему, настройку правил брандмауэра, регулярное обновление системных исправлений и включение инструментов защиты, таких как Fail2Ban. Эти базовые шаги не только снижают риск атак методом подбора пароля и несанкционированного доступа к серверу, но и создают надёжную основу для его безопасности.
Безопасность сети очень важна, особенно для новичков, которые устанавливают операционную систему, не выполнив никаких настроек безопасности, что равносильно открытию двери хакерам.
Для обеспечения безопасности сервера недостаточно полагаться исключительно на настройки операционной системы по умолчанию в Ubuntu. В этой статье объясняется, как настроить безопасность в Ubuntu 22.04 для повышения безопасности сервера.
Переключиться на пользователя root
В терминале SSH введите следующую команду, чтобы переключиться на пользователя root:
судо -и
После ввода пароля пользователя войдите в учетную запись root и введите следующую команду, чтобы установить пароль root.
sudo пароль root
Обновите систему
Первым шагом после установки системы является ее обновление, чтобы программное обеспечение в системе было актуальным.
sudo apt update && sudo apt upgrade -y
Включите автоматические обновления, чтобы ваша система всегда оставалась актуальной:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
Установите последние обновления безопасности
sudo apt autoremove -y
Регулярные обновления и управление исправлениями: регулярно обновляйте систему Ubuntu и все установленные пакеты программного обеспечения, чтобы обеспечить своевременные исправления безопасности.
Эти сообщения обычно появляются в отчётах об обновлении системы или проверке безопасности, указывая на то, что система находится в хорошем состоянии. Их значение следующее:
- Перезапуск контейнеров не требуется: в настоящее время нет контейнеров, которые необходимо перезапускать, что указывает на то, что все контейнеры используют последний код или конфигурацию.
- Ни один сеанс пользователя не запускает устаревшие двоичные файлы: Ни один сеанс пользователя не запускает устаревшие двоичные файлы, гарантируя, что пользователи используют самые последние версии программ и избегают уязвимостей безопасности.
- На этом хосте ни одна гостевая виртуальная машина не использует устаревшие двоичные файлы гипервизора (qemu): Ни одна гостевая виртуальная машина не использует устаревшие двоичные файлы QEMU (гипервизора), что обеспечивает безопасность среды виртуализации.
В целом это означает, что контейнеры, пользовательские сеансы и виртуальные машины в системе обновлены и не требуют перезагрузки или дополнительных действий, что является «нормальным» показателем.
Установить китайский языковой пакет
Китайский языковой пакет можно установить через графический интерфейс или командную строку.
Через командную строку:
Обновите список пакетов и установите языковой пакет:
обновление sudo apt
sudo apt install language-pack-zh-hans -y
После завершения установки настройте локаль системы:
sudo update-locale LANG=zh_CN.UTF-8
Перезагрузите систему или выйдите из нее, чтобы применить новые языковые настройки.
Изменить часовой пояс
Часовой пояс можно изменить через командную строку или графический интерфейс.
Установите часовой пояс. Например, установите часовой пояс «Стандартное время Китая (Азия/Шанхай)»:
sudo timedatectl set-timezone Asia/Shanghai
Настройка файла подкачки (необязательно)
Если объем системной памяти невелик, создание файла подкачки может повысить производительность системы:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Установите базовый набор инструментов
Установите некоторые часто используемые наборы инструментов и средства разработки.
sudo apt install -y build-essential curl wget git vim unzip htop nload
Установите сетевые инструменты, некоторые инструменты отладки и управления сетью.
sudo apt install -y net-tools dnsutils traceroute telnet nload
Установите Python и его инструменты. Python — это распространённый язык сценариев, используемый многими приложениями.
sudo apt install -y python3 python3-pip python3-venv
Установите Node.js и npm. Node.js — это серверная среда выполнения JavaScript, а npm — её менеджер пакетов.
sudo apt install -y nodejs npm
Установите Snap и установите другие приложения. Snap — это менеджер пакетов Ubuntu, который можно использовать для установки множества приложений:
sudo apt install -y snapd
Установите инструменты для разработки. Для Java установите OpenJDK (например, OpenJDK 11 или 17):
sudo apt install -y openjdk-17-jdk
Для разработки на C/C++, помимо build-essential, установите некоторые распространенные библиотеки и инструменты:
sudo apt install -y cmake gdb
Установите инструменты обработки изображений и некоторые распространенные инструменты обработки и преобразования изображений.
sudo apt install -y imagemagick ffmpeg
Установите инструменты для обработки текста, установите некоторые часто используемые инструменты для обработки текста.
sudo apt install -y jq silversearcher-ag tree
Для очистки установочных пакетов и зависимостей, которые больше не нужны, можно использовать следующую команду:
sudo apt autoremove -y
sudo apt autoclean
Выберите варианты установки в соответствии с вашими потребностями. После их завершения система будет оснащена инструментами, необходимыми для стандартных сред разработки, эксплуатации и обслуживания.
Добавить несколько IP-адресов
Просмотреть файл конфигурации IP
ls /etc/netplan/
Редактирование файла конфигурации IP
vi /etc/netplan/50-cloud-init.yaml
Применить новый профиль
sudo netplan применить
Просмотр IP-адреса привязки порта
ip a show eno1
Проверьте жесткий диск и смонтируйте новый жесткий диск в /home.
Проверьте текущий статус диска
sudo fdisk -l
Используйте parted для разбиения нового жесткого диска на разделы:
sudo parted /dev/sdb
SDB — это второй жёсткий диск на сервере. Обычно первый жёсткий диск (SDA) используется как системный диск, а SDB — как диск с данными.
Конфигурация безопасности SSH
Чтобы повысить безопасность доступа по SSH на сервере Linux, вы можете настроить файл /etc/ssh/sshd_config, чтобы ограничить количество попыток входа, интервал между ними и контролировать, каким пользователям разрешен доступ. Ниже приведены конкретные шаги:
Установите количество попыток входа в систему и время между неудачными попытками входа в систему.
Отредактируйте файл /etc/ssh/sshd_config:
sudo vi /etc/ssh/sshd_config
Настройка MaxAuthTries
MaxAuthTries: этот параметр используется для установки максимального количества попыток аутентификации, после которого соединение будет разорвано.
Значение по умолчанию обычно равно 6, но для повышения безопасности можно установить значение 3 или меньше.
MaxAuthTries 3
Ограничение доступа пользователей с помощью директив DenyUsers и AllowUsers
Настройка директивы DenyUsers
DenyUsers: используется для указания списка пользователей, которым запрещен вход в систему через SSH.
Формат: DenyUsers имя_пользователя1 имя_пользователя2
Например, чтобы запретить пользователям testuser и guest входить в систему через SSH:
DenyUsers тестовый пользователь гость
Настройка директивы AllowUsers
AllowUsers: используется для указания списка пользователей, которым разрешен вход в систему через SSH (вход разрешен только этим пользователям).
Формат: AllowUsers Имя пользователя1 Имя пользователя2
Например, чтобы разрешить вход через SSH только администратору:
AllowUsers adminuser
Примечание: AllowUsers и DenyUsers не могут использоваться взаимозаменяемо. При использовании AllowUsers вход будет разрешен только пользователям из списка. Остальные пользователи не смогут войти, даже если они не указаны в DenyUsers.
По завершении сохраните и закройте файл, а затем перезапустите службу SSH:
sudo systemctl перезапустить sshd
Используйте такие инструменты, как Fail2Ban
Установить Fail2Ban
Повысьте безопасность, отслеживая журналы входа в систему и автоматически блокируя IP-адреса с неоднократных неудачных попыток входа. Используйте Fail2Ban для автоматической блокировки IP-адресов.
Fail2Ban — очень эффективный инструмент, который отслеживает неудачные попытки входа по SSH и автоматически блокирует IP-адреса, которые неоднократно оказывались неудачными. Установка и настройка Fail2Ban может обеспечить аналогичный эффект задержки:
sudo apt install fail2ban
Настройка Fail2Ban
Редактировать файл /etc/fail2ban/jail.local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Примечание: если jail.local не существует, вы можете скопировать содержимое jail.conf для создания jail.local:
sudo vi /etc/fail2ban/jail.local
Чтобы настроить мониторинг SSH, добавьте следующее к параметрам SSHD:
[sshd] включен = true порт = ssh maxretry = 3 bantime = 6000 findtime = 60
maxretry: Установитьнайти время Максимально допустимое количество сбоев в течение определенного периода времени (в секундах).
bantime: Установите время бана (в секундах), которое можно увеличить по мере необходимости.
Запустить Fail2Ban
После сохранения файла конфигурации перезапустите службу Fail2Ban:
sudo systemctl restart fail2ban
Проверьте эффективность конфигурации.
sudo fail2ban-client status
Если отображается следующее, это означает, что настройка прошла успешно.
Статус |- Номер тюрьмы: 1 `- Список тюрем: sshd
После настройки /etc/ssh/sshd_config, установки параметров MaxAuthTries, DenyUsers и AllowUsers и установки Fail2Ban вы можете эффективно ограничить количество попыток входа по SSH и разрешенных пользователей, тем самым снижая риск взлома методом подбора.
Конфигурация Fail2BanПосле этого ваш сервер будет эффективно защищён от атак методом подбора паролей. Вы также сможете включить дополнительные джейлы или настроить правила в соответствии со своими потребностями.
Вход по SSH без использования учетной записи root
Для повышения безопасности рекомендуется избегать входа на сервер напрямую под учетной записью root, а вместо этого создать обычного пользователя с правами sudo для выполнения административных задач. Ниже описан процесс настройки:
Создать нового пользователя
Создайте нового пользователя и предоставьте ему привилегии sudo с помощью следующей команды:
sudo adduser новое имя пользователя
sudo usermod -aG sudo новое имя пользователя
После выполнения команды убедитесь, чтоНовое имя пользователяДобавлен в группу sudo:
группы новое имя пользователя
Если список групп, возвращаемый командой, содержит sudo, это означает, что добавление прошло успешно.
Повторный вход в систему: информация о группе пользователя загружается в начале сеанса, поэтому для применения изменений необходимо выйти из системы и снова войти в систему.
В некоторых системах группа sudo может быть не включена или файл /etc/sudoers может быть настроен неправильно.
Проверьте конфигурацию файла sudoers с помощью следующей команды:
sudo visudo
Убедитесь, что файл содержит следующую строку:
%sudo ALL=(ALL:ALL) ALL
Добавьте следующую строку в конец файла:
Новое имя пользователя ALL=(ALL) ALL
Это гарантирует, что новое имя пользователя будет иметь привилегии sudo.
Отключить вход по SSH для пользователя root
Вы можете дополнительно повысить безопасность своего сервера, отключив доступ по SSH для пользователя root. Отредактируйте файл конфигурации SSH /etc/ssh/sshd_config:
sudo vi /etc/ssh/sshd_config
Найдите следующую строку:
#PermitRootLogin запретить-пароль
Изменить на:
PermitRootLogin нет
Сохраните и закройте файл, затем перезапустите службу SSH, чтобы изменения вступили в силу:
sudo systemctl перезапустить sshd
Изменить пароль root
После входа в систему как root используйте команду passwd, чтобы изменить пароль root на более сложный.
Вход по SSH с использованием ключей
Использование пары ключей SSH для входа в систему — безопасный и удобный способ эффективно предотвратить атаки методом подбора. Ниже приведены подробные инструкции по созданию пары ключей, загрузке открытого ключа и настройке SSH-сервера для отключения входа по паролю:
Сгенерируйте пару ключей SSH
На локальном компьютере откройте терминал и выполните следующую команду:
ssh-keygen -t rsa -b 4096
Это генерирует пару ключей RSA (открытый и закрытый).
Вам будет предложено ввести имя файла и пароль:
Имя файла: нажмите Enter, чтобы использовать имя файла по умолчанию (обычно ~/.ssh/id_rsa).
Пароль: Вы можете установить пароль для повышения безопасности или оставить поле пустым.
После генерации пара ключей будет сохранена по следующему пути:
Закрытый ключ: ~/.ssh/id_rsa
Открытый ключ: ~/.ssh/id_rsa.pub
Вручную войдите на сервер, откройте (или создайте) файл ~/.ssh/authorized_keys и вставьте в него открытый ключ ~/.ssh/id_rsa.pub:
vi ~/.ssh/authorized_keys
Настройки разрешений
Убедитесь, что права доступа к каталогу ~/.ssh и файлу author_keys установлены правильно:
Каталог .ssh должен иметь значение 700:
chmod 700 /root/.ssh
Файл author_keys должен иметь значение 600:
chmod 600 /root/.ssh/authorized_keys
Настроить SSH-сервер
Откройте файл конфигурации SSH:
sudo vi /etc/ssh/sshd_config
Убедитесь, что установлены следующие элементы конфигурации:
Аутентификация открытого ключа: да
ПарольАутентификация нет
Чтобы изменения конфигурации вступили в силу, перезапустите службу SSH:
sudo systemctl перезапустить sshd
Просмотр использования памяти
Использование памяти также является важным показателем безопасности сервера. Мы можем использовать такие команды, как free, top или htop, чтобы просмотреть текущее использование памяти сервером и убедиться, что никакие вредоносные процессы не занимают слишком много памяти.
Установить брандмауэр
Вирусный брандмауэр
В Ubuntu вы можете использовать популярные антивирусные программы для защиты своей системы. ClamAV — это антивирусный сканер с открытым исходным кодом, широко используемый в системах Linux.
ClamAV — это антивирусное программное обеспечение с открытым исходным кодом, предназначенное для обнаружения и удаления вредоносных программ. Ниже приведены подробные инструкции по установке и настройке ClamAV в системах Ubuntu.
Установить ClamAV:
Установите ClamAV и clamav-daemon (который обеспечивает поддержку сканирования в реальном времени) с помощью менеджера пакетов APT.
sudo apt install clamav clamav-daemon -y
Убедитесь, что установка прошла успешно.
clamscan --version
Обновление базы данных вирусов:
Перед обновлением вирусной базы данных остановите ClamAV
sudo systemctl stop clamav-freshclam
sudo freshclam
После завершения обновления запустите службу.
sudo systemctl start clamav-daemon
sudo systemctl start clamav-freshclam
Выполните полное сканирование системы:
sudo clamscan -r /
Автоматическое сканирование (можно настроить Cron-задание для регулярного сканирования). Вы можете изменить Cron-задание для регулярного запуска сканирования ClamAV.
Настройте службу ClamAV (clamav-daemon) для поддержки сканирования в реальном времени. Убедитесь, что служба запущена:
sudo systemctl enable clamav-daemon
sudo systemctl start clamav-daemon
Автоматическое обновление вирусной базы данных
sudo systemctl enable clamav-freshclam
sudo systemctl start clamav-freshclam
Изменить файл конфигурации
vi /etc/clamav/freshclam.conf
Измените следующую строку для обновления каждый час
Проверки 24
Запланируйте регулярные сканирования
Вы можете использовать cron для планирования регулярных сканирований. Отредактируйте файл crontab:
sudo crontab -e
Добавьте следующую строку для сканирования каталога /home в 2:00 утра каждый день:
0 2 * * * clamscan -r /home
Системный брандмауэр
UFW (Uncomplicated Firewall) — распространённый брандмауэр в Ubuntu. Он прост и удобен в использовании и подходит как новичкам, так и опытным пользователям.
Установить UFW:
sudo apt install ufw
Включить UFW:
sudo ufw enable
Разрешите доступ по SSH (перед включением брандмауэра убедитесь, что удаленный доступ возможен):
sudo ufw разрешить ssh
Разрешить доступ к другим портам (таким как HTTP и HTTPS):
sudo ufw allow 80/tcp # Разрешить HTTP
sudo ufw allow 443/tcp # Разрешить HTTPS
Проверьте статус UFW:
sudo ufw status verbose
Отключить UFW:
sudo ufw отключить
Подвести итог
В современных сетевых средах обеспечение безопасности вашего сервера Ubuntu имеет решающее значение. Регулярное обновление системы и пакетов для получения последних обновлений безопасности является основополагающей мерой по предотвращению потенциальных уязвимостей. Кроме того, рекомендуется использовать SSH-ключи для входа в систему и отключить аутентификацию по паролю для повышения безопасности удалённого доступа. Настройка брандмауэра UFW позволяет эффективно ограничить доступ к ненужным службам. Кроме того, регулярная установка и обновление антивирусного ПО (например, ClamAV) и мониторинг системных журналов помогают своевременно обнаруживать и реагировать на угрозы безопасности. Благодаря этим комплексным мерам пользователи Ubuntu могут эффективно защитить свои системы от атак и обеспечить безопасность и стабильность данных.
Учебное пособие по настройке CyberPanel
Установка брандмауэра CSF (ConfigServer Security & Firewall)
Шаги по установке CSF и включению базовой конфигурации в Ubuntu следующие:
# установка зависимостей sudo apt update sudo apt install -y perl libwww-perl liblwp-protocol-https-perl # загрузка CSF wget https://download.configserver.com/csf.tgz tar -xzf csf.tgz cd csf # запуск скрипта установки sudo bash install.sh # проверка совместимости сервера с CSF sudo perl /usr/local/csf/bin/csftest.pl
Официальный скрипт установки обновлён. Если после установки CSF вы столкнулись с ошибкой 500, вам нужно будет обновиться и установить CSF только с помощью официального скрипта обновления.
ш <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh || wget -O - https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh)