Configuration de phpMyAdmin pour une utilisation à travers une connexion SSL, avec une identification par cookie, sur un serveur Apache, basé sur une CentOS.
Versions :
- CentOS 6.2
- Apache 2.2.15
- PHP 5.3.3
- MySQL Server 5.1.52
Je passe sur l'installation des différents composants ... en gros un
# yum list httpd phpmyadmin php mysql-server mod_ssl
devrait faire l'affaire.Le Pare-Feu
Ajouter la règle au pare-feu pour :
# iptables -I INPUT 6 -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
On vérifie que ça a marché :
# service iptables status
On doit obtenir un truc genre :
Table : filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain INPUT (policy ACCEPT)
num target prot opt source destination
.
.
.
6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
.
.
.
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Grosso-merdo vous devriez avoir ce résultat. Un petit coup de "save" :
# service iptables save
Et le tour est joué pour le pare-feu.
Apache
L'avantage des distros avec des paquets pré-compilé c'est que les configuration se font souvent dans la foulée ...
Normalement le fichier /etc/httpd/conf.d/ssl.conf existe et contient le nécessaire.
LoadModule ssl_module modules/mod_ssl.so
Listen 443
SSLPassPhraseDialog builtin
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<virtualhost _default_:443="">
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
<files "\.(cgi|shtml|phtml|php3?)$"="" ~="">
SSLOptions +StdEnvVars
</files>
<directory "="" cgi-bin"="" var="" www="">
SSLOptions +StdEnvVars
</directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</virtualhost>
Du coup j'ai juste commenté les lignes qui interdisent l'accès aux IPs externes dans le fichier de configuration de phpMyAdmin :
/etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/>
Order Deny,Allow
# Deny from All
# Allow from 127.0.0.1
# Allow from ::1
Allow from All
</Directory>
Bien sûr ceci est une mesure temporaire, je vous conseille de chercher de la doc pour cette partie de la configuration.
On relance la machine :
# service httpd restart
phpMyAdmin
Le fichier de configuration de PMA est /etc/phpMyAdmin/config.inc.php.
J'ai modifier les lignes :
$cfg['blowfish_secret'] = '';
$cfg['Servers'][$i]['auth_type'] = 'http';
par
$cfg['blowfish_secret'] = 'Monde de merde - Georges Abitbol'
$cfg['Servers'][$i]['auth_type'] = 'cookie';
Puis j'ai ajouté les lignes :
$cfg['PmaAbsoluteUri'] = 'https://mon.server.loc/phpMyAdmin/';
$cfg['ForceSSL'] = true;
$cfg['ForceSSL'] = true;
Pour le nom du serveur j'ai fixé l'IP et au niveau de ma box (configuration du serveur DHCP) j'ai associé l'adresse l'IP choisi au nom de mon serveur. Je peux donc y accéder par un mon (ce qui se retient mieux qu'une IP).
Conclusion
Je ne pense pas avoir sauté d'étape. Grâce à des distributions basé sur des RedHat, Debian et consors la configuration est très simplifié. J'ai une utilisation privée de mon serveur, je n'ai donc pas beaucoup de soucis d'optimisations et de performances.
Pour une installation plus sécurisée et plus robuste je vous conseille de vous renseigner sur le ouèb, DuckDuckGo est ton ami !!!
Mes sources :
- http://blog.anotherhomepage.org/post/2011/10/17/Installation-de-phpMyAdmin-sur-CentOS-6-suite
- http://forum.ovh.com/showthread.php?t=10610
- http://www.google.fr/search?q=phpmyadmin+ssl&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:unofficial&client=firefox-a
- http://duckduckgo.com/?q=phpmyadmin+ssl
phpMyAdmin foire grave sous lighttpd, si j'arrive à bien configurer le serveur je ferai la même pour lighttpd.
Aucun commentaire:
Enregistrer un commentaire