Outils pour utilisateurs

Outils du site


papweb

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
papweb [2011/06/20 09:11]
saitMoh Pourquoi la page disparait à l'enregistrment ?
papweb [2011/06/20 18:13]
saitMoh typos
Ligne 1: Ligne 1:
 +====== Configuration d'un Point d'Accés Public au Web ======
 +===== Objectifs =====
 +Mettre à la disposition du public des lieux publics (MPT, MJC, Associations, etc…) des bornes d'accès au web
 +Recycler des ordinateurs anciens en installant une distribution légère de GNU/Linux qui proposera aux utilisateurs **un seul logiciel : le navigateur Web((le web n'est pas Internet)) **
 +
 +===== Installation de l'OS =====
 +Comme OS on part sur une base de Debian/Squeeze que l'on installera seulement avec le système de base et openssh.
 +
 +On fera 4 partitions((en principe 3 devrait suffire si on externalise le proxy et les logs)):
 +  * le swap
 +  * la racine (/)
 +  * le home (/home)
 +  * les logs et autre données du système (/data)
 +
 +On peut créer ou pas l'utilisateur à ce moment mais faudra penser à restreindre ses droits dans le fichier /etc/group.
 +
 +==== Configuration de l'OS ====
 +<code bash>
 +# mkdir /data/log
 +# echo "/data/log /var/log none bind 0 0" >> /etc/fstab
 +# mkdir /root/.ssh && chmod 700 /root/.ssh
 +# touch /root/.ssh/authorized_keys
 +</code>
 +
 +Copiez vos clés id_rsa.pub dans le fichier /root/.ssh/authorized_keys puis éditez le fichier /etc/ssh/sshd_config pour enlever les authentification par mot de passe et n'autoriser que l'ulisateur root à se connecter:
 +<code>
 +PasswordAuthentication no
 +AllowUsers root
 +</code>
 +
 +Puis on verrouille le compte root. Tous les accés suivants au compte root se faisant par ssh.
 +<code bash>
 +# passwd -l
 +</code>
 +
 +On vérifie le fichier /etc/network/interfaces
 +<code>
 +# This file describes the network interfaces available on your system
 +# and how to activate them. For more information, see interfaces(5).
 +
 +# The loopback network interface
 +auto lo
 +iface lo inet loopback
 +
 +# The primary network interface
 +allow-hotplug eth0
 +iface eth0 inet dhcp
 +</code>
 +//Attention au fichier /etc/resolv.conf. Il doit contenir la même liste de nameserver que l'endroit ou sera placer la machine ou utiliser un serveur DNS public comme 8.8.8.8.//
 +
 +On complète le fichier /etc/apt/sources.list
 +<code>
 +deb http://ftp.fr.debian.org/debian squeeze main contrib non-free
 +
 +deb http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free
 +
 +deb http://security.debian.org/ squeeze/updates main contrib non-free
 +
 +# Pour avoir xulrunner-2.0 et iceweasel-4.0 sur squeeze
 +deb http://mozilla.debian.net/ squeeze-backports iceweasel-4.0
 +</code>
 +
 +En fonction du matériel présent dans la machine, il peut être nécessaire d'avoir les firmwares:
 +<code bash>
 +# apt-get install firmware-linux
 +</code>
 +Si d'autre firmware doivent être installé, on a la liste avec:
 +<code bash>
 +# apt-cache search --names-only firmware
 +</code>
 +
 +On ajoute le support acpi et la gestion du son avec alsa((ou pulseaudio))
 +<code bash>
 +# apt-get install acpi acpi-support acpitool alsa-base alsa-firmware-loaders alsa-tools alsa-utils
 +</code>
 +
 +Editez le fichier /etc/modprobe.d/alsa-base-blacklist.conf pour backlister les modules snd-pcsp et pcspkr pour arreter les BEEPs.
 +
 +==== installation du proxy ====
 +Le proxy ainsi que l'écriture des logs ne devrait pas être sur ce type machine mais placé sur un serveur différent. Le choix du proxy et de ses modules complémentaires dépend de ce qui doit être filtré. Là on va juste installer squid et adzapper pour filtrer la pub:
 +<code bash>
 +# apt-get install squid adzapper
 +</code>
 +Puis il faut ajouter la ligne 
 +<code>
 +redirect_program /usr/bin/adzapper
 +</code>
 +au fichier /etc/squid/squid.conf
 +
 +===== Configuration de l'espace utilisateur =====
 +Créez l'utilisateur si il n'a pas été créé lors de l'installation. On va l'appeler linuxquimper. Il doit appartenir aux groupes video et audio (voir /etc/group). Puis il faut faire une sauvegarde du compte et on le verouille:
 +<code bash>
 +# rsync -av /home/linuxquimper /opt/
 +# passwd -l linuxquimper
 +</code>
 +
 +On ajoute le serveur X et le gestionnaire de connection automatique nodm:
 +<code shell>
 +# apt-get install xorg nodm
 +</code>
 +
 +==== Choix du navigateur ====
 +C'est ce qui pose le plus problème car on ne peut pas installer n'mporte quel navigateur. Celui-ci doit avoir les fonctionnalités suivantes:
 +  * pas d'accés aux systèmes de fichiers
 +  * pas d'ouverture de nouvelles fenêtres car on n'installe pas de window manager
 +  * support des onglets
 +  * support de l'html5 avec les balises video, audio et mathml
 +  * support optionnel des plugins pour avoir flash, la lecture de fichier pdf ou autres documents bureautiques directement dans le navigateur.
 +
 +Actuellement, il n'existe pas de navigateur installable qui porpose directement tout ça, il faut le développer. Le développement peut être basé sur xulrunner-2.0 ou sur webkit en gtk ou qt.
 +
 +Pour faire une démo de l'installation je suis allez au plus simple même si il ne répond pas à tous les besoins en me basant sur le programme de démo GTkLauncher de webkit. Pour le faire fonctionner on aura besoin de libwebkit-1.0-2. Donc
 +<code shell>
 +# apt-get install libwebkit-1.0-2
 +</code>
 +
 +En principe la compilation du programme doit ce faire sur une autre machine et on a besoin des paquets suivants
 +<code shell>
 +# apt-get install build-essential libwebkit-dev
 +</code>
 +
 +et du code source de GtkLauncher et du [[gtklauncher#makefile|Makefile]].
 +
 +que l'on installe avec la commande
 +<code bash>
 +# make install
 +</code>
 +
 +==== configuration de la session ====
 +
 +On configure nodm pour se connecter directement sur le compte linuxquimper en éditant le fichier /etc/default/nodm
 +<code>
 +# nodm configuration
 +
 +# Set NODM_ENABLED to something different than 'false' to enable nodm
 +NODM_ENABLED=true
 +
 +# User to autologin for
 +NODM_USER=linuxquimper
 +
 +# xinit program
 +NODM_XINIT=/usr/local/bin/xinit
 +
 +# First vt to try when looking for free VTs
 +NODM_FIRST_VT=7
 +
 +# X session
 +NODM_XSESSION=/etc/X11/Xsession
 +
 +# Options for the X server
 +NODM_X_OPTIONS='vt7 -nolisten tcp'
 +
 +# If an X session will run for less than this time in seconds, nodm will wait an
 +# increasing bit of time before restarting the session.
 +NODM_MIN_SESSION_TIME=120
 +</code>
 +
 +On créer le fichier /usr/local/bin/xinit que l'on rend exécutable:
 +<code bash>
 +#!/bin/sh
 +
 +rsync -a --delete /opt/linuxquimper /home/
 +
 +exec /usr/bin/xinit "$@"
 +</code>
 +
 +et on créer le ficher /etc/X11/Xsession.d/98_linuxquimper pour lancer la session. ON ne peut pas utiliser de fichier $HOME/.xsession car on va passer la partition /home en noexec.
 +<code bash>
 +# This file is sourced by Xsession(5), not executed.
 +
 +if [ "$USER" = "linuxquimper" ] ; then
 +
 +  export LANG=fr_FR.UTF-8
 +  // exec xulrunner-2.0 /opt/conkeror/application.ini
 +  exec /opt/GtkLauncher
 +
 +  # Reset default startup
 +  STARTUP=/bin/false
 +fi
 +
 +# vim:set ai et sts=2 sw=2 tw=80:
 +</code>
 +
 +Puis on peut lancer la session utilisateur avec /etc/init.d/nodm start.
 +
 +===== fin de la configuration =====
 +Il faut sécuriser l'accés au shell grub en lui métant un mot de passe. On obtient un mot de passe chiffré pour grub avec la commande grub-mkpasswd-pbkdf2. On recupére le résultat de cette commande que l'on met dans un fichier /etc/grub/01_password que l'on rend éxécutable:
 +<code bash>
 +#!/bin/sh
 +set -e
 +
 +cat <<EOF
 +
 +set superusers="root"
 +password_pbkdf2 root grub.pbkdf2.sha512.64.2D0F37B9.37B35EF82745CEA0B146C451BD90BDC12DAB53EF29919FA888C7FA5E6417EBD0072FF9D0DC917D69E68046ECA991C799687849A1D012B2057AE82E9A2688DA83
 +
 +EOF
 +</code>
 +
 +Pour avoir un boot graphique on peut installer plymouth et ajouter «splash» à la ligne de commande linux
 +<code bash>
 +# apt-get install plymouth plymouth-themes-solar
 +</code>
 +
 +et on édite le fichier /etc/default/grub
 +<code>
 +# If you change this file, run 'update-grub' afterwards to update
 +# /boot/grub/grub.cfg.
 +
 +GRUB_DEFAULT=0
 +GRUB_TIMEOUT=5
 +GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
 +GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
 +GRUB_CMDLINE_LINUX=""
 +
 +# Uncomment to enable BadRAM filtering, modify to suit your needs
 +# This works with Linux (no patch required) and with any kernel that obtains
 +# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
 +#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
 +
 +# Uncomment to disable graphical terminal (grub-pc only)
 +#GRUB_TERMINAL=console
 +
 +# The resolution used on graphical terminal
 +# note that you can use only modes which your graphic card supports via VBE
 +# you can see them in real GRUB with the command `vbeinfo'
 +#GRUB_GFXMODE=640x480
 +
 +# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
 +#GRUB_DISABLE_LINUX_UUID=true
 +
 +# Uncomment to disable generation of recovery mode menu entries
 +GRUB_DISABLE_LINUX_RECOVERY="true"
 +
 +# Uncomment to get a beep at grub start
 +#GRUB_INIT_TUNE="480 440 1"
 +</code>
 +
 +ensuite on peut mettre le fichier grub.cfg à jour
 +<code bash>
 +# update-grub
 +</code>
 +
 +on termine on mettant toutes les partitions sauf / en noexec et / en read-only dans le fichier /etc/fstab
 +<code>
 +# /etc/fstab: static file system information.
 +#
 +# Use 'blkid -o value -s UUID' to print the universally unique identifier
 +# for a device; this may be used with UUID= as a more robust way to name
 +# devices that works even if disks are added and removed. See fstab(5).
 +#
 +# <file system> <mount point>   <type>  <options>       <dump>  <pass>
 +proc            /proc           proc    nodev,noexec,nosuid 0       0
 +UUID=d240c895-f500-42fb-b34a-1335cf861c1b /               ext4    errors=remount-ro,ro 0       1
 +UUID=0ffae1e9-f09a-4aa5-a8d0-7a681304e8d9 none swap sw 0       0
 +UUID=cb7b0fac-b92c-4c8c-9792-5a2ea4e1032b /home           ext4 defaults,noexec 0       2
 +UUID=5fe5af3f-f3a8-479e-bd43-e8a77f2df74b /data           ext4 defaults,noexec 0       2
 +
 +/data/log /var/log none bind 0 0
 +/data/squid /var/spool/squid none bind 0 0
 +
 +tmpfs           /tmp            tmpfs   defaults,noexec        0       0
 +tmpfs           /var/tmp        tmpfs   defaults,noexec        0       0
 +tmpfs           /var/run        tmpfs   defaults,noexec        0       0
 +
 +## Pas de device externes
 +#/dev/fd0        /media/floppy0  auto    rw,user,noauto,noexec,utf8 0       0
 +</code>
 +
 +Maintenant on peut rebooter((C'est le premier reboot après l'installation de la base)) pour voir si tout fonctionne correctement.
 +
  
papweb.txt · Dernière modification: 2023/07/18 23:11 (modification externe)