🌐 Dieser Artikel ist auf Russisch. Mit Google Übersetzer lesen →

Was ist eine Firewall?

Фаервол (firewall, межсетевой экран) — это программа или устройство, которое фильтрует сетевой трафик по заданным правилам. Решает, какие пакеты пропустить, а какие отбросить. Это первая линия обороны сети.

Представьте, что ваш компьютер — это квартира. Фаервол — это дверь с замком, которая решает, кого впустить, а кого нет. По умолчанию всё заперто; вы открываете только то, что нужно.

Фаерволы есть везде:

Wie funktioniert eine Firewall?

Фаервол анализирует каждый сетевой пакет и применяет к нему набор правил. Если ни одно правило не разрешает — пакет отбрасывается (drop) или отвергается (reject).

Что проверяется

Два главных подхода

Whitelist (default deny): запретить всё, что явно не разрешено. Безопаснее. Используется в продакшене, банках, госорганах.

Blacklist (default allow): разрешить всё, что явно не запрещено. Удобнее, но опаснее. Используется в домашних сетях.

Правильная практика — default deny. Закрыть всё лишнее, открыть только нужные порты для конкретных сервисов.

Arten von Firewalls

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, разбирает запросы, ищет сигнатуры атак.

Защищает от:

Примеры: 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 und nftables unter Linux

В Linux фаервол встроен в ядро (netfilter). Управляется через userspace-утилиты: классический iptables или современный nftables.

iptables (классика)

Структура: tables → chains → rules.

Основные таблицы:

Цепочки (chains):

Действия (targets):

Пример базовой конфигурации (открыть 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.

Windows-Firewall

Встроен в Windows с XP (2001). Включён по умолчанию. Управляется через GUI или PowerShell.

GUI

  1. Панель управления → Система и безопасность → Брандмауэр Windows.
  2. Или быстрее: Win + R → wf.msc → Enter.
  3. «Дополнительные параметры» — управление 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

macOS: pf (Paketfilter)

В 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: Webanwendungs-Firewall

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 force1000 попыток loginRate limiting, CAPTCHA
Bot-атакиСкрапинг, spamJS challenge, fingerprinting

Популярные WAF

Проверить, есть ли WAF на сайте: наш Site Analyzer покажет заголовки WAF (например, Server: cloudflare означает Cloudflare).

Инструменты ip.brazya.ru

Часто задаваемые вопросы

Что такое фаервол простыми словами?

Фаервол (межсетевой экран, 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 или сервере.