Pages : 1
#1 Le 04/01/2013, à 11:16
- flyght
Cacher la page MySQL à partir d'une IP publique
Bonjour,
Je possède un serveur Debian 6, avec apache et MySQL.
J'aimerais que personne ne puisse accéder à la page MySQL depuis l'ip publique du serveur mais seulement sur son ip privée via le vpn de l'entreprise.
Es ce un configuration à faire dans apache ? Car du coté MySQL je n'est rien vu concernant ceci.
Merci
Hors ligne
#2 Le 04/01/2013, à 11:33
- serged
Re : Cacher la page MySQL à partir d'une IP publique
Tu veux dire à la page phpMyAdmin ?
Chez moi :
Dans le fichier /etc/apache2/conf.d/phpmyadmin.conf :
Dans la section <Directory /usr/share/phpmyadmin> Rajouter :
Order Deny,Allow
Deny from All
Allow from localhost,127.0.0.1
Tu peux rajouter d'autres hôtes autorisés, par exemple :
Allow from 192.168.1
pour permettre l'accès depuis le réseau local (si il est dans 192.168.1.*)
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#3 Le 07/01/2013, à 10:31
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
Merci pour ta réponse.
Oui en effet, je parlai de phpmyadmin désolé.
Hum mon soucis c'est que je n'ai pas de phpmyadmin.conf nulle part sur le serveur et comme ce n'est pas moi qui a configuré ce serveur je ne sais pas comment cela a été appelé.
Comment puis-je faire une recherche pour retrouver ce fichier ?
J'ai ceci qui ressemble, dit moi si c'est ce fichier ? :
/etc/apache2/sites-availables/default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Et ici je dois rajouter :
<Directory /usr/share/phpmyadmin>
Order Deny,Allow
Deny from All
Allow from localhost,127.0.0.1
Allow from 192.168.1.X (reseau vpn1)
Allow from 192.168.2.X (reseau vpn2)
...
</Directory>
Ou alors j'ai ce fichier :
/usr/share/phpmyadmin/setup/lib/.htaccess
# This folder does not require access over HTTP
# (the following directive denies access by default)
Order allow,deny
C'est un des deux fichiers ??
Merci
Dernière modification par flyght (Le 07/01/2013, à 10:37)
Hors ligne
#4 Le 07/01/2013, à 13:32
- serged
Re : Cacher la page MySQL à partir d'une IP publique
1ere méthode : Repérer dans /etc/apache2 l'endroit où est déclaré le répertoire de phpmyadmin. Par exemple :
$ cd /etc/apache2
$ grep -Ri "phpmyadmin"
conf.d/phpmyadmin.conf:# phpMyAdmin default Apache configuration
conf.d/phpmyadmin.conf:Alias /phpmyadmin /usr/share/phpmyadmin
conf.d/phpmyadmin.conf:<Directory /usr/share/phpmyadmin>
{etc.]
Visiblement, chez moi, ça se passe dans conf.d/phpmyadmin.conf. Dans le fichier où tu as repéré la chaîne tu rajoutes dans la section <Directory /usr/share/phpmyadmin>.:
Order Deny,Allow
Deny from All
Allow from localhost,127.0.0.1
Allow from 192.168.1
Allow from 192.168.2
Ne pas oublier de relancer le serveur Apache après !
(sous mon Ubuntu)
sudo service apache2 restart
Ou (vieilles version)
sudo /etc/init.d/apache2 restart
2eme méthode : Tu peux aller mettre ça dans le .htaccess du répertoire de phpmyadmin.
Pour cela :
1) repérer où est installé phpmyadmin :
$dpkg-query -L phpmyadmin
/.
/usr
/usr/share
/usr/share/phpmyadmin
/usr/share/phpmyadmin/prefs_manage.php
/usr/share/phpmyadmin/user_password.php
[etc.]
Ici, c'est le répertoire /usr/share/phpmyadmin. Dans ce répertoire créer un fichier .htaccess contenant :
Order Deny,Allow
Deny from All
Allow from localhost,127.0.0.1
Allow from 192.168.1
Allow from 192.168.2
C'est moins propre, et risque d'être effacé à la prochaine mise à jour de phpmyadmin.
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#5 Le 07/01/2013, à 15:22
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
Ta premiere methode ne me donne rien du tout sur le serveur
Phpmyadmin ne doit pas etre très bien configuré.
Donc j'ai essayé la deuxieme methode, ou j'ai écris :
Order Deny,Allow
Deny from X.X.X.X (mon ip publique du serveur)
Et je peux toujours accéder à mon serveur via son IP publique
Hors ligne
#6 Le 07/01/2013, à 15:54
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
J'ai créé un fihier phpmyadmin.conf dans /etc/apache2/conf.d/
J'ai mis :
#Alias /phpmyadmin /var/www/
<Directory "/var/www">
# Options Indexes
# AllowOverride AuthConfig Options
Order allow,deny
Deny from all
</Directory>
Pour tester j'ai interdit tout et je peux toujours atteindre le serveur en ip publique :s
Hors ligne
#7 Le 07/01/2013, à 15:57
- bruno
Re : Cacher la page MySQL à partir d'une IP publique
Tu redémarre bien Apache à chaque modification ?
Sinon il faut que tu nous dise où est installé phpmyadmin en utilisant la commande fournie par serged.
Normalement lors de l'installation du paquet phpmyadmin (si les bonnes réponse ont été aportés aux questions de debconf) est créé un fichier de configuration pour Apache /etc/phpmyadmin/apache.conf et un lien symbolique /etc/apache2/conf.d/phpmyadmin.conf pointant vers ce fichier.
Dernière modification par bruno (Le 07/01/2013, à 16:19)
#8 Le 07/01/2013, à 16:18
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
Oui je redémarre bien Apache à chaque modification et test.
Et bien justement si je fait grep -Ri "phpmyadmin" dans /etc/apache2/ ça ne fait rien.
sino en fesant locate phpmyadmin, j'ai ça donc peut être que cela va vous aider :
/etc/phpmyadmin
/etc/dbconfig-common/phpmyadmin.conf
/etc/phpmyadmin/apache.conf
/etc/phpmyadmin/config-db.php
/etc/phpmyadmin/config.footer.inc.php
/etc/phpmyadmin/config.header.inc.php
/etc/phpmyadmin/config.inc.php
/etc/phpmyadmin/htpasswd.setup
/etc/phpmyadmin/lighttpd.conf
/etc/phpmyadmin/phpmyadmin.service
/usr/share/phpmyadmin
/usr/share/dbconfig-common/data/phpmyadmin
/usr/share/dbconfig-common/data/phpmyadmin/install
/usr/share/dbconfig-common/data/phpmyadmin/upgrade
/usr/share/dbconfig-common/data/phpmyadmin/install/mysql
/usr/share/dbconfig-common/data/phpmyadmin/upgrade/mysql
/usr/share/doc/phpmyadmin
/usr/share/doc-base/phpmyadmin
/usr/share/phpmyadmin/Documentation.html
/var/lib/phpmyadmin
/var/lib/dpkg/info/phpmyadmin.config
/var/lib/mysql/phpmyadmin
/var/lib/mysql/phpmyadmin/db.opt
/var/lib/mysql/phpmyadmin/pma_table_info.frm
/var/lib/phpmyadmin/config.inc.php
/var/lib/ucf/cache/:etc:dbconfig-common:phpmyadmin.conf
/var/lib/ucf/cache/:etc:phpmyadmin:config-db.php
J'ai retiré tout ce qui ne servai à rien.
Hors ligne
#9 Le 07/01/2013, à 16:19
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
Ah j'ai peut etre trouvé, dans /etc/phpmyadmin/apache.conf, il y a ça :
# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
</IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
Order Deny,Allow
Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Order Deny,Allow
Deny from All
</Directory>
Es ce ceci ????
Hors ligne
#10 Le 07/01/2013, à 16:24
- bruno
Re : Cacher la page MySQL à partir d'une IP publique
Tu as retiré quoi ?
Comme je le disais le fichier de configuration pour Apache est est /etc/phpmyadmin/apache.conf. L'installation aurait du créer le lien symbolique /etc/apache2/conf.d/phpmyadmin.conf vers ce fichier.
Si ce n'est pas le cas annule toutes les modifications que tu as essayé et refais le lien symbolique.
Tu mettras ensuite les restrictions d'accès dans /etc/phpmyadmin/apache.conf :
# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_admin_flag allow_url_fopen Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
</IfModule>
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
</Directory>
.......
Et tu redémarres Apache.
Dernière modification par bruno (Le 07/01/2013, à 16:25)
#11 Le 07/01/2013, à 16:31
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
Ok merci je vais essayer ça, non j'ai rien touché du tout sur ce fichier et il n'y avais pas le fichier phpmyadmin.conf dans /etc/apache2/conf.d/ , ça c'est moi qui l'a créé . Donc je le supprime et il va se recréé tout seul ?
Merci
Hors ligne
#12 Le 07/01/2013, à 16:41
- bruno
Re : Cacher la page MySQL à partir d'une IP publique
Oui tu le supprimes et tu fais le lien symbolique :
ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
Dernière modification par bruno (Le 07/01/2013, à 16:41)
#13 Le 07/01/2013, à 16:50
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
Voila c'est fait merci.
Mais je peux toujours acceder à mon serveur depuis son ip publique
Hors ligne
#14 Le 07/01/2013, à 17:00
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
Une idée ? car j'ai bien mis
Order Deny,Allow
Deny from X.X.X.X
Et j'accede toujours à http://X.X.X.X/mysql que je sorte du vpn ou non rien ne change je peux quand meme y acceder
Hors ligne
#15 Le 07/01/2013, à 17:33
- bruno
Re : Cacher la page MySQL à partir d'une IP publique
Non ! Il faut mettre :
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Ce qui se traduit par :
Dans l'ordre on inbterdit d'abord, on autorise ensuite
On interdit l'accès à tout le monde
On autorise l'accès depuis la machine locale (127.0.0.1)
Tu rajoute ensuite des directives allow w.x.y.z.
pour autoriser une autre IP ou allow 192.168.1 pour autoriser par exemple toute la plage d'ip 192.168.1.x
Et c'est quoi cette adresse http://x.x.x.x/mysql ?
Normalement phpmyadmin est accessible par http://x.x.x.x/phpmyadmin
Dernière modification par bruno (Le 07/01/2013, à 17:34)
#16 Le 08/01/2013, à 10:00
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
bonjour,
Non moi j'accède par /mysql, c'est grave ?
Avec /phpmyadmin, j'ai :
Forbidden
You don't have permission to access /phpmyadmin on this server.
Mais je ne saisi pas, car ceci :
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
De vrai bien interdire tout sauf l'accès depuis la machine elle même, donc inacessible depuis l'ip publique ?
Je rappel ce que je souhaite : rendre inaccessible la page de connexion de la base de donnée http://X.X.X.X/mysql via l'ippublique (et resolution de nom) mais seulement par le vpn donc ip privées
Hors ligne
#17 Le 08/01/2013, à 10:10
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
AAAH mais oui je viens de saisir, je suis *** lol ^^
Mais oui j'ai mis donc deny from all hier dans /etc/phpmyadmin/apache.conf dans le ligne <Directory /usr/share/phpmyadmin>
et cette ligne correspond juste à http://X.X.X.X/phpmyadmin/ donc c'est normal que j'ai permission denied donc ça veut dire que cela fonctionne bien je te remercie. C'est donc une mauvaise manip de chez moi.
Alors maintenant ce que j'aimerais c'est bloquer donc la page phpmyadmin et aussi mysql lol en ip publique. Donc phpmyadmin je vais réussir grace a toi je pense maintenant mais en revanche mysql comment puis-je faire ?
Ou trouve t-on l'accès au lien http://X.X.X.X/mysql ? y a t-il un <Directory /usr/share/mysql> quelques parrt ?
Merci
Dernière modification par flyght (Le 08/01/2013, à 10:16)
Hors ligne
#18 Le 08/01/2013, à 11:10
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
Voila cela fonctionne bien pour la page http://X.X.X.X/phpmyadmin merci beaucoup
En revanche je peux toujours accéder à la page http://X.X.X.X/mysql
Et je n'arrive pas à trouver un fichier mysql.conf ou quelques chose comme ça qui contiendrai <Directory /usr/share/mysql>
aurai tu une idée ?
Merci
Hors ligne
#19 Le 08/01/2013, à 12:00
- flyght
Re : Cacher la page MySQL à partir d'une IP publique
Bon bah merci pour tout, j'ai fini par trouver, dans var/www il y avait un mysql qui fesai le lien avec /usr/share/phpmyadmin ducou j'ai supprimé le dossier mysql.
Merci pour tout
POST RESOLU
Hors ligne
Pages : 1