Files
obsidian/infra/compute/hosts/zlambda.md

5.4 KiB

title, updated, tags, type, host_kind, location, provider, status, ssh_host, public_ip, tailscale_ip, lan_ip, os, cpu_cores, ram_gb, k3s_role, critical, monthly_cost_usd, aliases
title updated tags type host_kind location provider status ssh_host public_ip tailscale_ip lan_ip os cpu_cores ram_gb k3s_role critical monthly_cost_usd aliases
zlambda 2026-04-13
infra
host
nixos
tokyo
linode
host vm tokyo linode active zlambda 139.162.71.52 100.78.51.18 null NixOS 25.05 1 2 null false 5
sandbox-tokyo

역할

NixOS 베이스 호스트 (도쿄, Linode nano). 이전 sandbox-tokyo 장비를 2026-04-08에 Debian → NixOS로 전환. 경량 docker + tailscale + sshd.

이전된/제거된 구성

  • APISIX + etcd (Netbis DR) — 제거
  • microsocks — 제거
  • tlsproxy, vault-prod, wg-easy — 제거

현재 구성

  • sshd, tailscale, docker
  • Linode 프로필: kernel linode/direct-disk
  • BBR + fq + sysctl 튜닝
  • NixOS configuration: Gitea kaffa/nixos-infra
    • kaffa-macmini: ~/nixos-infra/
    • zlambda: /root/nixos-infra/

Docker 컨테이너

컨테이너 역할 비고
apisix / apisix-etcd APISIX (Netbis 관련) host network
vector-relay 로그 릴레이
tlsproxy SearXNG Google 우회 (Chrome TLS fingerprint), :8443 ../../services/searxng
nginx (stream) inbest SFTP 포워딩 :2201 → 10.100.1.158:22. 2026-06-11 socat→nginx stream 교체 아래 참조

inbest SFTP 포트포워딩 (2026-06-10 구성, 2026-06-11 nginx 교체)

  • 공개 엔드포인트: 139.162.71.52:2201 (SFTP)
  • 경로: 외부 → zlambda 공인IP:2201 → (tailscale 100.78.51.18 → 10.100.1.158) → kr2 inbest 프로젝트 sftp 컨테이너:22
  • 릴레이: NixOS services.nginx stream TCP proxy (nixos-infra inbest-sftp-fwd.nix, streamConfig upstream → 10.100.1.158:22, proxy_timeout 1h). flake 빌드: nixos-rebuild switch --flake /root/nixos-infra#zlambda
    • 이력: 수동 docker(alpine/socat) → 2026-06-10 systemd socat 서비스 → 2026-06-11 nginx stream 교체 (socat 경유 파일 전송 장애 보고). nginx는 http 가상호스트 미정의로 80/443 미점유, stream 만 사용
  • 백엔드 sshd 호스트키(ED25519): SHA256:bHy58AE10LPS/C4I8DXnFNCDaEsH3MFUreoDz8cnCPs (= sftp 컨테이너 키, 평문 TCP relay라 MITM 없음). 백엔드 sshd: OpenSSH 10.0p2 Debian
  • 인증: sftp 컨테이너 자체 sshd (publickey/password). chroot 미사용(ChrootDirectory none), Match User inbestForceCommand internal-sftp, home /data(소유 inbest:sftponly), 고객 사이트별 디렉토리(in-best-com, leewell-com 등). 비밀번호 yescrypt($y$). 계정 시크릿은 Vault. 2026-06-11 검증: password/키 인증·10MB 업다운로드 정상(40/40)
  • ⚠️ 2201이 2026-06-10 인터넷 개방됨 → sshd 무차별 대입 스캔 노출. inbest 계정 약한 비밀번호 → 키 전용 전환 또는 fail2ban 검토 권장

2026-06-11 장애 근본원인: OpenSSH PerSourcePenalties (★ 진짜 원인)

  • 증상: FileZilla로 접속·폴더 목록은 되는데 파일 업로드/다운로드만 실패. 진입점 139.162.71.52:2201.
  • 근본원인: 백엔드 sshd(OpenSSH 10.0p2)의 PerSourcePenalties(10.0 기본 활성, authfail:5 noauth:1 ... netblocksize 32). 릴레이(nginx)→tailscale→OpenWrt subnet-router SNAT 경유라 모든 외부 클라이언트가 **단일 source 192.168.9.1**로 보임. 스캐너/오타/FileZilla 재시도 중 한 건이라도 인증 실패하면 공유 source 전체에 페널티 누적 → 그 source의 새 연결을 드롭. 이미 인증된 탐색 연결(폴더 목록)은 유지되고, FileZilla가 전송용으로 새로 여는 연결만 드롭 → "목록은 보이나 전송 실패". (socat/nginx 릴레이는 무관 — socat·nginx 둘 다 전송 자체는 정상이었음)
  • 수정: 컨테이너 sshd 드롭인 /etc/ssh/sshd_config.d/00-relay-penalty-exempt.confPerSourcePenaltyExemptList 192.168.9.1 + systemctl restart ssh(누적 페널티 메모리 초기화). 릴레이 뒤에선 per-source 페널티가 무의미·유해하므로 면제.
  • 검증(2026-06-11): 인증 실패 8연발 직후 정상연결 5/5, 동시 키 전송 8/8(5MB 업다운 체크섬 일치), password 인증 10MB 업다운 3/3.
  • 잔여 권고: 면제로 릴레이 경유 brute-force 방어가 사라짐 → 실 방어는 zlambda nginx limit_conn/fail2ban 또는 Linode 방화벽 소스 제한으로. inbest 약한 비밀번호 키 전용 전환 권장.
  • Linode Cloud Firewall: zlambda는 공인 IP에서 22만 기본 개방, 나머지(80/443/8443/9999)는 차단. 2201은 2026-06-10 인바운드 허용 추가(zlambda 소속 Linode 계정은 Vault cloud/linode(ironclad/apisix-osaka)와 다른 계정 — 토큰 미보유, 방화벽은 사용자가 대시보드에서 관리)
  • ../../services/sftpgo / ../../network/sshpiper와 역할 구분 (이건 단순 TCP relay)

운영 메모 (2026-06-10): zlambda /root/nixos-infra git remote가 SSH(git@gitea)였는데 root 키 인증 실패로 git pull 안 됨 → HTTPS+토큰으로 교체(해결). 또한 flake는 git에 tracked된 파일만 /nix/store로 복사하므로, 새 .nix 추가 시 git add 필수(안 하면 path ... does not exist 빌드 실패). rebuild: nixos-rebuild switch --flake /root/nixos-infra#zlambda

용도 검토

  • K3s worker 편입 후보 (taint geo=tokyo) — k3s-migration
  • 도쿄 POP 엣지 워크로드 용도

상세 인프라 컨텍스트: infra-hosts