Хардкорная защита домашнего сервера: Настройка правил iptables-persistent

  • johnyx
  • Topic Author
  • Offline
  • Administrator
  • Administrator
More
1 month 2 weeks ago #5 by johnyx
Хардкорная защита домашнего сервера: Настройка правил iptables-persistent Использование UFW — это удобно для новичков, но настоящий сисадмин управляет сетевыми пакетами напрямую через ядро Linux с помощью iptables. На Celeron-сервере это гарантирует полное отсутствие накладных расходов памяти и максимальную скорость фильтрации. Мы настроим жесткие цепочки правил в файле /etc/iptables/rules.v4, которые закроют все порты, кроме веб-трафика (80, 443), а доступ к SSH и PHP-FPM (9000) для phpMyAdmin ограничат строго вашим белым IP-адресом. Шаг 1. Установка утилиты сохранения Чтобы после перезагрузки сервера правила не слетали, ставим persistent-демон:
Code:
sudo apt update && sudo apt install iptables-persistent -y
При установке система предложит сохранить текущие правила — соглашаемся. Шаг 2. Заливаем боевой конфиг правил Открываем главный файл конфигурации IPv4 /etc/iptables/rules.v4 и полностью заменяем его содержимое на этот эталонный безопасный каркас:
Code:
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ALLOW [0:0] # 1. Разрешаем локальный петлевой интерфейс (Loopback - критично для Redis и Memcached!) -A INPUT -i lo -j ACCEPT # 2. Разрешаем уже установленные и родственные соединения (чтобы сервер мог качать обновления) -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # 3. Открываем веб-порты для всего мира (Nginx: HTTP и HTTPS) -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT # 4. ЖЕСТКАЯ ЗАЩИТА: Доступ к SSH (22) только с вашего доверенного IP (например, 77.51.225.50) -A INPUT -s 77.51.225.50/32 -p tcp -m tcp --dport 22 -j ACCEPT # 5. ЖЕСТКАЯ ЗАЩИТА: Доступ к порту PHP-FPM (9000) для phpMyAdmin только с вашего IP -A INPUT -s 77.51.225.50/32 -p tcp -m tcp --dport 9000 -j ACCEPT COMMIT
Шаг 3. Применение правил без перезагрузки Чтобы ядро Linux мгновенно применило новый файл конфигурации, выполняем команду восстановления таблиц:
Code:
sudo iptables-restore < /etc/iptables/rules.v4
Шаг 4. Контроль и мониторинг цепочек Проверить, как пакеты шуршат по созданным правилам и не ломится ли кто-то лишний, можно утилитой вывода счетчиков:
Code:
sudo iptables -L -v -n --line-numbers
Теперь бэкэнд Nginx защищен на уровне ядра. Любой чужой IP, попытавшийся просканировать порты 22 или 9000, будет мгновенно и молча отброшен (DROP) без генерации лишнего сетевого мусора!

Please Log in or Create an account to join the conversation.

Time to create page: 0.241 seconds