Назад к обновлениям
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 секунд. Если новые правила обрывают ваше соединение, вы не можете нажать «Подтвердить», а именно отсутствие подтверждения возвращает старые правила.

Конечный автомат: редактирование ведёт к Staged, применение ведёт к Live, подтверждение в пределах окна ведёт к Confirmed, а истечение окна ведёт к Rolled back, откуда отложенные правки всё ещё доступны.

Архитектура

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

Браузер общается по 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 и 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

# Из исходников — 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-брутфорса для каждого правила
Чёрный и белый спискиIPv4, IPv6 и CIDR, проверяются до любого правила портов
Модули защитыДвенадцать, пять включены по умолчанию — флуды, сканирования, bogons, фрагменты, 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/nftablesпрямой netlink, без subprocess 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 и интеграционный набор тестов против реального ядра

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

Вопрос или что-то ведёт себя не такDiscord
Баг или желаемая функцияGitHub issues
Уязвимость в безопасностиSecurity advisoryне Discord и не публичный issue

Участие в разработке

Настройка, соглашения о коммитах и чек-лист ревью: CONTRIBUTING.md. Всё визуальное сначала проходит через DESIGN.md.

Проблемы безопасности: не как публичный issue — используйте GitHub Security Advisories.

Лицензия

GPL-3.0 — см. LICENSE.

Категории