Je souhaite restreindre l'accès IP direct à mon site Web. J'ai trouvé plusieurs solutions impliquant .htaccess mais aucune n'a fonctionné. J'ai également trouvé une solution via la configuration des hôtes virtuels apache qui fonctionnait bien jusqu'à ce que j'installe un certificat SSL via CPanel. Je n'ai absolument aucune idée de ce qui a été modifié dans le fichier httpd.conf mais maintenant le paramètre de redirection ne fonctionne pas même si je désinstalle le certificat SSL.
Voici ma configuration actuelle d'hôtes virtuels:
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 et noms ont été remplacés par des noms génériques. La partie "Rediriger 403 /" ne fonctionne pas depuis l'installation du certificat SSL. Je serais reconnaissant si quelqu'un pouvait faire la lumière sur ce que je fais mal ici. Merci.
Réponses:
Et le tour est joué:
La solution était de simplement remplacer l'adresse IP par le nom de domaine pour tous les paramètres de l'hôte virtuel, à l'exception de celui qui doit rediriger / restreindre l'accès IP direct.
la source
La réponse pourrait être beaucoup plus simple.
Il suffit de copier ceci au bas de httpd.conf (généralement situé dans / etc / httpd / conf)
Alors seulement lorsque les visiteurs accèdent par www.example.com, il peut accéder au serveur.
la source
Vous ne pouvez pas désactiver l'accès IP direct à votre serveur via HTTPS car le nom d'hôte de votre hôte virtuel est chiffré à l'intérieur du certificat SSL.
Les clients doivent se connecter à votre adresse IP, télécharger le certificat, lire le contenu, puis ils peuvent vérifier que le nom d'hôte est correct.
La seule autre façon consiste à appliquer SNI , mais vous causerez des problèmes aux utilisateurs qui naviguent avec les anciennes versions d'Internet Explorer.
la source
https://192.168.1.1
doivent avoir une erreur SSL (car l'URL diffère de celle du certificat).<VirtualHost *:443> SSLEngine on </VirtualHost>
la source
Je crois que c'est ce que vous cherchez
http://www.htaccess-guide.com/deny-visitors-by-ip-address/
la source
Pour ajouter une autre réponse, mod_security, si cela vaut la peine d'être configuré, a des règles pour interdire l'accès au serveur par adresse IP.
la source
Cela peut être facile si vous ne placez pas vos fichiers dans le répertoire par défaut / var / www / html. Créez simplement un autre répertoire, disons / web par exemple:
copiez vos fichiers et changez le chown:
Créez ensuite un hôte virtuel avec la configuration suivante:
N'oubliez pas d'activer votre hôte virtuel, exemple:
la source
Dans une configuration Apcahe ayant plusieurs
.conf
fichiers, la priorité va au premier fichier chargé, puis au second ... de même. Donc, si vous êtes sur Ubuntu, les fichiers sont chargés dans l'ordre lexicographique, donc le tout "premier".conf
fichier qui sera chargé sera le000-default.conf
(d' où le 000 dans son nom ) résidant sous le/etc/apache2/sites-available/
répertoire.Donc, pour empêcher l'application de toute autre règle, nous devons placer notre règle en haut de ce premier fichier.
et vous pouvez simplement ajouter la règle suivante à ce fichier.
Testé et testé sur Ubuntu 16.4 x64 Apache version
> 2.4
Si vous utilisez une version inférieure d'Apache, essayez de remplacer
Require all denied
le code ci-dessus par ...la source
J'ai écrit ce code simple en PHP pour restreindre l'accès IP direct!
il suffit de coller dans votre fichier php et profitez-en!
la source