[RESOLU] transfert de fichiers sécurisé avec hôte distant ?

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server. Une description est donnée sur le portail phénIXUS : http://www.ixus.net/sme-server/.

Re: transfert de fichiers sécurisé avec hôte distant: commen

Message par arnaud056 » 08 Jan 2013 19:30

et béh! :shock: Avec quoi ai-je mérité toutes ces choses très intéressantes?? :D
Je ne sais trop par quoi commencer, donc je vais essayer de partir du général vers le point particulier et essayer d'être concis et détaillé à la fois :o

1) l'idée, la vision (comme disent nos directeurs d'usine... :lol: )
a) faire en sorte que je puisse échanger (cad down- et upload) avec ma famille et mes amis des fichiers trop volumineux pour être envoyés par email
b) faire en sorte que l'utilisation du "machin" soit simple pour ceux avec qui je souhaite échanger (le 3ème double-clic est déjà limite niveau effort, pour des raisons de manque de compétences et aussi ........de volonté de leur part, je l'avoue :? )
c) faire en sorte que les fichiers down- et uploadés soient stockés et transférés en sécurité - notion relative et philosophiquement discutable. Je me contenterais donc de l'évaluer comme suit: en rapport avec les moyens techniques et les compétences disponibles, d'un niveau suffisant et acceptable pour des fichiers persos de la vie privée (photos de famille, de ce et de ça, vidéos des gamins etc...).
d) ne pas nuire à la sécurité générale de ma sme: faire en sorte que ce que je ne souhaite pas divulguer sur le net ne le soit pas, que ma sme de devienne pas une plate forme d'échange publique, qu'elle ne subisse pas d'attaques 24h/24, qu'elle ne puisse être mise hors service (à cause d'un disque dur plein par ex) etc...

2) maintenant il faut le concept qui va dans la direction des visions
Dans le premier post de ce topic, je vous ai présenté les différents concepts que je suis capable de mettre en place. Ils ont tous leurs avantages et leurs inconvénients. Ce sera donc des compromis à faire, j'en suis conscient. De plus, rien n'est jamais définitif: à l'usage ou à cause de besoins modifiés (ou à cause de compétences croissantes :lol: ) je sais que je peux être amené à changer de concept.

Juste avant mon crash de décembre (cf dernier post de la 1ère page), je me suis laissé aveugler par des applications plug&play qui avaient l'air superbes, mais dont je ne sais absolument rien quand aux "choses" qu'elles font vraiment (même les cachées) et celles qu'elles ne font pas. Résultat: j'ai dû réinstaller mes 2 machines :twisted: Mais à y réfléchir, c'est peut être positif, car au moins ce fut visible! Ça aurait été plus sournois si tout avait apparemment bien fonctionné mais créé des failles de sécurité énormes que j'aurais pu ignorer pendant des années!!

Grâce à des conseils avisés et c'est ce que vous me confirmez à l'unanimité: rester dans du simple, du maîtrisable, du "qui colle le plus près possible" à la sme (comme je l'avais indiqué: ajaxplorer=44mb et 69 paquets --> non désinstallable, pour commencer!), pas/peu de superflux, n'ouvrir que le strict nécessaire etc..., je me réoriente vers la "solution" ultra-simple suivante:

3) solution que j'essaie de mettre en place
a) download (cad une personne distante se connecte sur ma sme et "aspire" des fichiers de ma sme sur sa machine): une ibay "download_avec_nom_compliqué_et_mot_de_passe" contiendra les fichiers dans son /html. Cette ibay n'aura pas de index.html. Lecture=tous. Aucun lien de pointent sur cette ibay.
--> accessible par http://mon_domaine/download_avec_nom_compliqué_et_mot_de_passe
----->>>>>>>> pour y aller sans permission, il faut deviner le nom de l'ibay et son mot de passe

b) upload (cad une personne distante dépose un fichier sur ma sme): dans une ibay "upload_avec_nom_compliqué", lecture+écriture=tous, groupe=everyone, php activé, je lui mets dans /html:
- un script d'authentification.php qui appelle
- le script d'upload.php
Les fichiers uploadés iront dans un répertoire "upload" sous /html de cette ibay.

Script d'authentification (version simplifiée/débuggage) qui fonctionne:
Code : Tout sélectionner
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>ceci est le titre de la page d'authentification</title>
    </head>

    <body>

<?php
echo 'pseudo:' . $_POST['pseudo'] ;
echo nl2br ("\n");

echo 'mot de passe:' . $_POST['pass'] ;
echo nl2br ("\n");

