12 votes

Linux, proxy http simple

J'ai un serveur linux qui fonctionne dans un centre de données et qui dispose d'une bande passante et de ressources supplémentaires.

J'aimerais mettre en place un service de proxy afin de pouvoir y faire transiter tout mon trafic http/https depuis la maison. Je sais comment configurer mon navigateur pour qu'il communique avec le proxy, mais je ne sais pas comment le configurer côté serveur. J'aimerais également avoir une authentification pour que je sois le seul à pouvoir l'utiliser.

22voto

Joel K Points 5727

Ma façon préférée de le faire est d'utiliser ssh/SOCKS et le tunnelage SOCKS.

Si vous avez sshd qui tourne sur votre serveur en colocation, c'est tout ce dont vous avez besoin.

Utilice

ssh -D 9000 yourhost.foo.com

Puis modifiez votre navigateur pour utiliser un proxy SOCKS sur le port 9000 de 127.0.0.1.

Avec Firefox, j'aime utiliser Foxyproxy pour modifier rapidement la configuration du proxy.

Voici une page OK avec plus de détails. Détails sur le proxy SSH

3voto

Nick Coleman Points 141

Un peu tard dans la discussion...

Je trouve tinyproxy plus facile à mettre en place et plus léger que squid, surtout pour un serveur destiné uniquement à votre usage personnel.

La clé est de savoir si votre serveur de centre de données exécute sshd.

Si c'est le cas, alors les réponses ici qui utilisent ssh pour faire du transfert de port résolvent automatiquement le problème d'autorisation. Configurez tinyproxy pour se lier à 127.0.0.1 et seuls les utilisateurs ayant un accès ssh peuvent s'y connecter.

Si ce n'est pas le cas, vous pouvez configurer tinyproxy pour qu'il n'accepte que les connexions provenant de certains hôtes ou adresses IP. Si vous avez une adresse IP statique à la maison, le problème est résolu.

Si vous disposez d'une adresse dynamique, vous pouvez accepter des connexions provenant d'une sous-partie de votre connexion domestique. Par exemple, si votre FAI configure votre connexion domestique pour qu'elle ressemble à 192-192-192-192-area1-san-fran-cal-usa, vous pourriez configurer tinyproxy pour qu'il n'accepte que les connexions provenant de area1-san-fran-cal-usa (ignorant ainsi la partie IP de la connexion). Le risque est que d'autres abonnés de area1 découvrent votre proxy et commencent à l'utiliser.

C'est ce que j'utilise pour mon proxy VPS et cela fonctionne bien, d'autant plus que je suis dans une zone d'attraction relativement petite de mon FAI. Personne d'autre n'a jamais utilisé le proxy, mais je sais que c'est un risque (que je suis prêt à prendre -- je peux toujours changer tinyproxy si je découvre que quelqu'un d'autre l'utilise).

2voto

Babiker Points 7214

Ou si vous voulez configurer un simple proxy HTTP(s) sur votre serveur, essayez de https://banu.com/tinyproxy/ Il est très simple à configurer, facile à utiliser et possède un bel ensemble de fonctionnalités...

2voto

Jason Parlett Points 1

Peut-être, mais juste peut-être que c'est un bon choix dans ce genre de situation d'utiliser une sorte de solution générale. Je recommande donc squid autant que possible, lorsque quelqu'un a besoin d'un service proxy. Les raisons sont multiples : la documentation est partout, c'est une solution générale pour des demandes basiques et beaucoup plus spécifiques, et le plus important, mon expérience a montré que les clients avec des demandes simples sont devenus des clients avec des demandes très sophistiquées concernant le service proxy en un rien de temps.

1voto

Per von Zweigbergk Points 2605

Le moyen le plus simple de faire transiter tout votre trafic HTTP/HTTPS par votre serveur Linux au travail est d'utiliser un tunnel ssh dynamique. Cela ne nécessite aucune configuration sur votre serveur dans le centre de données - en supposant qu'il dispose déjà d'un serveur ssh qui n'a pas désactivé le tunnelage SSH.

Le tunnelage SSH dynamique est une fonctionnalité présente dans de nombreux clients SSH (openssh et PuTTY, entre autres). Le client SSH configure un "faux proxy SOCKS" sur la machine sur laquelle le client est exécuté, qui traduit ensuite les requêtes SOCKS en tunnelage SSH, sortant sur le grand Internet depuis votre serveur.

Si vous utilisez openssh comme client, vous devez utiliser ssh -D 3128 yourserver.example.com puis configurez votre navigateur Web pour qu'il utilise localhost:3128 comme proxy SOCKS.

PuTTY le fera aussi, regardez sous Connexion -> SSH -> Tunnels et ajoutez un port redirigé dynamique (entrez le port Source, mais laissez la Destination vide), puis configurez votre navigateur pour qu'il pointe sur localhost:3128 en tant que proxy SOCKS, tout comme avec OpenSSH.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X