Déploiement du VPS Gandi

Là, rien d'extraordinaire. Tout se fait via l'interface web de Gandi.

Une chose à noter : le code promo donné par Gandi est valable pour l'obtention de « crédits ». Il faut donc commencer par prendre des crédits avant d'essayer de commander la machine virtuelle.

Configuration du VPS lui-même

Ceci ne respecte pas (exactement) l'ordre chronologique, par soucis de cohérence.

Configuration des scripts Gandi

Gandi livre, dans son image Debian, des scripts visant à mieux intégrer le système à leur environnement de virtualisation.

La documentation de Gandi mentionne que leur configuration se fait dans /etc/default/gandi. Voici les paramètres modifiés :

  • CONFIG_SWAP=0
    Pas forcément désirable sur un nœud Tor.
  • CONFIG_SSHMGMT=0, CONFIG_SSHD=0
    Gandi n'a pas à modifier la configuration de sshd, et encore moins pour donner un accès root à ses infogérants.
    Notez que, Gandi contrôlant l'hyperviseur, ekumen est à leur merci sur le plan de la sécurité.
  • CONFIG_DNS=0, CONFIG_NAMESERVER=0
    On utilise notre propre résolveur.
  • CONFIG_ROOTACCESS=0
    Ne pas simplifier l'obtention d'un shell root via la console série virtuelle.
  • CONFIG_CRON=0
    Ne pas randomiser les horaires de cron. Ça interfère avec etckeeper.

todo: Auditer les scripts Gandi (Ticket RT #54)

Installation et configuration d'etckeeper

apt-get install etckeeper aptitude

La configuration d'etckeeper consiste en 3 points :

  1. le fichier /etc/etckeeper/etckeeper.conf

     AVOID_DAILY_AUTOCOMMITS=1
     AVOID_COMMIT_BEFORE_INSTALL=1
    
  2. l'installation de /etc/cron.hourly/etckeeper-warn-changes
    Ne pas oublier de spécifier MAILTO=machines@nos-oignons.net

  3. l'installation des 2 hooks maintenant la liste de paquets :
    /etc/etckeeper/init.d/30initial-package-list et /etc/etckeeper/post-install.d/10refresh-package-list
    Il faut penser à lancer 30initial-package-list pour créer la liste.

Locale par défaut

La locale par défaut est en_US.UTF-8, mais le paquet locales-all a aussi été installé pour éviter quelques soucis d'affichage.

Installation et configuration de unattended-upgrades

Installer unattended-upgrades et modifier /etc/apt/apt.conf.d/50unattended-upgrades conformément à Messages automatiques

Installation et configuration de sudo

  1. La configuration de sudo a été en partie importée depuis bulbe :
    /etc/sudoers.d/{00_defaults,01_nopasswd,rebooted.warn}
  2. Il faut penser à éditer le nom d'hôte dans rebooted.warn.

Installation et configuration de molly-guard

Dans /etc/molly-guard/rc : ALWAYS_QUERY_HOSTNAME=true (donc molly-guard demandera systématiquement confirmation - sous forme du nom d'hôte à entrer - si une commande d'arrêt du système est lancée depuis un terminal).

Spécification de l'éditeur par défaut

Choix de vim plutôt que nano :

update-alternatives --config editor

Configuration de l'envoi de mails à machines@

La pièce manquante (hormis le MTA …) est de spécifier MAILTO=machines@nos-oignons.net dans /etc/crontab.

Installation de aptitude et haveged

Rien de notable

Installation et configuration de screen

Penser à autoriser le multi-user, comme expliqué dans screen.

Configuration de OpenSSH

PermitRootLogin no
PasswordAuthentication no
X11Forwarding no

Changement de la liste de dépôts

  • Modifications apportées à /etc/apt/sources.list :

    1. Retrait de contrib & non-free.
    2. Ajout de http://ftp.fr.debian.org/debian/ wheezy-updates
    3. Ajout des dépôts Tor :

         deb http://deb.torproject.org/torproject.org/ wheezy main
         deb http://deb.torproject.org/torproject.org/ tor-nightly-0.2.4.x-wheezy main
      
  • Penser à importer la clef signant les dépôts Tor.

Installation et configuration de Tor

  1. apt-get install tor tor-arm

  2. On modifie le /etc/tor/torrc par défaut :

    • ORPort 443
    • Address ekumen.nos-oignons.net
    • Nickname ekumen
    • RelayBandwidthRate 3200 KB et RelayBandwidthBurst 3500 KB
      Attention aux conversions d'unités
    • ContactInfo 0x9F29C15D42A8B6F3 Nos oignons <adminsys@nos-oignons.net>
    • DirPort 80
    • MyFamily $011FDD1EE84DAC7758119B69829C74A9D197B35E
      Ne pas oublier $ devant l'empreinte (ici, celle de marcuse).
      On peut obtenir l'empreinte sur Atlas, dans /var/lib/tor/fingerprint, ou via arm

    • Ne pas oublier ExitPolicy reject *:* sous peine d'activer la politique par défaut.

  3. Ne pas oublier d'ajouter les administrateurs au groupe debian-tor

Installation et configuration de unbound

  1. Installation du paquet unbound
  2. Spécification de 127.0.0.1 comme résolveur dans resolv.conf.
    On utilise pour l'instant Google DNS en fallback.
  3. On modifie /etc/unbound/unbound.conf comme ceci