Pare-feu: qu'est-ce que c'est
Comment fonctionne un pare-feu, quels sont ses types (paquet, avec état, WAF, NGFW), comment configurer iptables/nftables sur le pare-feu Linux et Windows.
Qu'est-ce qu'un pare-feu
Фаервол (firewall, межсетевой экран) — это программа или устройство, которое фильтрует сетевой трафик по заданным правилам. Решает, какие пакеты пропустить, а какие отбросить. Это первая линия обороны сети.
Представьте, что ваш компьютер — это квартира. Фаервол — это дверь с замком, которая решает, кого впустить, а кого нет. По умолчанию всё заперто; вы открываете только то, что нужно.
Фаерволы есть везде:
- В вашем роутере дома (NAT-блокировка входящих соединений из интернета).
- В Windows / macOS / Linux (встроенный программный фаервол).
- В дата-центрах (аппаратные фаерволы Cisco, Palo Alto, Fortinet).
- В облаках (AWS Security Groups, Azure NSG, GCP Firewall).
- В CDN (Cloudflare WAF, AWS WAF).
Comment fonctionne un pare-feu ?
Фаервол анализирует каждый сетевой пакет и применяет к нему набор правил. Если ни одно правило не разрешает — пакет отбрасывается (drop) или отвергается (reject).
Что проверяется
- IP-адрес источника/назначения (с какого IP на какой)
- Порт источника/назначения (TCP/UDP порт)
- Протокол (TCP, UDP, ICMP, GRE)
- Направление (входящий, исходящий, форвард)
- Интерфейс (eth0, wlan0, tun0)
- Состояние соединения (NEW, ESTABLISHED, RELATED, INVALID)
- Содержимое пакета (для WAF/NGFW — payload)
Два главных подхода
Whitelist (default deny): запретить всё, что явно не разрешено. Безопаснее. Используется в продакшене, банках, госорганах.
Blacklist (default allow): разрешить всё, что явно не запрещено. Удобнее, но опаснее. Используется в домашних сетях.
Правильная практика — default deny. Закрыть всё лишнее, открыть только нужные порты для конкретных сервисов.
Types de pare-feu
1. Пакетный фильтр (Packet Filter)
Самый простой тип. Анализирует заголовки пакетов (IP, порт, протокол) и применяет правила. Не смотрит на содержимое и не помнит о состоянии соединений.
Пример правила: «Все пакеты с порта назначения 22 (SSH) — отбросить».
Работает на сетевом уровне (L3) и транспортном (L4) модели OSI. Быстрый, не требователен к ресурсам. Недостаток: легко обойти через спуфинг IP или фрагментацию.
Пример: iptables -A INPUT -p tcp --dport 22 -j DROP (на старых Linux-роутерах).
2. Stateful Inspection (с отслеживанием состояния)
Помнит состояние TCP-соединений (NEW, ESTABLISHED, RELATED, INVALID) и применяет правила с учётом контекста. Если вы открыли соединение к сайту — обратные пакеты пропускаются автоматически, не нужно отдельно открывать входящий порт.
Работает на L3-L4. Гораздо безопаснее пакетного фильтра. Используется в Linux (netfilter), BSD (pf), Cisco ASA.
Пример: iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT — пропустить всё, что связано с уже установленными соединениями.
3. Application-Level Gateway / Proxy Firewall
Понимает протоколы прикладного уровня (HTTP, FTP, DNS, SMTP). Может анализировать содержимое пакетов. Пример: Squid (HTTP-прокси с фильтрацией), HAProxy (L7-балансировщик).
Работает на L7. Медленнее, но видит атаки на уровне приложения (SQL-инъекции, XSS). Часто используется для исходящего трафика (сотрудники → интернет).
4. WAF (Web Application Firewall)
Специализированный фаервол для веб-приложений. Понимает HTTP, разбирает запросы, ищет сигнатуры атак.
Защищает от:
- SQL-инъекций (
' OR 1=1 --) - XSS (cross-site scripting,
<script>alert(1)</script>) - CSRF (подделка запросов)
- Path traversal (
../../etc/passwd) - File inclusion (
?page=../../config) - Brute force (много запросов на login)
Примеры: ModSecurity (open source), Cloudflare WAF, AWS WAF, Imperva, F5 ASM. Используется для защиты сайтов.
5. NGFW (Next-Generation Firewall)
«Всё в одном»: stateful + DPI (Deep Packet Inspection) + IDS/IPS (обнаружение и предотвращение вторжений) + WAF + фильтрация приложений + VPN.
Примеры: Palo Alto Networks, Fortinet FortiGate, Check Point, Cisco Firepower. Аппаратные коробки за $5К-100К+, используются в enterprise.
Видят приложения (Facebook, BitTorrent, Telegram) и могут блокировать не по IP, а по приложению. Это требует DPI — глубокого разбора пакетов.
6. Cloud Native Firewall
В облаках: AWS Security Groups (stateful), AWS Network ACL (stateless), Azure NSG, GCP Firewall Rules. Управляются как код (Terraform, CloudFormation).
По сути — те же правила IP/порт/протокол, но в формате API. Пример для AWS:
{
"IpProtocol": "tcp",
"FromPort": 443,
"ToPort": 443,
"IpRanges": [{"CidrIp": "0.0.0.0/0"}]
}
iptables et nftables sous Linux
В Linux фаервол встроен в ядро (netfilter). Управляется через userspace-утилиты: классический iptables или современный nftables.
iptables (классика)
Структура: tables → chains → rules.
Основные таблицы:
filter— основная (INPUT, OUTPUT, FORWARD)nat— для NAT (PREROUTING, POSTROUTING, OUTPUT)mangle— для модификации пакетов (TOS, TTL)
Цепочки (chains):
INPUT— входящие пакеты (к нашему хосту)OUTPUT— исходящие (от нас)FORWARD— транзитные (если хост — роутер)
Действия (targets):
ACCEPT— пропуститьDROP— отбросить молча (клиент ждёт таймаут)REJECT— отбросить с уведомлением (ICMP port unreachable)LOG— записать в лог
Пример базовой конфигурации (открыть SSH, HTTP, HTTPS, остальное закрыть):
# Сбросить все правила
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Разрешить loopback
iptables -A INPUT -i lo -j ACCEPT
# Разрешить established
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH (с ограничением по rate)
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
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
# ICMP (ping)
iptables -A INPUT -p icmp -j ACCEPT
Сохранение: service iptables save (CentOS/RHEL) или netfilter-persistent save (Debian/Ubuntu).
nftables (современный)
Замена iptables с ядра Linux 3.13 (2014). Синтаксис проще, производительность выше (на 20-30% быстрее на типичных нагрузках).
Пример той же конфигурации в nftables:
# /etc/nftables.conf
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# loopback
iif lo accept
# established
ct state established,related accept
# SSH
tcp dport 22 accept
# HTTP/HTTPS
tcp dport { 80, 443 } accept
# ICMP
ip protocol icmp accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
Применение: nft -f /etc/nftables.conf.
Debian, Ubuntu (с 20.04), RHEL (с 8) используют nftables по умолчанию. Если у вас старый сервер на iptables — работать будет, но новые проекты лучше на nftables.
Pare-feu Windows
Встроен в Windows с XP (2001). Включён по умолчанию. Управляется через GUI или PowerShell.
GUI
- Панель управления → Система и безопасность → Брандмауэр Windows.
- Или быстрее: Win + R →
wf.msc→ Enter. - «Дополнительные параметры» — управление inbound/outbound правилами.
PowerShell
Открыть порт 443:
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
Заблокировать IP:
New-NetFirewallRule -DisplayName "Block 1.2.3.4" -Direction Inbound -RemoteAddress 1.2.3.4 -Action Block
Посмотреть все правила:
Get-NetFirewallRule | Where-Object {$_.Enabled -eq 'True'} | Select-Object DisplayName, Direction, Action
Типичные правила для веб-сервера на Windows
- Открыть 80 (HTTP) — inbound TCP
- Открыть 443 (HTTPS) — inbound TCP
- Открыть 3389 (RDP) — только с вашего IP
- Закрыть 445 (SMB) — если не используется (защита от WannaCry)
macOS : pf (filtre de paquets)
В macOS фаервол — это BSD-фаервол pf (из FreeBSD/OpenBSD). Управляется через pfctl или GUI в Системных настройках.
Включить из терминала:
sudo pfctl -e
sudo pfctl -f /etc/pf.conf
Простое правило в /etc/pf.conf:
# Заблокировать всё входящее по умолчанию
block in all
# Разрешить SSH с конкретного IP
pass in proto tcp from 95.167.42.10 to any port 22
# Разрешить established
pass in on en0 proto tcp from any to any keep state
Применить: sudo pfctl -f /etc/pf.conf.
В GUI: Системные настройки → Сеть → Брандмауэр → Включить. Но GUI даёт только базовые опции. Для серьёзной настройки — pfctl.
WAF : pare-feu d'applications Web
WAF защищает веб-приложения от атак, специфичных для HTTP. Главные сценарии:
Защищаемые атаки
| Атака | Пример | Что делает WAF |
|---|---|---|
| SQL-инъекция | ?id=1' OR '1'='1 | Блокирует запрос, логирует |
| XSS | ?q=<script>alert(1)</script> | Блокирует или санитизирует |
| Path traversal | ?file=../../etc/passwd | Нормализует путь, блокирует |
| File upload | Загрузка .php вместо .jpg | Проверяет MIME и расширение |
| Brute force | 1000 попыток login | Rate limiting, CAPTCHA |
| Bot-атаки | Скрапинг, spam | JS challenge, fingerprinting |
Популярные WAF
- ModSecurity (open source) + OWASP Core Rule Set — ставится перед Apache/Nginx.
- Cloudflare WAF — облачный, включён в Pro/Business планы. Удобно, не надо настраивать сервер.
- AWS WAF — pay-as-you-go, интеграция с CloudFront, ALB, API Gateway.
- Imperva, F5, Barracuda — enterprise, дорого.
Проверить, есть ли WAF на сайте: наш Site Analyzer покажет заголовки WAF (например, Server: cloudflare означает Cloudflare).
Инструменты ip.brazya.ru
- Port Scanner — проверить открытые порты (с подтверждением — только на своих IP).
- Anonymity Check — определяет тип вашего подключения.
- Site Analyzer — посмотрит, есть ли WAF/CDN, заголовки безопасности.
- IP Abuse Check — проверить, не заблокирован ли IP за атаки.
- Spam Check — проверить IP в черных списках (DNSBL).
Часто задаваемые вопросы
Что такое фаервол простыми словами?
Фаервол (межсетевой экран, firewall) — это программа или устройство, которое фильтрует сетевой трафик по заданным правилам. Решает, какие пакеты пропустить, а какие заблокировать. Это первая линия обороны компьютера или сети. Каждый роутер, Windows, macOS имеет встроенный фаервол.
Какие бывают типы фаерволов?
По уровню фильтрации: пакетный (по IP/порту), stateful (с отслеживанием состояния соединений), application-level / WAF (по содержимому HTTP, защита от SQL-инъекций), NGFW (комбинация всех + DPI). По расположению: программный (на сервере/ПК) и аппаратный (отдельное устройство, обычно в дата-центре или у провайдера). По охвату: host-based (один хост) и network-based (целая сеть).
Чем отличается iptables от nftables?
iptables — классический Linux-фаервол, существует с 1998 года (netfilter). nftables — современная замена (с ядра 3.13, 2014), объединяет iptables/ip6tables/arptables/ebtables в один инструмент. Синтаксис nftables проще, производительность выше, меньше дублирования правил. В 2025 большинство дистрибутивов переходят на nftables по умолчанию (Debian, Ubuntu, RHEL). Для новых проектов — nftables, для legacy — iptables всё ещё работает.
Нужен ли фаервол обычному пользователю?
Да, обязательно. Windows и macOS имеют встроенный фаервол — не отключайте его. Роутер дома — тоже фаервол (NAT блокирует входящие соединения). Для параноиков: UFW (Ubuntu), firewalld (RHEL), или pf (macOS, FreeBSD) для точной настройки. Главное правило: default deny (запретить всё, что явно не разрешено).
Что такое WAF и чем он отличается от обычного фаервола?
WAF (Web Application Firewall) — фаервол прикладного уровня, специально для веб-приложений. Анализирует HTTP-запросы, ищет SQL-инъекции, XSS, CSRF, попытки залить shell. В отличие от обычного фаервола (который смотрит на IP/порт/протокол), WAF понимает HTTP, может блокировать по сигнатурам атак. Примеры: ModSecurity (open source), Cloudflare WAF, AWS WAF, Imperva. Используется для защиты сайтов.
Как открыть порт в iptables?
iptables -A INPUT -p tcp --dport 443 -j ACCEPT — открыть входящие на порт 443 (HTTPS). iptables -A INPUT -p tcp --dport 80 -j ACCEPT — для HTTP. iptables -A INPUT -p tcp --dport 22 -s 95.167.42.0/24 -j ACCEPT — SSH только с определённой подсети. После изменения — service iptables save (CentOS/RHEL) или netfilter-persistent save (Debian/Ubuntu). Не забудьте разрешить established-соединения: iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT.
👉 Проверить открытые порты → — узнайте, что видно снаружи на вашем IP или сервере.