Comment surfer tranquille au bureau Version 1.3 1 Contexte...1 2 Attention...2 3 Description de la méthode utilisée: SSH...2 3.1 Explication réseau...2 3.2 Explication logicielle d'un tunnel SSH...3 3.3 Variables utilisées dans le document...3 4 Préparation du serveur/pc à la maison...4 4.1 Serveur sous FreeBSD/Linux...4 4.1.1 Installation de SSHD...4 4.1.2 Installation du proxy SQUID...4 4.2 Serveur sous Windows...5 5 Configuration du poste de travail (bureau)...5 5.1 Télécharger les outils...5 5.2 Configurer Putty...5 5.3 Lancer la session SSH...8 5.4 Configurer Firefox...8 6 S amuser encore plus...10 6.1 Partager avec les copains et les copines!...10 6.2 Faire autre chose que du surf ;-)...11 7 Accéder à son PC bureau depuis Internet!...13 1 Contexte Certain couple proxy/firewall d entreprise sont très très lent (à cause de l'antivirus HTTP en général) et interdisent pas mal de sites ouaib (sur le sport, les infos, etc...) ainsi que l'utilisation de certains programmes (MSN, jabber, etc...). Cet exemple montre comment éviter ce type de filtrage avec une entreprise n autorisant que le HTTP et le HTTPS en sortie. De plus, le proxy la trace de toutes les URL (adresses) des sites que vous avez visités, et une estimation du temps passé et peux donc sortir de jolis rapport (Top 20 des consommateurs, etc..). Note: La solution proposées dans ce document ne permet pas d'éviter les solutions de type «liste blanches», c'est à dire celle qui n'autorisent qu'une liste de site connus.
2 Attention Vérifier que la charte d'utilisation de votre poste de travail permet de faire mumuse. 3 Description de la méthode utilisée: SSH On va utiliser un protocole bien sympa qui s'appelle SSH. Ce protocole est utilisé à la base pour remplacer Telnet en chiffrant les connexions, mais il sait faire beaucoup plus... Comme des tunnels TCP chiffrés par exemple. Donc le but du jeux, est de: 1. Aller sur n'importe quel site Internet 2. Cacher l'adresses des sites visitées et eviter que l'entreprise sache ce que vous faites sur Internet 3. Utiliser n'importe quel flux TCP à travers le proxy de l'entreprise (MSN, Jabber, VLC, etc...) Pour cela, il suffit de: 1. Préparer une machine «serveur» (votre ordinateur à la maison par exemple) à recevoir des connections SSH depuis le bureau par l'installation d'un serveur SSHD et un proxy HTTP (squid par exemple). 2. D'ouvrir un tuyau chiffré depuis votre machine du bureau vers votre machine de la maison 3.1 Explication réseau Voici globalement comment ca ce passe:
3.2 Explication logicielle d'un tunnel SSH Voici l'explication du fonctionnement d'un tunnel SSH: 3.3 Variables utilisées dans le document Pour le reste du document, on va utiliser les noms suivants: Adresse IP du serveur proxy de l'entreprise: 10.10.10.10 Port d'écoute du serveur proxy: 8080 Compte utilisateur sur le serveur proxy: moi-entreprise Nom de votre serveur/pc à la maison: tutu.kicks-ass.net kicks-ass.net est un nom de domaine dynamique (www.dyndns.com) Compte utilisateur sur votre serveur: moi-monserveur
4 Préparation du serveur/pc à la maison 4.1 Serveur sous FreeBSD/Linux Installer vous une petite FreeBSD (excellent) ou un linux (bof) sur un de vos PC connecté à l ADSL. Voici des exemples de fichiers de configuration fonctionnel. 4.1.1 Installation de SSHD SSHD est inclus dans FreeBSD et Linux. 4.1.1.1 Fichier sshd_config Voici le contenus de sshd_config : # On utilise le port 443 (HTTPS) à la place de SSH (22) Port 443 # On bloque l'accès par le compte root PermitRootLogin no # On permet le tunneling AllowTcpForwarding yes # On permet de faire des reverse Tunnels GatewayPorts yes # Optimisation pour le keepalive de la session SSH TCPKeepAlive yes TCPKeepAlive yes ClientAliveInterval 30 ClientAliveCountMax 99999 #Ligne standard pour le SFTP Subsystem sftp /usr/libexec/sftp-server 4.1.2 Installation du proxy SQUID Voici ce qu'il faut faire pour installer SQUIS sous: FreeBSD: 4.1.2.1 Fichier squid.conf Voici un exemple de fichier pour squid qui fonctionne http_port 3128 visible_hostname serveur.free.fr icp_port 0 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern. 0 20% 4320 acl QUERY urlpath_regex cgi-bin \? cache deny QUERY acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny!safe_ports #Commenter cette ligne pour utiliser MSN et jabber: #http_access deny CONNECT!SSL_ports http_access deny to_localhost #USER Rules: #acl our_networks src 127.0.0.1/32 http_access allow localhost # And finally deny all other access to this proxy http_access deny all http_reply_access allow all 4.2 Serveur sous Windows Installer Cygwin (qui intègre SSHD) et squid pour windows et faire la meme chose (je n'ai pas testé). 5 Configuration du poste de travail (bureau) Note: Sous linux, pour utiliser SSH a travers un proxy HTTP, il faut utiliser l'outil corkscrew ( http://www.agroman.net/corkscrew/) 5.1 Télécharger les outils Comme on est au bureau, je pars de l hypothèse que l on est sous Windows. Pour limiter les traces sur le poste de travail, utiliser les versions portable de Putty et Firefox que vous aller mettre sur une clef USB. Ils sont téléchargeable ici : http://www.framakey.org/portables/portablefirefox http://www.framakey.org/portables/portableputty 5.2 Configurer Putty Voici les paramètres utilisé pour cet exemple :
Nom de notre serveur SSH+Squid à comme non : tutu.kicks-ass.net IP du proxy chez notre client : 10.10.10.10 Port TCP utilisé par le proxy du client : 8080 Login : moi-entreprise Mot de passe : votre mon de passe entreprise Maintenant on lance Putty et on configure une session : Puis on va déclarer le proxy dans «Connection», «Proxy» :
Puis on va créer un Tunnel dans «Connection», «SSH», «Tunnels» : Remplir tel quel et cliquer sur Add : Vous devriez obtenir ca :
5.3 Lancer la session SSH Lancer la session Putty, il devrais vous demander le login et le mot de passe de votre serveur SSH! (pas du proxy du client). login as: moi-monserveur Using keyboard-interactive authentication. Password: **** [moi@tutu ~]$ La connexion doit être acceptée pour que la suite fonctionne! 5.4 Configurer Firefox Maintenant il suffit de configurer Firefox pour lui dire d utiliser un proxy local : «options», «réseaux», «paramètres» :
Et à vous la belle vie :
6 S amuser encore plus 6.1 Partager avec les copains et les copines! Une fois que vous avez sué eau et sang pour arriver à surfer tranquille, voici comment faire pour donner l accès à vos collègues. C est très simple. Il suffit, dans Putty, de cocher la case «Local ports accept connections from other hosts». Et maintenant, il ne reste plus à vos collègues, que de configurer leur navigateur pour utiliser le proxy de votre poste de travail ;-) Ca veux dire, que si dans votre entreprise, l IP de votre PC de bureau est le : 192.168.1.20. Ils devront configurer leur navigateur pour aller sur le proxy : 192.168.1.20, sur le port 3128.
6.2 Faire autre chose que du surf ;-) Les tunnels SSH permettent de faire pleins de chose!!! Un exemple (volontairement compliqué) avec la radio en ligne : Vous voulez écouter nounours box (au bureau). Et pour ça, vous avez donc téléchargé VLC portable sur votre clef usb : http://www.framakey.org/portables/portablevlc http://www.framakey.org/portables/portablevlc Voici le principe: Maintenant, on va récupérer le fichier pls : http://radio.nounoursbox.com/nounours.pls [playlist] Numberofentries=1 File1=http://rs1.radiostreamer.com:8040/ Title1=NOUNOURS BOX - Les meilleurs generiques de dessins animes Length1=-1 Version=2 On récupère l adresse du site : rs1.radiostreamer.com Et le port : 8040 Puis on remplace dans ce fichier l adresse «rs1.radiostreamer.com», par «127.0.0.1» :
[playlist] Numberofentries=1 File1=http://127.0.0.1:8040/ Title1=NOUNOURS BOX - Les meilleurs generiques de dessins animes Length1=-1 Version=2 Maintenant, dans putty, on ajoute un nouveau tunnel SSH : Puis on se déconnecte, reconnecte. Et on lance le fichier.pls modifié dans VLC!
7 Accéder à son PC bureau depuis Internet! Le plus rigolo avec les tunnels SSH, est qu'il est possible, depuis votre serveur, de remonter le tunnel pour atteindre votre poste client (à l'intérieur de l'entreprise). Voici un exemple avec un petit serveur WEB portable lancé sur votre PC du bureau: http://www.framakey.org/portables/portablezmws Voici le principe: Une fois lancé votre serveur portable WEB, il suffit d'ajouter ce tunnel SSH dans putty:
Puis à partir de n'importe quel poste sur Internet, lancer un navigateur et entrer cette URL: http://tutu.kicks-ass.net:8080 Et voila! Le tour est joué! Vous avez accès à votre serveur du bureau! Maintenant vous pouvez essayer avec un serveur VNC, etc...