mod_ruid2 sur mod_fcgid

Je viens d'entendre parler de ruid2 et je me request si c'est plus sécurisé que fcgid? J'ai entendu dire qu'il est less sécurisé et plus problématique. Y a-t-il des différences entre les deux?

Fastcgi est-il le même avec mod_fcgid?

J'utilise CPanel.

One Solution collect form web for “mod_ruid2 sur mod_fcgid”

Ils comparent les pommes et les oranges et les bananes.

Tout d'abord, FastCGI est un protocole de communication entre une application persistante (ou un server d'applications) et un server Web. Une application compatible avec FastCGI s'exécute seule et reçoit des requêtes du server Web, puis renvoie les réponses au server Web pour donner au client. FastCGI a été inventé car il existe une certaine quantité de frais généraux dans le démarrage d'un nouveau programme, le chargement des bibliothèques, la lecture de la configuration, etc. Une grande partie de ces frais généraux peuvent être évités si vous démarrez le programme une fois et continuez à fonctionner pour de nombreuses requests. mod_fcgid est une implémentation de ce protocole. Actuellement, mod_fcgid a une faiblesse ( il suppose qu'un process FastCGI en cours d'exécution ne peut traiter qu'une requête à la fois et ne fonctionne donc pas bien avec les pools de connection ou les gestionnaires de process comme php-fpm ou même php-cgi en utilisant PHP_FCGI_CHILDREN > 0 ) pour que les gens porté l'ancien mod_fastcgi de apache 1.x à 2.x.

Deuxièmement, mod_ruid2 semble être un rlocation suexec / mod_suid2 , qui est complètement orthogonal à FastCGI. suexec est un programme racine suid spécial que Apache exécute et dit de changer pour un user spécifique. Ensuite, ce script peut exécuter un programme en tant qu'user. En règle générale, une fois que cela a été fait, il sort car il n'est plus possible de passer à un autre user. mod_suid2 est venu et a permis à apache de changer de root à un autre user avant de servir une page. Cela signifie que l'apache pourrait passer à un user puis ouvrir des files et exécuter des programmes CGI ou même exécuter des scripts à l'aide d'un mod_ * handler (par exemple, mod_php) en tant qu'user spécifique, mais puisque apache lui-même était maintenant bloqué en tant qu'user, le process apache avait pour quitter et être remplacé par un nouveau process racine. mod_ruid2 prétend utiliser le model POSIX "capacité" pour permettre à apache de passer de la racine à l'autre user tout en maintenant la possibilité de basculer. En faisant cela, il peut tout faire mod_suid2 peut, mais ne doit pas sortir après chaque request. Mod_suid2 et mod_ruid2 nécessitent que Apache utilise le model de process mpm-prefork car chaque process ne peut être qu'un user. Toutes ces trois options peuvent être utilisées pour exécuter un server Fastcgi, mais ce server serait bloqué en tant qu'user qu'il a démarré (à less que la capacité de mod_ruid2 à modifier les users ne soit héritée, auquel cas tout code pourrait ensuite le modifier en root) .

Sur le plan de la security, normalement apache bascule vers un user non root (par exemple www-data ) juste après le démarrage. Les deux mod_suid2 et mod_ruid2 nécessitent que Apache s'exécute en tant que root jusqu'à ce qu'il serve une requête, ce qui signifie que s'il existe un exploit dans apache qui peut être déclenché avant que la requête ne soit servie (par exemple lors du traitement d'URL), l'attaquant peut get access racine au système. Dans mod_ruid2, cela peut être étendu tout au long de la requête si l'attaquant peut contenir le process apache jusqu'à ce qu'il returnne en root après la fin de la requête afin de profiter de l'access root. En outre, notez que tout code exécutant dans l'apache interne (par exemple, le code PHP utilisant mod_php) a toutes les capacités qu'il possède. Par conséquent, si Apache peut basculer vers la racine, tout PHP (ou autre code) peut s'exécuter dans Apache. suexec ne s'exécute que lorsqu'un script est démarré et qu'il ne possède qu'une racine suffisante pour décider à quel user changer et modifier cet user. Cependant, il peut potentiellement permettre à quelqu'un qui exploite un apache non root d'accéder à un autre user en exécutant le binary suexec.

Je m'attends à ce que vous postulez ceci parce que vous souhaitez exécuter des scripts PHP en tant qu'users différents. Selon mon expérience, la façon habituelle d'exécuter PHP hébergé comme user du script consiste à utiliser suexec sans FastCGI pour que chaque script soit exécuté en tant que process distinct. Certaines personnes combinent FastCGI et suexec en utilisant mod_fastcgi pour démarrer au less un server FastCGI pour chaque user du système autorisé à exécuter des scripts, puis des requêtes directes au server de l'user approprié. Pour les systèmes avec beaucoup d'users, cela peut provoquer beaucoup de process PHP et prendre beaucoup de memory, mais peut encore fonctionner mieux que le démarrage et l'arrêt d'un process PHP pour chaque request. Il me semble que mod_ruid2 a l'intention d'y parvenir en utilisant mod_php plutôt que d'utiliser CGI du tout, mais je craindrais que cela puisse nuire à beaucoup d'hypothèses dans mod_php. Sur le haut de la tête, un mauvais user peut accéder aux connections persistantes de la database, ou des caches comme APC pourraient finir par partager le code entre les users.

  • 1 instance EC2 par site web - gère plusieurs sites sur le nuage Amazon en utilisant EC2
  • Centos 5.5 - exécutez des scripts cgi à partir de plusieurs locations
  • compression gzip bonne ou mauvaise?
  • La configuration JBoss Https avec certificate CER / P7b échoue
  • FastCGI pour DocumentRoot uniquement
  • Mesurer "le time de chargement en millisecondes" à chaque minute
  • Routage d'une requête unique via plusieurs applications back-end de nginx
  • Comment configurer nginx pour rediriger toute demande d'alias de domaine vers le domaine principal?
  • Des réponses Web réduites aux appareils mobiles obstruent mes travailleurs apaches
  • iis 7 réponse lentement même sur localhost avec un file text
  • Le site Web a des liens vers des logiciels malveillants, causés par un virus
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.