Publié
Commentaires Aucun

Installez votre propre serveur de sondage et de planification de réunions

En général, quand on parle autour de soi de la possibilité d’héberger son propre serveur de sondage, la première réaction est : Mais pourquoi tu te fait chi.. alors qu’il y a Doodle sur internet et que ça ne coûte rien

evaluate.jpg

Ben oui finalement, pourquoi avoir son propre site de sondage ?
En vrac je dirais :

  • Pour le fun
  • Pour l’anonymat (pas de collecte d’adresses IP, d’email)
  • Pour pouvoir utiliser son site en https (ce qui n’est pas le cas de doodle dans sa version gratuite)
  • Pas de pub
  • Pour pouvoir visualiser les statistiques sous forme de graphes
  • En interne dans le cadre d’une entreprise
  • Dans le cadre d’une association

Nous allons voir une alternative libre que vous pouvez tester en ligne pour vous rendre compte du rendu final sur votre serveur : Framadate

De quoi allons nous avoir besoin ?

  • Un serveur (comme on parle souvent de raspberry pourquoi ne pas l’utiliser)
  • apache
  • php
  • Mysql-server (pas obligatoire mais je trouve que c’est plus confortable)
  • Phpmyadmin (si vous avez mysql-server, c’est plus facile que la ligne de commande)


Comment fait on ?

code.jpg

Dans la suite de l’article, on considère que vous avez un serveur web avec php myql-server installé

  • On se place dans le répertoire qui va héberger le code de framadate, disons /var/www/
  • on télécharge la dernière version des fichiers en se rendant ici : https://git.framasoft.org/framasoft/framadate/tags
  • On dézippe le fichier récupéré
  • On renomme le répertoire
mv framadate-0.9.6-276f732defd5ab01358a33f7a4e3013ae01673bd framadate-0.9.6
  • On change les droits sur le répertoire
 chown -R www-data:www-data /var/www/framadate-0.9.6
  • On se rend dans ce nouveau répertoire
cd  /var/www/framadate-0.9.6
  • On installe les bibliothèques nécessaires
php -r "readfile('https://getcomposer.org/installer');" | php
apt-get install php5-intl

  • On change d’utilisateur et on lance la mise à jour et l’installation de composer

su www-data -s /bin/bash 
./composer.phar update
./composer.phar install

  • Maintenant on se déconnecte du compte www-data et on ajoute les lignes suivantes dans la configuration du site web (/etc/apache2/site-available/default-ssh)

Alias /framadate "/var/www/framadate-0.9.6"
    <Directory "/var/www/framadate-0.9.6/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Order deny,allow
       deny from all
       allow from 192.168.1.0/24
        allow from all
    </Directory>

192.168.1.0/24 est à remplacer par votre propre vlan

  • On recharge la configuration dans apache
service apache2 reload
  • Maintenant que vous avons installé les prérequis logiciels, il va falloir configurer la base de données
    Pour cela il faut vous rendre sur votre page phpmyadmin
    Dans la rubrique :
  • Privilèges
    Puis :
  • Ajouter un utilisateur
  • remplissez les champs avec localhost pour le serveur, et framadate pour nom d’utilisateur
  • Notez le mot de passe que vous choisissez pour l’utilisateur, toutes ces informations vous seront demandées lors de la configuration du site web
  • Cochez : Créer une base portant son nom et donner à cet utilisateur tous les privilèges sur cette base
  • Enfin cliquez sur créer un compte utilisateur

finale.png

Étape finale, on configure

  • Rendez vous sur la page de votre site :

http://votre_ip/framadate/admin/install.php
ou
https://votre_ip/framadate/admin/install.php si vous avez configuré avec un certificat

  • Vous remplissez le questionnaire avec les informations pour l’utilisation de la base de données et vous finissez en cliquant sur Installer

À l’installation, les tables de la base de données et le fichier app/inc/config.php sont créés. Le fichier app/inc/config.php contient d’autres paramètres de configuration facultatifs que vous pouvez modifier.

  • dans ce fichier vous modifiez cette variable
