Tuto & Astuces

CGI et Python dans ma Raspberry

CGI et Python Tout d’abord, il faut installer mod_python : # apt-get install libapache2-mod-python Puis, on active le module python et on vérifie que le module CGI le soit bien : # a2enmod python Module is already enabled # a2enmod cgi Module is already enabled On modifie le fichier /var/www/index.html fourni de base, pour qu’il ressemble à ceci : <HTML> <HEAD><TITLE>Exercice avec Python</TITLE></HEAD> <BODY> <DIV ALIGN="center"> <H2>Page Web interactive</H2> <P>Cette page est associ&eacute;e &agrave; un script Python</P> <FORM ACTION="cgi-bin/test.py" METHOD="post"> <INPUT TYPE="submit" NAME="send" VALUE="Ex&eacute;cuter le script"> </FORM> </DIV></BODY></HTML> Ensuite, on crée le script python qui fait un simple print : #! /usr/bin/env python # -*- coding: utf-8 -*- # Affichage d'un formulaire HTML simplifié : print "Content-Type: text/html" print """ <H3><FONT COLOR="Royal blue"> Page web produite par un script Python </FONT></H3> """ Maintenant, il s’agit d’activer les cgi dans la configuration de Apache, en modifiant le fichier /etc/apache2/sites-available/default : ScriptAlias /cgi-bin/ /var/www/cgi-bin/ <Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch …

Lire la suite »

Programme de demain mercredi

Programme de demain Voilà bientôt 3h que je suis en train de faire une installation de Raspbian en passant par l’installeur, en gros, comme si vous mettiez un CD dans votre ordinateur pour faire l’installation. Les avantages : on choisit vraiment ce qu’on veut installer, et le système est moins pollué.Les inconvénients : c’est looooong. Donc dans la journée je tacherais de vous faire un tuto clair pour installer une framboise orientée serveur. Sur ce, moi je termine ce qui est en cours, je fait vite une sauvegarde de ma carte SD, et dodo. À lire aussi : Hygiène informatique et DocumentRoot

Lire la suite »

Hygiène informatique et DocumentRoot

DocumentRoot On me demandait ce matin un coup de main sur une erreur Apache.Cela m’a de suite fait penser au colloque qui a eu lieu le 16 mai 2013.Je suis tombé dessus par hasard sur LCP. A l’initiative du Sénateur Jean-Marie Bockel, la Commission des Affaires étrangères, de la Défense et des Forces armées du Sénat discutaient sur le thème de la cyberdéfense.Ils y ont présenté l’état actuel et les perspectives en matière de protection et de défense des systèmes d’information suite à la publication du nouveau Livre blanc sur la défense et la sécurité nationale.J’ai particulièrement apprécié l’intervention du Contre-amiral Arnaud COUSTILLIERE (officier général à la cyberdéfense à l’état-major des armées). Tout cela pour dire que j’ai aussitôt pensé à un terme qui m’a plu : l’hygiène informatique.Et pour information, la solution au problème de ce matin était très simple : find /var/www -type f -exec chmod 644 {} ; && find /var/www -type d -exec chmod 755 {} …

Lire la suite »

Une pseudo MOTD couleur framboise

