Forum Linux.général J'ai du travail pour vous [Participez a un programme].

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
-7
22
oct.
2013

Salut les Linuxiens C,
j'ai écrit un petit logiciel de sécurité, nommer datetime-lock, empêchant un intrus malintentionné d'accéder a votre système, pendant que vous n'êtes pas là, qui en fonction de sa configuration, ce dont pourquoi il dispose de nombreuses options, éteint le système avant même que l'écran de login n'apparaisse alors si l'intrus connais votre mot de passe ou a l'intention de le casser il ne le pourra pas car il sera stupéfait que votre système n'est pas accessible pendant vous n'êtes pas là, ha ha…

Le logiciel peut être aussi utiliser comme contrôle parentale ou contrôle d'accès tout court, les applications sont nombreuses.

Mais je ne poste pas pour me vanter, je ne fréquente pas souvent ce forum, mais cette fois j'ai besoin de l'aide de tous les Linuxiens de tous bord (de toutes les distribution), car j'aimerai pour ceux qui désire participer a l'élaboration d'un script d'installation et de désinstallation pour toutes les distributions que je maîtrise pas.
Le script d'installation est conçus pour une distribution Ubuntu et le problème étant que le programme étant au démarrage j'ai besoin de votre aide afin que vous écriviez un script d'installation pour votre distribution, la compilation ne devrait pas poser de problème.

Si vous désirez participez votre nom sera cité dans le README.txt (vous pouvez carrément le mettre dans le script en commentaire) comme collaborateur.
Vous pouvez télécharger le programme depuis sa fiche technique:

datetime-lock un programme de sécurité empêchant l'accès physique a votre système.

