![포트를 안전하게 여는 중](https://rvso.com/image/761003/%ED%8F%AC%ED%8A%B8%EB%A5%BC%20%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C%20%EC%97%AC%EB%8A%94%20%EC%A4%91.png)
태블릿을 사용하는 소수의 사람들만 접근할 수 있는 웹앱을 운영하고 있습니다. ISP 라우터 뒤의 로컬 네트워크에 있는 서버의 포트 80에서 제공됩니다.
문제는 다른 사용자가 액세스할 수 없도록 허가된 사용자에게 어떻게 액세스를 보장할 수 있는가입니다. 승인되지 않은 사용자는 포트가 열려 있지 않은 것처럼 연결 재설정으로 종료해야 합니다.
라우터에서 포트를 열고 서버로 리디렉션하고 인증서로 보안을 유지하려고 생각했는데 그게 가능할까요?
또 다른 솔루션은 VPN을 설치하는 것일 수 있지만 일부 사용자에게는 관리하기가 너무 어려울 수 있습니다.
답변1
이를 해결하는 방법은 여러 가지가 있지만 올바른 방법은 현재 사용 중인 다른 보안 메커니즘에 따라 다릅니다. 예:
- 클라이언트 인증서. 일반적으로 암호화되지 않은 포트 80을 사용하려는 경우를 제외하면 이는 매우 가능합니다. 웹 서버를 재구성하거나 그 앞에 프록시를 배치해야 하지만 이는 확실히 가능합니다. Apache로 수행하는 방법은 여기에 설명되어 있습니다.https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html#allclients
- 네트워크 수준, 즉 방화벽에서 IP 또는 MAC 주소로 필터링합니다.
- 말씀하신 대로 VPN을 사용하세요. 이는 사용자에게 합리적으로 투명하게 이루어질 수 있습니다.
- 웹 서버나 그 앞의 프록시에서 인증 헤더를 확인하세요.
의심할 여지없이 더 많은 것이 있습니다. 그 중 일부는 추가 인증 방법이 없으면 적합하지 않습니다. 예를 들어 MAC 주소는 쉽게 스푸핑됩니다. 포트가 열릴 때까지 많은 인증 방법이 작동하지 않기 때문에 네트워크 포트가 닫힌 것으로 나타나도록 요구 사항을 완화하면 다른 옵션을 사용할 수 있습니다.
답변2
귀하의 질문은 다소 일반적입니다. 다음 중 하나 이상을 수행할 수 있습니다.
- 웹 앱에 액세스하려면 유효한 사용자 이름/비밀번호가 필요합니다. 이는 애플리케이션 수준이나 웹 서버 수준(예: apache2)에서 수행할 수 있습니다.
- 방화벽을 구성하여 이 IP/포트에 대한 액세스를 보호하세요. 특정 IP만 허용됩니다. 다른 것들은 거부됩니다. 이를 위해서는 사용자의 IP 목록을 가져와야 합니다.
- 중간자 공격과 같은 공격으로부터 보호하기 위해 사용자를 http(포트 80)에서 https(포트 443)로 리디렉션합니다.
- 서버 액세스를 비공개로 유지하고 사용자 트래픽을 네트워크로 터널링합니다(인증이 필요한 VPN 솔루션 중 하나).