Node-RED 사용자 인증 설정하기

Node-RED 사용자 인증 :
초기설정은 누구나 웹 브라우저를 통해 접속할 수 있는 구조로 되어 있어, 내부망 또는 외부망에서 실행할 경우 보안상 위험이 존재한다.


1. Node-RED 사용자 인증 필요한 이유

초기설정은 기본적으로 로그인 없이 접속 가능하며, 플로우를 자유롭게 수정하거나 삭제할 수 있다.
이 기능은 개발 초기에는 편리하지만, 다음과 같은 상황에서는 반드시 인증이 필요하다.

  • NAS 또는 클라우드에 설치되어 외부 접속이 가능한 경우
  • 여러 명이 함께 사용하는 스마트홈 또는 IoT 환경
  • 기업 내부망에서 민감한 데이터 처리 중인 경우

2. Node-RED 사용자 인증 설정 방법 요약

사용자 인증 기능은 설정 파일인 settings.js를 통해 구성할 수 있으며, 비밀번호는 해시값(SHA-256)으로 저장해야 한다.

설정 순서는 다음과 같다:

  1. 비밀번호 해시 생성
  2. settings.js 파일 수정
  3. Node-RED 재시작

3. 비밀번호 해시 생성

비밀 번호를 입력하여 비밀 번호 해시(hash)를 생성한다.
해시(hash)는 별도의 알고리즘에 의하여 원본과 다르게 해독하기 어려운 문장으로 바꾼 것이다.

IoT Maker 의 글을 참고하여 작성하였다.

Win +R 키를 누르면 다음 화면이 나옵니다. cmd가 선택된 채로 확인 버튼을 누릅니다.

명령 프롬프트에 다음 명령어를 입력한다.

node-red admin hash-pw

Password를 입력하면 비밀번호 해시가 표시된다.

Password: $2y$08$qyRghRs1ZDO3/8Nhnt9Fn.xG6CVm55SNPxqf4eCHoEEVRGjzkWV3S

이 문자열을 복사해둔다.


4. settings.js 파일 수정

이제 설정 파일인 settings.js를 수정한다.
일반적으로 이 파일은 /data/settings.js 또는 /home/<사용자>/.node-red/settings.js 경로에 위치한다.

해당 파일을 열고 다음 항목을 찾아 수정한다:

// property can be used. See http://nodered.org/docs/security.html for details.
adminAuth: {
    type: "credentials",
    users: [{
        username: "admin",
        password: "$2y$08$qyRghRs1ZDO3/8Nhnt9Fn.xG6CVm55SNPxqf4eCHoEEVRGjzkWV3S",
        permissions: "*"
    }]
},

5. 재시작

설정을 저장한 후 재시작한다.

Docker 환경이라면 다음 명령으로 재시작할 수 있다:

docker restart node-red

Container Manager를 사용하는 경우 DSM에서 컨테이너를 중지했다가 다시 실행하면 된다.


6. Node-RED 사용자 인증 적용 확인

웹 브라우저에서 접속하면 로그인 화면이 나타난다. 앞서 설정한 사용자 이름과 비밀번호를 입력하면 대시보드에 접근할 수 있다.

Node-RED 사용자 인증 초기 화면

7. 마무리

사용자 인증 설정은 Node-RED 보안을 위한 필수 조치다. 특히 Synology NAS나 클라우드처럼 외부 접속이 가능한 환경에서 Node-RED를 운용한다면, 기본 상태 그대로 사용하는 것은 매우 위험하다.
관리자 계정에 비밀번호를 설정하는 것만으로도 시스템의 무단 접근을 차단할 수 있으며, 가능하다면 DSM의 리버스 프록시 기능을 통해 HTTPS 접속까지 함께 적용하면 보안 수준이 크게 향상된다.

Node-RED에서는 다중 사용자 계정 추가, 읽기 전용 사용자 구성, 사용자 권한 분리 등도 설정할 수 있다.
예를 들어, 관리자 계정은 모든 작업이 가능하지만, 단순 모니터링을 위한 계정은 read 권한으로 제한할 수 있다. 이를 통해 협업 환경에서도 안전한 운영이 가능하다.

추가적으로, 인증 설정 시 아래 옵션들도 고려할 수 있다:

  • contextStorage 설정을 통해 사용자별 세션 데이터를 분리 저장
  • LDAP 또는 OAuth2 연동을 통한 중앙 인증 체계 구축
  • 환경 변수 설정으로 컨테이너 실행 시 인증 정보 자동 삽입

이처럼 Node-RED는 인증 기능을 통해 단순한 자동화 도구를 넘어서, 보안이 강화된 서비스 플랫폼으로 확장될 수 있다.

지금 바로 사용자 인증을 설정해두고, 더 안전한 자동화 환경을 만들어보자.

답글 남기기