PROJET AUTOBLOG


PostBlue

source: PostBlue

⇐ retour index

VPN gratuits sans crapware

vendredi 23 août 2013 à 15:10

Pour une utilisation épisodique, l’utilisation d’un VPN peut grandement dépanner. Pour moi, il s’agit surtout de contourner les dispositions d’impotents ayant rendu indisponibles sous ma latitude l’un ou l’autre contenu. Bref, le VPN contre ceux qui veulent mettre des frontières dans les Internets.

Cela dit, beaucoup de solutions gratuites pèchent par un logiciel « maison » sale, opaque, la plupart du temps indisponible pour autre chose que Windows ou Apple Mac OS. Client OpenVPN revampé ou saleté infectieuse, impossible de savoir ce qu’il fait vraiment ou ce qu’il cherche à joindre. J’ai donc cherché des solutions de VPN gratuit « propre », donnant un fichier de configuration (OpenVPN bien souvent) qu’il me suffit d’importer dans Network Manager, le gestionnaire de connexion de GNOME.

Stealingz yar internetz

Freedom-IP

Freedom-IP est un service gratuit et communautaire dont la communication en français, ce qui parfois fait plaisir dans mes moments de grande flemme intellectuelle. Ayant remporté beaucoup de succès et d’emmerdements suite à la fermeture de Megaupload, les inscriptions avaient dû être endiguées au maximum afin de pouvoir « tenir la charge » des joyeux collégiens voulant participer à quelque DDoS — pardon, à la révolution internautique — tout en utilisant un VPN gratuit. Dorénavant, un dossier d’inscription est exigé, mais le service en vaut bien la peine.

Petit plus : il est possible de parrainer 5 amis, mais gardez bien à l’esprit que lorsque vous parrainez un filleul, l’opération est définitive. Vous ne pourrez ni modifier ni supprimer votre parrainage.

Petit moins : l’omniprésence de la publicité sur le site peut être comprise pour le financement du service, mais est totalement incompréhensible quand le service se veut pour l’anonymat ; n’y a-t-il pas pire flics des Internets que les régies publicitaires ?

Mullvad

Mullvad est un service que j’apprécie particulièrement, que ce soit pour son offre gratuite (restreinte, oui) ou son offre payante. À vrai dire, c’est même celui que je recommande entre tous, et pas parce que je suis fanatique de taupes à casque de mineur. Notez que l’offre gratuite est très courte : à peine trois heures, assez pour se rendre compte de la fiabilité de leur service.

Privacy is a universal right.

We don’t tell anyone anything.

We don’t log our users’ activities.

When Swedish law requires us to divulge information about our customers we make sure not to have that information stored, so that we have nothing to give out.

Ce que l’on peut traduire par : La vie privée est un droit universel. Nous ne disons rien à personne. Nous n’enregistrons pas les activités de nos utilisateurs. Quand la loi Suédoise nous contraint à divulguer quelque information sur nos client, nous nous assurons de n’en avoir aucune d’enregistrée, afin de n’avoir rien à communiquer.

Ce point est néanmoins à nuancer de peu, ce qui est fait à la fin de cette page : les payements par carte bancaire laissent des traces auprès des banques, ou des prestataires de paiement, et Mullvad ne peut effacer ces traces-là. Ainsi est-il proposé deux méthodes de paiement plutôt intéressante : le billet dans l’enveloppe, ou le Bitcoin.

Il est possible d’obtenir un compte à l’essai, ma foi fort complet, permettant d’accéder au service de Mullvad via leur logiciel dédié (une archive .deb installant tout ce qu’il faut pour utiliser NetworkManager et OpenVPN, et configurant le tout), ou une configuration OpenVPN ou PPTP à importer par soi-même dans NetworkManager. Pour Arch Linux, quelques manipulations restent à faire, voir ArchWiki: Mullvad.

Atout : l’excellente fiabilité du service, je n’ai jamais été pris au dépourvu même en utilisant un compte gratuit temporairement.

Désavantage : j’ai trouvé que l’accès au service était difficile pour peu que l’on n’utilise pas Debian ou une distribution dérivée.