$login = "admin"; // login (pseudo)
$mdp = "test"; // mot de passe

if(isset($_POST['pseudo'], $_POST['pass'])) // On vérifie si le login et le mot de passe sont présents
{
      if(($_POST['pseudo'] == $login) AND ($_POST['pass'] == $mdp)) // Si les identifiants sont bons, on affiche la page
   {
      $utilisateur = $_POST['pseudo']

?>
         <form method="post" action="reception.php" enctype="multipart/form-data">                
                <label for="fichier">Fichier (tous formats | max. 1 Mo) :</label><br />
                <input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
            <input type="hidden" name="utilisateur" value="<?php echo $_POST['pseudo'] ; ?>" />
                <input type="file" name="fichier" id="fichier" /><br />
                <input type="submit" name="submit" value="Envoyer" />
         </form>


      <?php
   }
   else // Le mot de passe n'est pas bon, on affiche un message d'erreur
   {
      echo 'Erreur : identifiants erronés !';
?>

<META HTTP-EQUIV="Refresh" CONTENT="3;URL= http://192.168.2.5/test/authentification.php">

<?php
   }
}
else // Sinon, on affiche le formulaire pour entrer ses identifiants
{
?>
<form action="authentification.php" method="post">
Entrez votre pseudo : <input type="text" name="pseudo" /><br />
Entrez votre mot de passe : <input type="password" name="pass" /><br />
<input type="submit" />
</form>
<?php
}


?>

</body>
</html>



Script d'upload (simplifié + débuggage) qui fonctionne aussi, mais l'upload est limité à 1MB:
Code : Tout sélectionner
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>ceci est le titre de la page de reception</title>
    </head>

    <body>

<?php


if(isset($_FILES['fichier']))
{
   echo 'fichier présent' ;   
echo nl2br ("\n");
     $dossier = 'upload/';
     $fichier = basename($_FILES['fichier']['name']);


echo $fichier ;
echo nl2br ("\n");

$target = "upload/".basename($_FILES['fichier']['name']) ;

var_dump ($_FILES) ;

if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...

     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}


Question: il y a quelque chose dans le script qui pose probléme?


Répnses "en vrac aux post précédents:
Cool34000 a écrit :Attention : tu mélange application et site web... Il se trouve que l'application que tu as installée contient un site web !

Sommes-nous d'accord sur le fait que je n'ai pas installé d'application, mais crée une page web dynamique?

jibe a écrit :Cela dit, ça ne change de toutes manières rien au fait qu'il vaut effectivement mieux ne faire les adaptations site par site et non globalement. S'il y a nécessité d'ajuster cette valeur d'upload, qui me semble déjà être à 50Mo, ce n'est donc pas elle qui limite à 1Mo !

En raisonnant à l'envers, si j'autorise à 50Mo pour tout (paramètre php) et que ça bloque toujours à 1Mo, ce n'est pas en paramétrant á 50Mo uniquement pour ceci que ça passera! Non?

jibe a écrit :Que donne ce script s'il est placé et exécuté dans Primary ?

je n'ai pas encore essayé. j'ai plein de choses à lire, à comprendre et à écrire ici!! :lol:
--> c'est au programme 8-)

agecanonix a écrit :Si j'ai bien compris, arnaud056 a besoin d'aller chercher un pain à la boulangerie de la rue des Croissants Chauds, à deux pâtés de maison de chez lui. Il n'a pas besoin d'un avion, mais d'un vélo !

Plus généralement: je souhaite aller chercher mon pain, vous explique où est la boulangerie et combien de pains j'achète. Je vous demande alors comment m'y rendre de la meilleure façon et vous dis que je compte y aller en mobylette mais qu'elle ne démarre pas. L'un de vous m'explique comment démarrer la mob (parce que je me suis plaint qu'elle ne part pas), l'autre me conseille d'y aller en voiture et le 3ème me demande pourquoi en fait aller à la boulangerie. je pourrais cuire mon pain moi même.
Mais c'est super comme discution / dialogue! :D et ça m'aide á prendre la "bonne" décision. je suis donc extrêmement heureux d'obtenir des réponses qui sortent du cadre de la question précise et en même temps d'en recevoir qui répondent précisément à la question (si la mob est hs, j'abandonne, mais s'il n'y a qu'à mettre un coup de starter.... :roll: )

Plus concrêtement ici:
Cool34000 a écrit :Question : je veux installer l'appli X, mais je bloque à telle étape...
Réponse : apprend le PHP pour faire ta propre appli, car X ne convient pas à tes besoins ! :o :shock: :?
Pas sûr que ça soit constructif, et pas sûr que ce genre de réponses l'aide vraiment !