// Clean URLs, boolean
//const URL_PROPRE = true;
const URL_PROPRE = false;

  • Pour sécuriser le répertoire “admin” et donc restreindre l’accès à la page d’administration, Framasoft indique dans son guide

Framadate dispose d’un espace d’administration de l’ensemble des sondages dans le dossier /admin

Pour en restreindre l’accès, il faut ajouter au fichier de configuration Apache de votre site web (fichier /etc/apache2/sites-enabled/votre-domaine.vhost) ce bloc :

bc.. AuthType Basic AuthName “Administration” AuthUserFile “/var/www/framadate/admin/.htpasswd” Require valid-user Order allow,deny Allow from all

et créer le fichier .htpasswd contenant l’utilisateur et le mot de passe autorisé.

htpasswd -bc /var/www/framadate/admin/.htpasswd utilisateur mot-de-passe

(l’utilitaire htpasswd se trouve dans le paquet apache2-utils)

Pour protéger les fichiers .htaccess et .htpasswd, pensez à ajouter également ceci :

<FilesMatch "^\.ht.*">
deny from all
satisfy all
ErrorDocument 403 "Accès refusé."
</FilesMatch>

Et voila, normalement vous pouvez utiliser votre tout nouveau serveur de sondage

framadate

Vous pourrez trouver un tutoriel pour installer Framadate sur Ubuntu 14.04 de Patrick Harmel, sous licence GFDL

Auteur

Publié
Commentaires Aucun

Comment afficher plusieurs consoles dans un même écran

Quand on travaille avec la ligne de commande, il arrive fréquemment qu’on ait besoin de travailler sur plusieurs “fenêtres” en même temps

C’est bien souvent le cas avec les nano-ordinateurs comme le Raspberry pi, car il faut exécuter le programme, surveiller le comportement du réseau, visualiser l’usage du CPU, vérifier l’état des GPIO, etc.
On peut toujours faire défiler les différentes consoles avec le raccourci clavier : Alt+fnct x, mais on ne voit qu’un seul écran à la fois

code.jpg

Malgré le fait que les écrans soient de plus en plus grand la console ne s’affiche qu’une fois, à moins d’être en mode graphique

Il existe un outil historique pour partager son écran en plusieurs console qui est screen
Mais nous allons aujourd’hui voir un autre outil plus récent et offrant de nouvelles fonctionnalités, il s’agit de TMUX

Pour aider quelqu’un à distance, on a souvent recours à teamviewer, qui est simple à utiliser mais qui oblige à faire passer tout ses flux par les serveurs de l’éditeur. Avec TMUX on va voir qu’il est possible d’interagir avec un utilisateur à distance

Selon Wikipédia

Tmux est un multiplexeur de terminaux libre en mode texte.
Il permet d’utiliser plusieurs terminaux virtuels dans une seule fenêtre de terminal ou une session sur un terminal distant.
Tmux peut être détaché d’une session et continuer de fonctionner en arrière-plan, on peut également s’y rattacher plus tard.
Il permet aussi de lancer, de gérer et de garder le visuel sur plusieurs processus en même temps.
Tmux a pour but d’être une alternative stable et moderne à GNU Screen, il possède d’ailleurs la majorité des fonctions de GNU Screen,
mais contrairement à celui-ci il est distribué sous licence BSD et fait partie de la base système d’OpenBSD

Par exemple ci dessous TMUX affiche 4 consoles indépendantes les unes des autres :

tmux_exemple.jpg


Comment fait on ?

code.jpg

  • L’installation est assez simple :
apt-get update
apt-get install tmux

Utilisation

utilisation en mode multi panneaux

  • on commence par lancer tmux :
tmux
  • Pour commencer, on va séparer l’écran en 2, en mode horizontal :
Ctrl+b puis " (la touche 3)

