Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2311 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Apache, execution de commandes & sécurité

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Apache, execution de commandes & sécurité

n°1109120
esox_ch
Posté le 31-01-2009 à 16:57:58  profilanswer
 

Bonjour,
 
Je suis en train de développer un site qui sera utilisé en interne par les secrétaires de mon département afin qu'elles puissent effectuer simplement des opérations qui nécessiteraient normalement des compétences en informatique. À un certain moment j'ai besoin que le serveur web se connecte à une machine distance (j'ai pensé par ssh) et effectue l'opération demandée par la secrétaire.
 
Tout ça fonctionne très bien sur ma machine de développement mais je me pose une question concernant la sécurité d'un tel acte sur le serveur de production. En effet, l'utilisateur apache sur le serveur a son shell en /bin/false, ce qui m'empêche d'effectuer certaines actions (par exemple il faut que je crée une clé ssh correspondante à cet utilisateur). À votre avis est-ce que c'est un gros problème de sécurité de lui donner un shell "normal" ?
J'ai regardé un peu sur google et soit je vois des gens qui n'hésitent pas à lancer des sudo depuis apache (donc pas top comme référence sécurité :D ) soit ça passe par un chroot (ce que je voudrais éviter par soucis de simplicité). Qu'en pensez vous?
 
Je spécifie que les ordinateurs auxquels le serveur doit se connecter font tourner un OpenSSH sur un port exotique, qui écoute uniquement l'IP du serveur et permet uniquement le login du compte "administrator" afin d'éviter au maximum les problèmes.
 
Merci beaucoup


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 31-01-2009 à 16:57:58  profilanswer
 

n°1113495
esox_ch
Posté le 16-02-2009 à 14:25:31  profilanswer
 

Je remonte :)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1114810
esox_ch
Posté le 19-02-2009 à 19:04:12  profilanswer
 

Personne n'a jamais eu à exécuter une commande depuis un site web??


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1143708
esox_ch
Posté le 20-06-2009 à 18:38:40  profilanswer
 

Up :d


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1143710
e_esprit
Posté le 20-06-2009 à 18:55:32  profilanswer
 

Si c'est possible j'envisagerai plutot un système comme suit :
- programmation de l'execution de ton programme dans une DB
- le serveur qui doit executer la commande scrute régulièrement cette DB (via un crontab ou un daemon maison), si il doit executer une commande il le fait.
 
Comme ça tu gardes le controle sur ce qui est executé, et en cas de faille dans une te tes apps web tu ne prends pas de risques.


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1143714
esox_ch
Posté le 20-06-2009 à 19:46:22  profilanswer
 

Mmm intéressant en effet, je n'y avais pas pensé.
Par contre pourquoi une base de donnée et pas juste un fichier texte avec seulement un utilisateur (créé pour l'occasion) qui aurait les droits en exec (et personne à part root en écriture ?)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1143719
e_esprit
Posté le 20-06-2009 à 20:00:05  profilanswer
 

Bah la DB c'est juste que c'est facile à utiliser et accessible facilement par tes deux serveurs (le serveur web et la machine qui execute tes commandes) sans avoir à utiliser de SSH/SCP, de NFS ou toutre autre système du type.
 
Disons que ton serveur web est W, et le serveur qui execute ta commande est X, moi je proposais :
- W place une entrée dans une DB
- X regarde régulièrement cette DB et si y a une execution programmée, il l'execute
 
Toi tu sembles vouloir faire :
- W place un truc dans un fichier
- un script sur W regarde si ce fichier est présent/contien qqchose, et si oui lance un prog en SSH sur X
 
C'est jouable aussi, mais je préfère la première solution, pas de SSH, pas de lien "direct" entre les deux machines (je sais pas si ca te parait évident, mais perso j'ai tendance à éviter les SSH/SCP automatisés entre deux serveurs, car ça créé une forme de dépendance).


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1143763
esox_ch
Posté le 21-06-2009 à 08:47:50  profilanswer
 

Salut,
Le truc c'est que je n'ai qu'un seul serveur à disposition. Et que je vois pas trop ce que ça apporte de séparer cette tâche sur 2 serveurs.
Donc moi je pensais simplement créer un fichier "executeCommand" quelque part sur le serveur, puis créer un cron qui check si ce fichier existe et si c'est le cas, exécute la commande en tant qu'utilisateur sans pouvoirs particuliers (histoire de ne pas tout compromettre en cas de pépin)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1143766
e_esprit
Posté le 21-06-2009 à 09:52:59  profilanswer
 

Ben c'est toi qui parle de deux machines dans ton poste initial :

esox_ch a écrit :

