Monter un serveur sur dreamplug



Documents pareils
Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Serveur proxy Squid3 et SquidGuard

Mise en place d un serveur Proxy sous Ubuntu / Debian

Installer un gestionnaire de parc GLPI sous Linux

Configuration de SquidGuard sous Fedora Core 4-1 / 6 -

Projet de mise en œuvre d un serveur ftp sur serveur dédié

Installation et Configuration de Squid et SquidGuard sous Debian 7

But de cette présentation. Proxy filtrant avec Squid et SquidGuard. Serveur proxy. Serveur proxy. Hainaut P

Tutoriel compte-rendu Mission 1

installer_un_serveur_debian - Documentation Ubuntu Francophone Installation complète d'un serveur web sous Debian 6.0

Serveur Mandataire SQUID

Mise en place d un proxy Squid avec authentification Active Directory

Le protocole FTP (File Transfert Protocol,

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Procédure d'installation

PROXY SQUID-SQARD. procédure

OpenMediaVault installation

TP PLACO. Journées Mathrice d'amiens Mars 2010

MISE EN PLACE D UN FIREWALL ET D UN SERVEUR PROXY SOUS LINUX MANDRIVA.

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

MANUEL D INSTALLATION D UN PROXY

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

Installer un serveur web de développement avec VirtualBox

Raspberry pi : Développer une petite application web sur Raspberry

Les réseaux des EPLEFPA. Guide «PfSense»

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Virtualisation d un proxy Squid gérant l authentification depuis Active Directory. EPI - Stagiaire2007 Vivien DIDELOT

Mise en place d'un serveur FTP avec vsftpd / pureftpd sous netbsd 3.1. Compte-rendu

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

BTS SIO Dossier BTS. PURCHLA Romain

Serveur de messagerie sous Debian 5.0

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Maintenir Debian GNU/Linux à jour

INSTALLATION DEBIAN 7 (NETINSTALL) SUR VM

LINUX REMPLAÇANT WINDOWS NT

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

Installation du serveur WEB Apache ( MySQL, PHP) sous Debian 7.

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Configuration matériel. Tâche 2 : Installation proprement dite de l application sur un serveur de test virtualisé sous VmWare Workstation.

Installation d'un serveur sftp avec connexion par login et clé rsa.

Sauvegarde automatique des données de GEPI

CASE-LINUX MAIL - ROUNDCUBE

Documentation FOG. Déploiement d images de systèmes d exploitation à travers le réseau.

Installation de Zabbix

Ce qu'il faut savoir: L'outil de sauvegarde Bacula, peut exploiter 3 moyens différents:

Personnes ressources Tice. Académie de Rouen

Ce manuel vous accompagne au long des procédures d installation et de restauration de PheBuX 2004 [alternative solutions]

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

GLPI OCS Inventory. 1. Prérequis Installer un serveur LAMP : apt-get install apache2 php5 libapache2-mod-php5 apt-get install mysql-server php5-mysql

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Installer et configurer un serveur Zimbra

FreeNAS Shere. Par THOREZ Nicolas

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

Déploiement d'un serveur ENT

TP SECU NAT ARS IRT ( CORRECTION )

MANUEL UTILISATEUR KIWI BACKUP V 3

PROCÉDURE D'INSTALLATION

Supervision avec OCS Inventory NG

Installation d un Serveur de Messagerie

Un serveur web, difficile?

Projet Semestre2-1SISR

TP Service HTTP Serveur Apache Linux Debian

Installation d un superviseur ZABBIX

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

DHCPD v3 Installation et configuration

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Mise en place des TPs Réseau en machines virtuelles. Utilisation de VmPlayer

1 INTRODUCTION 2 2 PRE-REQUIS Export du certificat du serveur Date et heure du système Téléchargement du logiciel du terminal 2

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

SSH. Romain Vimont. 7 juin Ubuntu-Party

windows. deb etch main deb-src etch main

Table des matières. Serveur Mesnil Administration. Rédacteur : Jean-Louis Cech Date création : 10 Avril 2008

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Projet Administration Réseaux

Imprimantes et partage réseau sous Samba avec authentification Active Directory

SECURIDAY 2012 Pro Edition

PPE GESTION PARC INFORMATIQUE

Il est courant de souhaiter conserver à

Documentation technique OpenVPN

Réaliser un inventaire Documentation utilisateur

Comment surfer tranquille au bureau

Enoncé du TP 8 Système

Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

OCS Inventory & GLPI

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

SQUID Configuration et administration d un proxy

Proxy et reverse proxy. Serveurs mandataires et relais inverses

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :

Serveur Subversion Debian GNU/Linux

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Guide Installation Serveur Extensive Testing

Module 7 : Configuration du serveur WEB Apache

TERRA CLOUD. Online Backup

Transcription:

Monter un serveur sur dreamplug Jean-Baptiste Bourgoin July 28, 2012 Contents 1 À propos 2 2 Installer Debian sur un disque externe 2 2.1 Préparer le disque externe...................................... 2 2.1.1 Formatage........................................... 2 2.1.2 Installation d'un système Debian bootable......................... 3 2.2 Branchements............................................. 3 2.3 Installation des logiciels de pilotage................................. 4 2.4 Préparation de minicom....................................... 4 2.5 Connexion à la dreamplug...................................... 4 2.6 Encore plus simple : screen..................................... 5 2.7 Modication du boot......................................... 5 2.8 Congurations élémentaires du système Debian.......................... 6 2.8.1 Corrections de bugs..................................... 6 2.8.2 Conguration essentielles.................................. 6 2.8.3 Mise à niveau vers squeeze................................. 6 2.8.4 Paquets utiles......................................... 6 2.8.5 Changer le hostname..................................... 7 2.9 Créer des utilisateurs......................................... 7 3 Conguration du réseau 7 3.1 Associer une ip xe dans un réseau DHCP............................. 7 3.2 Rediriger les ports.......................................... 7 3.3 Congurer les interfaces réseaux :.................................. 7 4 Conguration du pare-feu 7 4.1 Activation............................................... 7 4.2 Petite documentation........................................ 8 5 Serveur web 9 5.1 Ouvrir les ports............................................ 9 5.2 Installation de de lighttpd, MySQL et PHP5........................... 9 5.2.1 Installation et conguration élémentaire.......................... 9 5.2.2 Userdir............................................ 9 5.3 Installation de Apache, MySQL et PHP5............................. 10 5.4 Si vous avez des problèmes avec MySQL.............................. 10 5.5 Gestion des domaines........................................ 10 5.5.1 Congurer vos DNS..................................... 10 5.5.2 Avec lighttpd......................................... 10 5.5.3 Exemple 1 : site.com et tous ses sous-domaines...................... 10 5.5.4 Exemple 2 : test.site.com.................................. 11 5.5.5 Exemple 3 : logs séparés................................... 11 6 Bloguer avec wordpress 11 6.1 Installer worpress........................................... 11 6.2 Créer un nouveau blog sur un domaine spécique......................... 11 6.3 Congurer un compte ftp avec vsftp pour la mise à jour des plugins.............. 11 1

7 Documents à distance avec git 13 7.1 Initialisation côté serveur...................................... 13 7.2 Initialisation côté client....................................... 13 7.3 Aide-mémoire git........................................... 13 7.4 Un dropbox-like avec SparkleShare................................. 13 7.4.1 Côté client.......................................... 13 7.4.2 Puis côté serveur....................................... 13 7.4.3 À nouveau côté client!.................................... 14 8 Écouter sa musique avec mpd 14 8.1 Activer le son sur son dreamplug.................................. 14 8.2 Installer mpd............................................. 14 8.3 Congurer mpd............................................ 14 8.3.1 les dossiers fondamentaux sont :.............................. 14 8.3.2 Droits et utilisateurs :.................................... 14 8.3.3 Réseau............................................. 14 8.4 Droits et base de donnée....................................... 15 8.5 Du mutisme aux grésillements : encore la carte son!....................... 15 8.6 Faire de son serveur une chaîne hi avec un client mpd...................... 16 8.7 Écouter sa musique à distance avec Ampache + mpd....................... 16 8.8 Passer à pulseaudio.......................................... 16 9 Partage de chiers avec webdav 17 9.1 Congurer webdav pour lighttpd.................................. 17 9.2 Créer un utilisateur webdav..................................... 17 9.3 Congurer les virtual host en conséquence............................. 17 10 Mise en place d'un proxy 18 10.1 Installer et congurer squid..................................... 18 10.2 Installer et congurer squidguard.................................. 18 11 Sécurité 20 11.1 Sécuriser ssh............................................. 20 11.2 Scanner les ports ouverts avec nmap................................ 21 12 Gestion des journaux 21 12.1 Webalizer............................................... 21 13 Ressources 22 1 À propos Ce document, en l'état actuel, est le carnet de bord d'un débutant en auto-hébergement. Il manque encore beaucoup de travail avant qu'il puisse prétendre être un véritable tutoriel. Vous trouverez ici une version pdf générée depuis le chier org source. Il me faut retravailler quelques éléments pour que l'achage soit meilleure. 2 Installer Debian sur un disque externe 2.1 Préparer le disque externe 2.1.1 Formatage Branchez votre disque externe sur votre machine de bureau. Dans un premier temps il s'agit de préparer le disque selon le schéma suivant : ˆ Une première partition en FAT16 de 100mo. 2

ˆ Une seconde en ext3 utilisant le reste de l'espace disque. Utilisons fdisk et supposons que votre disque est /dev/sdd : fdisk /dev/sdd : p : information sur votre disque n : créer une nouvelle partition. Appuyez sur n et entrez les informations suivantes (ce qui importe le plus c'est la dernière info : +100M) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-19452,default 1): Using default value 1 Last cylinder or +size or +sizem or +sizek (1-19452,default 19452): +100M On fait la même chose pour la deuxième partition, sauf que cette fois-ci on met toutes les valeurs par défaut an de laisser tout le reste de l'espace disque de disponible. Appuyez sur p pour vérier : Périphérique Amorce Début Fin Blocs Id Système /dev/sdd1 2048 206847 102400 83 Linux /dev/sdd2... etc. Et écrire tout cela avec w. Ensuite nous allons formater la partition que vous venons de créer en fat16 : mkfs.vfat -v -c -n 'dp-kernel'/dev/sdd1 Et on met le reste en ext3 : mkfs.ext3 -L 'dp-fs'/dev/sdd2 2.1.2 Installation d'un système Debian bootable Il faut tout d'abord télécharger le système de chier debian dreamplug_debian_v0.2.zip1 et dreamplug_debian_v0.2.zip2 à l'adresse : https://code.google.com/p/dreamplug/downloads/list Et la uimage ici : https://dreamplug.googlecode.com/les/uimage Dézippez dreamplug debianv0.2.zip1, cela vous donnera une archive tar.gz de même nom. Nous avions nommé la partition fat16 dp-kernel et la partition ext3 dp-fs. Ce qui suit prend en compte cette conguration à adapter selon la votre. cp uimage /media/dp-kernel/ tar xzvf dreamplug_debian_v0.2.tar.gz -C /media/dp-fs/ cp uimage /media/dp-fs/home/ cp dreamplug_debian_v0.2.tar.gz /media/dp-fs/home/ sync Démonter vos disques. 2.2 Branchements Brancher le disque externe sur une alimentation (hub alimenté ou alimentation externe classique). Brancher le JTAG au pc et à la dreamplug éteinte. 3