On a maintenant 2 console indépendantes qui permettent de lancer des commandes séparées

  • Pour passer d’une fenêtre à une autre :
Ctrl+b puis o

ou

Ctrl+b + flèches de directions (haut bas gauche droite suivant la console que vous voulez atteindre)
  • Pour diviser le panneau courant en 2 panneau verticaux :
Ctrl+b puis %
  • Pour afficher en surimpression le N° des panneau
Ctrl+b puis q
  • Pour se rendre directement à un panneau suivant son N°
Ctrl+b puis q puis le N°
  • Redimensionner les panneaux
Ctrl+b puis alt + flèche de direction
  • Disposition par défaut TMUX propose un agencement par défaut des panneaux. Répéter la commande plusieurs fois pour passer les différents agencement
Ctrl+b puis espace

utilisation en mode session

multi.png

L’autre force de TMUX est de fonctionner en mode session

Quel est l’avantage des sessions ?
les sessions tmux sont indépendantes de la console. Vous pouvez par exemple créer une session TMUx puis ouvrir un ssh depuis une autre machine et vous connecter à cette session TMUX

Vous pouvez par exemple lancer une tache qui est très longue depuis une session tmux, refermer votre session ssh (ou perdre la session à cause d’une coupure réseau) et reprendre la session tmux depuis une nouvelle connexion ssh sans que le travail en cours ait été perdu

  • Pour créer une session
tmux new
  • pour donner un nom à la session
tmux new -s session-admin -n "backup de ma machine"

-s session-admin remplace le N° de session par le nom session-admin
-n “backup de ma machine” est le nom qui sera affiché sur la barre des taches de TMUX

  • Maintenant que la session TMUX est en cours il est possible de la laisser s’exécuter en tache de fond, Pour cela on va explicitement demander à TMUX de se détacher de la console actuelle en tapant depuis TMUX
Ctrl+b puis d

TMUX disparaît de l’écran

Maintenant comment retrouver ses sessions TMUX et s’y connecter ?

  • Lister les sessions en cours :
tmux ls
0: 1 windows (created Thu Jul 28 13:10:59 2016) [130x42]
1: 1 windows (created Sun Jul 31 11:35:05 2016) [319x78] (attached)
session-admin: 1 windows (created Sun Jul 31 12:21:36 2016) [319x78] (attached)

On voit ici que 3 sessions sont en cours

  1. Une session lancée le 28/07
  2. Une session lancée le 31/07
  3. Une session lancée le 31/07 mais dont le N° est remplacé par session-admin

La session du 31 est attachée (attached) à une console, c’est à dire qu’un utilisateur avec une console tty visualise et utilise cette session
Ici la session du 28 tourne en tache de fond

  • Se connecter à une session
tmux attach -t x

x représente le N° ou le nom de la session

Il est intéressant de noter ici que si on attache une session sur 2 consoles différentes, alors ce que fait un utilisateur dans sa session TMUX est visible dans la console TMUX du 2eme utilisateur

Cela permet donc notamment de pouvoir faire du support ou de la formation à distance.
Imaginons par exemple une salle de cours avec chaque utilisateur sur la même session TMUX et l’enseignant qui fait ses manipulations directement dans cette session

  • Tuer une session par N°
tmux kill-session -t x

Cependant je trouve plus propre pour arrêter une session, de l’attacher et de fermer toutes les fenêtres

La page de manuel de TMUX fourni toutes les commandes et options, mais il est possible de visualiser rapidement la liste des commandes disponibles en tapant :

tmux list-commands

et la liste des touches de raccourcis de commande avec :

tmux list-keys

Duplication de commandes TMUX

Une fonctionnalité intéressante est de pouvoir taper la même commande dans chacun des panneaux
Par exemple, imaginons que nous soyons connecté sur 4 Raspberry en même temps, et que nous décidions d’installer le même package sur chacun d’eux, il suffira de taper les commandes d’installation et de configuration dans un seul panneau pour que tous les Raspberry se mette à jour en même temps

