업데이트로 돌아가기
New releaseSep 4, 2026

easywall v2.14.0

Go로 작성된 Linux용 nftables 방화벽 웹 인터페이스입니다. 적용(apply)은 확인하지 않으면 120초 후 자동으로 되돌려지므로, 스스로 잠길 수 없습니다. Debian 및 Docker 설치를 지원합니다.

공유

easywall

당신의 방화벽. 당신의 규칙. 예상치 못한 일 없이.

Tests Build Security Coverage

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

라이브 데모 · 문서 · 변경 로그

당신을 잠글 수 없는 웹 인터페이스를 통한 nftables: 모든 적용은 직접 확인하지 않는 한 자동으로 되돌아갑니다.

The easywall dashboard: firewall status with acceptance state, pending changes and last apply; tiles counting TCP ports, UDP ports, blacklist, whitelist, custom rules and forwarding; and a recent-activity list.

아이디어

규칙을 편집하는 것은 아무것도 바꾸지 않습니다. 적용하는 것은 모든 것을 바꿉니다 — 120초 동안. 새 규칙이 연결을 끊으면 Confirm을 클릭할 수 없고, 확인하지 않는 것이 이전 규칙을 되돌리는 방법입니다.

State machine: editing leads to Staged, applying leads to Live, confirming within the window leads to Confirmed, and letting the window expire leads to Rolled back, from where the staged edits are still available.

아키텍처

두 개의 프로세스. 네트워크에 노출되는 쪽은 훔칠 가치가 있는 권한을 보유하지 않습니다.

Browser talks HTTPS to easywall-web, which runs unprivileged; easywall-web talks typed JSON over a Unix socket to easywall-core, which runs as root and speaks netlink to the nftables table inet easywall.

원래 easywall — Python, Flask, subprocess를 통한 iptables — 의 완전한 재작성으로, CVE 이후 2022년에 보관되었습니다. 두 근본 원인 모두 제거되었습니다: 권한은 별도의 프로세스에 있으며, 적용 경로는 명령줄 대신 Go 구조체를 빌드합니다. 작동 방식 →

설치

Decision tree: just looking leads to demo mode; Debian or Ubuntu leads to the .deb package; already running containers leads to Docker; otherwise build from source.
# 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 무차별 대입 공격 라우팅 포함
블랙리스트 및 화이트리스트IPv4, IPv6 및 CIDR, 모든 포트 규칙보다 먼저 평가됨
보호 모듈12개, 기본 5개 활성화 — 플러드, 스캔, 보곤, 프래그먼트, 브로드캐스트/멀티캐스트/애니캐스트
포트 포워딩프로토콜 선택이 가능한 NAT 리다이렉트
사용자 정의 규칙적용 전 구문 검사되는 원시 nftables
내보내기 / 가져오기전체 규칙 세트를 JSON으로
감사 로그무엇이 언제 변경되었는지, 줄마다 하나의 JSON 객체
Docker 공존table inet easywall만 소유하며 다른 것은 건드리지 않음
영어, 독일어, 프랑스어로그인 전을 포함해 인터페이스에서 전환 가능. 언어가 부분적일 수 있음: 누락된 부분은 영어로 표시되며, 그 차이는 숨겨지지 않고 보고됨
라이트 및 다크OS 설정을 따르며 수동 토글 제공, 둘 다 대비 검사 완료

사용된 기술

Go 1.27, 단일 바이너리go-chi/chi · html/template
google/nftables을 통한 nftables직접 netlink, nft subprocess 없음
Argon2idgolang.org/x/crypto, 비밀번호당 16바이트 솔트
CSRFnet/http.CrossOriginProtection, Go 1.25 네이티브
디자인 시스템DESIGN.md + Tailwind v4 — 타사 UI 라이브러리 없음
글꼴Inter + JetBrains Mono, 자체 호스팅, 약 145 KB — 네트워크 차단 환경에서도 작동
CIgovulncheck, gosec, CodeQL, -race, 실제 커널 대상 통합 테스트 스위트

도움 받기

질문 또는 예상과 다른 동작Discord
버그 또는 원하는 기능GitHub issues
보안 취약점Security advisory아닌 Discord, 공개 이슈도 아님

기여

설정, 커밋 규칙 및 리뷰 체크리스트: CONTRIBUTING.md. 시각적 요소는 먼저 DESIGN.md를 거칩니다.

보안 문제: 공개 이슈가 아니라GitHub Security Advisories를 사용하세요.

라이선스

GPL-3.0 — LICENSE 참조.

카테고리