#1 Le 11/07/2017, à 09:35
- gotcha5832
Autoriser la connexion apache seulement depuis openvpn du meme serveur
Bonjour, à tous
J'ai un serveur sur lequel j'ai installé
Openvpn + Lamp
Je souhaite rendre accessible lamp que si il y a connexion via le vpn
Dans le Vhost j'ai mis:
<Directory /var/www/html>
AllowOverride all
Order Allow,Deny
Allow from ip_vpn/serveur
Deny from all
</Directory>
je me retrouve avec une 403
ip_local - - [11/Jul/2017:10:21:56 +0200] "GET / HTTP/1.1" 403 506 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0"
Du coup lamp ne vois pas l'ip du vpn mais l'ip de poste
Pourtant https://www.dnsleaktest.com/ me donne bien l'ip de mon serveur
Hors ligne
#2 Le 11/07/2017, à 10:42
- pires57
Re : Autoriser la connexion apache seulement depuis openvpn du meme serveur
Si ton poste de travail et ton serveur sont dans le même réseau c'est logique.
Je ne vois pas l'intérêt de bloquer ton site web en local.
Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn
Hors ligne
#3 Le 11/07/2017, à 10:48
- gotcha5832
Re : Autoriser la connexion apache seulement depuis openvpn du meme serveur
Je pense que je me suis mal exprimé
C'est l'inverse je souhaite blocker à tout le monde l'acces au site web sauf si il se connect via le vpn
poste --> site = acces interdit
poste --> VPN --> site = acces autorisé
Sachan que j'ai essayé d'appeler direct localhost ou 127.0.0.1 mais je ne tombe pas sur le site pour autant
Dernière modification par gotcha5832 (Le 11/07/2017, à 11:32)
Hors ligne
#4 Le 11/07/2017, à 12:28
- pires57
Re : Autoriser la connexion apache seulement depuis openvpn du meme serveur
Non tu ne m'as pas compris.
Si ton PC et ton serveur web sont dans le même réseau cela ne fonctionnera pas.
Le mieux c'est déjà de fournir le schéma réseau parce que la il y a plusieurs interprétation différentes possible.
Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn
Hors ligne
#5 Le 11/07/2017, à 13:46
- gotcha5832
Re : Autoriser la connexion apache seulement depuis openvpn du meme serveur
non le pc et le serveur web ne sont pas dans le même sur le même sur physique
En revanche, le serveur VPN et le serveur apache sont sur la même machine et donc la même reseau
en d'autre terme
+----------------+ +-------------------+
| PC | | SERVER |
| | | |
| | | VPN |
| | | |
| | | |
| | | APACHE |
+----------------+ +-------------------+
| IP | | IP |
+----------------+ +-------------------+
| 1.43.XX.XX | | 148.292.XX.XX |
+----------------+ +-------------------+
l'idée étant
+----------------+ +-------------------+
| PC | | SERVER |
| | | |
| |-->| VPN |
| | | | |
| | | V |
| | | APACHE |
+----------------+ +-------------------+
Ce qui me surprend c'est que
- si depuis mon poste j'appel l'url d'un domain que le gère sur un autre serveur je vois dans les logs un connexion depuis l'ip du serveur VPN
- si depuis mon poste j'appel l'ip du serveur pour acceder au site hebergé sur le serveur je vois dans les logs un connexion depuis l'ip du poste.
Comme si le VPN laissait passer la requete sans la traiter?
Edit:
en regardant de plus pret
sur un autre serveur
$_SERVER["REMOTE_ADDR"] = ip_server_vpn
$_SERVER['REMOTE_PORT'] = 54536
Sur le server openvpn+apache
$_SERVER['REMOTE_ADDR'] = ip_poste
$_SERVER['REMOTE_PORT'] = change à chaque appel
Dernière modification par gotcha5832 (Le 11/07/2017, à 17:04)
Hors ligne
#6 Le 12/07/2017, à 10:36
- bruno
Re : Autoriser la connexion apache seulement depuis openvpn du meme serveur
Je ne comprend pas bien ce tu indiques. C'est quoi l'ip_poste ?
Admettons que ton VPN utilise la plage 192.168.0.0/24 (IP privées) et que ton serveur utilise 192.168.0.1 comme IP privée;
En principe ton "poste" se connecte au VPN et obtient une adresse IP privée. Ton serveur Apache qui est sur la même machine que ton serveur VPN répond donc directement à la requête provenant de cette IP privée.
Si ton "poste" connecté au VPN envoie une requête vers un autre serveur web X, c'est ton serveur VPN qui va transmettre la requête au serveur X via son IP publique.
Ainsi, ce que tu observes au niveau des logs me paraît tout à fait normal.
Si tu veux que ton serveur Apache ne réponde qu'aux requêtes provenant du VPN, tu peux n'autoriser que la plage d'IP de ton VPN :
allow from 192.168.0.0/24
deny from all
Ou mieux, faire en sorte qu'Apache ne soit en écoute que sur l'interface réseau du VPN (modifier ports.conf pour une configuration globale) :
Listen 192.168.0.1:80
Dernière modification par bruno (Le 12/07/2017, à 13:46)
#7 Le 12/07/2017, à 13:14
- gotcha5832
Re : Autoriser la connexion apache seulement depuis openvpn du meme serveur
Je te remercie
il fallais effectivement appeler apache via l'ip privé, hors je l'appelai sur l'ip public
(j'avais le soucis que je cherchais, hier aussi, au 192.168.0.1. mais un ifconfig m'a permis de me rendre compte quel l'ip privé étai 10.8.0.1)
en revanche j'ai lutter à bloquer tout sauf le vpn
le serveur à l'ip 10.8.0.1
le poste à l'ip 10.8.0.6
J'ai tenté dans le /etc/apache2/sites-enabled/000-default.conf
<VirtualHost 10.8.0.1:80>
Mais il répond à tout le monde
Puis un htaccess
Order Allow,Deny
Allow from 10.8.0.6 # Ou Allow from 10.8.0.0/24
Deny from All
Il bloque tout le monde
10.8.0.6 - - [12/Jul/2017:14:09:53 +0200] "GET / HTTP/1.1" 403 500 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0"
et enfin
Order Deny,Allow
Deny from all
Allow from 10.8.0.0/24
Et là c'est bon
Hors ligne
#8 Le 12/07/2017, à 13:59
- bruno
Re : Autoriser la connexion apache seulement depuis openvpn du meme serveur
bah, il fallait juste regarder la doc Apache… (curieusement je n'ai pas vu l'erreur dans ton premier message, honte à moi )
Avec :
Order allow,deny
allow est évalué en premier et deny en dernier. Donc si tu mets un « deny all » tu interdis tout, peu importe ce qu'il y a dans allow. C'est à utiliser dans le cas où tu autorises tout, puis tu interdis certaines IP par exemple.