et bien si en fin de compte! je serais bien sûr content de débloquer l'appli X, mais je le suis également quand on me dit qu'avec l'appli X je n'arriverais pas à mes fins et que je ferais mieux de prendre la méthode Y, à condition bien entendu d'arriver à mettre en place la méthode Y... :roll:

Donc en bref. je suis extrèmement heureux pour toutes les indications et commentaires que vous avez tous postés car ils vont du global au détail, alors svp, ne vous fâchez pas ou ne vous disputez pas car cette diversité dans les réponses est très enrichissante et puis de toute façon personne ne vient sur le forum pour ça! ;)

Peace et @+
Arnaud
PS: bien content de continier à te lire ici jibe! :D
Mieux vaut faire envie que pitié...
it's me
arnaud056
 
Message(s) : 98
Inscription : 04 Nov 2011 20:52
Localisation : Allemagne

Re: transfert de fichiers sécurisé avec hôte distant: commen

Message par arnaud056 » 08 Jan 2013 21:53

jibe a écrit :Que donne ce script s'il est placé et exécuté dans Primary ?

Ben pas grand chose de bon, mis à part qu'il m'a permis de vérifier que je suis un âne! :oops: :oops:

Dans le formulaire de choix de fichier de mon script "authentification.php"
<form method="post" action="reception.php" enctype="multipart/form-data">
<label for="fichier">Fichier (tous formats | max. 1 Mo) :</label><br />
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="hidden" name="utilisateur" value="<?php echo $_POST['pseudo'] ; ?>" />
<input type="file" name="fichier" id="fichier" /><br />
<input type="submit" name="submit" value="Envoyer" />
</form>


la 3ème ligne indique 1MB.
J'ai laissé cela dans le formulaire, mais ne l'ai pas pris en compte dans le script d'upload en pensant: "je fixe une variable que je n'utilise pas encore --> elle est simplement superflue pour l'instant".
Et bien non! :evil:
C'est en essayant sur la Primary que j'ai encore eu une erreur "2" et que j'ai re-regardé sa signification--> "Le fichier téléchargé excède la taille de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML."

Gaspillage de temps, énervement, usure des claviers.............. :oops: :oops:
S'cusez-moi!

Bon, maintenant j'ai réussi à faire passer 25MB.
Mais ça coince à 48MB alors que la limite est maintenant à 60MB......... :twisted:

J'y retourne!
@+
Arnaud qui n'est pas encore vraiment copain avec le php!
Mieux vaut faire envie que pitié...
it's me
arnaud056
 
Message(s) : 98
Inscription : 04 Nov 2011 20:52
Localisation : Allemagne

Re: transfert de fichiers sécurisé avec hôte distant: commen

Message par sibsib » 08 Jan 2013 21:59

Hello,

Bravo pour ta trouvaille :-)

Pour la limite 60 / 48 : Il me semble que çà fait un rapport de 25 %, et il me semble aussi que c'est l’embonpoint pris par une pièce jointe dans un mail, pour cause d'UUencodage (Le codage qui permet de faire passer tous les bits dans le mail qui initialement a été conçu ... pour du mail -truc de fou)

Ce peut-il que la fonction de transfert de fichiers fasse la même chose, et que ceci explique celà ?

A+,
Pascal
sibsib
 
Message(s) : 188
Inscription : 20 Oct 2011 21:08

Re: transfert de fichiers sécurisé avec hôte distant: commen

Message par arnaud056 » 08 Jan 2013 22:28

Bonsoir Pascal,
ce soir, je n'ose plus te dire "non je crois que ça ne vient pas de là", mais ça me brûle tout de même les doigts:
PHP configuré à 100MB:
Code : Tout sélectionner
[root@sme8-virtuelle-1 html]# config show php
php=service
    AllowUrlFopen=Off
    MaxExecutionTime=3600
    MemoryLimit=50M
    PostMaxSize=100M
    UploadMaxFilesize=100M
    status=enabled


Formulaire php sans limitation de taille:
<form method="post" action="reception.php" enctype="multipart/form-data">
<label for="fichier">Fichier :</label><br />

<input type="hidden" name="utilisateur" value="<?php echo $_POST['pseudo'] ; ?>" />
<input type="file" name="fichier" id="fichier" /><br />
<input type="submit" name="submit" value="Envoyer" />
</form>


