원격 접근

이 스테이션의 대시보드를 네트워크의 다른 기기에 여는 일, 원한다면 HTTPS로 여는 일, 누가 쓸 수 있는지, 그리고 변경마다 드는 다시 시작입니다.

Markdown으로 보기

원격 접근은 설정 페이지 일반 묶음의 마지막 줄입니다. 꺼져 있으면 스테이션의 웹 호스트가 루프백 주소로 자기 컴퓨터에만 답하고(데스크톱 창이 인터페이스를 그리는 것도 그 길입니다) 네트워크에서는 아무것도 수신하지 않습니다. 켜면 스테이션의 모든 네트워크 주소에도 붙어서, 같은 LAN의 태블릿이나 다른 PC가 브라우저로 같은 인터페이스를 열 수 있습니다. 이 페이지에는 설정 변경 권한이 필요하고, 여기의 세 설정은 바로 지금 보고 있는 화면을 그리는 웹 서버를 다시 시작하므로 저마다 먼저 묻습니다.

설정

항목 무엇인지 값과 기본값 효과
다른 기기에서 대시보드 열기 "기본값은 꺼짐입니다. 같은 네트워크의 태블릿이나 다른 PC에서 이 스테이션의 대시보드를 열려면 켜십시오." 켬 또는 끔입니다. 기본값은 꺼짐입니다. 켜면 웹 호스트가 루프백 주소 옆에 스테이션의 LAN 주소를 하나씩 붙이고, 앱이 "Ganter Lab Dashboard"라는 이름의 Windows 방화벽 규칙을 더하며(그 포트의 인바운드 TCP, 개인과 도메인 프로필, 로컬 서브넷만), 사설 주소 범위 밖의 어떤 출처도 물리는 허용 목록을 심습니다. 끄면 루프백만 붙고 그 규칙은 사라집니다.
HTTPS로 제공(자체 서명 인증서) 위의 스위치가 켜져 있을 때에만 그려집니다. 스테이션이 스스로 만든 인증서로 LAN 통신을 암호화합니다. 켬 또는 끔입니다. 기본값은 꺼짐입니다. 켜면 LAN 주소가 HTTPS로 서비스합니다. 루프백 주소는 그냥 HTTP로 남으므로 데스크톱 창은 결코 영향을 받지 않습니다. 기기마다 처음 한 번은 이 스테이션의 인증서를 수락할지 묻습니다.
포트 "이 스테이션이 수신하는 네트워크 포트입니다. 포트를 바꾸면 웹 서버가 다시 시작됩니다. 이 화면은 스스로 다시 불러오고, 다른 곳에서 열려 있던 대시보드는 새 주소로 다시 열어야 합니다." 1에서 65535입니다. 기본값은 18760입니다. 루프백과 LAN 모두의 포트입니다. 입력란은 떠나거나 Enter를 누를 때 적용되고 키를 누를 때마다 적용되지는 않습니다. 포트가 아닌 글, 범위 밖의 숫자, 이미 힘을 가지고 있는 포트는 아무것도 묻지 않고 지금 값으로 되돌아갑니다.

스위치가 켜져 있는 동안 카드는 누가 접속할 수 있는지를 설명하고(아래 참조) 그다음 세 가지 가운데 하나를 보여 줍니다.

  • 다른 기기에서 열기: QR 코드와 적어 넣을 주소 http://<address>:<port>/(또는 https://)이며, 그 주소는 호스트가 시작할 때 붙은 첫 LAN 주소입니다. 코드를 스캔하거나 같은 네트워크의 브라우저에 적어 넣으십시오.
  • "이 스테이션은 아직 네트워크에 연결되어 있지 않습니다. 공유할 주소를 얻으려면 공장 네트워크에 연결하십시오.": 스위치는 켜져 있지만 호스트가 시작할 때 스테이션에 LAN 주소가 없어서 루프백만 붙었고 방화벽 규칙도 만들어지지 않았습니다. 설정은 켜진 채로 남고, 주소가 생기면 호스트가 다시 붙습니다.
  • 원격 접근을 사용할 수 없습니다라는 주의 알림 띠: HTTPS를 요청했는데 인증서를 불러오거나 만들지 못했습니다. 알림 띠가 이유를 담습니다. "HTTPS 인증서를 불러오거나 만들지 못해 원격 접근을 시작하지 않았습니다. 루프백 접근은 그대로 쓸 수 있습니다. 이벤트를 확인하고 원격 접근 설정을 바꿔 다시 시도하십시오." 스테이션이 스스로 그냥 HTTP로 물러나는 일은 결코 없고, 호스트가 시작할 때 "원격 대시보드를 사용할 수 없습니다" 알림이 같은 말을 합니다.

