Esta é uma grande questão, por isso estou apenas procurando uma resposta geral de alto nível para me ajudar a pesquisar as partes que não conheço.
Essencialmente, o problema é este: preciso pegar um Mac Mini dedicado (ou uma máquina macOS semelhante) e usá-lo para hospedar um site que só seja acessível para quem está na mesma rede local.
Meu primeiro instinto foi comprar um domínio (e certificado) e apontá-lo para um endereço local (por exemplo, 10.10.10.152) onde eu sei que meu servidor estará localizado. Dessa forma, qualquer pessoa que tentar acessar esse domínio será redirecionada localmente para o meu site se estiver na rede certa.
Isso vai funcionar? Em caso afirmativo, quais são as principais etapas para adquirir um domínio, instalar um certificado e apontá-lo para um IP local?
Responder1
compre um domínio (e certificado) e aponte-o para um endereço local (por exemplo, 10.10.10.152) onde eu sei que meu servidor estará localizado. Dessa forma, qualquer pessoa que tentar acessar esse domínio será redirecionada localmente para o meu site se estiver na rede certa.
Isso funcionaria, mas não há absolutamente nenhuma necessidade de comprar nada.
Você pode configurar DNS local, por exemploserviço.exemplo.org(se você possuiexemplo.org), ouserviço.lansem um domínio próprio. Aponte o registro A para o seu servidor web privado.
Se precisar de HTTPS (TLS), você pode autoassinar um certificado e confiar explicitamente nesse certificado de cada um de seus clientes ou iniciar uma nova CA (leva apenas um minuto com OpenSSL), assinar um certificado paraserviço.lane implante o certificado raiz da CA em seus clientes como âncora de confiança.
Responder2
Com base na discussão dos comentários você pode usar, por exemplo, o Apache e definir algo como: usando o módulo mod_authz_host
e as Require
diretivas.
<Directory /var/www/web/>
Require host localhost
Require ip 127.0.0.1
Require ip 192.168.0
</Directory>
(acima, suponho que sua rede local seja 192.168.0.0/24
)
Esta configuração limitará o acesso a localhost/127.0.0.1
todos os hosts na rede192.168.0.0/24
Responder3
Não tenho certeza se tive a ideia de registrar/configurar um domínio e comprar um certificado por acidente ou intencionalmente - mas na ausência de experiência com configuração de rede e administração de sistemas, este é provavelmente o caminho mais curto para seu objetivo.
Abordagens alternativas seriam
- provisionar o site na internet, permitir apenas o acesso ao caminho ACME e obter um certificado gratuito da LetsEncrypt (que também requer que você tenha um registro DNS público válido - portanto, um IP razoavelmente estático ou serviço DNS dinâmico)
- crie sua própria autoridade de certificação, distribua o certificado CA aos clientes e use-o para assinar um certificado para o serviço
- ou não usar TLS (não recomendado).
Você precisará de um domínio registrado com registros para obter um certificado de uma autoridade de certificação terceirizada. Se você escolher um dos outros métodos, não precisará de um domínio registrado/registros DNS acessíveis ao público - você pode (por exemplo) usar dnsmasq para seu DNS interno (substituições fáceis de provisionar de nomes DNS específicos).
Contanto que sua conexão com a Internet não permita acesso externo ao endereço IP do host, você não precisará de controles de segurança adicionais, mas adicioná-los agora poderá evitar acidentes no futuro.