et 49,7MB ne passent pas. En mettant les limites à 200MB non plus.
Code : Tout sélectionner
fichier présent
test.wav
array(1) { ["fichier"]=> array(5) { ["name"]=> string(20) "test.wav" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(2) ["size"]=> int(0) } } Echec de l'upload !


J'arrête pour ce soir: assez de sottises de faites!

@+
Arnaud
Mieux vaut faire envie que pitié...
it's me
arnaud056
 
Message(s) : 98
Inscription : 04 Nov 2011 20:52
Localisation : Allemagne

Re: transfert de fichiers sécurisé avec hôte distant: commen

Message par sibsib » 08 Jan 2013 23:05

Yop,

Ce coup ci, c'est peut-être la limite php que tu as atteinte :-)

A+,
Pascal
sibsib
 
Message(s) : 188
Inscription : 20 Oct 2011 21:08

Re: transfert de fichiers sécurisé avec hôte distant: commen

Message par arnaud056 » 11 Jan 2013 18:16

Bonsoir tout le monde,
bon, et bien tout est rentré dans l’ordre hier. 8-)
Pour ce faire j’ai:
- Remis les valeurs d’origine dans php.ini
- Réduit les scripts php au strict minimum et re-vérifié ces derniers
- Vérifié l’existence du répertoire temporaire, vérifié qu’il était bien renseigné dans le patch d’unnilennium (custom-template)
- Crée un custom-template pour adapter les paramètres php à mon ibay d’upload
- Constaté que j’avais mélangé le nom du paramètre et celui de la variable correspondante dans le custom template. :oops:

Et puis c’est tout! :D

Maintenant que ca fonctionne parfaitement, je vais m’occuper à configurer la sme de prod de la même facon afin de faire un essai en conditions réelles.
Si c’est toujours ok, je complèterai et perfectionnerai alors de nouveau les scripts avec quelques fonctionnalités supplémentaires (jusqu’à ce que ca ne tourne plus !!).

En tous cas, j’ai beaucoup appris sur les templates et découvert que l’on peut individualiser les paramètres de certaines applications pour les ibays (« php_admin_value » dans ce cas ci), et ce d’une façon tellement simple que l’on cherche des complications durant une semaine.

Je vous tiens au courant de la suite….. ;)

C’était difficile ? :mrgreen:

@+
Arnaud
Mieux vaut faire envie que pitié...
it's me
arnaud056
 
Message(s) : 98
Inscription : 04 Nov 2011 20:52
Localisation : Allemagne

Re: transfert de fichiers sécurisé avec hôte distant: commen

Message par Franck78 » 12 Jan 2013 16:11

Code : Tout sélectionner
 Réduit les scripts php au strict minimum et re-vérifié ces derniers


juste rappel de la base basique de la base : vérifier que les variables reçues soient conformes à ce qu'on attend.
Particulièrement quand elles servent directement dans un appel système (move_uploaded_file).

Ce serait dommage de recevoir un nom de fichier du genre "../../etc/passwd" ;-)
Franck78
 
Message(s) : 525
Inscription : 11 Sep 2011 16:04
Localisation : France

Re: transfert de fichiers sécurisé avec hôte distant: commen

Message par arnaud056 » 13 Jan 2013 11:43

Bonjour Frank,
je vois en gros de quoi tu veux parler.... :?
Tu penses qu'il pourrait y avoir un mélange possible entre mon vrai '/etc/passwd' et un fichier nommé "/etc/passwd" qui arriverait d'abord dans le répertoire temporaire et ensuite dans celui d'upload?

Pour l'instant je ne comptais que limiter la réception aux images et aux archives (zip ou tar.gz). Ça devrait être suffisant, non?

@+
Arnaud
Mieux vaut faire envie que pitié...
it's me
arnaud056
 
Message(s) : 98
Inscription : 04 Nov 2011 20:52
Localisation : Allemagne

Re: transfert de fichiers sécurisé avec hôte distant: commen

Message par arnaud056 » 24 Jan 2013 10:13

Bon, et bien voilà,
pour l'instant ça fonctionne également bien sur la sme de prod' 8-) Le script est un peu plus perfectionné.
J'ai installé (via custom-templates là aussi) en plus une redirection http --> https automatique pour les 2 ibays.

Ce chapitre est donc maintenant clos. merci de m'avoir permis d'y arriver! ;)

@+ pour un nouveau thème... :roll:
Arnaud
Mieux vaut faire envie que pitié...
it's me
arnaud056
 
Message(s) : 98
Inscription : 04 Nov 2011 20:52
Localisation : Allemagne

Précédent

Retour vers SME

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron