Skip to content

Releases: johyunchol/ktunnel

ktunnel v0.6.0 — verified relay TLS and portal hardening

Choose a tag to compare

@github-actions github-actions released this 09 Sep 15:11

중요: 클라이언트 토큰 재발급 필요

v0.6 클라이언트는 중계 서버 인증서를 검증하는 새 kt2 토큰만 사용합니다. 기존 kt1 토큰은 마이그레이션 기간 동안 서버에 유지되지만, v0.6 클라이언트에서는 새 터널을 열 수 없습니다.

  1. ktunnel upgrade로 클라이언트를 업데이트합니다.
  2. https://ktunnel.kkensu.com에 로그인해 새 토큰을 발급합니다.
  3. ktunnel login을 실행하고 화면에 노출되지 않는 입력창에 새 토큰을 붙여 넣습니다.

변경 사항

  • frp 제어 채널에 공인 인증서 체인과 호스트 이름 검증을 강제했습니다.
  • 관리자·사용자 포털에 CSP, 클릭재킹 방어, 고정 Host, 안전한 프록시 헤더와 __Host- 세션 쿠키를 적용했습니다.
  • 터널 한도·서브도메인·TCP 포트 승인을 하나의 SQLite 트랜잭션으로 처리해 동시 요청 우회를 막았습니다.
  • 비공식 frps 이미지를 제거하고 공식 v0.71.0 바이너리를 고정 SHA-256으로 검증해 직접 빌드합니다.
  • ktunnel login이 기본적으로 토큰을 화면에 표시하지 않고 입력받으며 설정 파일을 원자적으로 0600 권한으로 저장합니다.
  • HTTP 요청은 HTTPS로 리다이렉트되고 포털에 HSTS 및 보안 헤더가 적용됩니다.
  • 릴리스 전에 일반 테스트, race detector, vet, 설치·인증서 갱신 회귀 테스트를 CI에서 실행합니다.

전체 설치·운영 문서는 한국어 README서버 운영 가이드를 참고하세요.

ktunnel v0.5.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 11:47

새 기능

  • ktunnel update로 최신 버전을 안전하게 설치할 수 있습니다.
  • ktunnel upgrade도 같은 명령으로 동작합니다.
  • ktunnel update --check로 설치 없이 최신 버전을 확인할 수 있습니다.
  • 일반 CLI 사용 시 하루 한 번, 750ms 이내의 비차단 확인으로 새 버전을 알려줍니다.

안전 장치

  • SHA-256 체크섬 검증 후 원자적으로 교체합니다.
  • 새 바이너리 실행 검증과 실패 시 자동 롤백을 지원합니다.
  • 토큰을 저장하지 않으며 sudo를 자동 실행하지 않습니다.

저장소가 비공개이므로 업데이트에는 해당 GitHub 저장소 읽기 권한과 gh auth login 또는 GH_TOKEN/GITHUB_TOKEN이 필요합니다.

v0.4.0 — Korean role-aware web portal

Choose a tag to compare

@github-actions github-actions released this 09 Sep 08:31

주요 변경사항

  • 관리자(admin)와 일반 사용자가 함께 사용하는 단일 로그인 화면
  • 일반 사용자의 웹 비밀번호, 최초 로그인 강제 변경, 본인 토큰 직접 발급·폐기
  • 관리자와 사용자 화면의 역할별 권한 분리 및 전체 한국어 UI
  • 사용자별 세션 무효화, IDOR 방지, 로그인 제한 및 비밀번호 변경 경쟁 조건 보강
  • ktunnel.kkensu.com 포털 주소 예약 및 운영 문서 갱신

호환성

기존 사용자, 터널 토큰, 예약 주소와 실행 중인 터널 데이터는 그대로 유지됩니다. 기존 사용자는 관리자가 임시 웹 비밀번호를 발급한 뒤 포털에 로그인할 수 있습니다.

Full Changelog: v0.3.0...v0.4.0

v0.3.0 — ktunneld: per-user tokens, subdomain ownership, dashboard

Choose a tag to compare

@johyunchol johyunchol released this 09 Sep 04:20

The relay is now a service. ktunneld plugs into frps and issues personal tokens (hashed at rest, shown once, revocable one by one), enforces subdomain ownership and per-user limits, and serves an admin dashboard with an audit log. There is no shared frps secret any more.

Users

ktunnel login kt1.…     # the token carries the relay address and domain
ktunnel http 3000

Administrators

ktunneld user add alice
ktunneld token issue alice --label laptop
ktunneld reserve api alice
ktunneld ls / kill / token revoke

Revoke, disable and kill take effect at the next heartbeat (≤30 s); ktunnel exits with the reason instead of silently retrying. See server/README.md for deployment. Verify downloads against SHA256SUMS.

Full Changelog: v0.2.0...v0.3.0

v0.2.0 — Go rewrite

Choose a tag to compare

@johyunchol johyunchol released this 09 Sep 02:28

Single static binary for macOS, Linux and Windows. frp is embedded as a library, so there is no Docker or frpc dependency on the client.

./install.sh     # picks the right binary for this machine
ktunnel init
ktunnel http 3000

Verify downloads against SHA256SUMS.

Full Changelog: https://github.com/johyunchol/ktunnel/commits/v0.2.0