L’option magique est :

set-window-option synchronize-panes

Dans tmux, on passe en mode “modification de variable” avec

Ctrl-b :
  • pour activer la duplication de commande :
set-window-option synchronize-panes on
  • Pour désactiver la duplication de commande
set-window-option synchronize-panes on

Options de configuration :

Support de la souris régler sur “on” pour activer “off” pour désactiver

  • setw -g mode-mouse off
  • set -g mouse-select-pane off
  • set -g mouse-resize-pane off
  • set -g mouse-select-window off

Configurer le terminal par défaut en mode 256couleurs

  • set -g default-terminal “screen-256color”

Activer les alertes d’activité

  • setw -g monitor-activity on
  • set -g visual-activity on
    1. Centrer la liste des fenêtres
    2. set -g status-justify centre

Commandes sur les fenêtres

A l’intérieur d’un session tmux, il est possible d’ouvrir des fenêtres (ou onglets) (Ctrl+b puis)

  • c Crée une nouvelle fenêtre
  • w Liste les fenêtres
  • n Sélectionne la fenêtre suivante
  • p Sélectionne la fenêtre précédente
  • f Trouve une fenêtre
  • , Nomme ou renomme la fenêtre
  • & Ferme la fenêtre tmux en cours
  • ! détache un panneau dans une nouvelle fenêtre
  • ctrl+b : join-pane -s :1 insert une fenêtre (ici 1) dans celle en cours
  • ctrl+b : list-panes liste tous les panneaux de la fenêtre en cours

Commandes diverses :

  • t Affiche un pendule dans le panneau en cours
  • ? Liste les raccourcis
  • : Prompt dans la barre des tache pour tapper des commandes
  • x Ferme le panneau en cours
  • z Zoom le panneau en cours (même commande pour revenir au mode normal)

Auteur

Publié
Commentaires Aucun

changer de format, redimensionner, marquer, vos images par lot et plus encore

Changer la taille, changer le format, mettre un copyright ©, exporter en niveaux de gris et bien d’autres actions sont depuis longtemps des travaux maîtrisés sur PC.

chat.jpg

Cependant cela devient vite lassant et chronophage d’avoir à apporter les mêmes modifications sur un lot d’images.
De nombreux logiciels souvent payants peuvent au prix de manipulations nécessitant une bonne expérience, réaliser cette tache.

Il existe cependant un programme qui peut faire cela en ligne de commande en un temps record et sans connaissance préalables du fonctionnement d’un logiciel graphique. Ainsi on va pouvoir par exemple créer un copie d’image en réduction de plusieurs centaines d’images en 1 click

Comme c’est en ligne de commande c’est facilement scriptable.

je vous propose ci dessous une ébauche de script, que vous pourrez compléter pour correspondre à vos besoins.

Le programme s’appuie sur convert qui est un outil du package imagemagick.

  • Pour installer le package imagemagick
apt-get install imagemagick

la page man de convert est très bien documentée pour vous indiquer toutes les options utilisables
vous trouverez aussi une documentation abondante sur Internet

http://linux.about.com/od/commands/l/blcmdl1_convert.htm
https://doc.ubuntu-fr.org/imagemagick
http://www.tux-planet.fr/imagemagick-manipuler-des-images-en-ligne-de-commande/
http://www.imagemagick.org/Usage/text/

Avec le programme ci dessous, il suffit d’indiquer une image ou une liste d’images en paramètre à l’aide d’un ou des jokers, et le script var redimensionner et inscrire un texte en haut à gauche de l’image, ou des images exportées. L’image originale n’est pas modifiée

  • Pour Utiliser le programme vous pouvez par exemple lancer :
./convert_image_txt.sh -m "/home/cajj/Téléchargements/cat-254572_640.jpg" -c red -t "pixabay.com" -r 300
  • Ce qui aura pour effet de redimensionner l’image cat-254572_640.jpg en 300 pixels de large avec le texte pixabay.com en rouge en haut à gauche et de l’exporter dans le même répertoire avec le nom cpcat-254572_640.jpg

