# phpmyadmin auf bestimmte IP-Adressen beschränken



## Brainfood (19. Dez. 2012)

```
vi /etc/apache2/conf.d/phpmyadmin.conf
```
eingefügt wurde:


```
# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php

[B]### ### ### NEU ### ### ###
    Order allow,deny
    Allow from 2001:470:xxxx::/48
    Allow from 8xx.xxx.xxx.xxx
    Allow from 1xx.xxx.0.0/16
### ### ### NEU ### ### ###
[/B]
        <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>
```
getestet mit externem Anschluss, hat aber keine Auswirkung &  Zugriff ist trotzdem möglich ... hat wer ein Tip?


----------



## Till (20. Dez. 2012)

Sollte eigentlich so gehen.


----------



## Laubie (20. Dez. 2012)

Apache neu gestartet/geladen?


----------



## Brainfood (20. Dez. 2012)

Ich hab es nun auf 8 unterschiedlichen ISPConfigs getestet, einige hinter einem NAT, einige mit only IPv6 und einige mit direkter Carrier-Anbindung im RZ ...

es geht einfach nicht.

meine Mailman Config sieht jetzt so aus:

*vi /etc/apache2/conf.d/mailman.conf*


```
ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/

Alias /pipermail/ /var/lib/mailman/archives/public/

Alias /images/mailman/ /usr/share/images/mailman/

<Directory /usr/lib/cgi-bin/mailman/>
    AllowOverride None
    Options ExecCGI
    AddHandler cgi-script .cgi
[B]# Order allow,deny
# Allow from all
### ### ### NEU ### ### ###
    Order allow,deny
    Allow from 2001:470:xxxx::/48
    Allow from 2001:470:xxxx::/48
    Allow from 2001:470:xxxx::/48
    Allow from 2001:470:xxxx::/48
    Allow from 192.168.250.0/24
    Allow from 8x.xxx.xxx.xxx
    Allow from 1xxx.xxx.0.0/16
### ### ### NEU ### ### ###
[/B]</Directory>
<Directory /var/lib/mailman/archives/public/>
    Options FollowSymlinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<Directory /usr/share/images/mailman/>
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
```
unter mailman funktioniert es!

Jetzt frag ich mich ob es ein Bug vom Apache oder PHPMyAdmin ist ...
entweder ist die Alias Funktion kaputt, denn steht der Eintrag direkt im <Directory> bzw. wie im Roundcube & Mailman mit ScriptAlias angeführt, geht es ja ...
nur eben beim Alias unter phpmyadmin nicht ...

ehm Prozessorabhängig ist es auch nicht, da unter Sparc64 als auch AMD64 Kisten getestet


----------



## Till (20. Dez. 2012)

Ein Bug wird es nicht sein, ich vermute einfach dass es irgendwo später nochmal in der config überschrieben wird. Füge mal folgendes ganz am Ende der apache2.conf ein und starte apache neu:

<Directory /usr/share/phpmyadmin>
    Order allow,deny
    Allow from 2001:470:xxxx::/48
    Allow from 8xx.xxx.xxx.xxx
    Allow from 1xx.xxx.0.0/16
</Directory>


----------



## Brainfood (20. Dez. 2012)

ach man ey ... ich hab den Übertäter gefunden:

*vi /etc/apache2/sites-available/ispconfig.conf*


```
################################################
# ISPConfig Logfile configuration for vlogger
################################################

LogFormat "%v %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig
CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig

<Directory /var/www/clients>
    AllowOverride None
    Order Deny,Allow
    Deny from all
</Directory>

# Do not allow access to the root file system of the server for security reasons
<Directory />
       AllowOverride None
       Order Deny,Allow
       Deny from all
</Directory>

<Directory /var/www/conf>
    AllowOverride None
    Order Deny,Allow
    Deny from all
</Directory>

# Except of the following directories that contain website scripts
[COLOR="red"]<Directory /usr/share/phpmyadmin>
        Order allow,deny
        Allow from all
</Directory>

<Directory /usr/share/phpMyAdmin>
        Order allow,deny
        Allow from all
</Directory>[/COLOR]

<Directory /usr/share/squirrelmail>
        Order allow,deny
        Allow from all
</Directory>

# allow path to awstats and alias for awstats icons
<Directory /usr/share/awstats>
        Order allow,deny
        Allow from all
</Directory>

Alias /awstats-icon "/usr/share/awstats/icon"
```
ändert man es an dieser Stelle ... funktioniert es


----------



## Till (20. Dez. 2012)

Ich würde es dort nicht ändern da Deine Änderung sonst dauernd überschrieben wird. Lege einfach eine neue Datei:

/etc/apache2/sites-available/custom.conf

an. Dort fügst Du die Zeilen ein:

<Directory /usr/share/phpmyadmin>
Order allow,deny
Allow from 2001:470:xxxx::/48
Allow from 8xx.xxx.xxx.xxx
Allow from 1xx.xxx.0.0/16
</Directory>

Dann erstellst Du einen Symlink:

ln -s /etc/apache2/sites-available/custom.conf /etc/apache2/sites-enabled/999-custom.conf


----------

