2번 모듈 신규(raspberry_pi4_sht30/): SHT30 온습도 → cafe24, raw-body X-Signature HMAC, 폐쇄망 오프라인 설치(vendor/install), systemd, CRC/포맷 자가점검. firmware sht30_fw wire 포맷과 byte-parity 검증. 1번 모듈 통합(raspberry_pi4/): 누수+카메라를 동일 서버로. 레거시 sha256(key+json) body-sig → X-Signature HMAC 전환, 사진 canonical=device_id|sensor_id|log_id|timestamp. 서버 통합(php/): api/sensor_data.php 누수 이벤트 수신, api/photo_upload.php 신규(HMAC·finfo·서버생성 파일명·nonce 멱등·sensor 결속), photo.php 인증 사진서빙, dashboard.php 누수 패널+사진, sms_send.php 누수 SMS, config.php 태그/요약. DB: sql/migration_add_leak.sql(가산·멱등), schema_sht30.sql 통합 스키마. 보안 하드닝(외부 펜테스트 대비, 확정 CRITICAL/HIGH 0): cron_heartbeat api_key fail-closed, setup_mfa 부트스트랩 토큰 post-enrollment 잠금, var/ PHP 실행차단, HSTS. 문서/테스트: SYSTEM_OVERVIEW.md, security_hardening_test.php 갱신. 참고: 사용자 요청으로 세션 외 기존 미커밋 변경도 함께 포함. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
35 lines
2.6 KiB
Python
35 lines
2.6 KiB
Python
# =============================================================================
|
|
# config_local.example.py - 운영·비밀값 템플릿 (Pi 4 누수감지 모듈)
|
|
#
|
|
# 사용법: cp config_local.example.py config_local.py
|
|
# → 실제 값으로 채운 뒤 저장. config_local.py 는 절대 커밋하지 말 것
|
|
# (.gitignore 로 제외되어 있음).
|
|
#
|
|
# ⚠️ 서버 호환성
|
|
# 이 모듈(1번)은 2번 모듈(SHT30 온습도)과 "동일한" cafe24 서버 php/ 로 보고한다(통합).
|
|
# 누수 이벤트(leak_alert / leak_recovery)와 사진 업로드는 서버가 raw-body 서명을 요구한다:
|
|
# X-Signature = lowercase_hex(HMAC-SHA256(key=API_KEY, msg=요청본문 바이트))
|
|
# 사진 업로드 canonical = device_id|sensor_id|log_id|timestamp (공백 없음)
|
|
# → API_KEY 는 서버 config.local.php 의 API_KEY 와 "정확히 동일"해야 한다.
|
|
# 서버에서 sql/migration_add_leak.sql 을 1회 실행하면(가산·멱등) 누수 수신이 활성화되고,
|
|
# 누수 상태·사진·온습도가 한 대시보드(dashboard.php)에 함께 표시된다.
|
|
# (구버전의 sha256(API_KEY + 정렬 JSON) body-field 서명은 폐기됨 — 서버가 거부한다.)
|
|
# =============================================================================
|
|
|
|
# ─────────────────────────────────────────────
|
|
# 서버 API 엔드포인트 (통합 서버 = cafe24 php/, 2번 모듈과 동일 서버)
|
|
# INSTALL_PI_SERVER.md 기준 웹 루트: public_html/raspi_leck_detecter/
|
|
# ─────────────────────────────────────────────
|
|
API_URL = "https://YOUR_SERVER/raspi_leck_detecter/api/sensor_data.php"
|
|
PHOTO_UPLOAD_URL = "https://YOUR_SERVER/raspi_leck_detecter/api/photo_upload.php"
|
|
|
|
# ─────────────────────────────────────────────
|
|
# 공유 비밀키 — 서버 측 API_KEY 와 정확히 동일해야 함. 절대 커밋 금지.
|
|
# ─────────────────────────────────────────────
|
|
API_KEY = "CHANGE_ME"
|
|
|
|
# ─────────────────────────────────────────────
|
|
# 기기 식별 (여러 대 운영 시 구분)
|
|
# ─────────────────────────────────────────────
|
|
DEVICE_ID = "rpi4-leak-01"
|
|
DEVICE_LOCATION = "서버실"
|