Mon petit setup à moi – 1/?

Pourquoi un article ?

A la sortie des nouveaux kimsufi; j’ai craqué pour un petit KS4G.

Comble des coïncidences, je suis tombé pendant que j’attendais la livraison de mon serveur sur une conférence intéressante sur l’utilisation de VPN pour garantir un certain niveau de neutralité de l’Internet et en parallèle, j’ai découvert quelques petites nouvelles notions au boulot (entre autres : haproxy, nginx, php5-fpm), donc pourquoi ne pas en faire un article ? Le principe, c’est que pour l’instant je n’ai pas terminé de mettre tout ça en marche, donc je fais un premier article en tant que déclaration d’intention, la technique pure suivra 🙂

 

Le serveur

Un petit KS4G, assurément présent en France dans le fameux DC tout beau tout neuf d’OVH donc, on est à peu près sûr d’avoir un bon peering depuis Free, en attendant d’avoir un FAI neutre. C’est un petit investissement, mais comme plateforme d’apprentissage et en tant que passerelle vers un Internet libre, c’est pas non plus du vol.

Un peu de plomberie

D’ores et déjà désolé pour l’utilisation de Visio, mais j’ai jamais rien trouvé de plus satisfaisant côté dessin de réseau. L’idée, ça va être de passer d’un setup classique type PC-IPV4 -> BOX-IPV4 -> INTERNET à un setup un peu plus secure (en ipv4 dans un premier temps, puis en ipv6). Je n’en suis pas encore à la dernière étape, loin s’en faut 🙂

A l’état initial, mon setup ressemblait à ça :

article1

Setup initial

J’ai donc mis en oeuvre la doc que j’ai fait dans mon dernier article, et je suis passé à ce setup :

article2

navigation « anonymisée »

Un léger mieux, si on peut dire : une perquisition sur un serveur est bien plus compliquée juridiquement qu’une dénonciation de votre fournisseur d’accès. Côté google, plus de personne utilisent ce point de sortie, moins il a de sens pour le ciblage des recherches. Bref, un peu de mieux. Le gros point positif bien visible : YouTube est accessible en HD depuis Free … Une nouveauté 🙂

Bon, c’est bien mais c’est un peu simpliste, je reste en France donc soumis au DPI français (c’est plus une légende depuis longtemps), et puis mon serveur allemand profite toujours de la qualité dégueu de connexion de Hetzner. Et puis, dans ce setup là tout passe par un seul tuyau, c’est pas ce qu’il y a de mieux question ping pour les jeux par exemple … On y reviendra. Dans un premier temps, la priorité c’est de bouger le point de sortie de ma connexion internet dans un pays libre, disposant d’un service de VPN privé sympathique.

 

 

On en vient donc à ce setup (sur lequel je suis en phase debug en ce moment) :

Le setup à venir

Le setup à venir

Telecomix

Du coup, j’ai toujours mon tuyau pourri chez les allemands, mais j’ai une connexion internet non espionnée et c’est peut être un peu gadget pour le moment, mais ça peut toujours servir à l’avenir et pas qu’à moi.

Le setup commence à être sympa, mais il repose quand même sur quelques maillons faibles. Le prochain point à éliminer, c’est la box, dans mon cas une freeboite, mais une bidulebox lambda fait aussi l’affaire. Je vais donc m’amuser à rajouter un petit routeur au milieu :

article6

todolist ?

Dans ce cas là, on commence à avoir un truc qui est un peu robuste en terme de chiffrement, et tout le monde profite au mieux de la bande passante la plus importante disponible en fonction de l’utilisation que l’on souhaite faire. Le jeu passe par le tuyau vert, les backups et mails internes de l’infra transitent par le VPN privé qui autorise le host-to-host et qui est isolé de son copain rouge. Le VPN rouge assure le transport jusqu’en bout de république bana^C Française; et le bleu quant à lui se charge d’amener les trames anonymisées jusqu’au bout de la chaine, en Suède.

Les détails de la conf … suivront dans un prochain article, pour l’instant c’est que des bô dessins.

Pour l’instant il s’agit d’une configuration solo, mais la conférence à laquelle je fais référence dans l’intro de l’article m’a donné une petite envie de faire du BGP également pour pouvoir profiter d’un niveau de tolérance de panne très satisfaisant en me connectant à des setups similaires.

article7

L’usine à gaz

 

HaProxy NGINX et PHP-FPM

