ExaProxy, un proxy HTTP filtrant

Posté par  (site web personnel) . Édité par Lucas Bonnet et claudex. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
26
1
mar.
2012
Technologie

ExaProxy est un nouveau proxy HTTP s'ajoutant à une longue liste de logiciels libres (SQUID, haproxy, varnish, tinyproxy…). Il se place dans le secteur de niche des proxy filtrants principalement desservis commercialement par des entreprises comme BlueCoat ou Fortinet.

Dans ce domaine, SQUID est la plus connue des solutions libre grâce à une interface simple permettant l’écriture rapide de modules de filtrage qui reçoivent l'IP de hôte connecté avec la requête faite. SQUID supporte aussi ICAP/eCAP pour ceux qui veulent modifier la requête et la réponse du serveur.

Cependant, afin d'avoir un filtrage différent par IP d'origine, il est impossible d'utiliser SQUID avec un load balancer de niveau 7, comme haproxy, qui change l'IP d'origine. Seules les solutions de haute disponibilités ré-écrivant l'adresse MAC de destination (comme ipvsadmin) sont adaptées. De plus, SQUID ne présente pas les requêtes de type CONNECT.

ExaProxy est donc un forward proxy permettant de filtrer ou router le trafic transitant dans un cluster de manière très souple, et permet l'utilisation du header X-Forwaded-For quand l'IP de l’hôte est masquée. Une autre utilisation peut être comme passerelle entre machines IPv4 et IPv6.

Le fonctionnement du serveur peut-être observé via une interface web sur le port local 8080.

Un nouveau serveur httpd : Ashd, A Sane HTTP Daemon

Posté par  . Modéré par tuiu pol.
Étiquettes :
25
22
sept.
2010
Linux
Ashd est un serveur HTTP conçu selon la philosophie Unix : simplicité et modularité. Ashd (A Sane HTTP Daemon) est écrit en langage C, sous licence GPLv3 et vient d'annoncer sa sortie officielle en version 0.1. Il se compose d'un ensemble de programmes simples ayant chacun un rôle bien déterminé. Ashd a été pensé selon 4 piliers fondateurs :
  • Une conception saine : en application directe de la philosophie UNIX, ashd est découpé en plusieurs programmes qui font une seule chose, mais le font bien
  • La sécurité : comme chaque processus ne fait qu'une seule chose, il est facile de restreindre ses droits au minimum dont il a vraiment besoin
  • Une configuration simple et sensée : chaque programme ayant une responsabilité limitée, il est facile de le configurer (les options en ligne de commande suffisent généralement)
  • La persistance : les processus sont persistants et peuvent ainsi garder des données de session en mémoire ou conserver des connexions vers des backends.

Ashd est composé des modules suivants :
  • htparser, pour écouter les connexions TCP et parler en HTTP avec les clients
  • dirplex, pour servir des fichiers depuis un répertoire (la réponse est déléguée à sendfile)
  • patplex, pour les règles de gestion virtuelle
  • sendfile, pour répondre aux clients avec un fichier et gérer les entêtes HTTP associés (content-type, last-modified, etc.)
  • callcgi, pour appeler des scripts CGI
  • userplex, pour servir les répertoires des utilisateurs à la /~user/ (ce programme est lancé avec l'utilisateur en question, ce qui évite les problèmes que l'on peut avoir avec apache qui tourne en www-data)...

Journal Comment réduire les attaques à notre vie privée sur le web

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
24
17
mar.
2014

La vie privée est quelque chose de plus en plus attaqué de nos jours. Et il existe de nombreuses manières pour les sites web de savoir qui vous êtes. Quelques unes :

  • les cookies
  • le cache de votre navigateur via l'en tête ETag
  • des informations qui vous identifie de manière assez spécifique (type mimes préférés, langue, user-agent, …)
  • des appels javascript qui peuvent également vous identifier (plugins actifs, OS, distribution, plateforme, …)
  • les plugins comme flash
  • localStorage

Si vous avez (…)

Présentation de nginx

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
21
17
juin
2010
Internet
Nginx est un reverse proxy et serveur web, ainsi qu'un proxy mail (IMAP et POP3), sous licence BSD. Igor Sysoev a commencé à le développer en 2002 pour un site russe à fort trafic, et depuis la popularité de nginx n'a cessé de croître. Selon netcraft, 6,5% des sites web dans le monde seraient servis par nginx.

