Серверы Linux VPS обеспечивают более высокий уровень защиты по сравнению с системами Windows благодаря встроенной модели безопасности Linux Security Model. Тем не менее абсолютно защищённых систем не существует. Злоумышленники ежедневно сканируют миллионы серверов в поисках уязвимостей, чтобы похитить данные или задействовать ресурсы серверов в масштабных атаках.
Грамотная защита Linux-сервера требует осознанной настройки. Свежая установка VPS поставляется с параметрами по умолчанию, которые делают упор на доступность, а не на безопасность. Правильная конфигурация защищает от актуальных угроз, не нарушая работу системы. В этом руководстве — 20 необходимых шагов, которые превратят уязвимый Linux-сервер в надёжно защищённую инфраструктуру, устойчивую к распространённым атакам.
Что такое Linux VPS?

Linux VPS (Virtual Private Server) работает на облачной платформе с выделенными ресурсами, изолированными от других пользователей. В отличие от виртуального хостинга, где компрометация одного аккаунта может затронуть остальных, безопасный VPS-хостинг полностью разделяет окружения. Тем не менее незащищённые VPS-серверы по-прежнему остаются мишенью: злоумышленники крадут данные, устанавливают вредоносное ПО или используют серверы для атак на другие системы.
Когда вы заказываете купить Linux VPS хостинг, операционная система поставляется предустановленной с базовыми настройками. Эти конфигурации по умолчанию ориентированы на удобство использования, а не на безопасность, оставляя сервер открытым для автоматизированных атак, сканирующих типичные уязвимости. Защита данных на VPS-серверах требует активных мер, выходящих за рамки базовой установки.
Почему стоит защитить свой Linux VPS
Незащищённые серверы становятся мишенью уже через несколько часов после запуска. Сегодня организации сталкиваются в среднем с 1 876 кибератаками в неделю, что на 75% больше, чем годом ранее. Понимание того, как защитить инфраструктуру Linux-сервера, позволяет противостоять этим постоянным угрозам, способным скомпрометировать систему.
Самое опасное в изощрённых атаках — то, что они долго остаются незамеченными. Злоумышленники могут получать доступ к данным, перехватывать трафик или потреблять ресурсы сервера без каких-либо очевидных признаков вторжения. Безопасный VPS-хостинг требует проактивного подхода: атакующие не предупреждают о своём присутствии, и к тому моменту, когда вы замечаете подозрительную активность, ущерб может быть уже значительным.
Модель безопасности Linux (LSM)

Linux включает встроенные механизмы безопасности, которые блокируют несанкционированный доступ к критически важным компонентам системы. Диаграмма модели безопасности Linux показывает, как средства контроля доступа защищают файлы, процессы и взаимодействие пользователей. Это создаёт несколько уровней защиты, которые существенно усложняют эксплуатацию уязвимостей по сравнению с другими операционными системами.
Тем не менее, LSM не могут предотвратить атаки, вызванные неправильной конфигурацией, слабыми паролями или устаревшим программным обеспечением. Они закладывают основу для защиты сервера Linux, но требуют грамотной реализации, чтобы быть эффективными для Хостинг Ubuntu VPS и других дистрибутивов Linux.
20 способов защитить Linux VPS

