이것은 큰 질문이므로 내가 모르는 부분을 조사하는 데 도움이 되는 높은 수준의 개요 답변만 찾고 있습니다.
본질적으로 문제는 다음과 같습니다. 전용 Mac Mini(또는 유사한 macOS 컴퓨터)를 사용하여 동일한 로컬 네트워크에 있는 사용자만 액세스할 수 있는 웹 사이트를 호스팅해야 합니다.
나의 첫 번째 본능은 도메인(및 인증서)을 구입하고 이를 내 서버가 위치할 로컬 주소(예: 10.10.10.152)로 지정하는 것이었습니다. 따라서 해당 도메인에 액세스하려는 사람이 올바른 네트워크에 있으면 로컬로 내 웹 사이트로 리디렉션됩니다.
이것이 작동할까요? 그렇다면 도메인을 선택하고, 인증서를 설치하고, 이를 로컬 IP로 지정하는 주요 단계는 무엇입니까?
답변1
도메인(및 인증서)을 구입하고 내 서버가 위치할 것으로 알고 있는 로컬 주소(예: 10.10.10.152)를 지정하세요. 따라서 해당 도메인에 액세스하려는 사람이 올바른 네트워크에 있으면 로컬로 내 웹 사이트로 리디렉션됩니다.
그러면 효과가 있겠지만, 아무것도 구입할 필요는 전혀 없습니다.
예를 들어 로컬 DNS를 설정할 수 있습니다.service.example.org(당신이 소유하고 있다면example.org), 또는service.lan자신의 도메인 없이. A 레코드가 개인 웹 서버를 가리키도록 합니다.
HTTPS(TLS)가 필요한 경우 인증서에 자체 서명하고 각 클라이언트의 해당 인증서를 명시적으로 신뢰하거나 새 CA를 시작하고(OpenSSL의 경우 1분만 소요) 인증서에 서명할 수 있습니다.service.lanCA 루트 인증서를 클라이언트에 트러스트 앵커로 배포합니다.
답변2
의견 토론을 기반으로 예를 들어 Apache를 사용하고 모듈 mod_authz_host
과 Require
지시어를 사용하여 다음과 같이 설정할 수 있습니다.
<Directory /var/www/web/>
Require host localhost
Require ip 127.0.0.1
Require ip 192.168.0
</Directory>
(위에서 귀하의 로컬 네트워크는 이라고 가정합니다 192.168.0.0/24
)
localhost/127.0.0.1
이 구성은 네트워크의 모든 호스트 에 대한 액세스를 제한합니다.192.168.0.0/24
답변3
우연히 도메인을 등록/구성하고 인증서를 구입한다는 아이디어에 도달했는지는 잘 모르겠습니다. 그러나 네트워크 구성 및 시스템 관리에 대한 경험이 없다면 이것이 아마도 목표를 달성하는 가장 짧은 경로일 것입니다.
대체 접근 방식은 다음과 같습니다.
- 인터넷에서 웹사이트를 제공하고 ACME 경로에 대한 액세스만 허용하고 LetsEncrypt에서 무료 인증서를 받으세요(유효한 공용 DNS 레코드가 필요하므로 합리적으로 고정 IP 또는 동적 DNS 서비스가 필요함).
- 자체 인증 기관을 구축하고 CA 인증서를 클라이언트에 배포한 후 이를 사용하여 서비스에 대한 인증서에 서명합니다.
- 또는 TLS를 전혀 사용하지 않습니다(권장하지 않음).
제3자 인증 기관으로부터 인증서를 얻으려면 레코드가 포함된 등록된 도메인이 필요합니다. 다른 방법 중 하나를 선택하면 등록된 도메인/공개적으로 액세스 가능한 DNS 레코드가 필요하지 않습니다. eaxmple의 경우 내부 DNS에 dnsmasq를 사용할 수 있습니다(특정 DNS 이름에 대한 재정의를 쉽게 제공할 수 있음).
인터넷 연결이 호스트의 IP 주소에 대한 외부 액세스를 허용하지 않는 한 추가 보안 제어가 필요하지 않지만 지금 추가하면 향후 사고를 예방할 수 있습니다.