petitchat.jpg

./convert_image_txt.sh -m "/media/cajj/OS/photos/plage/*.jpg"
  • Aura pour effet de créer une nouvelle copie de chaque image.jpg de répertoire /media/cajj/OS/photos/plage/ avec une largeur de 1024 pixels avec cajj.co incrit en blanc dans le coin supérieur gauche. Les nouvelles images seront écrites sous la forme cpimage.jpg

Le programme

code.jpg

#! /bin/bash

# pour lister les polices utilisables : convert -list font
# pour lister les couleurs utilisables : convert -list color
# pour voir toutes les options : man convert
# etc

insert="(c) cajj.co"
newsize="1024"
prefixe="cp"
pattern=""
filename=""
color="white"

if [ $# -eq 0 ]
then
 $0 -h
 exit 0
fi

while test $# -gt 0; do
        case "$1" in
                -h|--help)
                        echo "" 
			echo "Script pour redimentionner les images par lot "
                        echo "application [arguments]"
                        echo " "
                        echo "arguments:"
                        echo "-h   --help,        affiche l'aide"
                        echo "-m motif,           utilise motif comme motif de selection des fichiers à renommer"
                        echo "                    motif=nom ou partie de nom à rechercher (jpg, bmp, jpeg, *ko.jpg, tu*tu.jpg, toto*,  etc. -  le jocker * est accepté mais doit etre coté \"\" )"
                        echo "-t texte,           specifie un texte à incruster dans l'image"
                        echo "-c color,           specifie la couleur du texte à incruster dans l'image"
                        echo "-r size,            specifie une largeur de redimentionement de l'image de sortie"
                        echo "-p prefixe	  prefice= prefixe de nommage des fichiers redimmentionnés (ex : original=toto.jpg prefixe=aa sortie= aatoto.jpg)"
                        echo "			  prefixe supporte le chemin en plus du nom"
                        echo "script basé sur imagemagick"
                        exit 0
                        ;;
#texte à écrire sur la photo
                -t)
                        shift
                        if test $# -gt 0; then
                                insert=$1
                        else
                                insert=""
                        fi
                        shift
                        ;;
#couleur du texte
                -c)
                        shift
                        if test $# -gt 0; then
                                color=$1
                        else
                                color="white"
                        fi
                        shift
                        ;;
# motif de fichier à rechercher
                -m)
                        shift
                        if test $# -gt 0; 
			then
                          pattern=$1
                        else
                          echo "pas de motif de recherche spécifié"
                          exit 1
                        fi
                        shift
                        ;;
# taille de l'image finale
                -r)
                        shift
                        if test $# -gt 0; then
                                newsize=$1
                        else
                                newsize="1024"
                        fi
                        shift
                        ;;
                -p)
                        shift
                        if test $# -gt 0; then
                                prefixe=$1
                        else
                                echo "pas de préfixe spécifié"
                                exit 1
                        fi
                        shift
                        ;;
                *)
                        break
                        ;;
        esac
done

if [ -z "$pattern" ]
then
 echo "pas de motif de recherche spécifié"
 exit 1
fi

if [ -f "$pattern" ]
then
 filename=$(readlink -f $(echo "${pattern}") | head -n 1)
fi

path=$(dirname $(readlink -f $(echo "${pattern}") | head -n 1))"/"

rename=${path}${prefixe}${name}

echo "Nom complet   : "${path}${filename}
echo "chemin        : "${path}
echo "Nom à lister  : "${pattern}
echo "renommer en   : "${rename}
echo "redimention  : "${newsize}

for img in  $pattern
do
 toto=$(printf %q "$img")
 name=$(basename "$toto")
 echo "Ecriture de : ${path}${prefixe}${name}"
 convert $(printf %q "$img")  -resize $newsize -pointsize 26  -stroke $color -strokewidth 2 -fill yellow  -draw 'translate 10,50 rotate -10 text 10,10 '${insert}' ' ${path}${prefixe}${name}