World NeighborHood

WNh est le service de VPN proposé par Telecomix, que j’utilise majoritairement aujourd’hui. C’est la solution parmi les plus complètes, puisqu’elle comprend outre le traditionnel VPN un ensemble de services plus ou moins intéressants pour les initiés : une résolution interne des domaines en *.wnh, sorte de darknet à la disposition de habitués, suivie de services cachés TOR et I2P.

Leur wiki est malheureusement en rade, heureusement reste le GitHub de KheOps qui contient toutes les informations nécessaires. Voir chez NeoSting pour une configuration facile avec Network Manager.

Bien : le nom d’utilisateur et le mot de passe peuvent être choisis n’importe comment, aucune authentification casse-tête n’est à prévoir.

Pas bien : le service est parfois en rade, suspendu par l’équipe à chaque menace d’intrusion. Très chiant, mais c’est pour la bonne cause.

Morale de l’histoire : pour un service volontaire financé par des hacktivistes, WNh est tout bonnement excellent. S’il n’est soumis à aucun bridage, ce service est à utiliser avec précaution : ne l’utilisez qu’en cas de réel besoin. Passez votre chemin si vous désirez télécharger le film Vacances_À_La_Plage_Avec_La_Famille_HDRip.mkv en faisant porter le chapeau à quelqu’un d’autre.

Discontinué

Pendant longtemps Arethusa proposait un VPN gratuit, ce qui ne semble plus être le cas. Il reste la solution payante, évidemment, que je n’ai pas essayée.

flattr this!

Prosody sur Debian Wheezy

mardi 20 août 2013 à 18:07
N’hésitez pas à commenter la présente configuration si vous relevez une erreur.

Dépôts et installation

Ajouter le dépôt de Prosody dans un source.list particulier.

echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/prosody.list

Ajouter la clef d’authentification des paquets.

wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -

Mettre à jour la base des programmes.

sudo apt-get update

Installer la version 0.9 de Prosody, le support pour une base de données en SQLite ainsi que quelques dépendances optionnelles pour gérer la charge ou la compression.

sudo apt-get install prosody-0.9 lua-socket-prosody lua-sec-prosody luarocks lua-event lua-zlib lua-dbi-sqlite3

Configuration

Éditer /etc/prosody/prosody.cfg.lua.

Compte administrateur

-- This is a (by default, empty) list of accounts that are admins
-- for the server. Note that you must create the accounts separately
-- (see http://prosody.im/doc/creating_accounts for info)
-- Example: admins = { "user1@example.com", "user2@example.net" }
admins = { "user@example.com" }

libevent

use_libevent = true;

Plugins

Copier le répertoire des modules dans /opt/prosody.

cd /opt; sudo hg clone http://prosody-modules.googlecode.com/hg/ prosody

Insérer le chemin vers le répertoire dans le fichier de configuration.

-- These paths are searched in the order specified, and before the default path
plugin_paths = { "/opt/prosody/" }

SQL

-- Select the storage backend to use. By default Prosody uses flat files
-- in its configured data directory, but it also supports more backends
-- through modules. An "sql" backend is included by default, but requires
-- additional dependencies. See http://prosody.im/doc/storage for more info.

storage = "sql" -- Default is "internal"

-- For the "sql" backend, you can uncomment *one* of the below to configure:
sql = { driver = "SQLite3", database = "prosody.sqlite" } -- Default. 'database' is the filename.

Authentification backend

-- Select the authentication backend to use. The 'internal' providers
-- use Prosody's configured data storage to store the authentication data.
-- To allow Prosody to offer secure authentication mechanisms to clients, the
-- default provider stores passwords in plaintext. If you do not trust your
-- server please see http://prosody.im/doc/modules/mod_auth_internal_hashed
-- for information about using the hashed backend.

authentication = "internal_hashed"

Modules

modules_enabled = {

        -- Generally required
                "roster"; -- Allow users to have a roster. Recommended ;)
                "saslauth"; -- Authentication for clients and servers. Recommended if you want to log in.
                "tls"; -- Add support for secure TLS on c2s/s2s connections
                "dialback"; -- s2s dialback support
                "disco"; -- Service discovery
                "posix"; -- POSIX functionality, sends server to background, enables syslog, etc.

        -- Not essential, but recommended
                "private"; -- Private XML storage (for room bookmarks, etc.)
                "vcard"; -- Allow users to set vCards

        -- These are commented by default as they have a performance impact
                "privacy"; -- Support privacy lists
                "compression"; -- Stream compression (requires the lua-zlib package installed)

        -- Nice to have
                "version"; -- Replies to server version requests
                "uptime"; -- Report how long server has been running
                "time"; -- Let others know the time here on this server
                "ping"; -- Replies to XMPP pings with pongs
                "pep"; -- Enables users to publish their mood, activity, playing music and more
                "register"; -- Allow users to register on this server using a client and change passwords

        -- Admin interfaces
                "admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands
                --"admin_telnet"; -- Opens telnet console interface on localhost port 5582

        -- HTTP modules
                "bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
                --"http_files"; -- Serve static files from a directory over HTTP

        -- Other specific functionality
                --"groups"; -- Shared roster support
                --"announce"; -- Send announcement to all online users
                --"welcome"; -- Welcome users who register accounts
                --"watchregistrations"; -- Alert admins of registrations
                --"motd"; -- Send a message to users when they log in
                --"legacyauth"; -- Legacy authentication. Only used by some old clients and bots.
};

