Eu tenho uma página da web em um servidor Linux que administro, executando o Apache 2.2. Este servidor é visível para o mundo externo para alguns outros serviços.
Gostaria de configurar o Apache para que um determinado host virtual seja visível apenas de dentro da rede local, para que eu possa implantar um aplicativo Web para obter feedback de outras pessoas na minha organização. Acho que isso tem a ver com a diretiva Allow, mas meus experimentos não estão indo bem.
Como posso alterar meu arquivo de configuração para conseguir isso? Também devo alterar a configuração do firewall?
Respostas:
Fácil. Basta definir algo como isso na sua configuração principal ou na sua configuração virtual:
A
<Directory></Directory>
declaração basicamente diz: “Use essas regras para qualquer coisa neste diretório. E por "este diretório" que se refere ao/var/www/path/to/your/web/documents
que defini neste exemplo, mas deve ser alterado para corresponder ao caminho do diretório local do seu site.Em seguida, na
<Directory></Directory>
área em que você está alterando o comportamento padrão do Apache, queAllow
é tudo por padrão paraOrder Deny,Allow
. Em seguida, você defineDeny from all
de nega acesso de todos. Seguem asAllow from
instruções que permitem o acesso de127.0.0.1 ::1
(endereço IP do host local),localhost
(o próprio host local). Esse é todo o material padrão. Como o acesso a partirlocalhost
é necessário para muitos processos internos do sistema.O que segue é o que importa para você.
O
Allow from
for192.168
e também10
permitirá o acesso de qualquer / todos os endereços de rede dentro do intervalo de rede prefixado por esses números.Portanto, indicando
192.168
que basicamente significa se um usuário tem um endereço como192.168.59.27
ou192.168.1.123
ele poderá ver o site.E da mesma forma usando o
Allow from
para os10
assegura prefixo que, se alguém tem um endereço IP de10.0.1.2
ou até mesmo10.90.2.3
que eles serão capazes de ver o conteúdo.Praticamente todas as redes internas do mundo usam o
192.168
alcance ou algo assim10
. Nada externo. Portanto, o uso dessa combinação alcançará seu objetivo de bloquear o acesso ao mundo exterior, mas apenas permitir o acesso a partir da sua rede local.fonte
Satisfy Any
suposto fazer neste caso? Não sei nada sobre tudo isso, mas quando estava presente no meu cenário, eu podia acessar a página (eu usei<Location /path>
) de uma rede externa. Removê-lo, porém, corrigiu meus problemas. Seria bom entender por que esse era o caso, pois estava um pouco preocupado que eu pudesse acessar a página mesmo com as regras em vigor.Pessoas que chegaram nesta resposta, observe que isso é específico para o Apache 2.2.
O Apache 2.4 descontinuou essas diretivas.
A nova maneira é usar o módulo
mod_authz_host
e asRequire
diretivas. ( link )No Apache 2.4, você deve fazer
e remova todas as diretivas Permitir.
fonte
Adicione esta seção à sua diretiva de host virtual:
Substitua seu IP acima. Isso não deve ser usado para segurança de nível financeiro, FYI.
fonte
Não sei como você configurou sua rede, no entanto, estou assumindo algumas coisas para tentar obter uma resposta melhor.
Vamos supor que você tenha um pequeno escritório com uma conexão DSL. Você teria um endereço IP público estático ou um bloco de endereços atribuído à sua linha, um modem DSL e um firewall. Sem entrar em detalhes de como isso acontece, chegarei à parte importante.
Você deve estar usando NAT (tradução de endereços de rede). Isso permite que os endereços IP públicos residam no lado WAN (Internet) da sua rede e usam endereços IP privados (como 10.0.0.100) dentro da rede no lado da LAN. Este é um procedimento de operação padrão. Se você hospedar um servidor da web em sua rede, use o encaminhamento de porta ou outro mecanismo semelhante) para apontar qualquer tráfego da web para o servidor da web.
Nesse cenário padrão, todos os computadores internos usariam os endereços IP privados.
Supondo que você tenha uma configuração de rede padrão semelhante, altere o endereço IP do computador de um endereço IP público para um endereço IP privado. Sua rede pode ter uma configuração DHCP, onde seu computador pode solicitar um endereço IP disponível. Isso significa que, em vez de especificar um endereço IP, você seleciona o DHCP e um endereço IP será atribuído. Se o DHCP não estiver disponível, você deverá verificar se há outros computadores em busca de um espaço de endereço IP privado que possa ser usado e selecionar um endereço IP no espaço que não for usado. Você pode especificar esse endereço IP não utilizado na sua configuração de rede. Isso deve impedir que seu sistema seja visto na Internet.
fonte