Depuis la version 7 de php, suphp ne fonctionne plus.
Pour info, suphp permettait de faire tourner php avec l’uid et le gid du propriĂ©taire du fichier php: IdĂ©al pour sĂ©curiser un hĂ©bergement mutualisĂ© avec plusieurs sites et propriĂ©taires diffĂ©rents.
Voici une mĂ©thode pour faire de mĂȘme avec php7 en php-fpm et les paquets rĂ©mi sous Centos 8 ou/et dĂ©rivĂ© de Redhat 8.
Chaque site est associé à un utilisateur qui publie ses fichiers php avec son uid et gid via un serveur sftp.
Pour chaque site, un groupe de process php-fpm est lancĂ© avec l’uid et gid correspondant Ă l’utilisateur.
Ainsi un process php d’un site A ne peut pas accĂ©der au process et rĂ©pertoire disque d’un site B. Il en est de mĂȘme avec la publication sftp chrootĂ©.
Installation Centos 8
- Selinux disabled
- Dépots tiers
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
php-common-e7.4.3-1.el8.remi.x86_64
php-fpm-7.4.3-1.el8.remi.x86_64
php-process-7.4.3-1.el8.remi.x86_64
php-pecl-zip-1.17.1-1.el8.remi.7.4.x86_64
php-json-7.4.3-1.el8.remi.x86_64
php-pdo-7.4.3-1.el8.remi.x86_64
php-cli-7.4.3-1.el8.remi.x86_64
php-gd-7.4.3-1.el8.remi.x86_64
php-mbstring-7.4.3-1.el8.remi.x86_64
php-soap-7.4.3-1.el8.remi.x86_64
php-xml-7.4.3-1.el8.remi.x86_64
php-pecl-mysql-1.0.0-0.23.20190415.d7643af.el8.remi.7.4.x86_64
php-mysqlnd-7.4.3-1.el8.remi.x86_64
php-intl-7.4.3-1.el8.remi.x86_64
php-tidy-7.4.3-1.el8.remi.x86_64
Paquets apache installés:
httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64
httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch
centos-logos-httpd-80.5-2.el8.noarch
httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_64
|
Conf sftp only et chroot
Les utilisateurs dans le groupe groupchroot ne peuvent faire que du sftp dans leur répertoire (pas de shell, pas de ssh!)
- Modification du fichier /etc/ssh/sshd_config
CrĂ©ation d’un site monsite.fr associĂ© Ă l’user moi
- CrĂ©ation de lâuser et ajout dans le groupe groupchroot pour le ssh
- Modification des droits et création lien symbolique
- Création du daemon php cloisonné pour cet user (un fichier par site web)
vi /etc/php-fpm.d/monsite.fr.conf
Exemple:
systemctl reload php-fpm
- Creation du VHOST Dans apache
vi /etc/httpd/conf.d/monsite.fr.conf
systemctl reload httpd
Donc l’idĂ©e de base Ă©tait de cloisonner la publication sftp et l’exĂ©cution du daemon php.
Les conf sont des exemples, cela doit ĂȘtre adaptĂ© au niveau de sĂ©curisation souhaitĂ©, notamment pour Apache (Droit .htaccess, Allow …) et php (disable de commande, max_size …), mais la base est lĂ .
TCHAO