Quero restringir o acesso IP direto ao meu site. Encontrei várias soluções envolvendo .htaccess, mas nenhuma funcionou. Eu também encontrei uma solução através da configuração de hosts virtuais do apache, que estava funcionando bem até instalar um certificado SSL através do CPanel. Não tenho absolutamente nenhuma idéia do que foi alterado no arquivo httpd.conf, mas agora a configuração de redirecionamento não funciona, mesmo que eu desinstale o certificado SSL.
Aqui está a minha configuração atual de hosts virtuais:
NameVirtualHost 192.168.1.1:80 NameVirtualHost *
<VirtualHost 192.168.1.1:80>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /home/rotate/public_html
ServerAdmin [email protected]
UseCanonicalName Off
## User rotate # Needed for Cpanel::ApacheConf
UserDir disabled
UserDir enabled rotate
ScriptAlias /cgi-bin/ /home/rotate/public_html/cgi-bin/
</VirtualHost>
<VirtualHost 192.168.1.1:80>
ServerName 192.168.1.1
Redirect 403 /
ErrorDocument 403 "Sorry, direct IP access not allowed."
DocumentRoot /usr/local/apache/htdocs
ServerAdmin [email protected]
UseCanonicalName Off
UserDir disabled
</VirtualHost>
<VirtualHost *>
ServerName server.mysite.com
DocumentRoot /usr/local/apache/htdocs
ServerAdmin [email protected]
UserDir disabled
</VirtualHost>
NameVirtualHost 192.168.1.1:443
<VirtualHost 192.168.1.1:443>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /home/rotate/public_html
ServerAdmin [email protected]
UseCanonicalName Off
UserDir disabled
UserDir enabled rotate
ScriptAlias /cgi-bin/ /home/rotate/public_html/cgi-bin/
SSLEngine on
#SSL stuff here
</VirtualHost>
IP e nomes foram substituídos por genéricos. A parte "Redirect 403 /" não está funcionando desde a instalação do certificado SSL. Ficaria muito grato se alguém puder esclarecer o que estou fazendo de errado aqui. Obrigado.
fonte
Respostas:
E pronto, a correção:
A solução foi simplesmente substituir o IP pelo nome de domínio para todas as configurações de host virtual, exceto aquela que precisa redirecionar / restringir o acesso direto ao IP.
fonte
A resposta poderia ser muito mais simples.
Basta copiar isso na parte inferior do httpd.conf (geralmente localizado em / etc / httpd / conf)
Somente quando os visitantes acessarem pelo site www.example.com, ele poderá obter acesso ao servidor.
fonte
Você não pode desativar o acesso IP direto ao servidor por HTTPS porque o nome do host do seu host virtual é criptografado dentro do certificado SSL.
Os clientes devem se conectar ao seu endereço IP, fazer o download do certificado, ler o conteúdo e verificar se o nome do host está correto.
A única outra maneira é impor o SNI , mas você causará problemas para os usuários que estiverem navegando com versões mais antigas do Internet Explorer.
fonte
https://192.168.1.1
devem ter um erro SSL (porque a URL difere da do certificado).<VirtualHost *:443> SSLEngine on </VirtualHost>
fonte
Eu acredito que é isso que você está procurando
http://www.htaccess-guide.com/deny-visitors-by-ip-address/
fonte
Para adicionar outra resposta, o mod_security, se vale a pena configurar, possui regras para proibir o acesso ao servidor por endereço IP.
fonte
Isso pode ser fácil se você não colocar seus arquivos no diretório / var / www / html padrão. Basta criar um outro diretório, digamos / web, por exemplo:
copie seus arquivos e mude o chown:
Em seguida, crie um host virtual com a seguinte configuração:
Não esqueça de ativar seu host virtual, por exemplo:
fonte
Em uma instalação do Apcahe com vários
.conf
arquivos, a precedência vai para o primeiro arquivo carregado e depois para o segundo .. da mesma forma. Portanto, se você estiver no Ubuntu, os arquivos serão carregados em ordem lexicográfica; portanto, o "primeiro".conf
arquivo a ser carregado será o000-default.conf
( portanto, o 000 em seu nome ) residindo no/etc/apache2/sites-available/
diretório.Portanto, para impedir que qualquer outra regra seja aplicada, precisamos colocar nossa regra no topo desse primeiro arquivo.
e você pode simplesmente anexar a seguinte regra a esse arquivo.
Tentou e testou na versão Ubuntu 16.4 x64 Apache
> 2.4
Se você estiver executando uma versão inferior do Apache, tente substituir
Require all denied
do código acima para ...fonte
Eu escrevi este código simples em PHP para restringir o acesso direto ao IP!
basta colar no seu arquivo php e divirta-se!
fonte