Comme le KS4G, c’est pas costaud et que j’aime bien tester tout ce qui peut trainer comme application web open-source, je voulais disposer d’un setup moins contraignant côté web qu’une stack LAMP classique. Le premier exemple de limite que j’ai pu rencontrer, ça a été la tentative de faire cohabiter CozyCloud et OwnCloud. CozyCloud repose sur nginx et OwnCloud sur Apache (il peut aussi être transposé sur nginx). Si j’avais persisté dans cette démarche sur une configuration ayant quelques vhost (une dizaine), j’aurais du rajouter un reverse proxy en amont de la chaine de connexion et ce dernier n’aurait pas forcément pu parler avec grand chose d’autre que du http… Je me suis donc tourné (grâce à une découverte au boulot) sur une infra HAProxy+NGINX (et puis Apache2, si j’veux.). Cela me permettra de répartir les connexions entrantes en fonctions de tas de critères, vraiment de TAS de critères, HAProxy c’est incroyablement puissant pour un tas d’utilisation, le logiciel est capable de se placer sur plusieurs couches du modèle OSI, ce qui permet de descendre très bas dans la répartition des flux entrant, mais il est également capable de traiter chacun des champ d’une trame entrante. BREF ! C’est ‘achement bien.

Pour le moment, j’ai ça :

article2C’est tout simple, et ça marche très bien ! J’ai fais un petit vhost PHPMyAdmin pour rigoler, le traitement se fait proprement. Là où j’ai commencé à avoir des soucis c’est quand j’ai voulu appliquer l’équivalent d’un Order allow,deny \ Allow from mon.pc.a.moi \ Deny from All sur Nginx, HAProxy me mange le header http donnant l’IP source et le réglage que j’ai appliqué n’a pas résolu la situation, donc pour l’instant ça marche mais c’est pas sécurisé du tout. A noter, avec Nginx, que même si les fichiers .htaccess n’existent plus, ils peuvent très bien être remplacés ou même convertis du format Apache au format Nginx.

Bon, c’est bien, mais ça change pas grand chose d’une utilisation classique…

L’idée dans cette configuration, ça va de pouvoir mettre tout le monde derrière NGinx, que ce soit côté SMTP, TCP ou simplement HTTP. Donc le setup initial visé devrait correspondre à ça :

article3-ha

Mais ce setup là vise aussi à me permettre de faire le transport de mes mails depuis le serveur Français, juste pour le fun. Mon serveur mail (postfix/dovecot/SASL, réalisé avec cette doc) est sur mon serveur allemand, connexion dégueu et puis c’est trop simple si ça rentre directement sur le serveur sans relais amont.

article4-ha

Et pourquoi pas, faire office de reverse-proxy-pour-tout-service-TCP :

article5-ha

Reste à voir combien de temps tout ça va me prendre, et si j’ai pas de nouvelles idées en cours de route. Je reviens bientôt avec les confs et les détails de mes choix techniques. Peut être que j’aurais quelques idées supplémentaires pour développer mon cloud personnel !

 

 

4 thoughts on “Mon petit setup à moi – 1/?”

  1. dam09fr dit :

    Bonjour,

    J’envisage le même type d’installation que toi pour la partie HAproxy.
    J’y vois un intérêt supplémentaire : la branche 1.5 de HAproxy permet de faire du déchargement SSL, ainsi on peut gérer ses certificats au niveau de HAproxy et laisser les autres connections en clair sur les interfaces de loopback !

    J’aime bien le rendu de tes schémas, tu pourrais m’indiquer quel outil tu utilise STP ?

  2. Doo dit :

    Salut,

    HAProxy 1.5 permet, en effet, le offloading SSL. Mais pour le moment il n’est packagé pour aucune version de Debian(même en backport), et je n’ai pas envie d’avoir à repackager/recompiler le programme à chaque bugfix/CVE 🙂

    Pour les schemas, comme je le dis dans l’article, avec un peu de honte : j’utilise Visio !

    Pour le moment, j’ai mis en place la partie Haproxy mais je n’ai pas fait d’article encore à ce sujet, je suis en train de m’amuser avec la partie VPN avant de me mettre à rédiger un article.

  3. Madgui dit :

    Et sinon, question FAI neutre, avez vous pensé à FDN ? Perso je pense à ouvrir un deuxième ligne moi et à mettre un routeur en plus pour faire l d’aiguillage… C est débile comme idée ?

    1. Doo dit :

      Hello,

      On ne peut pas toujours avoir accès à un FAI supposé neutre malheureusement, d’autant plus quand on est chez un prestataire qui fournit de la fibre avec une piètre qualité de service. Tu peux mettre un routeur type ALIX ou ce que tu veux pour faire ce genre de chose, ça simplifie bien évidemment le concept. L’idée de ressortir chez un hébergeur et/ou avec un VPN « neutre » c’est de sortir de notre pays où la législation impose une grosse rétention d’informations du côté des hébergeurs et des FAI, mais ça n’est pas incompatible avec ton idée de routeur, bien au contraire.
      Pour ma part, j’ai surtout fait ça pour maîtriser IPRoute2 et les arcanes d’OpenVPN, ça m’a beaucoup appris. Mais si c’était à refaire, je le referais bien plus simplement avec une distro BSD Based type NetBSD ou PFsense.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *