사내망 장비·접속 정보 관리 콘솔

공유기가 보고하는 연결 기기를 기준으로 사내망의 살아 있는 장비를 목록으로 보여 주고, 장비별 사양과 접속 정보를 암호화해 관리하는 웹 콘솔입니다. 사내 계정으로 로그인합니다.

연표로 돌아가기
문제
장비 주소와 접속 정보가 사람마다 다른 메모에 흩어져 있어, 물어보지 않으면 어디에 무엇이 있는지 알 수 없었습니다.
담당
인증 연동, 공유기 연결 목록 기반 장비 발견과 포트 응답 확인, 장비·접속 정보 관리와 암호화 보관, 컨테이너 배포·자가 복구를 맡았습니다.
설계 판단
계정을 새로 만들지 않고 이미 쓰는 사내 계정에 붙였고, 민감한 값은 서버에서만 풀도록 두었습니다. 장비를 찾는 방식은 대역 전체를 훑는 방식에서 공유기가 보고하는 연결 기기 목록을 기준으로 삼는 방식으로 바꿨습니다.
검증 기준
권한 정책을 두 달 주기로 점검하고, 컨테이너 상태 점검 결과와 서버를 다시 켠 뒤 컨테이너가 스스로 올라오는지를 확인합니다.
결과 범위
사내에서 쓰는 시작 페이지로 운영 중이며 점검 라운드마다 정책과 취약점을 다시 봅니다.

사내 장비의 주소와 접속 방법이 사람마다 다른 메모에 흩어져 있었습니다. 브라우저를 열면 나오는 시작 페이지 하나로 모으기로 하고, 공유기가 보고하는 연결 기기를 기준으로 사내망의 살아 있는 장비를 목록으로 보여 주는 콘솔을 만들었습니다.

공유기가 보고하는 연결 기기 목록을 기준으로 장비를 찾고, 그 주소에만 대표 포트 응답을 확인해 열려 있는 포트와 하드웨어 주소를 함께 보여 줍니다. 장비마다 운영체제·연산 장치·메모리 같은 사양과 원격 접속 정보를 적어 둘 수 있고, 비밀번호처럼 민감한 값은 서버에서만 풀리도록 저장합니다.

계정은 새로 만들지 않고 이미 쓰고 있는 사내 계정에 붙였습니다. 관리자와 일반 사용자를 나눠 편집 권한을 가르고, 접근 권한과 2차 인증 정책은 문서로 정해 정기 점검 때 다시 봅니다.

컨테이너로 올리고 상태 점검을 붙여, 응답이 없으면 스스로 다시 뜨도록 감시를 걸어 두었습니다. 초기에는 자격 증명이 코드에 들어 있었는데, 환경 파일로 옮기고 세션 키를 따로 두는 정리를 거쳤습니다.

장비를 찾는 방식은 두 번 바뀌었습니다. 처음에는 대역 전체를 ARP 로 훑고 개별 핑을 보냈지만 자기 자신과 일부 기기가 빠져, 2026년 1월 공유기가 보고하는 연결 기기 목록을 기준으로 삼는 방식으로 바꾸고 스캔 코드를 지웠습니다. 목록 밖의 온라인 장비를 찾으려고 능동 핑 스윕을 넣었다가 TCP 방식으로 바꾼 뒤 둘 다 되돌리기도 했는데, 컨테이너의 네트워크 위치가 공유기가 보는 LAN 보다 좁게 보이는 것이 원인이었고 호스트 네트워크 모드로 바꾸어 풀었습니다.

운영하며 겪은 문제는 기록으로 남겼습니다. 컨테이너에서 핑이 늘 실패한 것을 처음엔 원시 소켓 권한 부족으로 봤지만, 실제 원인은 경량 베이스 이미지에 핑 실행 파일이 없는데 예외를 삼켜 조용히 실패한 것이었습니다. 저장된 운영체제 필터가 접속할 때마다 자동 적용되어 등록된 장비 대부분이 숨는 것이 '장비가 안 보인다'는 신고의 원인이어서 필터 자동 복원을 껐습니다. 서버를 옮긴 뒤 재빌드에서는 고정하지 않은 의존성이 웹 프레임워크 메이저 버전으로 올라가 템플릿 화면이 전부 500 오류를 냈고(리다이렉트 화면만 멀쩡해 겉으로는 정상으로 보였습니다), 호출 8곳을 고치고 요구 사항 파일을 정확한 버전으로 고정했습니다.

서버 점검 중 서버 작업 트리에만 있고 저장소에는 없던 기능이 며칠째 운영되고 있는 것을 발견해 저장소에 반영했고, 이후 로컬에서 고쳐 푸시한 뒤 서버가 받는 순서만 따르기로 했습니다. 업타임은 연속 온라인 시간으로 정의해, 연속 세 번 응답하지 않을 때만 오프라인으로 바꾸어 짧은 끊김에 초기화되지 않게 했습니다.

컨테이너 재시작 정책은 프로세스가 종료됐을 때만 동작해, 살아 있으나 응답하지 않는 상태는 잡지 못합니다. 그래서 인증 없이 열린 상태 엔드포인트와 컨테이너 헬스체크, 비정상일 때만 재시작하는 주기 감시 스크립트로 나누었습니다. 서버를 같이 쓰는 다른 서비스를 지키려고 전역 이미지·볼륨 정리는 금지하고 이 서비스 전용 자원만 정리합니다.

장치 정보(레이블·운영체제·사양)는 사용자별이 아니라 전역으로 공유하고, 접속 정보는 항목 단위로 비공개를 지정해 작성자와 허용된 사용자, 관리자만 열람하게 했습니다. 정책 점검에서는 관리자 목록에서 빠져도 기존 관리자의 권한이 내려가지 않던 승격·강등 비대칭을 찾아, 로그인할 때마다 목록 기준으로 동기화하도록 고쳤습니다.

화면

왼쪽 메뉴와 위쪽 요약 수치, 가운데 장비 목록 표, 아래 선택 장비의 사양과 접속 정보가 있는 웹 콘솔 화면왼쪽 메뉴와 위쪽 요약 수치, 가운데 장비 목록 표, 아래 선택 장비의 사양과 접속 정보가 있는 웹 콘솔 화면
웹 콘솔. 공유기 연결 목록에서 찾은 장비와 사람이 적어 둔 사양·접속 정보를 한 목록에서 봅니다.

더미 데이터로 채운 그림입니다. 실제 화면과 배치·문구가 다를 수 있습니다.

구조와 흐름

화면과 데이터의 흐름

로그인사내 사용자웹 콘솔목록 · 상세 · 즐겨찾기사내 계정 인증공유기 연결 목록 기준응답 장비 · 열린 포트 · 하드웨어 주소장비 목록장비 사양 · 접속 정보민감 값은 암호화상태 점검 · 자가 복구
연결 목록에서 찾은 것과 사람이 적어 둔 것을 한 목록에서 함께 봅니다.
PythonFastAPISQLiteDocker네트워크 스캔