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
build-key-batch
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
J'appele build-batch via
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Alors la fonction marche bien, mais seul deux fichiers sont créer: le .crc et le .key.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $cmd="./build-batch ".$nom." ".$duree; exec($cmd, $exec_output);
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
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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/>"; }
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:
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.['azer','eysutxdjckliugfjtrdrcstrkyyhufyuk','fuuuu','plop','plop233_le_retour_','qfghreq','test','test2','yukulele','zqsyedufghomhugfitydf']
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
-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
Partager