변경을 적용하기: 다시 시작

두 스위치 가운데 하나를 넘기거나 새 포트를 적용하면 웹 서버를 다시 시작하시겠습니까? 대화 상자가 열립니다. 그 문단이 무엇을 치러야 하는지 말하고 "이 화면은 그 서버가 그리므로 몇 초 동안 멈췄다가 스스로 돌아옵니다."로 끝납니다.

  • 스위치를 켤 때: "다른 기기에서 대시보드를 열도록 하면 웹 서버가 다시 시작됩니다."
  • 끌 때: "다른 기기에서 대시보드를 열지 못하게 하면 웹 서버가 다시 시작되고, 네트워크로 이 스테이션을 읽던 기기는 더 이상 접근하지 못합니다."
  • HTTPS를 켤 때: "HTTPS로 제공하면 웹 서버가 다시 시작되고, 기기마다 처음 한 번은 이 스테이션의 자체 인증서를 수락할지 묻습니다." HTTPS를 끌 때: "다시 일반 HTTP로 제공하면 웹 서버가 다시 시작됩니다."
  • 새 포트일 때: "이 스테이션을 포트 N으로 옮기면 웹 서버가 다시 시작됩니다."

취소는 스위치와 포트 입력란을 스테이션이 실제로 수신하고 있는 값으로 되돌립니다. 적용하고 다시 불러오기는 설정을 저장합니다. 그러면 앱이 예전 방화벽 규칙을 지우고, 호스트를 멈추고, 새 조건으로 시작하고, 규칙을 다시 만듭니다. 그동안 웹 서버를 다시 시작하는 중이라는 제목의 덮개가 앱 위에 섭니다. 데스크톱 창에서는 "스테이션이 다시 응답하면 화면은 스스로 돌아옵니다."이고, 브라우저에서는 "새 주소가 응답하면 화면은 스스로 돌아옵니다."이며, 둘 다 "그동안 수집, 기록, OPC UA 서버는 계속 실행됩니다."를 담습니다. 브라우저는 최대 30초 동안 0.5초마다 새 주소를 두드려 보고 응답하면 그리로 갑니다. 시간 안에 아무 응답도 없으면 덮개가 물러나고 다시 시도와 다시 불러오기가 있는 보통의 재연결 화면이 그 자리를 대신합니다. 데스크톱 창은 자기 화면을 스스로 새 주소로 돌립니다. 기다리는 사람은 변경을 요청한 사람이고, 다른 모든 기기는 그냥 연결이 끊겼다가 다시 붙습니다. 원격 접근을 끈 브라우저에는 스스로 고른 대로 돌아올 곳이 없습니다.

런타임이 정지한 동안에는 이 페이지가 아예 그려지지 않으므로(설정 참조) 런타임이 돌아오기 전까지 이 셋 가운데 어느 것에도 닿을 수 없습니다.

HTTPS와 그 인증서

인증서는 자체 서명이고, "Ganter Lab Dashboard" 앞으로 발급되며, 5년 동안 유효하고, localhost127.0.0.1과 만들어질 때 스테이션이 가지고 있던 모든 LAN 주소를 담습니다. 스테이션 데이터 뿌리 아래에 dashboard-cert.pfx로 보관되며, 없어졌거나 읽을 수 없거나 만료 하루 전이거나 스테이션의 주소 가운데 하나를 더 이상 담지 못하면 다시 만들어집니다. 브라우저는 이 인증서를 스스로 믿지 않습니다. 기기마다 자기 경고를 한 번 보여 주고, 거기에서 이 스테이션의 인증서를 수락하십시오. HTTPS가 없으면 로그인 PIN이 평문으로 네트워크를 건너가고, 구성의 OPC UA 서버 사용자 이름을 비롯해 스테이션이 네트워크로 보여 주는 다른 내용도 마찬가지입니다. 거기에 입력한 비밀번호도 들어갈 때는 똑같이 평문으로 건너가지만, 저장된 것은 브라우저로 보내지지 않습니다.

방화벽 규칙과 주소 지켜보기

"Ganter Lab Dashboard" 규칙은 앱이 설정을 적용할 때 netsh로 만들어지고 지워집니다. 규칙을 만들려면 권한 상승이 필요한데, 앱은 그것을 당연하게 여기지 않습니다. 실패는 진단 로그에 남기고 삼킵니다. 바인딩과 사설 범위 허용 목록이 여전히 호스트를 가두고 있고, 그러면 Windows가 대신 자기 "접근 허용" 창을 보여 주기 때문입니다. 규칙은 바꿀 때마다 지워지고 다시 만들어지므로, 예전 포트의 낡은 규칙이 남는 일은 없습니다.