2.3 Installation des logiciels de pilotage apt-get install minicom Le module ftdi_sio.ko est déjà inclus dans le noyau linux distribué par Ubuntu. Si ça n'est pas le cas pour votre distribution, regardez d'abord si un paquet le propose. Par exemple sur les systèmes utilisant apt vous pouvez utiliser l'outil apt-file : apt-file update apt-file search ftdi_sio.ko 2.4 Préparation de minicom La doc de la dreamplug propose la conguration suivante (passer en root) : minicom -s Dans configuration du port série : +-----------------------------------------------------------------------+ A - Port série : /dev/ttyusb0 B -Emplacement du fichier de verrouillage : /var/lock C - Programme d'appel intérieur : D - Programme d'appel extérieur : E - Débit/Parité/Bits : 115200 8N1 F - Contrôle de flux matériel : Non G - Contrôle de flux logiciel : Non Changer quel réglage? +-----------------------------------------------------------------------+ Ecran et clavier Enregistrer config. sous dfl Enregistrer la configuration sous... Sortir Sortir de Minicom +---------------------------------------+ Validez Enregistrer config. sous dfl puis sortir Sortez de lla conguration de minicom 2.5 Connexion à la dreamplug Après avoir sélectionné sortir votre logiciel est en attente de connexion. C'est alors qu'il vous faut allumer la dreamplug. Si rien ne se passe cela peut simplement provenir de la conguration du port série de minicom. Pour vérier, tapez : dmesg grep tty Vous verrez quelque chose de semblable : [ 0.000000] console [tty0] enabled [ 1.153314] serial8250: ttys0 at I/O 0x3f8 (irq = 4) is a 16550A [ 1.335775] 00:0a: ttys0 at I/O 0x3f8 (irq = 4) is a 16550A [ 9518.467761] usb 8-1: FTDI USB Serial Device converter now attached to ttyusb0 On voit bien qu'il faut ici congurer le port sur ttyusb0. Lors du boot il faut annuler l'auto-boot en appuyant sur une touche quelconque. Vous voyez alors s'acher le prompt Marvell. 4

2.6 Encore plus simple : screen À la place de minicom vous pouvez utiliser screen. C'est encore plus simple 1 : aptitude install screen screen /dev/ttyusb0 115200 Lancer le dreamplug, et c'est bon! 2.7 Modication du boot Tout d'abord, faite une copie texte de la conguration de base de votre boot an de pouvoir la restaurer en cas de pépin : Marvell>>printenv Ce qui donne quelque chose comme : bootargs=console=ttys0,115200 rw root=/dev/sda2 rootdelay=10 bootcmd=setenv ethact egiga0; ${x_bootcmd_ethernet; setenv ethact egiga1; ${x_bootcmd_ethernet; ${x_bootcmd_usb; ${x_bootcmd_kernel; bootm 0x6400000; bootdelay=3 baudrate=115200 x_bootcmd_ethernet=ping 192.168.2.1 x_bootcmd_usb=usb start ethact=egiga0 x_bootcmd_kernel=ext2load usb 0 0x6400000 uimage ethaddr=f0:ad:4e:01:2f:7b eth1addr=f0:ad:4e:01:2f:7c stdin=serial stdout=serial stderr=serial Environment size: 460/4092 bytes Ensuite il nous faut modier le boot an de démarrer sur /dev/sdc2. La conguration suivante démarre sur sdc2, ou sdb2 (si sdbc2 absent), ou sda2. Soit, dans l'odre : ˆ ˆ ˆ Disque usb Mémoire SD externe Mémoire SD interne setenv soaddr 0x1600000 setenv loadaddr 0x6400000 setenv dev 1 setenv part 1 setenv kdev '/dev/sdb2' setenv db_init 'setenv mainlinelinux yes; setenv arcnumber 2659; usb start' setenv db_arg 'console=ttys0,115200 rootwait panic=10' setenv db_setarg 'setenv bootargs ${db_arg root=${kdev' setenv db_load 'mw ${loadaddr 0 1000; fatload usb ${dev:${part ${loadaddr uimage' setenv db_runs 'echo executing script; source ${soaddr' setenv db_loads 'mw ${soaddr 0 1000; fatload usb ${dev:${part ${soaddr boot.scr' setenv db_loadext 'mw ${loadaddr 0 1000; ext2load usb ${dev:${part ${loadaddr uimage' setenv db_loadsext 'mw ${soaddr 0 1000; ext2load usb ${dev:${part ${soaddr boot.scr' setenv db_runas 'echo loading sda script; setenv dev 0; setenv kdev /dev/sda2; run db_loadsext db_runs' 1 merci à redo_fr pour l'info 5

setenv db_runbs 'echo loading sdb script; setenv dev 1; setenv kdev /dev/sdb2; run db_loads db_runs' setenv db_runcs 'echo loading sdc script; setenv dev 2; setenv kdev /dev/sdc2; run db_loads db_runs' setenv db_bootcmd 'run db_setarg db_load db_bootmem' setenv db_bootcmdext 'run db_setarg db_loadext db_bootmem' setenv db_bootmem 'bootm ${loadaddr' setenv bootcmd 'run db_init db_runcs; run db_bootcmd; run db_runbs; run db_bootcmd; run db_runas; run db_bootcmdext' Quand tout semble bon : Marvell>>saveenv Marvell>>reset 2.8 Congurations élémentaires du système Debian 2.8.1 Corrections de bugs chown -R man:root /var/cache/man aptitude install locales dpkg-reconfigure locales 2.8.2 Conguration essentielles Il faut modier le mot de passe root commun à toutes les dreamplug (trou de sécurité) : passwd dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Si vous ne souhaitez pas que le wi et bluetooth soit automatiquement activés au démarrage il vous faut commenter la ligne /root/init_setup.sh dans /etc/rc.local. Si vous avez le JTAG, et si vous ne souhaiter pas utiliser votre dreamplug comme point d'accès wi, vous gagnerez en sécurité et vous économiserez un peu d'électricité. 2.8.3 Mise à niveau vers squeeze Remplacez votre /etc/apt/sources.list par : #deb http://10.82.108.51/kedars/sheevaplug_wifi/builds/packages/ binary/ ## squeeze deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free # squeeze security deb http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free Puis mettez à niveau : apt-get update apt-get dist-upgrade apt-get autoremove apt-get autoclean 2.8.4 Paquets utiles aptitude install less 6

2.8.5 Changer le hostname echo monhostname.org >/etc/hostname /etc/init.d/hostname start 2.9 Créer des utilisateurs Rien de plus simple : adduser user1 Pour l'ajouter à un groupe : adduser user1 groupe 3 Conguration du réseau 3.1 Associer une ip xe dans un réseau DHCP Il faut passer par les baux statiques : renseigner l'adresse ip que l'on souhaite allouer ainsi que l'adresse MAC de la machine concernée. 3.2 Rediriger les ports Il sut ensuite de rediriger les ports externes vers l'adresse ip précédemment allouée. Par exemple : 80 => 192.168.0.65:80 3.3 Congurer les interfaces réseaux : Installons d'abord ifplugd, si ça n'est pas déjà fait : aptitude install ifplud Il faut éditer /etc/network/interfaces. Voici un exemple : #auto eth0 iface eth0 inet static address 192.168.0.77 netmask 255.255.255.0 gateway 192.168.0.254 La ligne auto eth0 sert normalement à activer l'interface réseau au démarrage du système. Si vous n'utilisez pas ifplugd il faut activer cette option, sinon il faut laisser la ligne commentée. ˆ ˆ address : l'adresse ip associée plus haut à votre machine via les baux dhcp. gateway : il s'agit bien souvent de l'adresse ip du routeur de votre réseau. Redémarrez votre réseau : /etc/init.d/ifplugd restart 4 Conguration du pare-feu 4.1 Activation Nous utiliserons ufw qui est simple d'utilisation. Je vous conseille de vous connecter avec votre JTAG, car vous perdrez votre connexion ssh lors de l'activation de ufw. aptitude install ufw ufw enable ufw allow ssh ufw est désormais actif, et vous pouvez vous connecter en ssh. 7

4.2 Petite documentation L'article qui suit reprend en grande partie la page ufw du wiki Ubuntu-fr : http://doc.ubuntu-fr.org/ufw Autoriser le trac entrant suivant les règles par défaut : ufw default allow incoming Refuser le trac entrant suivant les règles par défaut : ufw default deny incoming Autoriser le trac sortant suivant les règles par défaut : ufw default allow outgoing Refuser le trac sortant suivant les règles par défaut : ufw default deny outgoing Acher les règles actives : ufw status verbose Activer la journalisation : sudo ufw logging on Désactiver la journalisation : sudo ufw logging off Autoriser : sudo ufw allow [règle] Refuser : sudo ufw deny [règle] Supprimer : sudo ufw delete allow [règle] Supprimer simplement une règle d'après son numéro sudo ufw delete NUM sudo ufw allow from 10.0.0.0/24 to any port 22 La syntaxe des règles Règles simples Voici quelques exemples pour comprendre la syntaxe des règles de conguration. Ouverture du port 53 en TCP et UDP : sudo ufw allow 53 Ouverture du port 25 en TCP uniquement : sudo ufw allow 25/tcp Utilisation des services UFW regarde dans sa liste de services connus pour appliquer les règles standards associées à ces services (apache2, smtp, imaps, etc..). Pour avoir la liste des services : less /etc/services Exemple : Autoriser le service SMTP : sudo ufw allow smtp 2 exemple : Autoriser le port de Gnome-Dictionary (2628/tcp) : sudo ufw allow out 2628/tcp 3 exemple : Autoriser le protocol pop3 sécurisé (réception du courrier de Gmail et autres messageries utilisant ce protocol sécurisé) : sudo ufw allow out pop3s/tcp 8

5 Serveur web 5.1 Ouvrir les ports Commencez par ouvrir les ports 80 (http) et 443 (https) : ufw allow https ufw allow www 5.2 Installation de de lighttpd, MySQL et PHP5 5.2.1 Installation et conguration élémentaire aptitude install mysql-server mysql-client openssl php5-cgi php5-mysql lighttpd Il faut ensuite éditer /etc/php5/cgi/php.ini et décommenter la ligne cgi.fix_pathinfo=1 : ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME,and to not grok ; what PATH_INFO is. For more information on PATH_INFO,see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=1 Ensuite il faut activer le module fastcgi-php : lighttpd-enable-mod fastcgi lighttpd-enable-mod fastcgi-php Il faut également s'assurer que lighttpd puisse écrire dans le chier socket indiqué dans /etc/lighttpd/conf-enabled/1 Le plus simple est de congurer ainsi : "socket" =>"/var/run/lighttpd/php-fastcgi.socket", Puis de créer le chier en question et lui donner les droits nécessaire : touch /var/run/lighttpd/php-fastcgi.socket chown www-data:www-data /var/run/lighttpd/php-fastcgi.socket Quelques chiers importants peuvent manquer des droits nécessaires : chown www-data:www-data /var/log/lighttpd/error.log chown root:www-data /var/lib/php/ -R chmod g+rwx /var/lib/php5/ Relancez lighttpd : /etc/init.d/lighttpd force-reload 5.2.2 Userdir Vous pouvez au passage activer les répertoires web pour les utilisateurs : lighttpd-enable-mod userdir Par défaut le répertoire est $HOME/public_html Relancez lighttpd : /etc/init.d/lighttpd force-reload 9

5.3 Installation de Apache, MySQL et PHP5 aptitude install mysql-server mysql-client openssl php5 php5-mysql apache2 libapache2-mod-php5 Activer les répertoires utilisateurs : a2enmod userdir /etc/init.d/apache2 restart : Pour activer php dans ces répertoires, il faut commenter les lignes suivantes dans /etc/apache2/mods-enabled/php5.conf <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_value engine Off </Directory> </IfModule> Et si vous souhaitez permettre aux utilisateurs d'utiliser les.htaccess comme ils le souhaitent, il faut remplacer AllowOverride FileInfo AuthConfig Limit Indexes par AllowOverride All dans /etc/apache2/mods-enabled/userdir.conf. 5.4 Si vous avez des problèmes avec MySQL Si vous avez des problèmes avec tout ce qui touche à MySQL, cela peut provenir d'un problème de droits sur le répertoire /tmp/. Pour corriger cela : # chown root:root /tmp # chmod 1777 /tmp # /etc/init.d/mysqld start 5.5 Gestion des domaines 5.5.1 Congurer vos DNS La manière complexe consiste à monter son propre serveur de DNS. Nous ne traiterons pas de cela ici. Nous nous contenterons de la manière simple! Laisser faire le gestionnaire de nom de domaine chez qui nous louons nos noms de domaines. Il faut vous rendre dans l'interface d'admin de votre provider et vous rendre sur un truc du genre gestion des zones ou gestion des dns. Sélectionnez votre nom de domaine et modier les valeurs suivantes en renseignant votre adresse ip : Premier exemple (gandi) : * A xxx.xxx.xxx.xxx @ A xxx.xxx.xxx.xxx Second exemple (nuxit) : A xxx.xxx.xxx.xxx www A xxx.xxx.xxx.xxx 5.5.2 Avec lighttpd La gestion des domaines passe par les virtual hosts. Avec lighttpd, la conguration est extrêmement simple. Il sut d'ajouter vos conguration dans le chier /etc/lighttpd/lighttpd.conf. 5.5.3 Exemple 1 : site.com et tous ses sous-domaines Nous voulons que site.com et ses sous-domaines pointent vers /home/www/site.com/ : $HTTP["host"] =~ "(^ \.)site\.com$" { server.document-root = "/home/www/site.com/" 10

5.5.4 Exemple 2 : test.site.com Nous voulons que test.site.com et ses sous-domaines pointent vers /home/www/site.com/test/ : $HTTP["host"] =~ "^test\.site\.com$" { server.document-root = "/home/www/site.com/test/" 5.5.5 Exemple 3 : logs séparés Il sut d'ajouter à chaque virtualhost les lignes suivantes : server.errorlog = "/var/log/lighttpd/site.com/error.log" accesslog.filename = "/var/log/lighttpd/site.com/access.log" 6 Bloguer avec wordpress 6.1 Installer worpress Debian fournit un paquet wordpress facilitant le multi-site aptitude install wordpress db4.8-util libdb4.8 6.2 Créer un nouveau blog sur un domaine spécique cd /usr/share/doc/wordpress/examples/ bash./setup-mysql -n userexample mon.domaine.com Mettre en français : vi /etc/wordpress/config-mon.domaine.com Ajouter : define ('WPLANG', 'fr_fr'); Se rendre sur mon.domaine.com pour acherver l'installation. Refaire la procédure pour un nouveau site. 6.3 Congurer un compte ftp avec vsftp pour la mise à jour des plugins Source : Congurer vsftpd pour mettre à jour automatiquement WordPress aptitude install vsftpd Ensuite on édite /etc/pam.d/vsftpd en ajoutant (il faut supprimer le contenu déjà existant) : auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login account required /lib/security/pam_userdb.so db=/etc/vsftpd/login Puis on créé un chier login.txt dans lequel nous trouverons le mot de passe des utilisateurs en clair : mkdir /etc/vsftpd/ vi /etc/vsftpd/login.txt Exemple : user1 monmotdepass111uyyyerdhudfefetropcool! user2... Puis on convertit ce chier en base de donnée Berkeley : db4.6_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db chmod 600 /etc/vsftpd/login.* Ensuite on congure vsftpd : 11

mv /etc/vsftpd.conf /etc/vsftpd.conf.bak vi /etc/vsftpd.conf Y entrer : # Lancement de vsftpd en standalone listen=yes # vsftpd ne va accepter les connexion uniquement depuis le serveur lui même listen_address=127.0.0.1 # activation des utilisateurs locaux (permet d'utiliser les utilisateurs virtuels) local_enable=yes # Afin de permettre la mise à jour,il *faut* permettre l'écriture write_enable=yes # activation explicite des utilisateurs virtuels guest_enable=yes # force les utilisateurs virtuels d'agir vis à vis du système comme l'utilisateur guest_username=ftp # force les utilisateurs à rester dans le ~ de l'utilisateur guest (spacifié juste au dessus soit '/home/ftp/') chroot_local_user=yes # active la configuration 'per user" permettant,de créer plusieurs utilisateurs virtuels si besoin par la suite,pour un autre WordPress par exemple user_config_dir=/etc/vsftpd/users Créons notre utilisateur user1 : mkdir /etc/vsftpd/users/ vi /etc/vsftpd/users/user1 # l'utilisateur doit être enfermé dans un dossier contenu dans /home/ftp # ce dossier sera un lien symbolique vers la racine (contenant le dossier wp-content) # de votre installation de WordPress local_root=/home/ftp/wordpress # droit d'écriture write_enable=yes anon_upload_enable=yes # droit créer des dossiers anon_mkdir_write_enable=yes # droit de renommer,supprimer... anon_other_write_enable=yes # signifie que l'utilisateur virtuel à les mêmes droits que l'utilisateur réel (ici ftp) virtual_use_local_privs=yes # définit l'umask pour les fichiers local_umask=022 Assurons-nous que le répertoire /home/ftp/ existe avec les bonnes permissions, sinon : mkdir /home/ftp/ chown ftp:ftp /home/ftp/ Puis créons le lien symbolique vers /usr/share/wordpress : ln -s /usr/share/wordpress/ /home/ftp/wordpress En nous assurant que wp-content est accessible à ftp et www-data : chown -R ftp:www-data wp-content/ Il sut, lors d'une mise à jour dans wordpress, d'entrer login, mot de passe et adresse ip (127.0.0.1) et sélectionner FTP comme mode d'accès, et tout devrait fonctionner. 12

7 Documents à distance avec git 7.1 Initialisation côté serveur La mise en place d'un serveur git est extrêmement simple. Il sut de l'installer, de créer un répertoire spécique dans son dossier personnel et de l'initialiser : aptitude install git git init --bare mondossier.git C'est tout! Le reste se passe côté client. 7.2 Initialisation côté client Côté client, c'est encore plus simple, il sut d'une petite ligne de commande à faire sur toutes les machines sur lesquelles vous souhaiter travailler : git clone utilisateur@ipserveur:mondossier.git Votre dépôt git est prêt! Le premier commit se passe ainsi (on vous demandera le mot de passe de votre compte utilisateur sur le serveur) : cd mondossier.git touch un_fichier git add un_fichier git -a -m "Premier commit!" git push origin master Et ça se passe globalement comme ça pour tous vos futurs commit. 7.3 Aide-mémoire git 7.4 Un dropbox-like avec SparkleShare 7.4.1 Côté client Il faut commencer côté client car une clé ssh vous sera donnée qu'il faudra indiquer côté serveur. Il faut installer le logiciel Sparkeshare (ainsi que git) et le lancer : aptitude install sparkleshare git sparkleshare start Une clé ssh sera généré, vous la trouverez dans votre dossier SparkeShare sous la forme Utilisateur's key.txt. P.S. : pour les utilisateurs de MacOSX, git est dispo via MacPort ou gitosx-installer. 7.4.2 Puis côté serveur Il sut de créer un dépôt git dédié sur votre serveur, comme nous l'avons déjà vu : git init --bare drop.git Puis ajouter la clé ssh des utilisateurs : mkdir.ssh vi.ssh/authorized_keys # copier-coller les clés des utilisateurs autorisés chmod 700.ssh chmod 600.ssh/authorized_keys 13

7.4.3 À nouveau côté client! On termine en renseignant l'adresse de notre dépôt côté serveur à Sparkleshare : Pour cela il faut cliquer sur l'icone de notication (parfois invisible sous GNOME 3, il faut alors glisser la souris sur la zone de notication pour la faire apparaître). On sélectionne ajouter un projet hébergé, puis On my own computer. La conguration se fait comme ceci : Adresse : ssh://utilisateur@adresse.serveur Chemin : /home/utilisateur/partage.git/ Votre dossier SparkleShare est désormais synchronisé! 8 Écouter sa musique avec mpd 8.1 Activer le son sur son dreamplug Si le système installé sur la ash interne est bien conguré, ça n'est pas le cas du système installé sur disque externe. Pour activer le son sur le dreamplug il faut ajouter les lignes suivantes à la n du chier /etc/asound.conf : defaults.pcm.!card default defaults.ctl.!card default defaults.pcm.!device 0 defaults.ctl.!device 0 Et décommenter la ligne suivante du chier /etc/modprobe.d/alsa-base.conf : options snd-usb-audio index=-2 8.2 Installer mpd Tout d'abord, installons mpd : aptitude install mpd C'est plutôt simple! 8.3 Congurer mpd Il nous faut ensuite le congurer. Tout se passe dans /etc/mpd.conf. Les éléments importants sont : 8.3.1 les dossiers fondamentaux sont : music_directory playlist_directory db_file "/var/lib/mpd/music" "/var/lib/mpd/playlists" "/var/lib/mpd/mpd.db" Les noms parlent d'eux-mêmes : le premier indique le répertoire où se situe la musique ; le second le lieu où sont enregistrés les playlists ; et enn la base de donnée en tant que telle. 8.3.2 Droits et utilisateurs : mpd créé un utilisateur mpd associé au groupe audio. Vous pouvez changer l'utilisateur associé à mpd à la ligne user du /etc/mpd.conf, associé des utilisateurs au groupe audio etc. 8.3.3 Réseau Si vous souhaitez que mpd soit accessible depuis votre réseau local, ou depuis internet, c'est ici que cela se passe. Généralement on laisse en localhost et on choisit un port : bind_to_address "localhost" port "6600" Pensez à ouvrir le port sur votre pare-feu 14

8.4 Droits et base de donnée Corriger les droits : chown mpd:audio /var/log/mpd/mpd.log chmod g+w /var/log/mpd/mpd.log Il faut enn créer la base de donnée musicale : mpd --create-db 8.5 Du mutisme aux grésillements : encore la carte son! Ça n'est nit, la conguration standard ne reconnaît pas la carte du dreamplug. Pour régler cela, listons tout d'abord les cartes présentent sur la machine : arecord -l Ce qui donne, dans mon cas : card 1: default [C-Media USB Headphone Set Subdevices: 1/1 Subdevice #0: subdevice #0 ],device 0: USB Audio [USB Audio] Notez : card 1, device 0, ce qui nous donnera hw:1,0. Pour faire fonctionner notre carte rendons-nous dans /etc/mpd.conf, et modions la sortie alsa ainsi : audio_output { type "alsa" name "My ALSA Device" #device "hw:0,0" # optional #format "44100:16:2" # optional #mixer_type "software" # optional #mixer_device "default" # optional #mixer_control "PCM" # optional #mixer_index "0" # optional Un petit /etc/init.d/mpd restart, et c'est partit! Le son fonctionne, malheureusement il grésille et mpd mange entre 20% et 30% de mon cpu en continue! Notre conguration fait passer le son par dmix. Ce dernier à la bonne idée de resampler à 48Khz la sortie de notre carte qui est en 44.1Khz. La conversion de 44.1Khz à 48Khz ne fait rien gagner en qualité, et mange du cpu. Il faut donc demander à dmix de resampler à 44.1Khz. Pour cela éditer votre /etc/asound.conf et entrer ce qui suit : pcm.!default { type plug slave.pcm { type dmix ipc_key 1024 slave { pcm "hw:1,0" rate 44100 Notez la ligne pcm "hw:1,0"=, elle correspond à notre sortie de =arecord -l. Un petit /etc/init.d/mpd restart et nous retrouvons un son propre et une utilisation du cpu autour de 4%. Ouf! 15

8.6 Faire de son serveur une chaîne hi avec un client mpd C'est le fonctionnement classique de mpd. 8.7 Écouter sa musique à distance avec Ampache + mpd Installons Ampache : aptitude install ampache Ensuite il faut vous rendre sur http://votreip/ampache pour congurer le logiciel. ATTENTION! il vous sera demander de créer un utilisateur mysql ou d'utiliser un existant, faite bien attention au mot de passe, si celui-ci contient des caractères complexes il ne sera pas nécessairement bien reconnu par Ampache. Il est donc préférable de créer un utilisateur avec des droits restreints et un mot de passe à base de lettres simples et de chires.a Une fois l'installation faite il faut vous connecter en tant qu'admin. De là vous pouvez ajouter de nouveaux utilisateurs, gérer les playlists, et plein d'autres choses. Mais surtout, c'est là que vous ajouterez des catalogues musicaux. Vous pouvez alors ajouter le répertoire commun à mpd. Si vous avez des problèmes de permissions lors de l'ajout de catalogues : chmod -R u+rwx,go+rx /chemin/vers/catalogue/ 8.8 Passer à pulseaudio En réalité tous les problèmes que nous avons rencontrés se résolvent assez facilement si on installe pulseaudio. Pour cela il faut tout d'abord commenter les lignes suivantes dans votre /etc/asound/ : #defaults.pcm.!card default #defaults.ctl.!card default #defaults.pcm.!device 0 #defaults.ctl.!device 0 #pcm.!default { # type plug # slave.pcm { # type dmix # ipc_key 1024 # slave { # pcm "hw:0,0" # rate 44100 # # # Désactiver la sortie ALSA dans /etc/mpd.conf : #audio_output { # type "alsa" # name "My ALSA Device" #device "hw:0,0" # optional #format "44100:16:2" # optional #mixer_type "software" # optional #mixer_device "default" # optional #mixer_control "PCM" # optional #mixer_index "0" # optional # Puis congurer la sortie pulse : 16

audio_output { type "pulse" name "My Pulse Output" # server "remote_server" # optional # sink "remote_server_sink" # optional aptitude install pulseaudio pulseaudio-utils Vériez que l'option autospawn est activée dans /etc/pulse/client.conf. De cette manière pulseaudio sera lancé automatiquement lorsqu'une application le demandera. ; autospawn = yes Normalement, à ce stade, pulseaudio n'est pas lancé (vériez avec un ps -A grep pulse.). Il vous faut relancer mpd qui s'en chargera : /etc/init.d/mpd restart 9 Partage de chiers avec webdav 9.1 Congurer webdav pour lighttpd Source : How To Set Up WebDAV With Lighttpd On Debian Etch Installer et activer webdav pour lighttpd : aptitude install lighttpd-webdav apache2-utils lighttpd-enable-mod auth lighttpd-enable-mod webdav /etc/init.d/lighttpd restart Nous aurons besoin de apach2-utils pour la génération des mots de passe. 9.2 Créer un utilisateur webdav Nous allons créer un mot de passe pour l'utilisateur user qui sera stocké dans le chier /var/www/webd/passwd-user.dav. htpasswd -c /var/www/webd/passwd-user.dav user Un mot de passe vous sera demandé. ATTENTION! l'option -c n'est à utiliser qu'à la création du chier /var/www/webd/passwd-user.dav. Si vous ajouter un utilisateur à ce chier avec cette option, vous supprimerez le contenu précédent. Pour ajouter un utilisateur et conserver les autres, il sut de ne pas utiliser cette option : htpasswd /var/www/webd/passwd-user.dav user2 Il faut ensuite modier les permissions sur le chier : chown root:www-data /var/www/webd/passwd-user.dav chmod 640 /var/www/webd/passwd-user.dav 9.3 Congurer les virtual host en conséquence Éditez votre /etc/lighttpd/lighttpd.conf. Voici un exemple de vhost conguré pour webdav : $HTTP["host"] == "partage.example.com" { server.document-root = "/home/user/partage/" webdav.activate = "enable" webdav.is-readonly = "disable" webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db" auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/var/www/webd/passwd-user.dav" auth.require = ( "" =>( "method" =>"basic", "realm" =>"webdav", "require" =>"valid-user" ) ) 17

Avec cet exemple vous avez un accès en lecture et écriture au dossier /home/user/partage/ pour tous les utilisateurs enregistrés dans passwd-user.dav via l'adresse partage.example.com. Deuxième exemple : $HTTP["host"] =~ "^musique\.exemple\.org$" { server.document-root = "/usr/share/ampache/www/" alias.url = ( "/webdav" =>"/home/user/musique/" ) $HTTP["url"] =~ "^/webdav($ /)" { webdav.activate = "enable" webdav.is-readonly = "disable" webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db" auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/var/www/webd/passwd-user.dav" auth.require = ( "" =>( "method" =>"basic", "realm" =>"webdav", "require" =>"valid-user" ) ) Cet exemple vous permet d'accéder à ampache depuis l'adresse musique.exemple.com, et au dossier contenant vos musiques depuis musique.exemple.com/webdav à partir des utilisateurs enregistrés dans passwd-user.dav. 10 Mise en place d'un proxy 10.1 Installer et congurer squid Sources : Un contrôle parental ecace : Projet Cohorte de Cédric Pellerin in GNU/Linux Magazine France HS n 48. Installation de Squid et SquidGuard sur une Debian ETCH Installons squidguard : aptitude install squid Le chier de conguration contient une quantité phénoménale d'informations sous forme de commentaires, commençons pas sauvegarder le chier original et en créer une copie sans commentaires : cd /etc/squid/ mv squid.conf squid.conf.bak cat squid.conf.bak grep -v ^# grep -v ^$ >squid.conf Ajoutons la ligne suivante dans la section des acl : acl votre-domaine.com src 192.168.0.0/255.255.255.0 Juste avant la ligne http_access deny all ajoutez la permission concernant l'acl de votre réseau : http_access allow votre-domaine.org Ajoutez la ligne suivante an que le hostname présenté par squid ne soit pas celui de votre réseau : visible_hostname Proxy La ligne suivante congure squid de manière à ce que le format des chiers journaux soient compatibles clf. C'est utile pour éviter des erreurs avec webalizer. emulate_httpd_log on Et ouvrez le port de votre pare-feu : ufw allow from 192.168.0.0/30 to any port 3128 10.2 Installer et congurer squidguard aptitude install squidguard Récupérons d'abord une archive contenant une liste de sites sensibles: cd /var/lib/squidguard/db/ wget http://squidguard.mesd.k12.or.us/blacklists.tgz tar zxvf blacklists.tar.gz 18

Passons à la conguration de squidguard /etc/squid/squidguard.conf ; cd /etc/squid/ mv squidguard.conf squidguard.conf.bak vi squidguard.conf Et ajoutons un début de conguration au chier : dbhome /var/lib/squidguard/db/blacklists/ logdir /var/log/squid dest ads { domainlist ads/domains ads/urls dest aggressive { domainlist aggressive/domains aggressive/urls dest audio-video { domainlist audio-video/domains audio-video/urls dest drugs { domainlist drugs/domains drugs/urls dest gambling { domainlist gambling/domains gambling/urls dest hacking { domainlist hacking/domains hacking/urls dest mail { domainlist mail/domains mail/urls dest porn { domainlist porn/domains porn/urls dest proxy { domainlist proxy/domains proxy/urls dest redirector { domainlist redirector/domains redirector/urls dest spyware { domainlist spyware/domains spyware/urls dest suspect { domainlist suspect/domains suspect/urls dest violence { 19

domainlist dest warez { domainlist violence/domains violence/urls warez/domains warez/urls acl { default { pass!ads!aggressive!audio-video!drugs!gambling!hacking!mail!porn!proxy!redirector!spyware!suspect!violence!warez redirect http://192.168.0.77/block.html Compilons les règles que nous avons installés (ça peut être long!) : /usr/bin/squidguard -C all Modions les droits sur les listes noires : chown -R proxy:proxy /var/lib/squidguard/db/ Lions ensembles squid et squiguard dans /etc/squid/squid.conf ajoutons : redirect_program /usr/bin/squidguard Ne reste plus qu'à redémarrer squid : squid -k reconfigure Et à congurer votre client. Typique entrer l'adresse locale de votre machine faisant proxy et indiquer qu'il tourne sur le port 3128 (ou autre en fonction de votre conguration). 11 Sécurité Sources : Securing Debian How-To 11.1 Sécuriser ssh Il vous éditer le chier ssh_config : vim /etc/ssh/sshd_config ˆ Désactiver l'accès ssh en root PermitRootLogin no ˆ Changer le port par défaut (22) Port xxx Il faut penser à vérier dans /etc/services si le port choisi n'est pas associé à un autre service. Et congurer votre pare-feu en conséquence : ufw delete allow 22 ufw allow xxx ˆ Interdire les mots de passe vides PermitEmptyPasswords no ˆ Limiter l'accès en ssh à certains utilisateurs AllowUsers user1 user2... ˆ Désactiver l'usage de la version 1 du protocole ssh Protocole 2 20