
easywall v2.14.0
Go로 작성된 Linux용 nftables 방화벽 웹 인터페이스입니다. 적용(apply)은 확인하지 않으면 120초 후 자동으로 되돌려지므로, 스스로 잠길 수 없습니다. Debian 및 Docker 설치를 지원합니다.
easywall
당신의 방화벽. 당신의 규칙. 예상치 못한 일은 없습니다.
당신을 잠글 수 없는 웹 인터페이스를 통한 nftables: 확인하지 않으면 모든 적용은 스스로 되돌아갑니다.
아이디어
규칙을 편집해도 아무것도 바뀌지 않습니다. 적용하면 모든 것이 바뀝니다 — 120초 동안. 새 규칙이 당신의 연결을 끊는다면 확인을 클릭할 수 없으며, 확인하지 않는 것이 바로 이전 규칙을 되살리는 방법입니다.
아키텍처
두 개의 프로세스. 네트워크에 노출된 프로세스는 탈취할 가치가 있는 권한을 전혀 보유하지 않습니다.
원본 easywall(Python, Flask, subprocess를 통한 iptables)을 완전히 재작성한 것입니다. 원본은 CVE 이후 2022년에 아카이브되었습니다. 두 가지 근본 원인 모두 사라졌습니다. 권한은 별도의 프로세스에 존재하며, 적용 경로는 명령줄 대신 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.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 사용 |
| Argon2id | golang.org/x/crypto, 비밀번호당 16바이트 솔트 |
| CSRF | net/http.CrossOriginProtection, Go 1.25 네이티브 |
| 디자인 시스템 | DESIGN.md + Tailwind v4 — 서드파티 UI 라이브러리 없음 |
| 폰트 | Inter + JetBrains Mono, 자체 호스팅, ~145 KB — 에어갭 환경에서 작동 |
| CI | govulncheck, gosec, CodeQL, -race, 그리고 실제 커널을 대상으로 한 통합 테스트 스위트 |
도움 받기
| 질문 또는 동작이 이상한 경우 | Discord |
| 버그 또는 원하는 기능 | GitHub issues |
| 보안 취약점 | 보안 권고 — Discord가 아니며, 공개 이슈도 아닙니다 |
기여하기
설정, 커밋 규칙 및 리뷰 체크리스트: CONTRIBUTING.md.
시각적인 모든 것은 먼저 DESIGN.md를 거칩니다.
보안 문제: 공개 이슈로 올리지 마세요 — GitHub Security Advisories를 사용하세요.
라이선스
GPL-3.0 — LICENSE를 참조하세요.