Сервер с настройками по умолчанию – это сервер, который кто-то уже сканирует. Свежий апрельский Heartbleed напомнил всем, как дорого обходится пробел в гигиене инфраструктуры. Hardening не требует дорогих продуктов: большую часть атак отсекают штатные средства Linux и дисциплина. Ниже – базовый чек-лист, который мы применяем на проектах для бизнеса и госсектора. Он не закрывает все угрозы, но снимает 80% типового шума.

Доступ и аутентификация

Начните с входной двери. Отключите вход root по SSH (PermitRootLogin no) и парольную аутентификацию (PasswordAuthentication no) – оставьте только ключи. Перенесите SSH с порта 22 на нестандартный: это не защита, но минус половина ботов в логах. Поставьте fail2ban, чтобы банить перебор по журналам.

Каждому администратору – свой именной аккаунт и sudo с протоколированием. Никаких общих учёток: после инцидента вы должны точно знать, кто и что выполнял. Парольные политики задайте через PAM, а сервисные аккаунты держите без интерактивного шелла (/usr/sbin/nologin).

Поверхность атаки и обновления

Чем меньше работает, тем меньше ломается. Снесите всё лишнее: telnet, rsh, неиспользуемые веб-панели, тестовые демоны. Проверьте netstat -tulpn – каждый открытый порт должен иметь владельца и причину.

Закройте периметр фаерволом. На RHEL/CentOS 6 это iptables с политикой по умолчанию DROP на входящие, на Debian удобнее обернуть его в ufw. Открывайте только то, что нужно сервису.

Обновления – не разовая акция, а процесс. Настройте регулярную установку патчей безопасности (yum-cron, unattended-upgrades) и подпишитесь на бюллетени вендора дистрибутива. Если в инфраструктуре много пакетов из открытых репозиториев, держите их инвентаризацию и план обновления – мы писали об этом в материале про стратегию работы с open source.

Целостность, журналы и аудит

Включите auditd и auditctl: вы должны видеть изменения критичных файлов (/etc/passwd, /etc/sudoers, ключи). Поставьте контроль целостности – AIDE или Tripwire и снимайте эталонные хеши сразу после установки, до подключения сервера к сети.

Логи выносите на отдельный лог-сервер по rsyslog. Локальные журналы стирает любой, кто получил root; централизованный сбор оставляет следы вне досягаемости атакующего. Настройте ротацию и хранение в соответствии с вашими регламентами – для госсектора это ещё и требование аттестации по приказам ФСТЭК.

Не забывайте про ядро: разумные sysctl (запрет IP-форвардинга, защита от спуфинга, kernel.randomize_va_space=2) и шифрование дисков с конфиденциальными данными через LUKS.

Вывод

Hardening – это не однократный аврал, а встроенная в эксплуатацию практика. Закрепите чек-лист в виде эталонного образа и автоматизируйте развёртывание, чтобы новый сервер рождался уже защищённым. Здесь работает тот же принцип, что и при выборе заказного решения вместо коробочного: настройка под вашу модель угроз надёжнее, чем дефолт «для всех». Когда своих рук не хватает, аудит и hardening закрывает регулярное сопровождение инфраструктуры – от базовой конфигурации до подготовки к аттестации.