Components

---Set up a MUC (multi-user chat) room server on conference.example.com:
Component "conference.example.com" "muc"
        restrict_room_creation = true

---Set up a VJUD service
Component "vjud.example.com" "vjud"

---Set up a PubSub server
Component "pubsub.example.com" "pubsub"
        admins = { "example.com", "domaine.fr" }
        autocreate_on_subscribe = true
        autocreate_on_publish = true

-- Set up a SOCKS5 bytestream proxy for server-proxied file transfers:
Component "proxy.example.com" "proxy65"
        proxy65_acl = { "example.com", "domaine.fr" }

BOSH

Activer le module.

modules_enabled = {
        -- Other modules
        "bosh"; -- Enable mod_bosh
    }

Configurer le module.

-- BOSH configuration
bosh_ports = {
                 {
                    port = 5280;
                    path = "http-bind";
                 },
                 {
                    port = 5281;
                    path = "http-bind";
                    ssl = {
                             key = "/etc/prosody/certs/example.com.key";  
                             certificate = "/etc/prosody/certs/example.com.crt";
                          }
                 }
              }
cross_domain_bosh = true

Rendre le BOSH public avec NGinx.

server {
    listen 80;
    server_name bosh.example.com;

    location / {
            proxy_pass http://localhost:5280/http-bind;
            proxy_buffering off;
            tcp_nodelay on;
    }
}

server {
    listen 443 ssl;
    server_name bosh.example.com;

    ssl_stapling on;
    ssl_trusted_certificate /etc/ssl/certs/cacert.org.pem;
    ssl_certificate         /etc/nginx/ssl/cacert/example.com.crt;
    ssl_certificate_key     /etc/nginx/ssl/cacert/example.com.key;

    location / {
            proxy_pass https://localhost:5281/http-bind;
            proxy_buffering off;
            tcp_nodelay on;
    }
}

Certificats

Je conseille d’utiliser un certificat CAcert, mais il est possible d’utiliser prosodyctl pour générer un certificat (comme d’utiliser une autorité de certification d’ailleurs). Voir la page Certificates pour plus de précision.

Attention, si vous utilisez  un certificat émis par CAcert, il est conseillé d’ajouter le certificat racine à la celui du serveur.

cat /etc/ssl/certs/cacert.org.pem >> /etc/prosody/certs/example.com.crt

Attention, Prosody peut ne pas se lancer si les droits de lecture des certificats ne sont pas corrects. Solution barbare :

