Notre blog en mousse \o/ - Mot-clé - proxy2024-03-01T10:31:54+01:00Les Lamas !urn:md5:16d806c26b4faf0eabfff608393c3d26DotclearReverse proxy Apache pour RDP over HTTPS (Windows Server 2008 R2)urn:md5:3c59e2ea95e24be30b2d72d2fba4e7d62016-07-25T18:16:00+02:002017-02-09T14:28:49+01:00RulianeAdministrationApachecertificatinstallationlinuxnatpasserelleproxyrdpreversesslwebwindows <p>Générer un certificat autosigné :<br /></p>
<blockquote><p>openssl req -newkey rsa:2048 -nodes -keyout myrdp.mydomain.key -x509 -days 365 -out myrdp.mydomain.crt<br /></p></blockquote>
<blockquote><p>openssl pkcs12 -inkey myrdp.mydomain.key -in myrdp.mydomain.crt -export -out myrdp.mydomain.pfx<br /></p></blockquote>
<p><br />
Importer le certificat dans le magasin "Personnel" du serveur RDS et désactiver tous les rôles sauf "Authentification du serveur".<br />
<br />
Installer le rôle "services de bureau à distance" avec les services de rôle "gestionnaire de passerelle"<br />
<br />
<br />
Config Apache :</p>
<pre>
<VirtualHost *:443>
ServerName myRDP.domain
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/myrdp.crt
SSLCertificateKeyFile /etc/apache2/ssl/myrdp.key
CustomLog ${APACHE_LOG_DIR}/myrdp.log combined
ErrorLog ${APACHE_LOG_DIR}/myrdp.log
#LogLevel info proxy_msrpc:trace2
SSLProxyEngine On
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
# Enable RPC over HTTPS
OutlookAnywherePassthrough On
#LogLevel info proxy_msrpc:trace2
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / https://RDPServer/
ProxyPassReverse / https://RDPServer/
</VirtualHost>
<VirtualHost *:80>
ServerName myrdp.domain
Redirect / "https://myrdp.domain/"
CustomLog ${APACHE_LOG_DIR}/myrdp.log combined
ErrorLog ${APACHE_LOG_DIR}/myrdp.log
</VirtualHost>
</pre>
<p>Issue : le certificat doit être reconnu comme CA sur le client.</p>Cntlm Authentication Proxyurn:md5:b5d6876d554699cf6f5716e23b385fa42012-08-20T17:39:00+02:002012-08-23T19:45:36+02:00Moh@GeekerieproxyputtySSH <p><a href="http://cntlm.sourceforge.net/">Cntlm</a> est un utilitaire permettant de s'authentifier auprès d'un proxy.</p>
<p>Une fois l'utilitaire installé (téléchargeable <a href="http://sourceforge.net/projects/cntlm/files/">ici</a>), il faut modifier le finir <strong>cntlm.ini</strong> :</p>
<pre>
Username identifiant_AD
Domain nom_domaine
Auth mode_auth
PassNTLMv2 hash_trouvé
Proxy ip_proxy:port_proxy
Listen 3128
SOCKS5Proxy 8010
</pre>
<p>Il est possible de remplir le fichier <strong>cntlm.ini</strong> avec votre mot de passe de domaine en clair, mais il est préférable de le laisser vide et d'utiliser <strong>cntlm</strong> pour récupérer la méthode d'authentification de votre AD ainsi que le hash de votre mot de passe.
Il suffit d’exécuter la commande suivante dans le dossier de <strong>cntlm</strong></p>
<pre>
cntlm -I -M http://test.com
Config profile 1/11... OK (HTTP code: 200)
Config profile 2/11... OK (HTTP code: 200)
Config profile 3/11... OK (HTTP code: 200)
Config profile 4/11... OK (HTTP code: 200)
Config profile 5/11... OK (HTTP code: 200)
Config profile 6/11... Credentials rejected
Config profile 7/11... Credentials rejected
Config profile 8/11... OK (HTTP code: 200)
Config profile 9/11... OK (HTTP code: 200)
Config profile 10/11... OK (HTTP code: 200)
Config profile 11/11... OK (HTTP code: 200)
----------------------------[ Profile 0 ]------
Auth NTLMv2
PassNTLMv2 4AC6525378DF8C69CF6B6234532943AC
------------------------------------------------
</pre>
<p>Il suffit alors de rajouter les 2 lignes dans le fichier <strong>cntlm.ini</strong>.</p>
<p>On peut ensuite configurer <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">Putty</a> pour utiliser <strong>cntlm</strong> :<br />
Dans l'onglet <strong>Connexion/proxy</strong> :<br />
proxy type : <strong>SOCKS 5</strong><br />
proxy hostname : <strong>127.0.0.1</strong><br />
port : <strong>8010</strong><br /></p>Ajaxterm : un client SSH en weburn:md5:44e5b65be41700496368e40d181294c72011-03-10T21:27:00+01:002017-02-09T14:06:53+01:00RulianeAdministrationajaxtermclientproxyshellSSHwebwebshell <h3>Petite présentation</h3>
<p>J'ai enfin trouvé un client web qui me permette de prendre la main sur mes serveurs quand je n'ai pas de client SSH accessible ou que les ports (généralement le 22) sont bloqués. Son nom : Ajaxterm.<br />
Le site de l'âme charitable qui nous le met à disposition : <a href="http://antony.lesuisse.org/software/ajaxterm/" hreflang="fr" title="Site d'Ajaxterm">http://antony.lesuisse.org/software/ajaxterm/</a><br />
<br /></p>
<h3>Installation</h3>
<p>L'installation sous Debian est très simple, Ajaxterm étant disponible dans les dépôts. On commence donc par un classique "apt-get install ajaxterm" pour installer Ajaxterm et les dépendances qui vont bien, en particulier Apache. Attention toutefois, ceci installe la version 0.7. La dernière version lors de l'écriture de ce billet est la 0.11.<br />
<br /></p>
<h3>Configuration</h3>
<p>Le serveur Ajaxterm est écrit en Python et écoute sur le port 8022 en local. Vous pouvez d'ores et déjà vérifier son fonctionnement en lançant un w3m (ou n'importe quel navigateur) à l'adresse <em>http://localhost:8022/</em>. Si besoin, le port peut être modifié dans <em>/etc/default/ajaxterm</em>.<br />
<br />
Pour activer un accès depuis une autre machine, on peut ajouter un vhost à Apache qui se contentera de rediriger les requêtes vers Ajaxterm, par le biais du module <em>mod_proxy</em>. Évidemment, ce vhost devra être accessible en HTTPS si on veut conserver l'avantage du chiffrement SSL/TLS.<br />
<br />
Cette fonctionnalité nécessite d'activer les modes <em>mod_proxy</em>, <em>mod_proxy_http</em> et <em>mod_ssl</em> :<br />
<code>a2enmod ssl</code><br />
<code>a2enmod proxy</code><br />
<code>a2enmod proxy_http</code><br />
<br /></p>
<h4>Génération d'un certificat auto-signé</h4>
<p>Pour avoir un accès en SSL on peut utiliser un certificat existant ou générer un certificat auto-signé :<br />
<code>make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/ajaxterm.crt</code><br />
Bien évidemment, ce certificat auto-signé lèvera une erreur dans le navigateur. Il est préférable de le signer avec un certificat racine approuvé par le navigateur.<br />
<br /></p>
<h4>Ajout d'un vhost Apache</h4>
<p>On crée donc un <em>/etc/apache2/sites-available/ajaxterm</em> que l'on paramètre pour rediriger les requêtes de <em>/ajaxterm/</em> vers le port 8022 :<br />
<br />
<code><VirtualHost *:443></code><br />
<br />
<code>ServerName localhost</code><br />
<code>SSLEngine On</code><br />
<code>SSLCertificateFile /etc/ssl/ajaxterm.crt</code><br />
<code>ProxyRequests Off</code><br />
<br />
<code><Proxy *></code><br />
<code>Order deny,allow</code><br />
<code>Allow from all</code><br />
<code></Proxy></code><br />
<br />
<code>ProxyPass /ajaxterm/ http://localhost:8022/</code><br />
<code>ProxyPassReverse /ajaxterm/ http://localhost:8022/</code><br />
<br />
<code></VirtualHost></code><br />
<br />
Et on l'active :<br />
<code>a2ensite ajaxterm</code><br />
Et là youpi ! En pointant un navigateur vers <em>https://IP_du_serveur/ajaxterm/</em> on peut ouvrir une session SSH sur le serveur.<br />
<br /></p>
<h4>Augmentation du timeout de la session</h4>
<p>Par défaut, votre session SSH se terminera après deux minutes d'inactivité. Je n'ai pas vraiment compris pourquoi mais ce temps peut être augmenté sans problème. Éditons le fichier <em>/usr/share/ajaxterm/ajaxterm.py</em>. À la ligne 395, on remplace modifie la valeur de INACTIVE_PROCESS_TIMEOUT pour le mettre par exemple à 300 secondes (5 minutes). Après un petit redémarrage d'Ajaxterm (<em>/etc/init.d/ajaxterm restart</em>) le nouveau timeout d'inactivité est pris en compte.<br />
<br /></p>
<h3>Conclusion</h3>
<h4>Les avantages :</h4>
<ul>
<li>Passe les proxy.</li>
<li>Simplicité d'installation ;</li>
</ul>
<h4>Les inconvénients :</h4>
<ul>
<li>Pas de session SSH vers un autre serveur, uniquement en local ;</li>
<li><del>Pas avec compatible IE7 (ok avec IE8)</del> <strong>EDIT 11/03/2011 : en fait si, aujourd'hui ça fonctionne</strong> ;</li>
<li>Reset de la connexion au bout de 2 minutes d'inactivité (modifiable) ;</li>
<li>Nécessite un reverse proxy pour l'atteindre depuis une autre machine. Le paquet <em>ajaxterm</em> dépend d'Apache.</li>
</ul>Passerelle vers un réseau Torurn:md5:33fbf867df05622f8d52743c37d291242011-01-05T14:10:00+01:002011-01-15T23:35:07+01:00chauchreGeekerieanonymatiptablesnetfilterpasserelleproxytor <p>Le but de ce billet est de créer une passerelle qui sort directement sur le réseau Tor.<br />
A quoi cela peut bien servir ? Par exemple en changeant la route par défaut d'un client lui permettre d'être anonyme sur la toile (attention aux données sensibles qui transitent dans le réseau Tor tout de même), ou encore fournir une passerelle, potentiellement ouverte, vers internet sans être reconnu comme IP source des paquets sortants.<br />
<br />
<a href="http://www.torproject.org" hreflang="en">Tor</a> est un réseau d'ordinateurs (volontairement) zombies qui permet de faire du multi-proxy.</p>
<h4>Installer Tor</h4>
<p>La première étape est l'installation de Tor sur un serveur:<br />
<code># apt-get install tor</code><br />
... et ben voilà, première étape terminée ;)<br />
| Comme toujours, il est possible d'installer Tor à partir de ses <a href="http://www.torproject.org/dist/" hreflang="en">sources</a> afin d'avoir la dernière version:<br />
<code>$ wget http://www.torproject.org/dist/tor-0.2.1.28.tar.gz</code><br />
<code>$ tar xzf tor-0.2.1.28.tar.gz && rm tor-0.2.1.28.tar.gz</code><br />
<code>$ cd tor-0.2.1.28</code><br />
<code>$ ./configure</code><br />
<code>$ make</code><br />
<code>$ su -c 'make install'</code></p>
<p>|| Requirements:<br />
<code># apt-get install build-essential</code><br />
<code># apt-get install libevent-dev</code><br />
<code># apt-get install libssl-dev</code></p>
<h4>Configuration de Tor</h4>
<p>(Rappel: on ne souhaite pas dans ce billet configurer Tor comme relais, mais simplement comme point d'entrée dans le réseau Tor)<br />
<br />
Emplacement: <code>/etc/tor/torrc</code> ou <code>/urs/local/etc/tor/torrc<br /></code><br />
<code>RunAsDaemon 1<br /># Port et adresse d'écoute du démon Tor(relai)</code><br />
<code># ORPort 9001</code><br />
<code># ORListenAddress 127.0.0.1</code><br />
<code># Port et adresse d'écoute pour les requêtes DNS</code><br />
<code>DNSPort 53</code><br />
<code># Port et adresse d'écoute pour Tor en mode proxy transparent</code><br />
<code>TransPort 8118</code><br />
<code>TransListenAddress 0.0.0.0</code><br />
<br />
A présent, vous pouvez lancer Tor:<br />
<code># invoke-rc.d tor start</code><br />
ou<br />
<code># tor</code></p>
<h4>Configuration IP forward</h4>
Un simple<code> echo 1 > /proc/sys/net/ipv4/ip_forward</code> suffit, il est également possible d'éditer le fichier <code>/etc/sysctl.conf</code> afin d'activer l'IP forward systématiquement:<br /><code><br />net.ipv4.ip_forward=1</code><br /><h4>Configuration netfilter/iptables</h4>
<p>Afin de concentrer tout le trafic entrant vers le proxy transparent local, on configure quelques règles iptables simples:<br />
<code>iptables -F -t nat</code><br />
<code>iptables -F</code><br />
<code>iptables -X</code><br />
<code>## Règles locales</code><br />
<code>iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 8118</code><br />
<code>iptables -t nat -A OUTPUT -p udp -m udp --dport 53 -j REDIRECT --to-ports 53</code><br />
<code>## Règles extérieures</code><br />
<code>iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-ports 8118</code><br />
<code>iptables -t nat -A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 53</code></p>
<p>Vous pouvez tester si le proxy fonctionne en local simplement en vous rendant sur www.whatismyip.org (et vérifier que ce n'est pas votre IP) ou:<br />
<code>$ GET whatismyip.org</code><br />
ou<br />
<code>$ w3m whatismyip.org</code><br />
Le même test est réalisable à partir d'un client extérieur après lui avoir modifié sa route par défaut.</p>
<h4>Configuration annexe</h4>
<p>Si vous voulez que l'ensemble du trafic d'un hôte passe systématiquement dans le réseau Tor, il suffit de configurer le serveur DHCP en rajoutant une entrée host. Par exemple pour dhcpd, on peut rajouter l'entrée suivante dans le fichier <code>/etc/dhcp3/dhcpd.conf</code><br />
<br />
<code>host monHote{</code><br />
<code> fixed-address A.B.C.D;</code><br />
<code> hardware ethernet XX:XX:XX:XX:XX:XX;</code><br />
<code> option routers {adresse IP du serveur Tor}</code><br />
<code>}</code></p>
<h5><strong>Mise à jour:</strong> Commande socat:</h5>
<code>socat -d -d TCP4-LISTEN:8118,fork,reuseaddr TCP4:<address_ip>:8118</code><br /><br />VLC derrière un proxyurn:md5:b317f0400c031c9851f629e36c116be32010-12-10T08:58:00+01:002012-02-07T11:32:36+01:00Moh@InutileproxyvideolanVLC <p>Si vous aussi vous voulez écouter une webradio dans votre entreprise sur votre lecteur favoris (et non un webplayer pourrave), il est possible d'ajouter un proxy dans VLC.</p>
<ul>
<li>Sous Windows (testé et approuvé):</li>
</ul>
<p>1. Click droit sur l'icône "VLC media player"<br />
2. Propriétés<br />
3. Rajouter dans la cible (en dehors des " ")</p>
<pre> --http-proxy=my.proxy.com:8080<br /></pre>
<ul>
<li>Sous Linux (à tester):</li>
</ul>
<p>vlc --http-proxy=monproxyenmousse:1337</p>
<p>Après, il faut aussi une webradio fairplay qui diffuse sur un port non bloqué</p>Reverse proxy avec Lighttpdurn:md5:60b250ae10946fc5ecefefa922812ea52010-12-02T09:38:00+00:002012-02-07T10:34:00+00:00BishopAdministrationLighttpdproxyreverse <p>1) Modifier le fichier lighttpd.conf (/etc/lighttpd/) et décommenter le module proxy:</p>
<blockquote><p>server.modules = (<br />
...<br />
"mod_proxy",<br />
...<br />
)</p></blockquote>
<p>2) Activer le module</p>
<p><code># sudo lighty-enable-mod proxy</code></p>
<p>3) Créer le fichier de configuration :</p>
<p><code># sudo vi /etc/lighttpd/conf-enabled/mon-fichier.conf</code></p>
<blockquote><p>$HTTP<a href="http://www.leslamas.net/index.php?post/2010/12/02/"host"" title=""host"">"host"</a> == "www.exemple.com" {<br />
proxy.server = ( "" =><br />
( (<br />
"host" => "192.168.13.37" <br />
) ) <br />
)<br />
}</p></blockquote>Reverse proxy avec Apacheurn:md5:99019abd701f776038b42e5feb4cd1bc2010-11-30T16:09:00+00:002016-06-13T16:13:28+01:00BishopAdministrationApacheproxyreverse <p>1) Activer les modules proxy, proxy_http et proxy_connect pour apache</p>
<blockquote><p># a2enmod proxy<br />
# a2enmod proxy_http<br />
# a2enmod proxy_connect</p>
</blockquote>
<p>2) Définir le VirtualHost (exemple pour un webmail)</p>
<blockquote><p><VirtualHost *:80></p>
<p>
ServerName webmail.leslamas.net<br />
ServerAlias webmail.leslamas.net </p>
<p>
ProxyPass / http://addresse_du_serveur/<br />
ProxyPassReverse / http://addresse_du_serveur/ </p>
<p>
<Proxy *><br />
Order deny,allow<br />
Allow from all<br />
</Proxy> </p>
<p>
</VirtualHost></p>
</blockquote>
<p>3) Activer le VHost (sauf si défini dans /etc/apache2/site-enabled/)</p>
<p>4) Redémarrer Appache</p>