Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.
C’est alors la barrière de la prise en main qui fait peur, et pourtant...
Les logiciels libres
L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.
Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.
Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.
Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.
- Février 2015 -
Oui, je sais, c’est pas bien de contourner les systèmes de surveillance sécurité mis en place par une DSI pour faire plaisir au patron… Mais, dès fois, c’est très bloquant, donc on doit contourner.
La technique est assez basique et marche assez souvent: on ne peut pas vraiment proxyfier le HTTPS, en général, on se contente de le faire passer dans un tunnel, sans aucune analyse. Du coup, c’est assez facile de se monter un proxy SOCKS local via un tunnel SSH, à condition que le serveur SSH distant (hors du réseau où le proxy nous bloque) écoute sur le port tcp/443 (celui utilisé habituellement par les serveurs HTTPS pour ceux qui ne suivent pas).
NB: Si le serveur SSH est Dropbear, il faut vérifier qu’il tourne bien avec l’option “-j” qui autorise le forwarding de ports locaux. Un OpenSSH dans sa configuration standard l’autorise.
Création du proxy socks et du tunnel:
C’est tout simple, il suffit d’utiliser un client SSH et de lui dire:
ssh -D 127.0.0.1:8888 -p 443 -l monUserDistant mon.serveur.distant
Le serveur proxy tourne du coup sur le port 8888 (choix arbitraire, il faut juste que nombre soit supérieur à 1024) et est bindé sur 127.0.0.1.
On peut étoffer un peu la commande (pour les détails voir ssh(1)):
ssh -C -q -T -x -N -f -n -D 127.0.0.1:8888 -p 443 -l monUserDistant mon.serveur.distant=
Utilisation du proxy dans un navigateur:
Personnellement, je configure mon navigateur en lui disant d’utiliser un fichier local, nommé proxy.pac
(en général je le stocke dans ~/.config/
). Le mien a été plus ou moins complétement pompé là. Le voici:
function FindProxyForURL(url, host)
{
// maison -> pas besoin
if( isInNet(myIpAddress(), '192.168.1.0'. '255.255.255.0') )
{
return 'DIRECT';
}
// pas de proxy pour les hôtes locaux:
if( isPlainHostName(host) )
{
return 'DIRECT';
}
// idem pour les machines sur le domaine local
if( dnsDomainIs(host, ".local") ||
dnsDomainIs(host, ".home") )
{
return 'DIRECT';
}
if( isResovable(host) )
{
var hostIP = dnsResolv(host);
// pas de proxy pour les IP non routable sur Internet (RFC 3330)
if ( isInNet(hostIP, '0.0.0.0', '255.0.0.0') ||
isInNet(hostIP, '10.0.0.0', '255.0.0.0') ||
isInNet(hostIP, '127.0.0.0', '255.0.0.0') ||
isInNet(hostIP, '169.254.0.0', '255.255.0.0') || // APIPA/zeroconf
isInNet(hostIP, '172.16.0.0', '255.240.0.0') || // 172.16.0.0->172.31.255.255
isInNet(hostIP, '192.0.2.0', '255.255.255.0') ||
isInNet(hostIP, '192.88.99.0', '255.255.255.0') ||
isInNet(hostIP, '192.168.0.0', '255.255.0.0') ||
isInNet(hostIP, '198.18.0.0', '255.254.0.0') || // 192.18.0.0->192.19.255.255
isInNet(hostIP, '224.0.0.0', '240.0.0.0') || // multicast
isInNet(hostIP, '240.0.0.0', '240.0.0.0') ) // multicast
{
return 'DIRECT';
}
if( false ) // adresse locale
{
return 'DIRECT';
}
}
return 'SOCKS 127.0.0.1:8888';
}
Dans firefox, il y a même une option qui dit de faire passer les requêtes DNS dans le proxy SOCKS, ça rajoute une petite couche de tranquilité 
Utilisation du proxy pour faire passer ses connexions SSH:
Et oui, un proxy SOCKS permet aussi ça. Il faut au préalable disposer de netcat (ou nc).
Ça se passe comme ça:
ssh -o ProxyCommand='nc -x 127.0.0.1:8888 %h %p' un.autre.serveur.distant

Original post of Guillaume Vaillant.Votez pour ce billet sur Planet Libre.