Tag : Linux
Installer dashing sur un Raspberry Pi
Ca fait un moment que j'utilise dashing au travail pour surveiller quelques services et prestataires. Voici un petit tutoriel pour installer sur un raspberry pi le dashboard Dashing.
Installer dashing sur un raspberry pi
Problème avec Pure Ftp Mysql et Inetd
Inetd est un démon très avantageux qui active automatiquement un service lorsqu'un client tente de s'y connecter. Il permet donc d'allouer des ressources uniquement quand c'est nécessaire. Suite à une mise à jour des paquets un serveur Debian, je me suis retrouvé avec une erreur lors de la connexion au ftp.
Can't exec "/usr/sbin/pure-ftpd": No such file or directory at /usr/sbin/pure-ftpd-wrapper line 174.
Cette erreur apparaît car inetd a mal été configuré avec pure ftp mysql. Pour la corriger il suffit d'éditer les quelques premières lignes du fichier /usr/sbin/pure-ftpd-wrapper.
Remplacez les trois lignes suivantes :
my $daemon = '/usr/sbin/pure-ftpd'; my @capabilities = @ARGV; if ($ARGV[0]) { $daemon = "$daemon-$ARGV[0]"; }
Par ceci :
my $daemon = '/usr/sbin/pure-ftpd-mysql'; my @capabilities = @ARGV; #if ($ARGV[0]) { #$daemon = "$daemon-$ARGV[0]"; #}
On a donc remplacer le chemin du démon et commenté les quelques lignes qui normalement auraient du ajouter "-mysql" au nom du démon.
Vous pouvez ensuite redémarrer inetd, et tout devrait à nouveau fonctionner !
/etc/init.d/openbsd-inetd restart
En espérant vous avoir rendu service !
Créer des miniatures de vidéos à la volée
Pour un projet qui devrait voir le jour dans les prochaines semaines / mois j'ai eu besoin de réaliser un script permettant de générer des vidéos à la volée.
J'ai donc travaillé sur un script qui est assez simple au final. Pour l'utiliser vous devez disposer de ffmpeg sur votre serveur.
Pour l'installer lancez simplement la commande suivante :
apt-get update apt-get install ffmpeg
Et voici le script, nommez la captures.sh par exemple :
#! /bin/bash #--- Paramètres videowaitdir=/home/www/videos/ capturedir=/home/www/videos/screens/ numberscreens=10 #--- Traitement des vidéos for video in `ls $videowaitdir`; do if [ -f $videowaitdir$video ]; then duration=`ffmpeg -i $videowaitdir$video 2>&1 | grep "Duration:" | awk '{print $2}' | tr -d , | cut -d . -f 1` if [ -z "$duration" ] || [ "$duration" = "00:00:00" ] then continue fi h=`echo $duration | cut -d : -f 1` m=`echo $duration | cut -d : -f 2` s=`echo $duration | cut -d : -f 3` totaltime=$(($h+$m+$s)) time=$(($totaltime/$numberscreens)) for((i=0;i<=$numberscreens;i++)) do t=$(($time*$i+$time)) ffmpeg -y -i $videowaitdir$video -f mjpeg -ss $t -vframes 1 -s 640x480 -an $capturedir$video.$i.jpg done fi done
Modifiez simplement les deux premières variables qui sont :
videowaitdir : répertoire des vidéos
capturedir : répertoire des miniatures
Vous avez aussi une variable numberscreens qui détermine le nombre de screens à faire de la vidéo.
N'oubliez pas de modifier les permissions pour exécuter le bash :
chmod +x captures.sh
Le script est assez simple à comprendre, on liste les vidéos du dossier, on utilise ffmpeg pour récupérer le temps de la vidéo et on détermine à quels moments on doit faire les screens.
N'hésitez pas si vous avez des suggestions.
Consulter les message du boot sur Debian
J'ai récement eu besoin de consulter les messages retournés par les services lors du boot sur Debian mais impossible de trouver quoi que ce soit dans les fichiers de logs.
Après quelques recherche il s'est avéré qu'il faut activer une option pour loger les sorties dans un fichier.
Pour les activer, ouvrez le fichier :
/etc/default/bootlogd
Puis remplacez la valeur de BOOTLOGD_ENABLE par Yes.
# Run bootlogd at startup ? BOOTLOGD_ENABLE=Yes
Vous pouvez désormais consulter les logs du boot dans le fichier
/var/log/boot
Et voici un exemple de contenu :
Thu Jul 5 15:05:08 2012: Configuring network interfaces...done.
Thu Jul 5 15:05:09 2012: Cleaning up temporary files....
Thu Jul 5 15:05:09 2012: Setting sensors limits.
Thu Jul 5 15:05:09 2012: Setting kernel variables ...done.
Thu Jul 5 15:05:09 2012: INIT: Entering runlevel: 2
Thu Jul 5 15:05:09 2012: Using makefile-style concurrent boot in runlevel 2.
Thu Jul 5 15:05:09 2012: Starting enhanced syslogd: rsyslogd.
En espérant que ça vous permettre de résoudre vos soucis !
Installer Red5 sur Debian Squeeze
Aujourd'hui c'est un tutoriel pour installer Red5, un équivalent de Flash Media Server de Adobe. J'utilise red5 dans le cadre d'un projet de publication de vidéo et audio en streaming.
J'utilisais jusqu'à aujourd'hui la version 0.9.1 disponible sur les dépôts Debian, mais je rencontrait quelques soucis donc j'ai préféré passer la dernière version 1.0 RC.
J'en ai profité pour écrire un petit tutoriel vous permettant d'effectuer cette installation. Je partagerais probablement quelques codes flash pour publier des flux vidéo (webcam) en utilisant red5 un jour !
Installer Red5 sur Debian Squeeze
Ajouter PureFTP dans fail2ban
Fail2ban est un excellent framework permettant d'éviter ou du moins limiter les intrusions sur votre serveur. Voici la procédure pour ajouter le serveur ftp PureFTP dans les règles fail2ban. En ajoutant cette règle votre adresse ip peut se retrouver filtré à partir de trois echecs de connexion pendant 10 minutes (par défaut), faites donc attention à vos test !
Ajoutez au fichier /etc/fail2ban/jail.conf dans la section FTP servers de préférence le contenu suivant :
[pure-ftpd] enabled = true port = ftp,ftp-data,ftps,ftps-data filter = pure-ftpd logpath = /var/log/messages maxretry = 3
Cette section vas permettre à fail2ban de filtrer (interdire) les ports 21, 20, 990 et 989 en cas de détection d'echec de login dans le fichier /var/log/messages (logs par défaut de PureFtpd)
Le fichier /etc/fail2ban/filter.d/pure-ftpd.conf est normalement crée par défaut sur votre machine, vérifiez son contenu. Il doit ressembler à celà :
# Fail2Ban configuration file # # Author: Cyril Jaquier # Modified: Yaroslav Halchenko for pure-ftpd # # $Revision: 3$ # [Definition] # Error message specified in multiple languages __errmsg = (?:Authentication failed for user|Erreur d'authentification pour l'utilisateur) # # Option: failregex # Notes.: regex to match the password failures messages in the logfile. The # host must be matched by a group named "host". The tag "<HOST>" can # be used for standard IP/hostname matching and is only an alias for # (?:::f{4,6}:)?(?P<host>[\w\-.^_]+) # Values: TEXT # failregex = pure-ftpd(?:\[\d+\])?: \(.+?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]\s*$ # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT # ignoreregex =
Il s'agit de regex permettant de récupérer l'adresse IP d'un echec de connexion à votre serveur ftp.
Pour tester si votre regex est correcte, vous pouvez exécuter la commande suivante après avoir de préférence effectué une mauvaise connexion à votre serveur ftp.
# Test de la regex fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/pure-ftpd.conf
Vous devriez retrouver votre adresse IP dans "Addresses found".
Il faut ensuite re-démarrer le service fail2ban :
# On rédémarre /etc/init.d/fail2ban restart
Pour vérifier si le filtre à bien été pris en compte, vous pouvez utiliser la commande suivante :
# Test cat /var/log/fail2ban.log |grep pure-ftpd
Et vous devriez avoir le résultat suivant :
2012-03-27 10:23:10,041 fail2ban.jail : INFO Creating new jail 'pure-ftpd' 2012-03-27 10:23:10,041 fail2ban.jail : INFO Jail 'pure-ftpd' uses poller 2012-03-27 10:23:10,051 fail2ban.jail : INFO Jail 'pure-ftpd' started
Et voilà votre serveur ftp est maintenant géré par fail2ban !
Savoir quel programme à ouvert quel port
Voici une astuce bien pratique permettant de retrouver un programme qui peux par exemple vous déranger et donc vous permettre de le killer.
Dans mon cas j'ai souhaité savoir quel programme écoutait sur le port 80 (http) de mon ordinateur.
Sous Windows
Pour ouvrir l'invite de commande cliquez sur démarer puis exécuter (ou directement dans le champ texte) puis entrez "cmd" dans la fenêtre qui s'est ouverte.
Vous validez, la fenêtre se ferme et une autre s'ouvre à vous !
Dans cette console, vous devez écrire les deux commandes suivantes permettant de récupérer la liste des connexions actives et ensuite de filtrer avec le port que vous recherchez.
# Remplacez ":80" par le port que vous souhaitez rechercher netstat -ano | find ":80"
Vous pouvez ensuite apercevoir le résultat de votre commande.
Une petite explication des colonnes :
1 - Le type de connexions (TCP ou UDP)
2 - Adresse / Port locale de connexion
3 - Adresse / Port distante
4 - L'état de la connexion
5 - Le numéro du processus correspondant
Pour savoir si un port est à l'écoute il suffit de regarder dans la quatrième colonne si l'état est "LISTENING". Par exemple dans la capture d'écran les ports 80 et 8002 sont à l'écoute.
Il suffit ensuite de récupérer le numéro du processus et de regarder dans le "tasklist".
# N'oubliez pas de remplacer le numéro de votre processus tasklist | find "3952"
Vous pouvez désormais récupérer le nom du processus ("httpd.exe" correspondant à apache dans l'exemple) dans la première colonne du résultat.
Sous Linux
Sous linux c'est toujours avec la commande netstat seulement c'est beaucoup plus simple car le résultat de cette commande est plus complet.
Pour récupérer la liste des ports et programmes qui écoute il vous suffit simplement d'utiliser cette commande :
# Remplacez :www par votre protocole ou le port souhaité netstat -lpt | grep LISTEN | grep :www
Et dans la dernière colonne on remarque que c'est apache2 qui écoute sur le port 80.
En espérant vous avoir été utile !
Recevoir gratuitement des CDs de Ubuntu
Utiliser ubuntu c'est bien -mais c'est pas le débat- ! Seulement pas toujours facile de trouver les CDs/exécutables à utiliser afin de l'installer sur sa station !
Sachez que vous pouvez -depuis maintenant très longtemps- commander gratuitement des CDs des versions Ubuntu ainsi que quelques autocollants