Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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é. hmm
Comment puis-je faire une recherche pour retrouver ce fichier ? hmm

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 hmm
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 hmm

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 hmm

Hors ligne

#14 Le 07/01/2013, à 17:00

flyght

Re : Cacher la page MySQL à partir d'une IP publique

Une idée ? hmm 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 smile
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>
hmm 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