done

Remarques :

  1. Ce programme est un exemple et une ébauche de script que vous pouvez réaliser. Veuillez prendre soin de faire des sauvegardes de vos fichiers avant de tester et/ou modifier ce script. cajj.co ne pourrait etre tenu responsable de quoi que ce soit provoqué par ce code
  2. Comme indiqué dans l’aide du programme, si la chaîne fournie pour les nom de fichiers à convertir contient des jokers (*) alors il faut indiquer la chaîne entre guillemets
  3. Le programme ne peut convertir les fichiers avec des noms contenant des caractères spéciaux (espace et autre)

Auteur

Publié
Commentaires Aucun

Et si votre serveur Linux vous disait des petits mots doux lorsque vous vous connectez en console

les_mots.jpg

Lorsque vous ouvrez une session en console sur une machine Linux, un message d’accueil s’affiche
Ce message appelé : motd (message of the day/message du jour) peut être personnalisé

Habituellement par défaut vous avez quelque chose comme ça :

Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.10.58+ armv7l)

 * Documentation:  https://help.ubuntu.com/

45 packages can be updated.
28 updates are security updates.

Last login: Sat Jul 23 17:41:12 2016 from 192.168.10.1

En fait on peut mettre le message que l’on veut, et beaucoup d’administrateurs en profitent pour afficher un message qui permet d’identifier facilement le serveur sur lequel on se connecte

Vous trouverez sur internet des générateurs de code ascii, comme par exemple :
motd generator
http://patorjk.com/software/taag/#p=display&f=Graffiti&t=%20
http://www.network-science.de/ascii/

Il est même possible de convertir une image en texte
https://motd.tty-i.com//

Comment fait on ?

On va voir comment modifier le message d’accueil de façon statique, mais on va également voir comment générer un motd plus dynamique qui permet d’avoir des infos système sur la machine comme ça :

motd_complet.jpg

Pour Modifier le modt rien de plus facile

Sous Debian (raspbian) faites une copie du fichier original, puis éditez le fichier /etc/motd, ou créez le si il n’existe pas

cp /etc/motd /etc/motd.bck 
nano /etc/motd 

Et copier le texte que vous voulez voir apparaître à l’ouverture de session

ce qui dans notre cas donne :

Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.10.58+ armv7l)

 * Documentation:  https://help.ubuntu.com/

45 packages can be updated.
28 updates are security updates.

  ______     ___            __         __       ______   ______
 /      |   /   \          |  |       |  |     /      | /  __  \
|  ,----'  /  ^  \         |  |       |  |    |  ,----'|  |  |  |
|  |      /  /_\  \  .--.  |  | .--.  |  |    |  |     |  |  |  |
|  `----./  _____  \ |  `--'  | |  `--'  |  __|  `----.|  `--'  |
 \______/__/     \__\ \______/   \______/  (__)\______| \______/

Last login: Sun Jul 24 12:53:50 2016 from 192.168.1.1

Sur les serveurs, la génération du motd se fait grâce à des scripts spécifiques (package landscape-common)

ls /etc/update-motd.d/
00-header  10-help-text  90-updates-available  91-release-upgrade  98-fsck-at-r$

Ajout d’un script à la fin du message du jour

On peut aussi créer ses propres scripts dans /etc/update-motd.d/.
Bien entendu, ces scripts n’ont de sens que s’ils sont destinés a afficher du texte sur le terminal.

Par exemple:

nano /etc/update-motd.d/15-disque_libre

    #!/bin/sh
    echo
    /bin/df -h
    echo

Ce script doit avoir des droits d’exécution.

sudo chmod +x /etc/update-motd.d/15-disque_libre

Vous pouvez activer désactiver des scripts du répertoire /etc/update-motd.d/

Pour désactiver un script
On enlève les droits d’exécution
Par exemple pour ne plus voir la ligne