MOTD Ça vous tente un petit message comme cela lors de votre login : Pour cela, il faut créer/éditer le fichier .bash_profile qui est dans votre home et y coller ceci : let upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)" let secs=$((${upSeconds}%60)) let mins=$((${upSeconds}/60%60)) let hours=$((${upSeconds}/3600%24)) let days=$((${upSeconds}/86400)) UPTIME=`printf "%d days, %02dh%02dm%02ds" "$days" "$hours" "$mins" "$secs"` # get the load averages read one five fifteen rest < /proc/loadavg echo "$(tput setaf 2) .~~. .~~. `date +"%A, %e %B %Y, %R"` '. ' ' / .' `uname -srmo`$(tput setaf 1) .~ .~~~..~. Uptime.............: ${UPTIME} : .~.'~'.~. : ~ ( ) ( ) ~ Memory.............: $((`cat /proc/meminfo | grep MemFree | awk {'print $2'}`/1024))MB (Free) / $((`cat /proc/meminfo | grep MemTotal | awk {'print $2'}`/1024))MB (Total) ( : '~'.~.'~' : ) Load Averages......: ${one}, ${five}, ${fifteen} (1, 5, 15 min) ~ .~ ( ) ~. ~ Running Processes..: `ps ax | wc -l | tr -d " "` ( : '~' : ) Temperature........: `vcgencmd …

Lire la suite »

Ma framboise va plus vite

Framboise Bon, ok, pour le moment, nous n’avons pas configurer ni Apache, ni MySQL. Avant cela, nous allons booster un peu plus notre Raspberry. 1. Remplacer OpenSSH  par DropBear Le simple fait de remplacer OpenSSH par DropBear nous permettra de gagner environ 10Mb de mémoire. On installe donc le client openssh et DropBear. root@raspi:/home/idem# apt-get install dropbear openssh-client On configure Dropbear au travers du fichier /etc/default/dropbear : # disabled because OpenSSH is installed # change to NO_START=0 to enable Dropbear NO_START=0 # the TCP port that Dropbear listens on DROPBEAR_PORT=22 # any additional arguments for Dropbear # Interdire els connexion root # et les connexion avec mot de passe #DROPBEAR_EXTRA_ARGS="-w -s" # # Interdire les connexion root DROPBEAR_EXTRA_ARGS="-w" On peut maintenant arrêter le serveur Ssh et lancer le serveur Dropbear : puis on arrête le service SSH. root@raspi:/home/idem# /etc/init.d/ssh stop root@raspi:/home/idem# /etc/init.d/dropbear start 2. Modifier le Swap Plusieurs tests ont révélés que notre Framboise est plus performant lorsqu’elle utilise plus …

Lire la suite »

Ma framboise est un serveur

Serveur On continue l’article précédent, parce que ça n’est pas tout. Bon, je l’ai deja écrit dans un billet, mais je le répète quand même avec quelques mises à jour. 1. Sécurisation SSH On serre un peu la vis du SSH avec le fichier /etc/ssh/sshd_config. Pour cela, on va interdire l’accès au root et autoriser que les membres d’un groupe à se connecter : ... PermitRootLogin no AllowGroups staff Protocol 2 ... 2. Sécurisation Fail2ban Maintenant, on installe fail2ban et créer des règles pour contrer les petits malins. Ce service va donc lire les fichiers logs, repérer les échecs d’identification et les adresses IP correspondantes, les bloquer avec une règle iptables et vous envoyer un mail pour vous avertir. root@raspi:/home/idem# aptitude -R install fail2ban Maintenant, on passe à la configuration. Tout d’abord le fichier /etc/fail2ban/jail.conf . Je modifie l’action par défaut : action = %(action_mwl)s Qui correspond à : action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"] Ensuite …

Lire la suite »

Ma Framboise devient un serveur

Serveur Voilà, une fois mon Wifi fonctionnel, je vais pouvoir passer à la suite. 1. Faire un peu de ménage dans les packages On peut commencer par virer tout ce qui se rapporte au serveur X, puisqu’on n’en aura pas l’utilité, et surtout par sécurité : root@raspi:/home/pi# aptitude purge xserver-xorg xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev xserver-xorg-input-synaptics xserver-xorg-video-fbdev xserver-common xpdf xinit x11-common x11-utils x11-xkb-utils xarchiver screen pcmanfm penguinspuzzle lxde-common lxappearance lxde-icon-theme lxinput lxmenu-data lxpanel lxpolkit lxrandr lxsession lxsession-edit lxshortcut lxtask lxterminal leafpad dillo galculator gnome-icon-theme gnome-themes-standard gnome-themes-standard-data gpicview hicolor-icon-theme gvfs-common libgtk-3-0 libgtk2.0-0 libproxy0 lightdm lightdm-gtk-greeter lxde lxde-core midori openbox squeak-vm zenity kdebase-bin tk8.5 xdg-utils glib-networking-common glib-networking-services gvfs-daemons libgtk-3-common libgtk2.0-common obconf Un dernier coup de ménage pour purger tous les paquets dont il ne reste plus que les fichiers de configuration. Avec aptitude c’est très simple avec la commande aptitude purge ~c (ou aptitude purge ?config-files). Par sécurité, on remplacera purge par search avant pour visualiser uniquement la liste des paquets concernés : aptitude …

Lire la suite »

Configuration Wifi de la Framboise

Ça serait pas mal que ma Framboise se connecte au réseau Wifi de la maison, ou du bureau pour bosser dessus pendant ma pause déjeuner. Rien de plus simple. Votre Point d’Accès à la maison est en WPA, son nom est MAISON et le mot de passe est PasseMaison. Votre Point d’Accès au bureau est en WPA, son nom est BUREAU et le mot de passe est PasseBureau. Il faut générer les 2 passphrases : root@raspberrypi:/home/pi# wpa_passphrase MAISON PasseMaison network={ ssid="MAISON" #psk="PasseMaison" psk=26a3ab9359ef81b01ddb7e267e6f46d70f38d5b42d0c8ae2daac7556cc8fe63c } root@raspberrypi:/home/pi# wpa_passphrase BUREAU PasseBureau network={ ssid="BUREAU" #psk="PasseBureau" psk=8f2b58745ecc34c7cebffce7470f8f068cfe23b9663a6fd91e38200f6049c40a } Maintenant, il faut modifier le fichier des interfaces réseau, /etc/network/interfaces : allow-hotplug wlan0 auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf pre-up wpa_supplicant -B w -D wext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf post-down killall -q wpa_supplicant Puis renseignons le fichier /etc/wpa_supplicant/wpa_supplicant.conf : ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="BUREAU" proto=WPA RSN scan_ssid=1 key_mgmt=WPA-PSK pairwise=CCMP TKIP group=CCMP TKIP psk=8f2b58745ecc34c7cebffce7470f8f068cfe23b9663a6fd91e38200f6049c40a …

Lire la suite »

Nouvelle installation Raspberry PI

Raspberry Pi Alors voilà, j’ai reçu (enfin) ma nouvelle carte SD pour ma framboise, mais du coup, je vais devoir tout recommencer. En même temps, faire et défaire, … . Alors on récapitule les étapes : 1. On copie la Raspbian sur sa carte SD en utilisant Win32 Disk Imager 2. On boot dessus avec notre Framboise 3. On se connecte en root (Password: raspberry) 4. Configurer sa Framboise avec raspi-config info : affiche les info du système expand_rootfs : L’image de Raspbian fait 2Go, si votre carte SD en fait 32 alors vous perdez 30 Go, pour que Raspbian étende tout le système sur la carte SD, utiliser cette option overscan : permet lors de l’affichage sur un écran de décaler les bords de l’images par rapport aux bords de l’écran configure_keyboard : configure le clavier change_pass : change le mot de passe de l’utilisateur root change_locale : change la zone dans la quelle vous vous trouvez change_timezone : …

Lire la suite »

Oracle et les comptes Lockés

Oracle Je vous préviens, ça va être la journée des pense-bêtes… du coup, je vais créer la catégorie. Pour délocker un compte que #lesgens ont locké … : SQL> ALTER USER username ACCOUNT UNLOCK; À lire aussi : Pense-bête UID/GID

Lire la suite »

Pense-bête UID/GID

UID/GID Un petit aide mémoire (parce qu’avec l’âge, ça ne s’arrange pas) pour changer l’uid et gid d’un compte. # usermod -u nouvel_uid login_utilisateur Attention, le nouvel uid ne doit pas déjà exister ! De plus les uid < 1000 sont souvent utilisés par le système (www-data entre autre). Il ne faut pas non plus que l’utilisateur soit loggé au moment du changement d’uid. Même principe pour changer le gid d’un groupe : # groupmod -g nouveau_gid nom_groupe À lire aussi : Oracle et les comptes Lockés

Lire la suite »

Varnish my blog

Il y a quelques mois, j’ai mis en place un outils très intéressant : Varnish Varnish est un accélérateur de sites Web fonctionnant sur le principe d’un reverse proxy. Varnish va prendre en charge les requêtes HTTP venant des clients et transmettre les demandes au serveur Web, uniquement lorsque cela est nécessaire. Il s’installe donc en frontend (devant) un ou plusieurs serveurs web afin d’intercepter les requêtes HTTP et, si possible, fournir une réponse directement depuis son cache, sans devoir interroger les serveurs web. [KGVID poster= »https://www.hamida.info/wp-content/uploads/2013/04/Varnish-Cache_thumb105.jpg » width= »480″ height= »270″][/KGVID]Pour l’installer : apt-get update aptitude install varnish Récuperer un fichier de config pour WordPress default.vcl de Jeremm’s et copier le à la place du fichier /etc/varnish.default.vcl Activer le démarrage automatique de varnish dans le fichier /etc/default/varnish : START=yes Modifier(ajouter surtout)  la configuration des LogFormat dans le fichier /etc/apache2/apache2.conf : LogFormat "%{X-Forwarded-For}i %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" varnishcombined Faites le test sur une page dynamique sans utilisation du Varnish : ab -t 30 -c 5 https://www.hamida.info/ Requests per second:    0.76 [#/sec] (mean) Time per request:       6609.683 [ms] (mean) Time per request:       1321.937 [ms] (mean, across all concurrent requests) Transfer rate:          127.78 [Kbytes/sec] received Connection Times (ms) min  mean[+/-sd] median   max Connect:        0    2   4.9      0      14 Processing:  5697 6022 194.3   6044    6418 Waiting:     5689 6021 195.5   6044    6418 Total:       5704 6024 193.4   6044    6418 Refaite la même opération en utilisant …

Lire la suite »

Ménager et protéger RaspBerry Pi

Raspberry Pi Vous n’utilisez pas le serveur X de votre framboise, et c’est normal pour un serveur domotique. Je vous propose donc de supprimer tous les paquets qui ne servent pas : # aptitude purge xserver-xorg xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev xserver-xorg-input-synaptics xserver-xorg-video-fbdev xserver-common xpdf xinit x11-common x11-utils x11-xkb-utils xarchiver screen pcmanfm penguinspuzzle lxde-common lxappearance lxde-icon-theme lxinput lxmenu-data lxpanel lxpolkit lxrandr lxsession lxsession-edit lxshortcut lxtask lxterminal leafpad dillo galculator gnome-icon-theme gnome-themes-standard gnome-themes-standard-data gpicview hicolor-icon-theme Un dernier coup de balai s’impose dans les fichiers de configuration : # aptitude purge Enfin, on installe localepurge pour faire de la place dans les fichier de locales et on l’execute : # aptitude -R install localepurge && localepurge Voila pour la partie ménage. Attelons nous maintenant à la partie sécurité. Rien de bien terrible, mais cela fait partie de mes habitudes. Tout d’abord, on serre un peu la vis du SSH avec le fichier /etc/ssh/sshd_config. Pour cela, on va interdire l’accès au root et autoriser que …

Lire la suite »

Partage Samba et RaspBerry

Allez, en prime, en 2 minutes chrono, comment mettre en place les partages samba sur votre framboise… Tout d’abord, on installe les packages nécessaires : # apt-get install samba samba-common-bin  samba-common Ensuite on configure samba au travers du fichiers /etc/samba/smb.conf : [global] log file = /var/log/samba/log.%m guest account = nobody name resolve order = "lmhosts host wins bcast" status = yes socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192 preserve case = 1 store dos attributes = 1 delete veto files = 1 guest ok = yes follow symlinks = 1 domain master = yes encrypt passwords = true #hosts allow = 192.168.25. wins support = yes netbios name = raspi server string = %h dos charset = CP437 workgroup = DOMOTIC syslog only = no os level = 34 syslog = 0 security = user preferred master = yes unix charset = UTF-8 max log size = 256 domain logons = no log level = 0 auth:2 #======================= Share Definitions ======================= [homes] …

Lire la suite »

Apache et PHP dans votre framboise

Apache et PHP Tout d’abord, nous devons configurer la partie réseau de notre RaspBerry. Rassurez-vous, il s’agit là uniquement du minimum « vital ». Tout d’abord, définir le nom de notre RaspBerry (je l’appellerais raspi): # echo "raspi" >> /etc/hostname # hostname -F /etc/hostname Modifier le fichier /etc/hosts en commentant la référence à l’adresse 127.0.1.1 et modifiant l’ordre des noms : 127.0.0.1 localhost.localdomain raspi.priv8.fr raspi ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters #127.0.1.1 raspberrypi Nous allons installer Apache (un serveur HTTP permettant de publier du contenu Html sur le web), PHP (langage serveur permettant le traitement dynamique d’informations) et MySQL (une base de données). #apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql mysql-client php-pear Tout d’abord, activons la partie SSL. Pour cela, il faut éditer le fichier /etc/apache2/ports.conf : NameVirtualHost *:80 NameVirtualHost *:443 Listen 80 Listen 443 Listen 443 Ensuite, nous activons les modules Apache (mod ssl pour activer les connexions sécurisées par ssl,rewrite pour permettre  l’url writing) …

Lire la suite »

Premier pas avec sa Framboise

Framboise Alors voila, vous avez votre RaspBerry toute belle, branchée à votre réseau… La première étape consiste à la mettre à jour, et pour cela, rien de plus simple : # apt-get update # apt-get upgrade Cette étape est très importante avant de continuer à travailler avec votre RaspBerry, donc indispensable!!! À lire aussi : Apache et PHP dans votre framboise

Lire la suite »

DropSync ou comment gèrer la synchro de sa dropbox

Pour ajouter des repertoires à synchriniser avec dropbox, je vous conseille l’application Android dropsync. Sauf que voilà, on ne peut synchroniser qu’un seul répertoire. Pour la version full, il faut payer. Moins de 4 euros, ok….mais pour ceux qui ne veulent pas, voici une astuce. Il suffit de saisir un code composé de 9 caractères…mais le cinquième devra être la lettre E. Avec cette astuce vous disposerez de la version pro de dropsync. À lire aussi : Mise à jour officielle Samsung SG2 GT-I9100 en version ICS 4.0.3

Lire la suite »

Mise à jour officielle Samsung SG2 GT-I9100 en version ICS 4.0.3

ICS 4.0.3 On reprend le même, et on recommence… Avant tout, faites des sauvegardes. Pour vos Contacts et SMS, je vous conseille Super Backup, et pour vos applications, il n’y a pas photo, c’est Titanium Je vous conseille même d’acheter ce dernier en version Pro, pour 5 euros, c’est pas la fin du monde….Vos sauvegardes réalisées…on peut commencer. 1. Effectuer un Full Wipe (effacement complet des données système) Eteignez, puis redémarrez votre téléphone en mode recovery : Volume Haut + Home + Power. Dès que le logo de Samsung apparait, relâchez tout. Naviguez avec le bouton Volume et sélectionnez à l’aide du bouton Home: wipe data/factory reset puis wipe cache A chaque fois sélectionnez “Yes”. Faites un retour au menu principal et sélectionnez maintenant: “Advanced“, puis “wipe dalvick cache“. Voila votre Full Wipe est maintenant complet. 2. Installer maintenant {Odin} sur votre ordinateur. 3. Télécharger le firmware officiel pour le i9100:  I9100XXLPQ (4.0.3). Décompressez le. 4. Télécharger le Modem. 5. Télécharger …

Lire la suite »

Bind9 Chrooté sur DEBIAN

Sur les Kimsufi OVH, Bind9 est déja installé, mais il n’est pas chrooté. Definition chrooté : Cette commande permet d’isoler l’exécution d’un programme et d’éviter ainsi la compromission complète d’un système lors de l’exploitation d’une faille. Si un pirate utilise une faille présente sur l’application chrootée, il n’aura accès qu’à l’environnement isolé et non pas à l’ensemble du système d’exploitation. Cela permet donc de limiter les dégâts qu’il pourrait causer. Nous allons donc arrêter puis reconfigurer le service Bind. # /etc/init.d/bind9 stop On édite le fichier /etc/default/bind9 et on remplace la ligne OPTIONS par: OPTIONS="-u bind -t /var/lib/named" On crée les répertoires nécessaires : # mkdir -p /var/lib/named/etc # mkdir /var/lib/named/dev # mkdir -p /var/lib/named/var/cache/bind # mkdir -p /var/lib/named/var/run/bind/run # mkdir /etc/bind/zones # mkdir /etc/bind/zones/master/ # chown -R bind:bind /etc/bind/zones on deplace les fichiers de config et on cree un lien symbolique vers leur emplacement d’origine : # mv /etc/bind /var/lib/named/etc # ln -s /var/lib/named/etc/bind /etc/bind on crée les null et …

Lire la suite »

Martin, je tcpdump :)

On a toujours besoin pour identifier la cause d’un incident de faire un peu de capture réseau. Cela est possible grâce à des outils Unix/Linux, notamment tcpdump et wireshark. 1ère étape : Capture du traffic tcpdump [ -adeflnNOpqRStuvxX ] [ -c count ] [ -C file_size ] [ -F file ] [ -i interface ] [ -m module ] [ -r file ] [ -s snaplen ] [ -T type ] [ -U user ] [ -w file ] [ -E algo:secret ] [ expression ] tcpdump -i eth0 -Xvvnns0 -w /tmp/20120501.cap L’option -i doit indiquer l’interface réseau que vous souhaitez analyser (ici eth0). L’option -w est utilisée pour stocker le résultat dans un fichier (/tmp/20120501.cap). L’option -vv pour être en mode « more verbose ». L’option -X indique si le paquet doit être affiché en hexa ou en ascii, ou les deux. 2ème étape : Analyse des packets Lancer l’application wireshark, disponible sous Windows, Linux, Android etc… Cliquez sur File -> Open -> sélectionnez le fichier que vous venez de générer via tcpdump. Vous pouvez maintenant appliquer vos filtres. Petites astuces, pour suivre toute une communication TCP, faites un clic droit -> Follow TCP stream au niveau de la …

Lire la suite »