lundi, décembre 18, 2017
Nom d'utilisateur : Mot de passe :
Home > Dossiers > Media et diffusion de contenu > Accéder à un service de streaming étranger
[NEWS]
Envoyé par unreal
Présentation

J'adore écouter de la musique, mais hélas pour moi le service de streaming que je préfère n'est pas disponible en France, c'est-à-dire qu'il faut une IP américaine pour se connecter. C'est bien dommage, mais nous n'allons pas nous décourager pour si peu.

Dans un dossier, nous allons voir comment installer un serveur proxy sur un petit serveur virtuel qu'on peut trouver pour quelques dollars par mois à peine.

Installation et configuration de Squid

Commencez donc par installer Squid sur votre serveur. Nous avons utilisé la version 2.6.STABLE21 sur un système CentOS x64.

Ensuite, nous allons changer le port d'écoute et configurer Squid pour cacher sa présence dans les headers HTTP. En effet, certains services de streaming peuvent détecter ces headers pour en bloquer l'accès.

http_port 18080
header_access Via deny all
forwarded_for off


Enfin, nous allons configurer des ACL d'accès. Personnellement, je souhaite pouvoir utiliser le proxy pour accéder à n'importe quel site quand je suis chez moi (IP statique), mais qu'il restreint l'accès aux sites d'une liste blanche quand je suis sur l'accès wifi du boulot (IP dynamique).

Par exemple :

acl wifiboulot src 1.2.0.0/16 3.4.5.0/24 6.7.8.0/24
acl webports port 80
acl webports port 443
acl whitelist dstdomain "/etc/squid/whitelist"
http_access allow wifiboulot whitelist webports

acl wifimaison src 80.1.2.3
http_access allow wifimaison Safe_ports

http_access allow localhost
http_access deny all


Le fichier /etc/squid/whitelist contient une liste de domaines autorisés, par exemple :

.google.com
.sitedestreaming.com
.autresitedestreaming.com


Il peut être intéressant de restreindre l'accès au port http (18080 ici) avec un firewall, même si ce n'est pas strictement nécessaire, dans la mesure où des ACL sont présentes.

Fichier d'autoconfiguration de proxy (PAC)

Maintenant que nous avons un proxy Squid, il est temps de configurer les clients (un PC ou un iPhone par exemple) pour accéder sélectivement au proxy. Pour cela nous allons utiliser un .pac ou fichier Proxy auto-config.

function FindProxyForURL(url, host) {
    var regexp = /.*audio\.sitedestreaming\.com.*/;
    if (regexp.test(host)) {
        return "DIRECT";
    }

    if (dnsDomainIs(host, ".google.com") ||
            dnsDomainIs(host, ".sitedestreaming.com") ||
            dnsDomainIs(host, ".autresitedestreaming.com")) {
        return "PROXY adresseduproxy:18080";
    } else {
        return "DIRECT";
    }
}


Comme vous pouvez le voir sur l'exemple ci-dessus, un fichier PAC se présente comme un javascript avec une fonction FindProxyForURL() qui va retourner DIRECT pour sortir sans proxy, ou PROXY <adresse proxy: port> pour sortir avec le proxy. Il est possible de définir plusieurs proxies.

Dans le cas qui nous intéresse, nous envoyons les requêtes vers *.google.com, *.sitedestreaming.com et *.autresitedestreaming.com à travers le proxy, par contre *audio.sitedestreaming.com sera servi sans proxy. En effet, plusieurs services de streaming permettent d'accéder aux contenus avec une IP "interdite" à partir du moment où la requête initiale se fait avec une IP proxifiée. On réduit ainsi le volume de données à faire transiter par le proxy.

Conclusion

<coup de gueule>
Une fois de plus, il est fort regrettable d'avoir recours à de telles bidouilles pour accéder à du contenu pourtant payant. Il est assez incompréhensible que de telles restrictions soient encore en place alors que les ayants droits prétendent favoriser l'offre légale.
</coup de gueule>

Posté le 09/03/11 à 16:41

Accéder à un service de streaming étranger
Vous pourriez commenter si vous aviez un compte !