업데이트로 돌아가기
New releaseAug 6, 2026

easywall v2.4.1

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: 확인하지 않으면 모든 적용이 스스로 되돌아갑니다.

easywall 대시보드: 승인 상태, 대기 중인 변경 사항 및 마지막 적용이 포함된 방화벽 상태; TCP 포트, UDP 포트, 블랙리스트, 화이트리스트, 사용자 정의 규칙 및 포워딩을 집계하는 타일; 그리고 최근 활동 목록.

아이디어

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

상태 머신: 편집은 Staged로, 적용은 Live로, 창(시간) 내 확인은 Confirmed로 이어지고, 창이 만료되면 Rolled back으로 이어지며, 여기서 준비된 편집 내용은 계속 사용할 수 있습니다.

아키텍처

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

브라우저는 권한 없이 실행되는 easywall-web과 HTTPS로 통신합니다. easywall-web은 Unix 소켓을 통해 타입이 지정된 JSON을 easywall-core에 전달하며, easywall-core는 root로 실행되어 nftables 테이블 inet easywall에 netlink로 통신합니다.

CVE 이후 2022년에 보관 처리된 원래 easywall — Python, Flask, subprocess를 통한 iptables — 을 완전히 다시 작성한 것입니다. 두 가지 근본 원인이 모두 사라졌습니다: 권한은 다른 프로세스에 있고, 적용 경로는 명령줄 대신 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.26+, 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.26, 단일 바이너리go-chi/chi · html/template
google/nftables를 통한 nftables직접 netlink, nft 하위 프로세스 없음
Argon2idgolang.org/x/crypto, 비밀번호마다 16바이트 솔트
CSRFnet/http.CrossOriginProtection, Go 1.25 네이티브
디자인 시스템DESIGN.md + Tailwind v4 — 타사 UI 라이브러리 없음
폰트Inter + JetBrains Mono, 자체 호스팅, ~145KB — 네트워크가 분리된 환경에서도 작동
CIgovulncheck, gosec, CodeQL, -race, 실제 커널 대상 통합 테스트 스위트

로드맵

정확성이 최우선입니다: 조용히 말한 것보다 덜 하는 방화벽은 덜 하면서 그렇게 말하는 방화벽보다 나쁩니다.

2.6규칙 수가 아니라 의미를 검증하는 통합 테스트
2.7신원 — 소켓 프로토콜의 사용자, 그다음 로그인 이벤트, 그다음 다중 계정, 그다음 2FA
2.8토큰 인증 REST API, 옵션으로 제공되는 ACME, 옵트인 신뢰형 리버스 프록시
2.9옵트인 방식의 설치 횟수 집계

각 항목이 그 시점에 제공되는 이유와 집계가 전송할 내용: 로드맵 →

도움 받기

질문 또는 예상대로 작동하지 않는 문제Discord
버그 또는 원하는 기능GitHub issues
보안 취약점보안 권고 — Discord가 아니며, 공개 이슈도 아닙니다

기여

설정, 커밋 규칙 및 리뷰 체크리스트: CONTRIBUTING.md. 시각적인 모든 것은 먼저 DESIGN.md를 거칩니다.

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

라이선스

GPL-3.0 — LICENSE 참조.

카테고리