Et envoyer vos scripts (script d'installation et de désinstallation) à l'adresse mail du README.txt ou poster vos scripts sur le forum.

PS: la difficulté pour moi est que la mise au démarrage est différentes selon les distribution et mes essaies en machine virtuelle n'ont rien donner.

Note:

Pour vos essaies commentez la ligne du fichier: datetime-lock.c
ligne N° 492 system("shutdown -h now") ; // en ajoutant deux slash.
et décommentez la ligne:
ligne N° 495 //system("echo \'it works\' >> ~/test_programm.txt") ; // enlever les deux slash.
Comme ca si votre script fonctionne au lieu de s'éteindre le programme créera un fichier test_programme.txt
dans votre répertoire $HOME.

Voici le script d'installation pour Ubuntu:

#!/bin/bash

############################################################################
#                                                                          #
# This programm is under copyright from the GPL GNU GENERAL PUBLIC LICENSE #
#                                                                          #
############################################################################

sudo echo "Start installation from datetime-lock"

if [[ $? != 0 ]] ;
then
    echo "You must run this installation script as root."
    return 1
fi

cd "$PWD/Files/"

gcc -Wall -Wextra datetime-lock.c -o datetime-lock 2> /dev/null # Don't display the 4 four strftime warnings from the justification use by this function.

sudo mv datetime-lock /usr/local/bin/ # move the binary to users binary folder

sudo chown root:root /usr/local/bin/datetime-lock  # datetime-lock must be run as root only. 
sudo chmod go-rwx /usr/local/bin/datetime-lock     # datetime-lock must be run as root only.  

cd ..
gcc -Wall -Wextra datetime-config.c -o datetime-config # Compilation of the datetime-lock configuration utility.
sudo mv datetime-config /usr/local/bin/ # move the binary to users binary folder.


sudo cp datetime-lock.sh /etc/init.d/ # Move the start-up script to the start-up scripts folder.

run_level=$(runlevel)

sudo ln -s /etc/init.d/datetime-lock.sh /etc/rc${run_level/"N "/}.d/S50Datetime-lock # Link the start-up script to the runlevel 2 foler: /etc/rc2.d/ 
                                                # To adapt if the result from the command runlevel is different from 2. 

sudo chown root:root /etc/init.d/datetime-lock.sh # Set the owner the root user.                
sudo chmod a+rwx /etc/init.d/datetime-lock.sh     # Make the start-up script executable. 

sudo echo "datetime-lock correctly installed on your system."
  • # Tu as fini le spam ?

    Posté par  . Évalué à 2.

    je ne fréquente pas souvent ce forum
    Ca se voit sinon tu ne posterais pas 10 fois le même message qui finisse tous en page d'accueil des forums

  • # Sur le fond

    Posté par  . Évalué à 4.

    Sans vouloir dévaloriser ton travail, pour moi si physiquement le poste est accessible aucune sécurité n'existe.
    Il suffit de prendre le disque dur le mettre dans un autre ordinateur et tout ce qui n'est pas crypté est accessible. Et ce qui l'est est simplement plus difficile à obtenir.

    L’authentification de base d'un linux est déja régi par le(s) module(s) PAM qui permettent énormément de chose (comme par exemple de définir des plages horaires avec extinction automatique à une certaine heures pour des users voir ici ).

    D'autre part de mémoire le module tty dispose d'un temps réglable d'attente réglable entre la saisie du couple login/mots de passe pour éviter les attaque de type brute force et on peut configurer le système pour tracer les mauvaise tentative de login dans un journal pour avoir des traces.
    Bref beaucoup de chose existe déja, as tu regarder cela ?
    Peut tu expliquer en deux mots ce que ton programme offre de plus ?
    Si cela comble un vide cela motivera plus de gens à travailler dessus.

    • [^] # Re: Sur le fond

      Posté par  (site web personnel) . Évalué à -6.

      Dans le README.txt de mon programme je conseille de mettre un cadenas sur l'ordinateur dans les petits trous prévus a cette effet, entre autre mesure, je ne sais si c'est standart mais sur mon PC j'ai des trous prévus a cet effets je m'en prive pas.
      J'ai effectivement un cadenas sur mon ordinateur afin d'éviter que l'on puisse l'ouvrir pour si il y a un mot de passe BIOS ce que je conseille aussi d'enlever la pîle du BIOS ou le disque dur.
      Mon serveur a une fermeture qui quand elle est ouverte, cet acte se retrouve logguer.
      Et le programme usé par exemple dans une entreprise ne serai pas la seule barrière face a un accès physique mais si un cambrioleurs|intrus voulant voler les données sera surpris grâce a mon programme.

      J'ai lu quelque part que dans 70 % des cas de hacking, le hacker a un accès physique a|aux la machine(s), cela inclus sûrement les infrastructures de bureau pour la plupart.
      Je suis parano et je crée des logiciels de paranos pour parano, car ce sont les seules conscient du danger.

      En fin le programme peut servir a restreindre et non interdire l'accès au système Linux, seule OS protéger par mon programme.

      • [^] # Re: Sur le fond

        Posté par  . Évalué à 5.

        le hacker il vient avec sa clef USB ou son CDROM
        il boote dessus
        il a acces à tes données.

        mais tu auras surement mis un mot de passe au bios et forcer celui-ci à booter uniquement sur le disque dur.
        et si tu ne l'as pas fait, tes partitions sont cryptées dés le grub

        j'espere aussi que si tu es parano à ce point :
        1°) tu as des alarmes à toutes les portes/fenetres
        2°) tu as installé de la videosurveillance
        3°) tes données sont sauvegardées ET externalisées

  • # meme remarque que thebreton

    Posté par  . Évalué à 4.

    de mon coté je ne savais pas que PAM permettait deja de definir des plages horaires
    merci thebreton de pointer cet aspect là

    là de ce que je vois, c'est plutot du controle "parental" au sens ou tu force la machine à rester eteinte si on est dans une tranche de dates/heures données.

    en effet c'est pratique pour eviter que l'ado se leve à minuit pour trainer sur facebook jusqu'a 4h du mat

    mais ma question va plutot etre technique, pourquoi ecrire un programme en C qui fait ensuite un appel system() pour demander l'arret.

    un simple script shell qui regarde une valeur dans un fichier de config, là compare à la date actuelle et lance le shutdown ferait surement aussi bien et moins compliquer à installer.

    car dans le cas ici present tu demandes quand meme à Mme Michu d'avoir les outils de compilations installés sur sa machine et de lancer une compilation/link pour installer un programme

  • # Version MultiDeskOS ?

    Posté par  . Évalué à 3.

    Est-ce que tu prévois d'ajouter le support de MultiDeskOS dans ton logiciel dans un futur proche ?
    Non, parce que c'est l'OS que j'utilise et c'est vrai que cette fonctionnalité manque aussi sous cet OS.

    • [^] # Re: Version MultiDeskOS ?

      Posté par  (site web personnel) . Évalué à -5.

      Si gcc est présent sur ton OS et que tu maîtrise un peu le système il suffit de mettre le script qui appel datetime-lock: datetime-lock.sh au démarrage.
      A condition que les chemins:
      /usr/share/
      et
      /usr/local/bin/
      soit présent sur ton système.
      Et que le dernier soit dans la variable $PATH.

  • # Commentaire supprimé

    Posté par  . Évalué à -4. Dernière modification le 22 octobre 2013 à 14:59.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # Pour les essais

    Posté par  . Évalué à 1.

    Pour vos essaies commentez la ligne du fichier: datetime-lock.c
    ligne N° 492 system("shutdown -h now") ; // en ajoutant deux slash.
    et décommentez la ligne:
    ligne N° 495 //system("echo \'it works\' >> ~/test_programm.txt") ; // enlever les deux slash.
    Comme ca si votre script fonctionne au lieu de s'éteindre le programme créera un fichier test_programme.txt
    dans votre répertoire $HOME.

    Je verrais bien une option --test qui permette d'utiliser la ligne 495 à la place de la ligne 492 au lieu de devoir faire des modifications dans le code. Ça me semblerait plus user-friendly.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.