
easywall v2.4.1
Go로 작성된 Linux용 nftables 방화벽 웹 인터페이스입니다. 적용(apply)은 확인하지 않으면 120초 후 자동으로 되돌려지므로, 스스로 잠길 수 없습니다. Debian 및 Docker 설치를 지원합니다.
easywall
당신의 방화벽. 당신의 규칙. 예상치 못한 일은 없습니다.
당신을 잠글 수 없는 웹 인터페이스를 통한 nftables: 확인하지 않으면 모든 적용이 스스로 되돌아갑니다.
아이디어
규칙을 편집하는 것은 아무것도 바꾸지 않습니다. 적용하는 것은 모든 것을 바꿉니다 — 120초 동안. 새 규칙이 연결을 끊으면 Confirm을 클릭할 수 없고, 확인하지 않는 것이 이전 규칙을 되돌아오게 합니다.
아키텍처
두 개의 프로세스. 네트워크에 노출된 쪽은 훔칠 가치가 있는 권한을 갖지 않습니다.
CVE 이후 2022년에 보관 처리된 원래 easywall — Python, Flask, subprocess를 통한 iptables — 을 완전히 다시 작성한 것입니다. 두 가지 근본 원인이 모두 사라졌습니다: 권한은 다른 프로세스에 있고, 적용 경로는 명령줄 대신 Go 구조체를 만듭니다. 작동 방식 →
설치
# 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 하위 프로세스 없음 |
| Argon2id | golang.org/x/crypto, 비밀번호마다 16바이트 솔트 |
| CSRF | net/http.CrossOriginProtection, Go 1.25 네이티브 |
| 디자인 시스템 | DESIGN.md + Tailwind v4 — 타사 UI 라이브러리 없음 |
| 폰트 | Inter + JetBrains Mono, 자체 호스팅, ~145KB — 네트워크가 분리된 환경에서도 작동 |
| CI | govulncheck, 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 참조.