tools/make_deploy_bundles.py: deploy/ 아래 서버1+Pi3대 폴더 생성 — API_KEY 1개 자동 생성·4곳 동일 주입, 관리자 bcrypt(비번 stdin 전달), LF 정규화, 단일 schema.sql, var/ 런타임 상태 제외, CRON_SECRET 사전 계산. 난독화 경로 WEB_DIR 은 소스가 아닌 deploy/.secrets/web_dir.txt 에서 로드(커밋 트리 유출 차단). 시크릿 생성 전에 deploy/.gitignore 선작성 + 루트 .gitignore 에 deploy/ 이중 차단. tools/harden_pi.sh: SSH 완전 비활성(outbound 전용 설계) · 인바운드 전부 차단 (nftables) · 불필요 서비스 제거(avahi/bluetooth/cups 등) · 자동 보안 패치 (unattended-upgrades, 자동 리부팅 끔) · config_local.py 권한 600 · 검증 증적 출력. setup.sh(번들 생성): 설치→서비스→검증→하드닝 원샷. 검증 실패 시 set -e 로 하드닝(SSH 차단) 전에 중단 → SSH 유지되어 디버깅 가능. 검색 비노출 하드닝: php/.htaccess X-Robots-Tag noindex + Referrer-Policy no-referrer, api/photo_upload.php CORS 제거, test_mobile.php 세션 인증 가드. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01821XP36Q6t9eWKTPSEumnC
36 lines
1.6 KiB
Text
36 lines
1.6 KiB
Text
# =============================================================================
|
|
# .gitignore - leak_sms_v3
|
|
# =============================================================================
|
|
|
|
# ── 운영 비밀값 / 로컬 설정 (절대 커밋 금지) ──────────────────────────────
|
|
php/config.local.php
|
|
firmware/**/secrets.h
|
|
*.env
|
|
*.env.*
|
|
!*.env.example
|
|
|
|
# ── 레거시 백업: 하드코딩된 실 운영 비밀값(DB 암호/API 키/SMS 키) 포함 → 미공개
|
|
_backup/
|
|
|
|
# ── 배포 번들: 라이브 API 키·관리자 비밀번호·난독화 경로 포함 (생성기가 내부
|
|
# .gitignore 도 만들지만, 생성 실패 시에도 새지 않도록 루트에서 이중 차단) ──
|
|
deploy/
|
|
|
|
# ── 런타임 상태 (접속 IP·감사로그·브루트포스 카운터·하트비트 throttle) ────
|
|
php/var/*
|
|
!php/var/.gitkeep
|
|
|
|
# ── 빌드 산출물 ───────────────────────────────────────────────────────────
|
|
firmware/build/
|
|
*.o
|
|
*.elf
|
|
*.bin
|
|
*.map
|
|
|
|
# ── 로컬 도구 / 에디터 상태 ───────────────────────────────────────────────
|
|
.claude/settings.local.json
|
|
.impeccable/
|
|
|
|
# ── OS 잡파일 ─────────────────────────────────────────────────────────────
|
|
Thumbs.db
|
|
.DS_Store
|