Je suis en train de développer un site qui sera utilisé en interne par les secrétaires de mon département afin qu'elles puissent effectuer simplement des opérations qui nécessiteraient normalement des compétences en informatique. À un certain moment j'ai besoin que le serveur web se connecte à une machine distance (j'ai pensé par ssh) et effectue l'opération demandée par la secrétaire.


 :heink:


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1143774
esox_ch
Posté le 21-06-2009 à 10:58:56  profilanswer
 

Oui désolé, mon post est pas clair.
 
Donc en fait la commande générée par le serveur est envoyée (via SSH) à un ordinateur "de bureau".  
En fait le but de tout ça c'est qu'on a 6 ordinateurs "publics" que l'on réserve pour des invités étant dans notre institut pendant quelques heures/jours.  Ainsi quand ils arrivent, la secrétaire doit pouvoir leur créer un compte sur une de ces machines rapidement et sans pouvoir faire de conneries. J'ai donc mis en place un petit formulaire où elle entre le login/password voulu par l'invité et un script crée le compte correspondant par SSH sur l'ordinateur choisi.
Par contre ça devient un peu compliqué et lourd (à mon avis ) de devoir implémenter sur chaque ordinateur une routine qui irait contrôler l'existence d'un fichier (l'accès à la bdd est impossible car elle n'est pas accessible par le net pour des raisons de sécu)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 21-06-2009 à 10:58:56  profilanswer
 

n°1143816
hppp
Serveur@home
Posté le 21-06-2009 à 17:19:29  profilanswer
 

Bien pourquoi tu met pas tes utilisateurs dans un annuaire ldap, après avec une page php c'est super simple de modifier les comptes dans l'annuaire

n°1143839
dam1330
...
Posté le 21-06-2009 à 23:53:47  profilanswer
 

tu peux utiliser  le module suexec d'apache

n°1143841
ipnoz
Sapé comme jamais !
Posté le 22-06-2009 à 00:37:22  profilanswer
 

les ordinateurs publics sont sous du linux? windows?

 

Donc tu veux créer un compte utilisateur sur des ordi. pour des "clients" c'est ca?

 

Les ordi. sont pas dans l'entreprise? Franchement, il serait pas plus simple de former la secretaire a creer un compte et a l'effacer directement sur la bécane? Tu te fait un ptit script bash pour un compte admin que la secretaire controle , elle le lance et roulez jeunesse.

 

Sinon, un annuaire ldap et qlq. scripts php comme a dit hppp c'est le plus simple IMO.

 

Sinon, tu peux aussi executer des scripts bash avec php : exec ("sh /path/to/script.sh" );  [:nikolai]

 

edit: ortho


Message édité par ipnoz le 22-06-2009 à 00:41:08
n°1143853
esox_ch
Posté le 22-06-2009 à 08:30:45  profilanswer
 

Salut,
 
Le truc c'est que j'aimerais éviter de devoir créer un annuaire LDAP spécialement pour ces 4-5 ordinateurs ... ça me semble beaucoup de boulot pour pas grand chose à la fin


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1143927
hppp
Serveur@home
Posté le 22-06-2009 à 12:24:08  profilanswer
 

beaucoup de boulot? une mâtiné est c'est torché si ça se passe bien.

n°1143939
esox_ch
Posté le 22-06-2009 à 13:19:08  profilanswer
 

Bah faut mettre en place le serveur LDAP, connecter les profiles des utilisateurs Windows à l'annuaire et après gérer le fait que si un utilisateur change d'ordinateur il arrivera à se logger (vu que tous sont connectés à LDAP) mais que ses dossiers n'auront pas suivi car stockés sur l'autre HDD, ou alors faut le gérer aussi et on a pas l'espace pour sur le serveur


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1144333
Taz
bisounours-codeur
Posté le 23-06-2009 à 23:48:35  profilanswer
 

Juste en passant: quelque soit le shell, pensez à utiliser pam_wheel: ça permet de limiter les su à groupe d'utilisateurs, histoire de pas se retrouver complètement en l'air en cas d'intrusion avec un compte applicatif. C'est si vite fait de se faire avoir à cause d'un mot de passe à la noix, une injection ou un compte oublié.

n°1144368
esox_ch
Posté le 24-06-2009 à 08:41:40  profilanswer
 

D'accord merci :jap:


Message édité par esox_ch le 24-06-2009 à 08:41:46

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Apache, execution de commandes & sécurité

 

Sujets relatifs
apache et droitBureau à distance pour Windows <-> Linux/Win + sécurité + performances
Problème d'exécution du Javascript sur certains sites[Mandriva 2008] Probleme serveur apache et mod_rewrite
[Ubuntu] utilisation de SVN sur un serveur apache 2.0.54bloqué sur tuto ubuntu wiki apache, php
Desactiver htpasswd avec Apache[FreeBSD] Apache 2.2 / Restriction d'Accès
Debian + Apache + musicindex = plouf![Virtual box] Bridging Ubuntu / VM
Plus de sujets relatifs à : Apache, execution de commandes & sécurité


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR