Найти в Дзене
4vps.su

Защита сервера и настройка базового firewall за 15 минут

Оглавление
Файрвол как сторожевой пес - охраняет вас и ваши данные!
Файрвол как сторожевой пес - охраняет вас и ваши данные!

Один из первых шагов при настройке сервера — защита его от нежелательных подключений. Без правильно настроенного межсетевого экрана (firewall) ваш сервер становится уязвимым для атак, сканирования портов и несанкционированного доступа.  

В этой статье разберём:  

✔ Виды firewall в Linux (iptables, firewalld, nftables)  

✔ Какой выбрать? Плюсы и минусы каждого  

✔ Базовые настройки для защиты сервера  

✔ Какие порты нужно закрыть в первую очередь

Какие бывают firewall в Linux?

В Linux есть несколько инструментов для управления сетевым экраном. Рассмотрим три основных:  

🔹 iptables

Что это? Классический инструмент для фильтрации сетевого трафика, работает на уровне ядра.  

✔ Преимущества: 

- Гибкость и мощь (можно настроить любые правила)  

- Поддержка NAT, port forwarding  

- Работает на любом дистрибутиве Linux  

❌ Недостатки:  

- Сложный синтаксис команд  

- Правила не сохраняются после перезагрузки (если не использовать `iptables-persistent`)  

Кому подойдёт? Администраторам, которым нужен полный контроль.  

🔹 firewalld 

Что это? Более современная обёртка над iptables/nftables с поддержкой зон и динамических правил.  

✔ Преимущества: 

- Проще в использовании (есть команды `firewall-cmd`)  

- Поддержка runtime-изменений без перезагрузки  

- Автоматическое сохранение правил  

❌ Недостатки:

- Меньшая гибкость, чем у iptables  

- Только в RHEL/CentOS/Fedora (в Debian/Ubuntu нужно ставить отдельно)  

Кому подойдёт? Тем, кто хочет быстро настроить firewall без сложных правил.  

🔹 nftables

Что это? Новый стандарт, пришедший на смену iptables (но пока не везде включён по умолчанию).  

✔ Преимущества:

- Более быстрый и эффективный  

- Упрощённый синтаксис  

- Поддержка IPv4/IPv6 из коробки  

❌ Недостатки:

- Меньше документации и примеров  

- Не все старые системы поддерживают  

Кому подойдёт? Тем, кто работает на свежих дистрибутивах (Debian 10+, Ubuntu 20.04+).  

Какой firewall выбрать?  

  1. iptables
    ✅ Максимум контроля
    ❌ Сложный, нет автосохранения
    ⚠ Устаревает, но работает везде
  2. firewalld
    ✅ Простота (зоны, сервисы)
    ⚠ Только для RHEL/Fedora
    ✅ Автосохранение
  3. nftables
    ✅ Современный, гибкий (замена iptables)
    ✅ Поддержка новых ОС
    ⚠ Нужно учить синтаксис

Выбор:

  • Новичок на RHEL? → firewalld
  • Полный контроль? → iptables (старые системы) / nftables (новые)
  • Будущее? → nftables

Вывод:

- Если вам нужна максимальная гибкость→ iptables

- Если хотите быстро и просто→ firewalld

- Если используете современный дистрибутив → nftables

Базовые настройки firewall

 🔧 Настройка iptables (базовые правила)

# Разрешаем локальный трафик
iptables -A INPUT -i lo -j ACCEPT
# Разрешаем уже установленные соединения
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Разрешаем SSH (если нужно)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Разрешаем HTTP/HTTPS (для веб-сервера)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Запрещаем всё остальное
iptables -A INPUT -j DROP
# Сохраняем правила (если установлен iptables-persistent)
iptables-save > /etc/iptables/rules.v4

🔧Настройка firewalld

# Разрешаем SSH
firewall-cmd --permanent --add-service=ssh
# Разрешаем HTTP/HTTPS
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
# Запрещаем всё остальное
firewall-cmd --permanent --set-target=DROP
# Применяем изменения
firewall-cmd --reload

Какие порты нужно закрыть в первую очередь?

Некоторые порты часто сканируются злоумышленниками. Вот список тех, которые лучше закрыть, если вы их не используете:  

 Порт 21 (FTP) – передаёт данные в открытом виде, что делает его уязвимым к перехвату. Если FTP необходим, лучше использовать SFTP (порт 22 с SSH) или FTPS (с SSL/TLS).

  1. Порт 23 (Telnet) – не поддерживает шифрование, логины и пароли передаются в чистом тексте, что делает его лёгкой добычей для снифферов. Вместо него стоит использовать SSH (порт 22).
  2. Порты 135-139 (SMB, NetBIOS) – используются для обмена файлами и принтерами в Windows, но содержат множество уязвимостей (например, EternalBlue). Если SMB необходим, лучше использовать SMB 3.0+ с шифрованием или ограничить доступ по IP.
  3. Порт 3306 (MySQL) – если база данных не защищена строгими паролями и не ограничена по доступу, злоумышленники могут получить контроль над данными. Рекомендуется закрыть его для внешнего доступа и использовать VPN или SSH-туннель.
  4. Порт 5432 (PostgreSQL) – аналогично MySQL, может быть атакован при слабой защите. Лучше ограничить доступ и использовать шифрование.
  5. Порт 8080 (альтернативный HTTP) – часто используется для веб-приложений, но администраторы иногда забывают его защищать. Если он открыт, стоит проверить настройки брандмауэра и веб-сервера.

Дополнительно стоит проверить:

  • Порт 3389 (RDP) – если используется, нужно включать Network Level Authentication (NLA) и ограничивать доступ.
  • Порты 445 (SMB) – часто атакуются через эксплойты.
  • Порты 5900+ (VNC) – если не защищены, могут быть взломаны подбором пароля.

Лучшая практика – закрывать все неиспользуемые порты и настраивать строгие правила доступа к необходимым.

Как проверить открытые порты?

ss -tulnp # или netstat -tulnp (если ss нет)

Вывод: как защитить сервер за 15 минут?

1️⃣ Выберите firewall (iptables/firewalld/nftables)  

2️⃣ Разрешите только нужные порты (SSH, HTTP, HTTPS)  

3️⃣ Закройте всё остальное (`DROP` по умолчанию)  

4️⃣ Проверьте открытые порты (`ss -tulnp`)  

После этих действий ваш сервер станет значительно безопаснее!  

🔐 Нужна помощь с настройкой? Наши специалисты готовы помочь — обращайтесь в поддержку 4vps.su!  

#Linux #безопасность #firewall #хостинг #4vps