sudo chmod 600 /etc/prosody/certs/*
sudo chown -R prosody:prosody /var/lib/prosody /etc/prosody

Virtual Hosts

VirtualHost "localhost"

VirtualHost "example.com"
        ssl = {
                key = "/etc/prosody/certs/example.com.key";
                certificate = "/etc/prosody/certs/example.com.crt";
                }
        admins = { "user@example.com" }

VirtualHost "domaine.fr"
        ssl = {
                key = "/etc/prosody/certs/domaine.fr.key";
                certificate = "/etc/prosody/certs/domaine.fr.crt";
                }
        admins = { "utilisateur@domaine.fr" }

VirtualHost "anonymous.example.com"
        authentication = "anonymous"
        allow_anonymous_multiresourcing = true
        allow_anonymous_s2s = true

DNS

Comme on peut le voir ci-dessus, un serveur Prosody peut gérer plusieurs noms de domaine si la configuration DNS est adéquate. Dépendant de votre solution de gestion des noms, la solution qui suit peut varier. La mise à jour de la zone DNS n’est pas instantanée, il faudra très certainement attendre la diffusion de la mise à jour.

Nom de domaine utilisant le DNS de Gandi

anonymous 10800 IN A 1.2.3.4
bosh 10800 IN A 1.2.3.4
conference 10800 IN A 1.2.3.4
fqdn 10800 IN A 1.2.3.4
proxy 10800 IN A 1.2.3.4
pubsub 10800 IN A 1.2.3.4
vjud 10800 IN A 1.2.3.4

_jabber._tcp 86400 IN SRV 5 0 5269 fqdn.example.com.
_jabber._tcp.anonymous 86400 IN SRV 5 0 5269 fqdn.example.com.
_jabber._tcp.conference 10800 IN SRV 5 0 5269 fqdn.example.com.
_jabber._tcp.proxy 10800 IN SRV 5 0 5269 fqdn.example.com.
_jabber._tcp.pubsub 10800 IN SRV 5 0 5269 fqdn.example.com.
_jabber._tcp.vjud 10800 IN SRV 5 0 5269 fqdn.example.com.

_xmpp-client._tcp 86400 IN SRV 5 0 5222 fqdn.example.com.
_xmpp-client._tcp.anonymous 86400 IN SRV 5 0 5222 fqdn.example.com.
_xmpp-client._tcp.conference 10800 IN SRV 5 0 5222 fqdn.example.com.
_xmpp-client._tcp.proxy 10800 IN SRV 5 0 5222 fqdn.example.com.
_xmpp-client._tcp.pubsub 10800 IN SRV 5 0 5222 fqdn.example.com.
_xmpp-client._tcp.vjud 10800 IN SRV 5 0 5222 fqdn.example.com.

_xmpp-server._tcp 86400 IN SRV 5 0 5269 fqdn.example.com.
_xmpp-server._tcp.anonymous 86400 IN SRV 5 0 5269 fqdn.example.com.
_xmpp-server._tcp.conference 86400 IN SRV 5 0 5269 fqdn.example.com.
_xmpp-server._tcp.proxy 10800 IN SRV 5 0 5269 fqdn.example.com.
_xmpp-server._tcp.pubsub 86400 IN SRV 5 0 5269 fqdn.example.com.
_xmpp-server._tcp.vjud 86400 IN SRV 5 0 5269 fqdn.example.com.

Nom de domaine « ailleurs »

_jabber._tcp.domaine.fr. 86400 IN SRV 5 0 5269 fqdn.example.com.
_xmpp-client._tcp.domaine.fr. 10800 IN SRV 5 0 5222 fqdn.example.com.
_xmpp-server._tcp.domaine.fr. 86400 IN SRV 5 0 5269 fqdn.example.com

Firewall

Les ports utilisés sont les ports 5222 (TCP & UDP), 5269 (TCP & UDP), 5280 (TCP & UDP) et 5000 (pour le proxy). Éditer la configuration du pare-feu en conséquence pour laisser le passage.

Ajout d’un utilisateur

prosodyctl adduser user@example.com
prosodyctl adduser utilisateur@domaine.fr

Redémarrer et profiter

sudo service prosody restart

Il est possible de voir s’il y a des erreurs aisément :

sudo tail -f /var/log/prosody/prosody.err /var/log/prosody/prosody.log

Plus qu’à s’amuser avec buddycloud, Jappix, Movim, …

Sources

flattr this!

Johnny Rivers: John Lee Hooker

samedi 17 août 2013 à 07:54

Rendez-vous avec Dr Boogie ce vendredi 16 août sur Classic 21. Moment totalement eargasmique, Johnny Rivers crachote, crépite sur les ondes : les 15 minutes de son John Lee Hooker enregistré au Whisky a Go Go retentissent. J’en frémis encore. Voici un pis-aller, néanmoins, une version longue atterrie dans le grand bain des Internets.

flattr this!

GNU MediaGoblin : client Android

samedi 10 août 2013 à 11:53

Il y a peu, j’ai désiré me mitonner un petit client Android pour mon instance GNU MediaGoblin, afin d’avoir la possibilité d’envoyer sur celle-ci des photos directement depuis une ROM CyanogenMod fraîchement installée (je tournais en 2.3, j’ai décidé de passer à CM suite à des erreurs de certificats non reconnus — ceux de CAcert, ajoutés à NGinx comme ceci — et des dépendances de mediagoblin-android envers Holo).

Cependant, avoir toute la suite Eclipse installée ne me plaisait pas trop, alors que le suggère la page du wiki relative au client Android : peu d’espace disque, une connexion en mousse, la flemme de me replonger dans les arcanes de cet IDE (l’usine à gaz qu’elle est jolie) que j’avais pris en main il y a longtemps, et j’avais vite fait d’oublier. Solution : utiliser Apache Ant, une librairie Java utilisable depuis la ligne commande qui suffit largement à ce que j’ai besoin de faire.

Les dépendances sont, en ce qui concerne ma Arch Linux :

Après l’installation, il faut lancer android (en root) et installer le pack de développement sélectionné par défaut. Pendant que ça télécharge, faites-vous un café — ou de multiples cafés si votre connexion se rapproche de la mienne –, clonez le répertoire mediagoblin-android et éditez-le avec vos clefs OAuth. Dans l’ordre :

# Place plugins here, each in their own subsection of [plugins].
# See http://docs.mediagoblin.org/siteadmin/plugins.html for details.
[plugins]

[[mediagoblin.plugins.geolocation]]
[[mediagoblin.plugins.basic_auth]]
[[mediagoblin.plugins.api]]
[[mediagoblin.plugins.oauth]]

[[mediagoblin.media_types.image]]
[[mediagoblin.media_types.video]]
[[mediagoblin.media_types.audio]]
[[mediagoblin.media_types.ascii]]

Mettez à jour MediaGoblin (./bin/gmg dbupdate) et redémarrez les scripts adéquats (fastcgi, celery). Ensuite, allez produire vos codes OAuth sur mediagoblin.domain.tld/oauth/client/register, on en aura besoin plus tard donc ne fermez pas la page tout de suite. L’application que vous enregistrez doit être privée, sans d’URL de redirection (si ça déconne, essayez autre chose ;)).

Après avoir cloné le répertoire :

git clone git://gitorious.org/mediagoblin/mediagoblin-android.git

Éditez src/org/mediagoblin/android/client/NetworkUtilities.java en y insérant vos propres clefs.

Avant de continuez, il faudra brancher le téléphone sous Android avec le débogage par USB activé, voyez sur votre mouture comment cela peut se faire (quelque part dans les outils de développement, dans les paramètres du système).

Dans le dossier précédemment cloné, depuis le terminal de votre choix, l’Androphone connecté par USB, après avoir enfin téléchargé les outils nécessaires du SDK d’Android, vous pouvez (normalement) enfin « construire » le client MediaGoblin :

android update project -p .

Pour fixer l’environnement de développement, puis :

ant clean; ant debug; ant debug install

C’est fait !

flattr this!

La Quadrature du Net a 5 ans

vendredi 2 août 2013 à 18:01

Et ça se fête ! À cette occasion, je tiens à remercier la Quadrature du Net pour son travail — action qui m’a permis de comprendre que lobby n’était pas toujours un sale mot (n’hésitez pas à les soutenir, à votre manière) (non, je ne renie pas, les appels incessants aux dons ont toujours tendance à me lourder).

 

flattr this!