Notre entreprise dispose d'un serveur Web avec CentOS 7 et nos clients gèrent leurs sites Web via FTP (vsftpd). SELinux est en mode d'application.
Le problème est que les données créées / téléchargées via VSFTPD n'héritent pas du contexte SELinux approprié. Laisse-moi expliquer.
Par exemple, pour les sites WordPress, le serveur dispose déjà de quelques règles qui peuvent être vues à l'aide semanage fcontext -l |grep '/var/www'
, qui sont:
/var/www/html(/.*)?/uploads(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html(/.*)?/wp-content(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
Ainsi, lorsque je copie un site WordPress, disons à partir d'un autre serveur dans un répertoire dans /var/www/html/
SSH, les dossiers wp-content/
et wp-content/uploads/
ont le httpd_sys_rw_content_t
contexte de sécurité approprié . TOUTEFOIS, lorsque ces dossiers sont créés via FTP, le contexte qu'ils obtiennent est httpd_sys_content_t
(pas de rw ). Cela signifie que les sites que nos clients téléchargent sur le serveur ne peuvent pas écrire dans ces répertoires même s'ils donnent des autorisations d'écriture à l'utilisateur / groupe apache, donc l'administrateur WordPress ne fonctionne pas. Ainsi, quand ils téléchargent un site, ils doivent nous demander de l'aide pour résoudre ce problème, ce qui est une perte de temps pour toutes les personnes impliquées.
Disons que le client a téléchargé son site dans httpdocs
, si via SSH je fais mv httpdocs/ httpdocs.2/ && cp -pr httpdocs.2/ httpdocs/ && rm httpdocs.2/ -fr
le problème est résolu, donc il n'y a rien de mal avec les données.
Je peux également faire restorecon -Rv httpdocs/
pour résoudre le problème.
Donc, la question est: comment puis-je faire en sorte que les répertoires créés / téléchargés via VSFTPD héritent des contextes SELinux appropriés, tout comme ils sont hérités lorsque les répertoires sont créés / téléchargés via SSH?