PhpMyadmin'e yalnızca belirli bir sanal ana bilgisayarda erişime izin ver


9

Birden çok sanal ana bilgisayarı üzerinde çalışıyorum. Mysql Uzaktan Kumanda için PhpMyadmin'i kurdum.

Ortam aşağıdaki gibi yapılandırılır:

one.domain.com
two.domain.com
onlyphpmyadmin.domain.com

Şimdi, üç alandan birine erişirsem

http://one.domain.com/phpmyadmin/
http://two.domein.com/phpmyadmin/
http://onlyphpmyadmin.domain.com/phpmyadmin/

sonuç aynı, Phpmyadmin erişimine izin verilir.

Amaç aşağıdaki gibi bir durum elde etmektir

http://one.domain.com/phpmyadmin/ --> access denied
http://two.domein.com/phpmyadmin/ --> access denied 
http://onlyphpmyadmin.domain.com/phpmyadmin/ -->access allowed

hiçbir kesmek benzer

<?php 
if($_SERVER['HTTP_HOST'] != 'onlyphpmyadmin.domain.com')
die('access denied');

 ...
 ?>

bazı Phpmyadmin dosyasında.


İşte benim Phpmyadmin yapılandırma dosyam

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>

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

Yanıtlar:


25

Takma Ad bildirimini kaldırın

Alias /phpmyadmin /usr/share/phpmyadmin

sunucu bağlamından ve ilgili vhost bağlamına koyun

<VirtualHost *:80>
    ServerName onlyphpmyadmin.domain.com
    .
    .
    .
    Alias /phpmyadmin /usr/share/phpmyadmin
</VirtualHost>

Tüm phpmyadmin yapılandırmasını ilgili vhost'a dahil etmek daha kolay ve tercih edilebilir

<VirtualHost *:80>
    ServerName onlyphpmyadmin.domain.com
    .
    .
    .
    include /path/to/phpmyadmin.conf
</VirtualHost>

daha sonra bu içeriği sunucu bağlamından kaldırın ve değişikliklerin etkili olması için apache'yi yeniden başlatın.


Centos 6.5'te benim için çalışmıyor gibi görünüyor. Her iki yöntemi de denedim ve yine de tüm alanlardan erişebildim.
Jeremy

Yapılandırmasını değiştirdikten sonra
Apache2'yi

3

RHEL / CentOS'ta Apache, / phpmyadmin takma adını ayarlamak için /etc/httpd/conf.d/phpmyadmin.conf dosyasını yükler. Dizin yönergesi başlangıçta yalnızca localhost'tan gelen trafiğe izin verecek şekilde ayarlandığından, "domain.com/phpmyadmin" gibi phpmyadmin'e erişirken 403 hatası alabilirsiniz.

Aşağıdakileri kullanarak, RHEL / CentOS'u yalnızca / phpmyadmin diğer adının belirli bir sanal ana bilgisayardan çalışmasına izin verecek şekilde ayarlayabilirsiniz.

/etc/httpd/conf.d/phpmyadmin.conf

<Directory "/usr/share/phpmyadmin">
#  Order Deny,Allow
#  Deny from all
   Allow from 127.0.0.1
</Directory>

#Alias /phpmyadmin /usr/share/phpmyadmin
#Alias /phpMyAdmin /usr/share/phpmyadmin
#Alias /mysqladmin /usr/share/phpmyadmin

Ardından, takma adı yönergesini vhost'unuza ekleyin ve Apache'yi yeniden başlatın.

Lütfen bunun en güvenli uygulama olmadığını unutmayın. Lütfen kimlik doğrulama, IP kısıtlamaları veya her ikisinin bir kombinasyonu yoluyla güvenli / phpmyadmin güvenliğine dikkat edin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.