Назад к обновлениям
New releaseSep 4, 2026

easywall v2.14.0

Веб-интерфейс для межсетевого экрана nftables в Linux, написанный на Go. Применение автоматически откатывается через 120 секунд, если вы не подтвердите его — вы не сможете заблокировать себе доступ. Установка на Debian и Docker.

Поделиться

easywall

Ваш брандмауэр. Ваши правила. Никаких сюрпризов.

Tests Build Security Coverage

Latest release Go version GPL-3.0 Discord Support on Ko-fi

Живая демонстрация · Документация · Журнал изменений

nftables через веб-интерфейс, который не может заблокировать вам доступ: каждое применение отменяет само себя, если вы его не подтвердите.

Панель управления easywall: состояние межсетевого экрана с состоянием подтверждения, ожидающие изменения и последнее применение; плитки с подсчётом TCP-портов, UDP-портов, блок-листа, разрешённого списка, пользовательских правил и перенаправления; а также список последних действий.

Идея

Редактирование правила ничего не меняет. Его применение меняет всё — на 120 секунд. Если новые правила обрывают ваше соединение, вы не можете нажать «Подтвердить», и именно отсутствие подтверждения возвращает старые правила.

Конечный автомат: редактирование приводит к состоянию «Подготовлено», применение — к состоянию «Активно», подтверждение в течение окна — к состоянию «Подтверждено», а истечение окна — к состоянию «Откатано», откуда подготовленные изменения по-прежнему доступны.

Архитектура

Два процесса. Тот, что открыт в сеть, не обладает привилегиями, которые стоило бы украсть.

Браузер обращается по HTTPS к easywall-web, который работает без привилегий; easywall-web обменивается типизированным JSON через Unix-сокет с easywall-core, который работает от имени root и взаимодействует через netlink с таблицей nftables inet easywall.

Полная переработка оригинального easywall — Python, Flask, iptables через subprocess — который был архивирован в 2022 году после CVE. Обе первопричины устранены: привилегии находятся в отдельном процессе, а путь применения собирает структуры Go вместо командной строки. Как это работает →

Установка

Дерево решений: если вы просто присматриваетесь — демо-режим; Debian или Ubuntu — пакет .deb; уже запущенные контейнеры — Docker; в остальных случаях — сборка из исходников.
# Debian / Ubuntu — amd64 and arm64
ARCH=$(dpkg --print-architecture)
wget https://github.com/jp1337/easywall/releases/latest/download/easywall_$ARCH.deb
sudo dpkg -i easywall_$ARCH.deb && sudo apt-get install -f

# Docker
git clone https://github.com/jp1337/easywall.git && cd easywall && docker compose up -d

# From source — Go 1.27+, nftables
git clone https://github.com/jp1337/easywall.git && cd easywall
make build && sudo make install
sudo systemctl enable --now easywall-core easywall-web

Затем откройте https://localhost:12227. При первом посещении настраивается учётная запись и создаются первые правила.

Что вы получаете

ПортыTCP и UDP, отдельные или диапазоны, с маршрутизацией SSH brute-force для каждого правила
Blocklist и allowlistIPv4, IPv6 и CIDR, проверяются до любого правила порта
Модули защитыДвенадцать, пять включены по умолчанию — флуды, сканирования, bogon-адреса, фрагменты, broadcast/multicast/anycast
Проброс портовNAT-перенаправления с выбором протокола
Пользовательские правилаСырой nftables, проверяется на синтаксис перед применением
Экспорт / импортВесь набор правил в виде JSON
Журнал аудитаЧто изменилось и когда, один JSON-объект на строку
Сосуществование с DockerВладеет table inet easywall, ничего другого не трогает
English, Deutsch, FrançaisПереключается в интерфейсе, в том числе до входа. Язык может быть частичным: недостающее отображается на английском, а пробел сообщается, а не скрывается
Светлая и тёмная темыСледует за ОС, с ручным переключателем; обе проверены на контрастность

Создано с помощью

Go 1.27, единый бинарникgo-chi/chi · html/template
nftables через google/nftablesnetlink для типизированных правил; nft только для пользовательских правил
Argon2idgolang.org/x/crypto, 16-байтовая соль на каждый пароль
CSRFnet/http.CrossOriginProtection, нативно в Go 1.25
Система дизайнаDESIGN.md + Tailwind v4 — без сторонних UI-библиотек
ШрифтыInter + JetBrains Mono, собственный хостинг, ~145 КБ — работает в изолированной сети
CIgovulncheck, gosec, CodeQL, -race и набор интеграционных тестов на реальном ядре

Получение помощи

Категории