FreeBSD 10.0 sur une Raspberry Pi rev. B

Voici comment “bsdifier” votre Raspberry :

  1. Téléchargez l’image : FreeBSD-10.0-STABLE-arm-armv6-RPI-B-20140127-r261200.img.bz2 ou plus récente sur un miroir FreeBSD
  2. Copier l’image sur votre SD avec dd : bunzip2 -c FreeBSD-10.0-STABLE-arm-armv6-RPI-B-20140127-r261200.img.bz2 | dd of=/dev/votresd bs=1M
  3. Une fois la BSD en ligne :
    1. SSH sera lancé
    2. Le compte root n’as pas de mot de passe (vous ne pourrez pas vous y connecter en ssh sans changer le mot de passe)
    3. Le clavier est en qwerty
    4. L’interface réseau est en DHCP

Si vous voulez faire l’image vous même, voici un article (en anglais) qui explique comment procéder et comment compiler le kernel : Creating a custom FreeBSD build for Raspberry Pi

Motion – envoyer les videos sur Google Drive

J’ai mit en place Motion sur ma Raspberry PI pour faire un système de vidéo surveillance qui enregistre une vidéo uniquement lorsqu’il y a un mouvement. Pour cela, j’ai installé Raspbian sur ma Raspberry PI puis le packet motion après avoir branché une webcam compatible en USB. Pour que le script fonctionne, vous devez installer ffmpeg et python-gdata. ffmpeg - Multimedia player, server, encoder and transcoder (transitional package) Je l’utilise pour ré-encoder l’avi généré python-gdata - Google Data Python client library Descriptions des fichiers utilisé /etc/motion/motion. [Lire]

Offloading SSL avec Nginx

Configuration de base pour effectuer de l’offloading SSL avec Nginx.

Les header défini avec proxy_set_header pourront être utilisé au niveau du backend pour effectuer, par exemple, des redirection http vers https

server {
  listen   443 ssl; ## listen for ipv4
  server_name domaine.ltd;
  ssl                     on;
  ssl_prefer_server_ciphers on;
  ssl_protocols           SSLv3 TLSv1 TLSv1.1 TLSv1.2; #libssl > 1.0
  ssl_ciphers             RC4:HIGH:!MD5:!ADH:+DH; #HIGH:!ADH:!MD5:@STRENGTH;
  ssl_session_cache       shared:TLSSL:16m;
  ssl_session_timeout     10m;
  ssl_certificate         /etc/nginx/domaine.ltd.crt;
  ssl_certificate_key     /etc/nginx/domaine.ltd.key;

  location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-By $server_addr:$server_port;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://backend;
  }

}

Article complémentaire : Redirection http vers https derrière un reverse proxy

Redirection http vers https derrière un reverse proxy

Pour que cela fonctionne, le reverse proxy doit définir dans le header X-Forwarded-Proto si la requête était en http ou https

La règle de réécriture apache pour forcer l’https :

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule / https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

Ou au contraire si l’on veut forcer en http :

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !http
RewriteRule / http://%{SERVER_NAME}%{REQUEST_URI} [L,R]

Article complémentaire : Offloading SSL avec Nginx

Mapper correctement un clavier US International Mac

Il y a plusieurs manière de procéder Modification global pour tous les utilisateurs Ajouter dans le fichier /etc/X11/xinit/xinitrc # fix keyboard layout switching §± and `~ xmodmap -e "keycode 49 = section plusminus section plusminus section plusminus" xmodmap -e "keycode 94 = grave asciitilde grave asciitilde dead_grave dead_horn" Configuration pour votre utilisateur Editer ou créé le fichier ~/.Xmodmap pour y ajouter # fix keyboard layout switching §± and `~ keycode 94=grave asciitilde grave asciitilde dead_grave dead_horn keycode 49=section plusminus section plusminus section plusminus3 Configuration pour votre session (valide jusqu’au redémarrage de X) Exécuter dans un terminal [Lire]

Configurer Google Analytiques dans OpenPhoto

Activer le plugin Éditer votre fichier de configuration : src/userdata/configs/[OpenPhotoDomainName].ini ajouter activePlugins = "GoogleAnalytics" Pour activer plusieurs plugins, il faut les listé en les séparant par une virgule Configuration du plugin Apres avoir consulté le code source car, il la CLI pour configurer cela n’est pas encore développé, j’ai découvert, qu’il faut simplement ajouter dans le fichier (créé les dossier manquant et le fichier) : src/userdata/plugins/[OpenPhotoDomainName].GoogleAnalytics.ini une ligne contenant votre id de la maniere suivante : [Lire]

Centralisation des logs Nginx avec Rsyslog

Configuration de rsyslog coté nginx Créer le fichier de configuration /etc/rsyslog.d/nginx.conf pour y placer $ModLoad imfile $InputFileName /var/log/nginx/access.log $InputFileTag nginx_access_log: $InputFileStateFile nginx_access_log $InputFileSeverity info $InputFileFacility user $InputRunFileMonitor $InputFileName /var/log/nginx/error.log $InputFileTag nginx_error_log: $InputFileStateFile nginx_error_log $InputFileSeverity info $InputFileFacility user $InputRunFileMonitor # lit le fichier de log toutes les deux secondes $InputFilePollingInterval 2 #envoie les logs en tcp a 192.1.2.3 port 514 if $syslogtag == 'nginx_access_log:' then @@(z9)192.1.2.3:514 if $syslogtag == 'nginx_error_log:' then @@(z9)192. [Lire]

Analyser les requêtes MySQL

Percona a développé un outils permettant de parser les logs tcpdump et les slow query MySQL. Cela nous permet donc de pouvoir rapidement localiser les requêtes lentes. Pour avoir le top10 des requêtes lentes en " direct " via tcpdump : tcpdump -i en0 port 3306 -s 65535 -c 10000 -x -n -q -tttt | pt-query-digest --type tcpdump --report-format=profile --limit=10 Via le slow query log : pt-query-digest --limit=10 /var/log/mysql/slow.log Installation : https://www. [Lire]

Configuration de Varnish

Mise en place du dépôt Varnish et installation Pour cela, il faut : Installer la clef PGP du dépôt Varnish Ajouter le dépôt Varnish Installer Varnish curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add - echo "deb http://repo.varnish-cache.org/debian/ $(lsb_release -s -c) varnish-3.0" >> /etc/apt/sources.list.d/varnish.list apt-get update apt-get install varnish``` # Activation de varnish et configuration du port 80 a la place du port 6081 ```sh sed -i "#START#s#no#yes#" /etc/default/varnish- sed -i "s#-a :6081#-a :80#" /etc/default/varnish sed -i "s#/etc/varnish/default. [Lire]