Nginx est réputé pour ses performances et sa faible consommation mémoire. Cela vient de son architecture : au lieu de dédier un processus ou un thread pour traiter chaque requête, il utilise un modèle événementiel. Cela lui permet notamment de tenir un grand nombre de connexions simultanées sans voir sa consommation mémoire s'envoler. Des sites connus comme Wordpress, github et SourceForge l'ont choisi pour cette raison.

Nginx est également développé selon une approche modulaire : il est composé d'un cœur réduit et d'un grand nombre de modules que l'on peut choisir d'inclure à la compilation. Comme il est facile de développer un module, il en existe de nombreux et qui couvrent une large palette de fonctionnalités, des plus essentielles (SSL, fastcgi, gzip, rewrite, log) aux plus exotiques (servir des fichiers GIF vides, afficher des pages d'index aléatoires).

Si vous souhaitez télécharger nginx, 3 versions vous seront proposées : la branche 0.8 offre les dernières avancées, la branche 0.7 est la branche stable, et la branche 0.6 (legacy) est encore maintenue. La dernière version, sortie le 15 juin, est la 0.8.41. Vous pourrez l'installer sur Linux, BSD, Solaris, OSX ou encore Windows.

Proxy HTTP(s) gatejs

Posté par  . Édité par Xavier Teyssier, Benoît Sibaud, Pierre Jarillon et rootix. Modéré par ZeroHeure.
20
20
juin
2014
JavaScript

gatejs est un nouveau mandataire/proxy HTTP(s) (forward & reverse) qui a pour vocation de remplacer squid, nginx, varnish ou encore apache, dans leurs fonctions de proxy (forward & reverse). Il est publié sous licence GPLv3.

Il est développé en JavaScript (2/3) et en C++ (1/3). Il est prévu que la proportion de C++ se réduise au fil du temps. Ce proxy utilise le moteur Javascript V8 et nodejs.

Il a été initialement conçu pour offrir plus de flexibilité sur l'interception et le traitement d'informations en HTTP.

Pour ceux qui ne sont pas pro-JavaScript, il est important de préciser que les performances de gatejs sont proches, voire dans certains cas, supérieures à nginx.

De plus, l'utilisation de Javascript permet d'augmenter la lisibilité des codes, de les factoriser et de renforcer la sécurité, surtout pour des opérations complexes.

Les configurations sont écrites au moyen de la notation d'objets Javascript (JSON).

Les pouvoirs magiques d'Unicorn 1.0.0

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
19
19
juin
2010
Ruby
Unicorn est un serveur applicatif HTTP en Ruby comparable à Mongrel ou à Thin, sous licence GPLv2. Il est utilisé notamment par Twitter et Github et vient d'atteindre la version 1.0.

Unicorn est compatible avec Rack, une interface entre les serveurs applicatifs et les frameworks. Il peut ainsi être utilisé pour servir des applications Ruby, dont celles écrites en Ruby on Rails. Il tourne avec Ruby 1.8, Ruby 1.9 et bientôt Rubinius. Rappelons que Rubinius est une implémentation alternative de Ruby dont la version 1.0 est sortie récemment.

Unicorn s'appuie au maximum sur les noyaux Unix pour éviter de réinventer la roue. Par exemple, la répartition des requêtes entre les différents processus se fait grâce à une socket partagée. Il est également possible de mettre à jour Unicorn, l'application ou l'interpréteur Ruby sans perdre la moindre connexion.

De même, Unicorn est optimisé pour servir des clients rapides. Il est donc très souvent utilisé derrière un reverse-proxy, qui pourra bufferiser les requêtes des clients lents.

A l'inverse, utiliser Unicorn pour des connexions longues comme du Comet (Comet désigne un ensemble de techniques où un serveur maintient des connexions HTTP ouvertes pour pouvoir pousser des contenus vers les clients) ou des websockets serait très inefficace, je vous conseille pour cela de regarder Rainbows : c'est un projet inspiré d'Unicorn qui vise justement à répondre à cette problématique particulère.

Journal Firefox : ça continue

Posté par  .
Étiquettes :
17
28
juin
2011

Je crois que je vais vite changer de navigateur. En effet, non content de bouleverser le monde avec leur changement de numériotation, ils ont décidé de supprimer le http:// ainsi que le préfixe www dans la barre d'URL.

Je trouve ça stupide: en effet, 'URL est un bon moyen de vérifier que nous sommes bien sur le site sur lequel on doit se trouver et non sur une imitation.

Ce qui me choque c'est la phrase: "Le « www » (…)

Sondages sur les serveurs web Netcraft et SecuritySpace de décembre 2015

Posté par  (site web personnel, Mastodon) . Édité par Benoît Sibaud et BAud. Modéré par ZeroHeure. Licence CC By‑SA.
16
15
jan.
2016
Internet

Netcraft est un site web connu pour sa réalisation de sondages sur le logiciel utilisé par les serveurs web sur Internet, ainsi que pour la détection (et l'historique) de ces mêmes logiciels sur requête de ses visiteurs.

Chaque mois, Netcraft publie le résultat de son sondage. Le sondage du mois de décembre est donc disponible, et la deuxième partie de dépêche vous propose un commentaire de ce sondage.

Security Space publie aussi un sondage chaque mois sur les serveurs web (qui aurait besoin d'un peu de toilettage ceci dit).

Journal HTTP2, le protocole écrit comme une loi américaine

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
13
18
fév.
2014

Bonjour Nal,

HTTP2 est le petit nom du protocole censé remplacer notre bon vieux HTTP. D'après Wikipédia,

Goals for HTTP 2.0 are to improve the overall performance of the protocol while maintaining full backwards compatibility with the transaction semantics of HTTP 1.1.

Ce qui donne en bon françois : Le but avec HTTP 2.0 est d'améliorer globalement les performances du protocole tout en maintenant une compatibilité complète avec la sémantique des transactions.

Une nouvelle version du brouillon a été (…)

Journal Recherche d'un reverse proxy

Posté par  . Licence CC By‑SA.
Étiquettes :
12
5
mar.
2021

Hello world.

Cela fait longtemps que je n'ai pas pris ma plume pour vous parler. Le temps et l'envie me manquaient.

Aujourd'hui je crée ce journal car je me demande quel reverse proxy utiliser.

Jusqu'à maintenant, j'ai utilisé Lighttpd puis Traefik proxy. J'ai switché sur Trafik par ce qu'il est simple à configurer, que sa configuration peut se faire via des fichiers YAML (pratique si on déploie sa config avec Ansible), sa configuration est dynamique, il peut servir de (…)

Journal Apache vs Cherokee / PostgreSQL vs MySql

Posté par  (site web personnel) .
Étiquettes :
7
20
avr.
2010
Bonjour Journal,

Question qui aurait pu être dans le forum, mais qui sera dans un journal, car non seulement la réponse mais aussi quelques éléments de ce billet peuvent intéresser du monde.

Vous connaissez tous le serveur Apache (version 2) [http://httpd.apache.org/] permettant, chez moi de faire tourner du PHP (Dotclear), du Python (Trac), du Perl (Mailman), des pages Statiques (Webalizer), SubVersion (ModSvn).

J’ai découvert il y a peu Cherokee [http://www.cherokee-project.com/], grâce à Linux Magazine. Apparemment, il (…)

Journal Système de messagerie pour remplacer les e-mails

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
7
9
mai
2011

Salut,

Je réfléchis en ce moment à un système de messagerie au dessus du protocole HTTP qui pourrait replacer dans une certaine mesure les e-mails. Mes buts sont:

  • de permettre une implémentation simple, en particulier en utilisant XmlHttpRequest
  • de passer partout où HTTP passe
  • d'authentifier l'envoyeur

Je propose donc un mini protocole REST que je compte commencer à implémenter bientôt.

Ce qui m'a poussé à ça, c'est la découverte des sites en .onion. Et la constatation qu'il n'y avait (…)

Forum Linux.général Ordre des VirtualHosts Apache

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
2
19
avr.
2019

Bonjour,

J'ai un serveur Apache qui héberge plusieurs hôtes en parallèle.
Chaque VirtualHost est associé à un nom de domaine, pourtant, quand je visite un site, je tombe sur un autre.
Je ne comprends pas la logique :

    # Hote 1

    <VirtualHost appli1.domaine.fr:80>
        ServerName appli1.domaine.fr
        ...
    </VirtualHost>
    <IfModule mod_ssl.c>
        <VirtualHost appli1.domaine.fr:443>
                ServerName appli1.domaine.fr
                ...
        </Virtualhost>
    </IfModule>

    # Hote 2

    <VirtualHost appli2.domaine.fr:80>
        ServerName appli2.domaine.fr
        ...
    </VirtualHost>
    <IfModule mod_ssl.c>
        <VirtualHost appli2.domaine.fr:443>
                ServerName appli2.domaine.fr
                ...
        </Virtualhost>
    </IfModule>

Une idée pour éclairer ma lanterne (…)