J'ai une page Web sur un serveur Linux que j'administre, exécutant Apache 2.2. Ce serveur est visible par le monde extérieur pour certains autres services.
Je voudrais configurer Apache pour qu'un hôte virtuel donné ne soit visible que depuis l'intérieur du réseau local, afin de pouvoir déployer une application Web pour obtenir des commentaires d'autres personnes de mon organisation. Je pense que cela a à voir avec la directive Allow, mais mes expériences ne vont pas bien.
Comment puis-je modifier mon fichier de configuration pour y parvenir? Dois-je également modifier la configuration du pare-feu?
Réponses:
Facile. Définissez simplement quelque chose comme ceci dans votre configuration principale ou votre configuration virtuelle:
La
<Directory></Directory>
déclaration dit essentiellement: «Utilisez ces règles pour tout dans ce répertoire. Et par «ce répertoire» qui fait référence à celui/var/www/path/to/your/web/documents
que j'ai défini dans cet exemple mais qui doit être modifié pour correspondre au chemin du répertoire local de votre site.Ensuite, dans la
<Directory></Directory>
zone, vous modifiez le comportement Apache par défaut, quiAllow
est tout par défautOrder Deny,Allow
. Ensuite, vous définissez àDeny from all
partir de l'accès refusé à tout le monde. Voici lesAllow from
instructions qui permettent l'accès depuis127.0.0.1 ::1
(adresse IP de l'hôte local),localhost
(l'hôte local lui-même). C'est tout ce qui est standard. Étant donné que l'accès à partir delocalhost
est nécessaire pour de nombreux processus système internes.Ce qui suit est ce qui compte pour vous.
Le
Allow from
pour192.168
ainsi que10
permettra l'accès à partir de n'importe quelle / toutes les adresses réseau dans la plage réseau qui est préfixée par ces numéros.Donc, en indiquant
192.168
que cela signifie essentiellement si un utilisateur a une adresse comme192.168.59.27
ou192.168.1.123
il pourra voir le site Web.De même, l'utilisation du préfixe
Allow from
for10
garantit que si quelqu'un a une adresse IP10.0.1.2
ou même10.90.2.3
qu'il pourra voir le contenu.Presque tous les réseaux internes du monde utilisent la
192.168
plage ou quelque chose dans la10
plage. Rien d'extérieur. Ainsi, l'utilisation de ce combo atteindra votre objectif de bloquer l'accès au monde extérieur, mais autorisera uniquement l'accès à partir de votre réseau local.la source
Satisfy Any
doit-on faire dans ce cas? Je ne sais rien de tout cela mais quand il était présent dans mon scénario, j'ai pu accéder à la page (que j'ai utilisée<Location /path>
) depuis un réseau externe. Le supprimer a cependant résolu mes problèmes. Ce serait bien de comprendre pourquoi c'était le cas car il était légèrement inquiet que je puisse accéder à la page même avec les règles en place.Les personnes atterrissant dans cette réponse, veuillez noter que cela est spécifique à Apache 2.2.
Apache 2.4 a déprécié ces directives.
La nouvelle façon utilise le module
mod_authz_host
et lesRequire
directives. ( lien )Dans Apache 2.4, vous devriez faire
et supprimez toutes les directives Allow.
la source
Ajoutez cette section dans votre directive d'hôte virtuel:
Remplacez votre IP ci-dessus. Cela ne devrait pas être utilisé pour la sécurité au niveau financier, FYI.
la source
Je ne sais pas comment vous avez votre configuration réseau, cependant, je suppose que quelque chose va essayer de faire une meilleure réponse.
Supposons que vous ayez un petit bureau avec une connexion DSL. Vous auriez une adresse IP publique statique ou un bloc d'adresses affecté à votre ligne, un modem DSL et un pare-feu. Sans entrer dans les détails de la façon dont cela se produit, je vais passer à la partie importante.
Vous devez utiliser NAT (traduction d'adresse réseau). Cela permet aux adresses IP publiques de résider du côté WAN (Internet) de votre réseau et d'utiliser des adresses IP privées (comme 10.0.0.100) au sein du réseau du côté LAN. Il s'agit d'une procédure d'opération standard. Si vous hébergez un serveur Web au sein de votre réseau, vous utiliserez alors la redirection de port ou un autre mécanisme similaire) pour pointer tout trafic Web vers votre serveur Web.
Dans ce scénario standard, vos ordinateurs internes utiliseraient tous les adresses IP privées.
En supposant que vous ayez une configuration réseau standard similaire, vous changeriez l'adresse IP de votre ordinateur d'une adresse IP publique à une adresse IP privée. Votre réseau peut avoir une configuration DHCP où votre ordinateur peut demander une adresse IP disponible. Cela signifie qu'au lieu de spécifier une adresse IP, vous choisissez d'utiliser DHCP et une adresse IP sera attribuée. Si DHCP n'est pas disponible, vous devrez vérifier sur certains autres ordinateurs un espace d'adresse IP privé qui peut être utilisé et sélectionner une adresse IP dans l'espace qui n'est pas utilisé. Vous pouvez spécifier cette adresse IP inutilisée dans votre configuration réseau. Cela devrait empêcher votre système d'être vu sur Internet.
la source