Documentation: https://help.ubuntu.com/

sudo chmod -x /etc/update-motd.d/10-help-text

Pour activer un script

Pour activer un script il suffit de lui donner les droits d’exécution

sudo chmod +x /etc/update-motd.d/10-help-text

Sur raspberry ce package n’est pas installé par défaut, on se contentera donc de modifier le fichier /etc/motd

Voyons maintenant comment afficher un message avec des infos système dynamiques

installation du script

app.jpg

  • On télécharge le script
wget https://github.com/willemdh/FireMotD/archive/v5.14.160701.zip
  • décompresse l’archive et on lance la construction
unzip v5.14.160701.zip
cd FireMotD-5.14.160701/
sudo make install
sudo make bash_completion

le script est maintenant installé dans le répertoire dans /usr/local/bin/

  • On teste
/usr/local/bin/FireMotD -S

Attention sur le RPI c’est un peu long

  • On affiche en choisissant le thème
/usr/local/bin/FireMotD -t red

Si il manque des paquets installez les

root@rpi170:~/FireMotD-5.14.160701# /usr/local/bin/FireMotD -t red
 /usr/local/bin/FireMotD: line 193: mpstat: command not found
 /usr/local/bin/FireMotD: line 199: bc: command not found
apt-get install bc
 apt-get install sysstat 

motd_red.jpg

Pour connaître toutes les options

/usr/local/bin/FireMotD -h

Rafraîchissement automatique

  • Pour que le motd se rafraîchisse automatiquement, on va programmer une tache 1 fois par jour à 3h03
sudo crontab -e
3 3 * * * /usr/local/bin/FireMotD -S > /dev/null

  • On peut écrire le résultat dans /etc/motd

/usr/local/bin/FireMotD -t blue >/etc/motd

On Combine les 2 techniques

  • on crée un fichier qui contient la bannière ASCII
  • On crée un script qui sera lancé par le cron et qui copie la bannière et l’extraction FireMotD dans le fichier motd
nano /usr/bin/motd_dyn.sh
#! /bin/bash
/usr/local/bin/FireMotD -S
cat /etc/motd_ascii > /etc/motd
/usr/local/bin/FireMotD -t blue >>/etc/motd

On ajoute les droits d’exécution pour ce fichier

chmod +x /usr/bin/motd_dyn.sh
  • Et on modifie le cron
sudo crontab -e
3 3 * * * /usr/bin/motd_dyn.sh > /dev/null

voila maintenant notre motd au démarrage de la session

motd_complet.jpg

On peut faire également plus fin et générer la page à chaque ouverture de session, dans ce cas ça ralentit un peu l’ouverture, mais l’affichage du rapport est rafraîchi à chaque ouverture de session

Pour cela, et par utilisateur

  • Editez le profile de l’utilisateur ~/.profile file, ~/.bash_profile file, ou le fichier ~/.bashrc
nano .profile

Ajoutez l’appel à FireMotD à la fin du fichier (choisissez votre thème)

/usr/local/bin/FireMotD -t red

Vous pouvez aussi modifier le profile pour tous les utilisateurs

par exemple ./etc/bash.bashrc, /etc/profile

Auteur

Publié
Commentaires Aucun

On n’est pas tranquille même chez soi

En surveillant un peu le réseau chez soi, on s’aperçoit que beaucoup d’appareils apparemment assez statiques ou anodins ont une activité assez surprenante et cachée.

espion.jpg

C’est par exemple le cas de

  1. mon imprimante HP qui discute en permanence avec les serveurs HP (en particulier quand je scanne ou que je photocopie)
  2. mes prises électriques pilotées Chacon
  3. mes cameras de surveillance
  4. et bien d’autres encore, sans parler de l’internet des objets

Premier réflexe, on va couper les ports que l’on ne souhaite pas voir exploités par les appareils, dans la configuration de la box internet.

Livebox