Эти меры безопасности выстроены от базовых изменений конфигурации до продвинутых систем мониторинга. Чтобы по-настоящему защитить серверные среды Linux, нужно последовательно применять каждый из этих шагов и выстраивать защиту системно.
Каждый метод устраняет конкретные уязвимости, которые злоумышленники используют чаще всего. Подходы варьируются от базовых конфигураций, необходимых любому серверу, до сложных систем мониторинга для обнаружения продвинутых угроз. Одни меры обеспечивают немедленную защиту, другие формируют долгосрочную устойчивость. Порядок внедрения важен: сначала базовое усиление защиты, затем продвинутые инструменты мониторинга. В совокупности эти 20 методов создают перекрывающиеся уровни защиты, которые значительно сокращают поверхность атаки вашего сервера.
1. Регулярно обновляйте программное обеспечение
Устаревшее ПО содержит известные уязвимости, которыми пользуются злоумышленники. Разработчики регулярно выпускают патчи, закрывающие эти уязвимости, поэтому обновления — первая линия обороны при защите серверов Linux.
Настройте автоматическую установку критических патчей безопасности:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
Настройте уведомления по электронной почте о доступных обновлениях, чтобы не пропускать патчи безопасности, требующие ручной проверки.
2. Отключите вход под root
На каждом сервере Linux есть учётная запись «root» с неограниченным доступом к системе. Поскольку злоумышленники знают, что она существует всегда, именно она становится целью атак перебором паролей для получения полного контроля над сервером.
Создайте нового администратора перед тем, как отключить доступ под root:
# Create new user
sudo adduser adminuser
sudo usermod -aG sudo adminuser
# Disable root login in SSH configuration
sudo nano /etc/ssh/sshd_config
# Change: PermitRootLogin no
sudo systemctl restart sshd
Это вынуждает атакующего угадывать и имя пользователя, и пароль, что значительно повышает уровень защиты.
3. Создайте пару ключей SSH
Вход по паролю, особенно если пароль слабый, может стать уязвимостью. Аутентификация по ключам SSH — более надёжная альтернатива. Криптографические ключи вместо паролей обеспечивают метод аутентификации, который значительно сложнее взломать.
Эта мера особенно важна с учётом того, что в 24% утечек данных первоначальным вектором атаки служат украденные учётные данные согласно исследованиям в области безопасности. Такие атаки обнаруживаются и нейтрализуются дольше, чем при любом другом методе, поэтому предотвращение с помощью ключей SSH особенно актуально.
Создайте пару ключей SSH для безопасной аутентификации:
ssh-keygen -t rsa -b 4096
ssh-copy-id username@server-ip
Длина ключей SSH может достигать 4096 бит, что делает их несравнимо надёжнее даже самых сложных паролей.
4. Включите двухфакторную аутентификацию
Двухфакторная аутентификация добавляет второй шаг проверки помимо пароля. Даже если злоумышленник узнает ваш пароль, без второго фактора он не сможет войти на сервер.
Установите и настройте двухфакторную аутентификацию:
sudo apt install libpam-google-authenticator
google-authenticator
Настройте приложение-аутентификатор на телефоне для генерации одноразовых кодов при подключении к серверу.
5. Смените порт SSH
Стандартный порт SSH (22) постоянно атакуют автоматизированные сканеры. Смена порта на нестандартный снижает количество таких атак. Учитывая, что средняя стоимость утечки данных в мире достигла $4,88 млн в 2024 году, даже простые меры вроде смены порта дают реальную защиту от автоматизированных угроз.
Для большинства дистрибутивов Linux:
sudo nano /etc/ssh/sshd_config
# Find: #Port 22
# Change to: Port 2222 (choose a port between 1024-65535)
sudo systemctl restart sshd
Для Ubuntu 23.04 и более поздних версий:
sudo nano /lib/systemd/system/ssh.socket
# Update ListenStream=2222
sudo systemctl daemon-reload
sudo systemctl restart ssh.service
Важно: Проверьте новый порт, не закрывая текущую сессию:
# Test connection in a new terminal
ssh username@server-ip -p 2222
Обновите правила брандмауэра, чтобы разрешить новый порт:
sudo ufw allow 2222
sudo ufw delete allow 22 # Remove old rule after testing
Не забудьте указывать новый порт при подключении: ssh имя_пользователя@ip-сервера -p 2222
6. Отключите неиспользуемые сетевые порты и IPv6
Открытые сетевые порты дают злоумышленникам точки входа. Каждый запущенный сервис создаёт потенциальные уязвимости, поэтому отключайте ненужные сервисы и соответствующие им порты.
Просмотр открытых портов:
sudo netstat -tulpn
# Alternative command
sudo ss -tulpn
Используйте iptables для управления правилами брандмауэра и закрытия ненужных портов.
Отключите IPv6, если он не нужен:
sudo nano /etc/sysctl.conf
# Add these lines:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
# Apply changes
sudo sysctl -p
# Verify IPv6 is disabled
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
# Should return 1
Обновите конфигурацию сети (укажите актуальный файл netplan):
# Find netplan configuration files
ls /etc/netplan/
# Edit your specific configuration file
sudo nano /etc/netplan/[your-config-file].yaml
# Comment out IPv6 configuration lines
sudo netplan apply
7. Настройте брандмауэр
Брандмауэр контролирует входящий и исходящий сетевой трафик. Он блокирует несанкционированные подключения и пропускает легитимный трафик через указанные порты.
Быстрая настройка UFW:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
Основные правила брандмауэра:
| Назначение | Команда | Результат |
| Разрешить HTTP | sudo ufw allow 80 | Веб-трафик разрешён |
| Разрешить HTTPS | sudo ufw allow 443 | Защищённый веб-трафик |
| Разрешить нестандартный порт SSH | sudo ufw allow 2222 | SSH на нестандартном порту |
| Заблокировать конкретный IP | sudo ufw deny from 192.168.1.100 | IP полностью заблокирован |
Проверить статус брандмауэра:
sudo ufw status verbose
Эта конфигурация блокирует весь входящий трафик, кроме подключений по SSH.
8. Установка антивирусных программ и средств защиты от вредоносного ПО
Linux-системы могут быть заражены вредоносным ПО, которое похищает данные, добывает криптовалюту или открывает атакующим скрытый доступ к серверу. Антивирусное ПО обнаруживает и удаляет подобные угрозы до того, как они успевают навредить.
Установите ClamAV для полноценного сканирования на вирусы:
sudo apt install clamav clamav-daemon clamav-freshclam
sudo freshclam
sudo systemctl enable clamav-freshclam
sudo systemctl start clamav-freshclam
Запустите ручное сканирование критически важных директорий:
sudo clamscan -r /home --infected --remove --bell
sudo clamscan -r /var/www --infected --remove
Для усиленной защиты установите Maldet вместе с ClamAV:
# Verify URL availability before downloading
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -xzf maldetect-current.tar.gz
cd maldetect-*
sudo ./install.sh
# Note: Always verify download URLs from official sources before use
Настройте ежедневное автоматическое сканирование через cron:
# Add to crontab: Daily scan at 2 AM
0 2 * * * /usr/bin/clamscan -r /home --quiet --infected --remove
9. Установка сканера руткитов
Руткиты - это вредоносные программы, которые глубоко встраиваются в операционную систему и зачастую остаются незамеченными стандартными антивирусами. Они дают атакующим постоянный доступ к системе, оставаясь невидимыми для обычных методов обнаружения.
Установите и настройте Chkrootkit для обнаружения руткитов:
sudo apt install chkrootkit
sudo chkrootkit | grep INFECTED
Установите RKHunter для дополнительной защиты от руткитов:
sudo apt install rkhunter
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Настройте автоматическое еженедельное сканирование на руткиты:
# Add to crontab: Weekly rootkit scan every Sunday at 3 AM
0 3 * * 0 /usr/bin/rkhunter --cronjob --update --quiet
0 4 * * 0 /usr/bin/chkrootkit | grep INFECTED > /var/log/chkrootkit.log
Если обнаружены руткиты, немедленно изолируйте сервер и рассмотрите полную переустановку ОС: руткиты крайне сложно удалить полностью, не нарушив целостность системы.
10. Используйте Fail2Ban для защиты от вторжений
Fail2Ban отслеживает попытки входа и автоматически блокирует IP-адреса, проявляющие подозрительную активность, например многократные неудачные попытки авторизации.
Быстрая установка:
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Основные настройки защиты SSH:
[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 3600
findtime = 600
Основные параметры конфигурации:
| Значение | Цена | Значение |
| maxretry | 3 | Неудачных попыток до блокировки |
| время блокировки | 3600 | Длительность блокировки (1 час) |
| найти время | 600 | Временной интервал (10 минут) |
Запуск и включение автозапуска:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Проверка заблокированных IP:
sudo fail2ban-client status sshd
11. Включите SELinux
Security-Enhanced Linux (SELinux) обеспечивает обязательный контроль доступа, ограничивая возможности программ даже в случае их компрометации. Это дополнительный уровень защиты поверх стандартных разрешений Linux.
Проверьте и включите SELinux:
sestatus
sudo setenforce enforcing
Политики SELinux предотвращают доступ скомпрометированных приложений к неавторизованным системным ресурсам. Следуйте этим краткое руководство по работе с SELinux для оптимальной настройки.
12. Защита файлов, папок и электронной почты
Шифруйте конфиденциальные файлы, чтобы защитить их от несанкционированного доступа — даже если злоумышленники проникнут в систему. Это особенно важно для файловых серверов Linux, работающих с чувствительными данными.
Шифрование файлов с помощью GPG:
gpg --cipher-algo AES256 --compress-algo 1 --s2k-mode 3 --s2k-digest-algo SHA512 --s2k-count 65536 --symmetric filename
Установите корректные права доступа к файлам:
chmod 600 sensitive-file # Owner read/write only
chmod 700 private-directory # Owner access only
13. Регулярное резервное копирование
Регулярные резервные копии позволяют восстановить данные после инцидентов безопасности, аппаратных сбоев или случайного удаления. Автоматизация этого процесса снижает влияние человеческого фактора и является важным элементом защищённого хостинга VPS.
Создайте скрипты автоматического резервного копирования:
#!/bin/bash
tar -czf /backup/$(date +%Y%m%d)-system.tar.gz /home /etc /var/log
Храните резервные копии в нескольких местах, включая внешнее хранилище, следуя правилу резервного копирования 3-2-1.
14. Разбиение диска на разделы
Разбиение диска на разделы отделяет системные файлы от пользовательских данных, ограничивая ущерб при компрометации одного из разделов. Это также предотвращает ситуацию, когда нехватка места в одной области затрагивает всю систему.
Рекомендуемая схема разделов:
/boot – 500 МБ (загрузочные файлы)
/ – 20 ГБ (системные файлы)
/home – 50 ГБ (пользовательские данные)
/var – 10 ГБ (логи и базы данных)
/tmp – 2 ГБ (временные файлы)
swap – 2 ГБ (виртуальная память)
Подключите временные разделы с ограничениями безопасности:
# Add to /etc/fstab for permanent mounting
echo "tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=2G 0 0" >> /etc/fstab
echo "tmpfs /var/tmp tmpfs defaults,noexec,nosuid,nodev,size=1G 0 0" >> /etc/fstab
# Применить немедленно
sudo mount -a
Проверьте безопасность разделов:
mount | grep -E "(noexec|nosuid|nodev)"
df -h # Check disk usage by partition
Параметр noexec параметр запрещает запуск вредоносных исполняемых файлов, nosuid отключает биты set-user-ID, и nodev запрещает создание файлов устройств во временных директориях.
15. Мониторинг журналов сервера
Журналы сервера фиксируют все действия в системе и позволяют заранее обнаружить признаки инцидентов безопасности. Регулярный анализ логов помогает выявлять подозрительную активность до того, как она перерастёт в серьёзную угрозу.
Ключевые журналы для мониторинга:
| Файл журнала | Назначение | Команда |
| /var/log/auth.log (Debian/Ubuntu)<br>/var/log/secure (CentOS/RHEL) | Попытки входа | sudo tail -f /var/log/auth.log<br>sudo tail -f /var/log/secure |
| /var/log/syslog (Debian/Ubuntu)<br>/var/log/messages (CentOS/RHEL) | Системные сообщения | sudo tail -f /var/log/syslog<br>sudo tail -f /var/log/messages |
| /var/log/apache2/access.log (Debian/Ubuntu)<br>/var/log/httpd/access_log (CentOS/RHEL) | Веб-трафик | sudo tail -f /var/log/apache2/access.log<br>sudo tail -f /var/log/httpd/access_log |
| /var/log/fail2ban.log | Заблокированные IP | sudo tail -f /var/log/fail2ban.log |
Быстрый анализ логов:
# Failed login attempts (adjust path for your distribution)
sudo grep "Failed password" /var/log/auth.log | tail -10
# Successful logins
sudo grep "Accepted" /var/log/auth.log | tail -10
# Large file transfers (adjust path for your web server)
sudo awk '{print $10}' /var/log/apache2/access.log | sort -n | tail -10
Автоматический мониторинг логов:
# Install logwatch for daily summaries
sudo apt install logwatch
sudo logwatch --detail Med --mailto [email protected] --service All
Настройте ротацию логов, чтобы файлы журналов не занимали слишком много места на диске.
16. Используйте надёжные пароли
Надёжные пароли защищают от брутфорса и словарных атак. Слабый пароль можно взломать за считанные минуты с помощью современного железа.
Требования к паролю:
- Не менее 12 символов
- Сочетание заглавных и строчных букв, цифр и специальных символов
- Без словарных слов и личных данных
- Уникальный для каждой учётной записи
Используйте менеджеры паролей для генерации и безопасного хранения сложных паролей. В сочетании с другими принципами модели безопасности Linux надёжные пароли формируют несколько уровней защиты от несанкционированного доступа.
17. Используйте SFTP вместо FTP
Стандартный FTP передаёт данные и учётные данные в открытом виде, делая их доступными для перехвата. SFTP шифрует всю передачу данных, защищая конфиденциальную информацию и поддерживая архитектуры безопасного файлового сервера Linux.
Настройка доступа только по SFTP:
sudo nano /etc/ssh/sshd_config
# Add: Subsystem sftp internal-sftp
Отключите стандартные службы FTP, чтобы устранить угрозу безопасности:
sudo systemctl disable vsftpd
sudo systemctl stop vsftpd
18. Включите автообновление CMS
Системы управления контентом (WordPress, Drupal, Joomla) регулярно выпускают патчи безопасности. Автоматические обновления гарантируют своевременное устранение критических уязвимостей.
Для WordPress добавьте в wp-config.php:
define('WP_AUTO_UPDATE_CORE', true);
add_filter('auto_update_plugin', '__return_true');
add_filter('auto_update_theme', '__return_true');
Следите за логами обновлений, чтобы убедиться в совместимости и корректной работе.
19. Запретите анонимную загрузку файлов через FTP
Анонимный FTP позволяет любому желающему загружать файлы на сервер без авторизации. Это может привести к тому, что ваш сервер станет площадкой для размещения нелегального контента, вредоносных программ или точкой распространения атак.
Настройте vsftpd для обязательной аутентификации:
sudo nano /etc/vsftpd.conf
# Отключить анонимный доступ
anonymous_enable=NO
# Включить локальную аутентификацию пользователей
local_enable=YES
write_enable=YES
local_umask=022
# Ограничить пользователей их домашними директориями
chroot_local_user=YES
allow_writeable_chroot=YES
# Настройки безопасности
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Перезапустите службу FTP:
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
Создайте учётные записи пользователей FTP с ограниченными правами:
sudo adduser ftpuser
sudo usermod -d /var/ftp/uploads ftpuser
sudo chown ftpuser:ftpuser /var/ftp/uploads
sudo chmod 755 /var/ftp/uploads
Отслеживайте журналы доступа FTP на предмет подозрительной активности:
sudo tail -f /var/log/vsftpd.log
20. Настройка защиты от брутфорса
Добавьте к Fail2Ban дополнительные уровни защиты от брутфорса — это надёжнее противостоит сложным автоматизированным атакам.
Настройте дополнительные средства защиты:
# Limit SSH connection attempts
sudo nano /etc/ssh/sshd_config
# Add: MaxAuthTries 3
# Add: ClientAliveInterval 300
# Add: ClientAliveCountMax 2
Используйте DenyHosts вместе с Fail2Ban для комплексной защиты.
Заключение
Защита Linux VPS требует нескольких уровней обороны: от базовых изменений конфигурации до продвинутых систем мониторинга. Начните с фундаментальных мер — обновления ПО, настройки брандмауэра и ужесточения SSH — прежде чем переходить к инструментам вроде обнаружения вторжений и автоматизированного мониторинга.
Безопасность Linux-сервера — это не разовая настройка, а постоянный процесс. Регулярно проверяйте журналы, обновляйте ПО и корректируйте меры защиты по мере появления новых угроз. Грамотно выстроенная безопасность предотвращает дорогостоящие утечки данных и поддерживает стабильность системы.
Все эти меры безопасности работают в связке: ни одна из них сама по себе не даёт полной защиты. Применение всех 20 стратегий создаёт перекрывающиеся уровни защиты, которые существенно снижают уязвимость сервера к распространённым атакам. Нужна ли вам защита файлового сервера Linux или общая защита хостинга VPS — эти базовые шаги обеспечивают необходимый уровень безопасности.