В статье разберём:
- где хранится конфигурация ядра и как её редактировать;
- какие параметры влияют на безопасность сети;
- как применить изменения без перезагрузки;
- как создать резервную копию sysctl.conf и проверить ошибки.
Что понадобится
-
Ubuntu/Debian VPS с доступом по SSH и правами sudo.
-
Редактор
nano
илиvim
для правки конфигурации. -
Базовые знания сетевых протоколов и IP-настроек.
Создание резервной копии и редактирование sysctl.conf
Перед изменением конфигурации ядра важно сделать резервную копию. Ошибки в sysctl.conf
могут привести к сбоям сетевых сервисов или потере доступа по SSH.
1. Создаём резервную копию
sudo cp -a /etc/sysctl.conf /etc/sysctl.conf.bak
Теперь, если что-то пойдёт не так, можно восстановить файл командой:
sudo mv /etc/sysctl.conf.bak /etc/sysctl.conf
2. Открываем конфигурацию для редактирования
sudo nano /etc/sysctl.conf
Файл содержит множество закомментированных строк с примерами. Новые параметры лучше добавлять в конец файла — так будет проще найти свои настройки позже.

Совет: можно использовать отдельный файл /etc/sysctl.d/99-security.conf
— он безопаснее для обновлений и не перезаписывается системой.
Рекомендуемые безопасные параметры sysctl
Ниже приведён набор параметров, повышающих безопасность VPS. Они не влияют на нормальную работу сайтов или сервисов, но помогают защититься от сетевых атак, подмены пакетов и сканирования.
1. Защита от IP spoofing (подмена IP-адреса)
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
Фильтрация обратного пути — ядро проверяет, откуда пришёл пакет, и отклоняет подозрительные IP-адреса.
2. Отключение IP source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
Блокирует пересылку пакетов с заданным маршрутом — такую технику используют злоумышленники для обхода фаервола.
3. Защита от ICMP атак и скрытие пинга
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
Сервер не отвечает на широковещательные ping-запросы и игнорирует ложные ICMP-ответы, но остаётся доступен по обычному ping.
4. Защита от SYN-флуда
net.ipv4.tcp_syncookies = 1
Включает защиту TCP от атак типа SYN flood (создание большого числа ложных соединений).
5. Запрет перенаправлений ICMP
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
Блокирует пересылку ICMP-пакетов, используемых для подмены маршрутов.

Совет: если сервер используется для маршрутизации, часть этих настроек нужно адаптировать, чтобы не нарушить сетевую связность.
Применение изменений и проверка результата
После редактирования sysctl.conf
изменения не применяются автоматически — нужно загрузить их в ядро вручную.
1. Применяем новые параметры
sudo sysctl -p
Если всё сделано правильно, система выведет список активированных параметров. При наличии ошибок (например, опечатки в названии) утилита покажет строку, где они обнаружены.
2. Проверяем конкретные параметры
sudo sysctl net.ipv4.tcp_syncookies
sudo sysctl net.ipv4.conf.all.rp_filter
Если значение равно = 1
, настройка активна.
3. Проверяем сетевую защиту
sudo sysctl -a | grep -E 'redirect|source_route|rp_filter'
Так можно убедиться, что все ключевые параметры ядра применены корректно.
4. Проверяем логи после загрузки
sudo dmesg | grep sysctl
Если некоторые параметры не поддерживаются ядром VPS, они могут быть проигнорированы — это не ошибка, а особенность виртуализированной среды.

Совет: для автоматической подгрузки параметров при старте системы можно создать отдельный файл /etc/sysctl.d/99-security.conf
и поместить туда все защитные настройки.
Типичные ошибки и откат изменений
Неправильно заданные параметры sysctl
могут вызвать проблемы с сетью или SSH. Ниже приведены наиболее частые ошибки и способы их устранения.
1. Потеря соединения по SSH после применения настроек
Если после команды sudo sysctl -p
соединение разорвалось — вероятно, изменён параметр, влияющий на сетевые пакеты.
-
Подключитесь через веб-консоль (VNC) в панели хостинга.
-
Восстановите резервную копию:
sudo mv /etc/sysctl.conf.bak /etc/sysctl.conf sudo sysctl -p
2. Ошибки «Invalid argument» при применении настроек
Такие сообщения означают, что ядро VPS не поддерживает конкретный параметр (часто бывает в OpenVZ).
sysctl: setting key "net.ipv4.conf.all.rp_filter": Invalid argument
Можно просто закомментировать (поставить #) эти строки и повторить загрузку настроек.
3. Настройки не сохраняются после перезагрузки
Это значит, что изменения вносились напрямую в ядро (sysctl -w
), но не добавлены в файл конфигурации. Исправить просто:
sudo nano /etc/sysctl.conf
# или в отдельный файл
sudo nano /etc/sysctl.d/99-security.conf
4. Как проверить, какие параметры были изменены вручную
sudo sysctl -a --pattern 'rp_filter|redirect|icmp|syn'
Вывод покажет только активные параметры, относящиеся к сетевой безопасности.

Совет: всегда тестируйте изменения на тестовом сервере перед применением на продакшене.
Итоги
-
Создали резервную копию
sysctl.conf
и отредактировали его для повышения безопасности системы. -
Настроили фильтрацию IP, защиту от подмены пакетов, отключение опасных ICMP и включение
tcp_syncookies
. -
Применили изменения и проверили, что параметры загружены корректно.
-
Разобрали типичные ошибки, способы отката и безопасное тестирование.
Вывод: корректно настроенные параметры ядра — важная часть защиты VPS. Они работают на уровне системы и блокируют целые классы сетевых атак до того, как их сможет обработать фаервол. Рекомендуется хранить копию текущей конфигурации и регулярно пересматривать её после обновлений ОС.