스테이션의 주소는 호스트가 도는 도중에도 움직일 수 있습니다(새 DHCP 임대, Wi-Fi에서 유선으로 옮기기, 도킹). 앱은 그것을 지켜보다가, 원격 접근이 켜져 있는 동안 지금 주소로 호스트를 다시 붙입니다. 그러면 인증서가 그 주소를 더 이상 담지 못할 때 인증서도 새로 발급됩니다. 주소 카드도 따라옵니다.

누가 대시보드를 열 수 있는지

첫 번째 물음은 누가 묻고 있는가가 아니라 그 요청이 무엇을 주소로 적었는가입니다. 스테이션은 자신의 장비에서 127.0.0.1로 응답하고, 원격 접근이 켜져 있는 동안에는 자신이 묶은 각 LAN 주소와 이 장비의 네트워크 이름으로도 응답합니다. 다른 호스트를 적은 요청이나 다른 사이트의 페이지를 출처로 실어 온 요청은, 화면 하나도 파일 하나도 연결 하나도 나가기 전에 403과 "이 스테이션은 자신이 공개한 주소에서만 응답합니다."라는 한 줄로 거절됩니다. 마침 들르게 된 사이트가 당신의 브라우저를 통해 이 스테이션을 조종하지 못하는 것이 바로 이 때문입니다. 그런 페이지는 자기 도메인을 이 장비로 향하게 할 수는 있어도, 브라우저가 그것을 위해 보내는 요청에 적는 주소까지 고를 수는 없으며, 그 시도는 Events에 남습니다. 에이전트의 접속 지점도 같은 규칙으로 자신의 호출자를 거절합니다.

웹 호스트는 대시보드만이 아니라 인터페이스 전체를 서비스하고, 모든 브라우저는 자기 로그인한 사용자를 가진 자기 연결입니다. 어떤 신원이 네트워크에서 들어올 수 있는지 자체는 사용자 페이지에 있는 그 역할의 원격 접근(LAN) 권한입니다. 그 권한이 없는 신원의 브라우저는 그 비트를 가진 누군가 로그인하기 전까지 어떤 페이지도 보지 못하고 로그인 패널만 봅니다. 로그인하지 않음 역할은 기본으로 그것이 꺼져 있으므로, 키오스크나 태블릿을 위해 일부러 그 역할에 비트를 주지 않는 한 원격 접근을 켜도 사용자가 로그인하기 전까지는 아무것도 공유되지 않습니다. 스테이션 자신의 장비에 있는 브라우저는 결코 이 권한에 가려지지 않습니다. 그 뒤부터는 스테이션의 창에서와 똑같이 로그인한 역할이 나머지 전부를 정합니다. 로그인을 보십시오.

원격 브라우저가 할 수 없는 일

몇 가지 조작은 스테이션 자신의 데스크톱에만 있고 브라우저에서는 "스테이션의 로컬 데스크톱에서만 쓸 수 있습니다."와 함께 흐려진 채로 남습니다. 백업 폴더 열기, 업데이트를 받으려고 다시 시작하기, 그리고 경고 계기에서 떼어 낸 이벤트 창을 여는 일입니다. 데스크톱 확대/축소 줄은 아예 그려지지 않습니다. 클라이언트 접근현장 장비 접근에서 인증서를 신뢰하고 차단하고 신뢰 취소하고 가져오는 일, 그리고 OPC UA 방화벽 단추는 브라우저에서 물립니다. "클라이언트 접근은 스테이션의 데스크톱 앱에서만 바꿀 수 있습니다." 이 원격 접근 설정을 포함한 그 밖의 모든 것은 로그인한 역할을 따릅니다.

이 구역이 하지 않는 일

스테이션이 인터넷에 노출되는 일은 결코 없고 터널을 만들지도 않습니다. 바인딩은 LAN 바인딩이고, 방화벽 규칙은 로컬 서브넷으로 좁혀져 있으며, 허용 목록은 둘 다 잘못 설정되었더라도 공인 주소를 물립니다. 여기에는 접속한 브라우저의 목록도, 기기마다의 허용이나 거부도, 보기 위한 별도의 비밀번호도 없습니다(신원은 로컬 사용자입니다). 에이전트 엔드포인트의 포트는 여기가 아니라 에이전트 페이지에서 정합니다.