너무 오래동안 웹프로그래밍을 하다보니
서버에서 구동중인 프로그램의 상태를 읽고 변경하려는데
웹페이지(sveltekit)나 앱(flutter)을 통해서 api 요청하는 것부터 생각이 나네요
이렇게 웹으로 하면 cloudflare access zero trust(jwt httponly) + webauthn(안드로이드 기기 바이오)
이렇게 2중 인증을 거쳐도 외부와 접하는 면적이 늘어나니 보안이 어쨋든 허술해지는건데
아니면 flag 파일을 변경하거나 sql db 값을 변경해서 이걸 프로그램이 주기마다 읽어서 상태가 변경되도록 할 수도 있겠죠
생각해 보니 웹프로그래밍이 아니라 원래 예전에 하던대로 그냥 ssh 접근에 보안을 최대한 신경쓰고
(비공개 웹주소 cloudflare access zero trust + cloudflared tunnel + nginx reverse proxy cors policy + ssh 공개키 인증)
ssh shell에서 cli 명령어로 유닉스 도메인 소켓통신을 통해서 리눅스 애플리케이션의 상태를 읽고 변경하는 것이
외부와의 접하는 면을 줄여서 보안이 더 강화될 것 같네요
cli 명령어로 시스템 트레이딩 프로그램을 거쳐 redis, postgresql의 데이터를 가져와
리포트 브리핑을 얻을 수도 있고, 현재 포지션을 다 정리하기, 프로그램을 suspend 등 명령 실행하도록
너무 웹프로그래밍에 경도되어 있었나 봅니다.
시스템 트레이딩 프로그램의 거래 알림을 웹페이지 대시보드 & SSE, 텔레그램 봇 메시지, 이메일 데일리 브리핑 뭐 이렇게 복잡하게 생각했는데 외부로 노출되는 면이 커질수록 보안도 취약해지는거니까 다 없애고 cli 명령어로 간략 리포팅, 이메일 데일리 브리핑만 사용할겁니다
이게 보안면에서 개발공수면에서 더 경제적인 것 같네요
웹페이지 통신 등 다 배제하고 ssh 접속해서 cli 로만 상태 확인 및 변경하는 걸로
ssh 접속은 root는 안되고 비밀번호접속은 안되고 오직 내 아이디로만 로그인 가능하게
key파일이 있는 내 노트북과 스마트폰(termux)만 접속 가능하도록
N100 램16GB 미니PC 2대를 WAS, DB 서버로 사용중인데 결국 미니 UPS까지 주문했습니다
저번에 번개 한번 치니까 꺼져 버리더라구요. 그 후 자동 재부팅 되도록 세팅은 바꾸었지만요
UPS가 상당히 비싸다고만 인식하고 있었는데
미니PC 2대, 모뎀, 공유기 이렇게 기기 4대가 총 25~60W 밖에 안 먹기 때문에
가정용 미니UPS 조그만거는 그렇게 비싸지는 않네요. 12만원주고 360W짜리 하나 샀습니다
써지도 막아주고 정전시 1시간 이상 버틸 수 있겠네요
미니PC 쉽게 생각했는데 시간이 갈수록 이것저것 사게 되네요