Là, ça se complique puisque dans la plupart des cas, le filtrage proposé par les boxes est :

  1. Je permet toutes les communications vers l’extérieur
  2. Je coupe toutes les communications vers l’extérieur

Si vous êtes dans ce cas, la solution est donc de couper tout accès vers l’extérieur.
cependant pour certains périphériques, nous devons laisser quelques accès ouverts, c’est le cas notamment de l’envoi d’ e mail pour la camera

N’oubliez pas que pour accéder à votre NAS interne ou à votre camera, plutôt que de laisser les ports ouvert depuis l’extérieur ou des robots peuvent tenter de cracker vos mots de passe ou explorer des failles du matériel, il vaut mieux tout bloquer et accéder à vos périphériques en utilisant un VPN comme indiqué ici

camera.jpg

Mais alors comment faire pour envoyer des Email ?

On va installer un relais e mail sur le Raspberry pi pour permettre au réseau local d’envoyer des e mails sans que le périphérique ait accès à Internet.

Pour cela on va utiliser postfix

  • Installation de postfix
apt-get update
 apt-get install postfix

  • Configuration

nano /etc/postfix/main.cf 
# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = votre_domaine
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
#mydestination = votre_domain, localhost.localdomain, localhost
relayhost = mail.gandi.net:587
#mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mynetworks = 192.168.1.0/24 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
smtp_always_send_ehlo = yes

*Explication

  • relayhost = mail.gandi.net:587
    L’adresse de votre serveur de messagerie: port d’écoute

Attention le port habituel est le port 25, mais pour éviter le spam, la plupart des FAI bloquent ce port, il existe donc un port alternatif (ici le port 587) chez votre fournisseur d’ email

  • mynetworks = 192.168.1.0/24 127.0.0.0/8
    Les réseaux qui sont écoutés par le relais, et seuls ces réseaux seront autorisés à envoyer des emails
  • smtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
    Le fichier qui va contenir vos identifiants pour accéder au serveur d’ e mails sous la forme:
    mail.gandi.net votre_adresse_email:Votre_mot_de_passe
  • une fois que tout est configuré, on démarre le service
service postfix start
  • Les logs sont ici
tail -f /var/log/mail.log

En cas de problèmes de droit d’écriture sur les répertoires

Il est possible de voir quelques message de warning dans les logs tels que :

postdrop: warning: mail_queue_enter: create file maildrop/xxxx.xxxx: Permission denied postdrop: warning: mail_queue_enter: create file maildrop/yyyy.yyyy: Permission denied

Cette erreur survient quand postfix n’a pas les droits pour écrire dans le répertoire “maildrop” et est donc ainsi incapable d’envoyer des emails.
Cela est du à un réglage incorrect des droits sur les fichiers du répertoire ‘maildrop’
Par exemple le répertoire “maildrop” n’appartient pas au compte ‘postfix’.

Vérifiez les permission et appartenance sur les fichiers postfix :

/etc/init.d/postfix check
postfix/postfix-script: warning: not owned by postfix: /var/spool/postfix/public postfix/postfix-script: warning: not owned by postfix: /var/spool/postfix/maildrop

Solution:

  • Arrêtez le service postfix :
 /etc/init.d/postfix stop
  • Tuez les process postdrop :
killall -9 postdrop
  • Corrigez les droits sur les répertoires :
 chown postfix.postdrop /var/spool/postfix/public -R
 chown postfix.postdrop /var/spool/postfix/maildrop -R

  • Redemarrez le service postfix :

/etc/init.d/postfix start

Configurer le client email

Il faut maintenant configurer le client email de votre périphérique
Par exemple, pour configurer le client email de votre camera

client_email.jpg

  • port 25 c’est le port d’écoute de votre Raspberry
  • smtp server l’adresse ip de votre Raspberry
  • sender email le nom qui apparaîtra dans l’expéditeur du message
  • Receiver email l’adresse email du compte à qui vous envoyez l’ email

Et voilà

Auteur

← Plus anciens Plus récents →