Exécuter un script bash root + sécuritée
Bonsoir,
Je cherche à faire un script pour créer un certificat vpn de manière automatique, j'entend pas la qu'il suffira de cliquer dans un formulaire pour l'utiliser.
J'ai 2 grandes questions:
Q1: Bash
J'utilise donc 2 scripts bash coté serveur: build-batch et build-key-batch
build-batch
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #!/bin/sh
if test $# -ne 2; then
echo "usage: batch-build <name> <duree> »"
exit 1
else
# Definition des variables
export D=`pwd`
export KEY_CONFIG=$D/openssl.cnf
export KEY_DIR=$D/keys
export KEY_SIZE=1024
export KEY_COUNTRY="FR"
export KEY_PROVINCE="IleDeFrance"
export KEY_CITY="Paris"
export KEY_ORG="CeKwa"
export KEY_EMAIL="ceskwa@gmail.com"
export KEY_CNAME=$1
./build-key-batch $1 $2
fi |
build-key-batch
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #!/bin/sh
if test $# -ne 2; then
echo "usage: build-key-batch <name> <duree>";
exit 1
fi
if test $KEY_DIR; then
cd $KEY_DIR && \
openssl req -days $2 -nodes -new -keyout $1.key -out $1.csr -batch -config
$KEY_CONFIG && \
openssl ca -days $2 -out $1.crt -in $1.csr -batch -config $KEY_CONFIG && \
chmod 0600 $1.key
else
echo you must define KEY_DIR
fi |
J'appele build-batch via
Code:
1 2
| $cmd="./build-batch ".$nom." ".$duree;
exec($cmd, $exec_output); |
Alors la fonction marche bien, mais seul deux fichiers sont créer: le .crc et le .key.
Mon soucis est que je voudrais bien avoir aussi mon .crt :(
Je pense qu'il n'est pas créer car apache n'a pas les droits root et je ne compte pas les donné étant donné les problèmes de sécurités qui en découlerais.
J'ai vu sur un autre post qu'on pouvais faire exécuter le script par root, en cours on en a parler, je crois que c'est le droit -s, quelqu'un peut il m'apporter quelques précisions?
Q2: Sécurité
Vous avez le droit à un peu plus de code :p
Code:
1 2 3 4 5 6 7
| if(isset($_GET["clean"]))
{
$chaine = htmlentities($_GET["clean"]);
$cmd4 = "rm -r ".$chaine;
//exec($cmd4, $exec_output);
echo $cmd4."<br/>";
} |
Je voudrais savoir si un petit malin pourrait supprimer un contenu non désiré, par exemple en mettant /. Je suppose que oui donc j’aimerais savoir comme limiter l'effet de cette fonction au dossier downloads.
Niveau faille, pour le moment on voie absolument tout le contenu si on se promène dans les dossiers mais cela ne me dérange pas pour le moment.
Je pense mettre un index.html vide ainsi qu'un .htaccess avec deny pour tout le monde. ( Solution pour le dossier keys )
Y a t'il des failles dans un .htaccess de ce type? Je veux qu'on puisse uniquement télécharger un fichier dans ce dossier: ca.crt.
Si je met une règle avec un file allow pour tout le monde ça passerais?
Sinon je vous laisse aller voir sur le site si vous voyez de grosse faille.
Les utilisateurs déjà créer sont dans le code source, au moment ou j'écrit il y a:
Citation:
['azer','eysutxdjckliugfjtrdrcstrkyyhufyuk','fuuuu','plop','plop233_le_retour_','qfghreq','test','test2','yukulele','zqsyedufghomhugfitydf']
Sa ne devrais pas bouger étant donné que je suis en phase de test et que j'affiche uniquement les commandes et ne les exécute pas.
Si vous voulez un accès vpn afin de regarder s'il y a des failles ou tout simplement pour essayer envoyez moi un mp ;)
Merci d'avoir lu mon pavé.
Bon j'ai ajouter le droit setuid mais ça ne change rien :(
Citation:
-rwsr-sr-x 1 root root 465 fév 8 15:33 build-batch
-rwsr-sr-x 1 root root 386 fév 8 15:27 build-key-batch