Derniers articles

Catégories

Bash Jquery Linux php PluXml Proxy Raspberry Pi ssh Tools Tunnel Unix


Serveur Proxy https

26 novembre 2013

Il est toujours utile d'avoir un serveur proxy acceptant les connexions https sous la main.

Apache possède un module proxy facile a mettre en place;


Activer le proxy sur apache;

sudo a2enmod proxy
sudo a2enmod proxy_connect

#dans le fichier de conf de apache;
ProxyRequests On
AllowCONNECT 22
<Proxy>
        Order deny,allow
        Deny from all
</Proxy>
<ProxyMatch ^(?=localhost:22$)>
        Allow from all
</ProxyMatch>

#ou avec un mot de passe
 <proxy *>
         Order deny,allow
         Allow from all
         AuthType Basic
         AuthName "Password Please"
         AuthBasicAuthoritative On
         AuthUserFile /PathToFile/File.pw
         Require user username
  </proxy>

Le proxy d'apache souffre maleureusement d'un bug empéchant l'utilisation de "proxy_connect" en https. Afin de contourner ce bug j'ai retenu 2 possibilités;



Utiliser Stunnel pour forwarder le port 443 sur le port 80

Cette solution n'est pas très élégante et peux poser problème dans certaines situations ou apache et également utilisé pour servir des sites en https. apache dans ce cas de figure ne doit écouter que sur le port 80, stunnel sera en écoute sur le port 443 et rediregera les requête sur le port 80...


Une fois stunnel installé il nous faut créer le certificat et le configurer comme la doc le précise


cd /etc/stunnel
openssl req -new -x509 -days 365 -nodes -config stunnel.cnf -out stunnel.pem -keyout stunnel.pem
chown stunnel:stunnel stunnel.pem
chmod 600 stunnel.pem

#Dans le fichier de conf de stunnel
cert = /etc/stunnel/stunnel.pem
...
[https]
accept  = 443
connect = 80
TIMEOUTclose = 0

Plus qu'a démarer le service...



Ou plus élégamment, recompiler le module proxy d'apache patché

Je pars du principe qu'apache est déjà installer et configurer pour écouter sur le port 443.
Nous avons besoin des sources d'apache, pour debian il suffit d'activer le repos source et de rapatrier le paquet source souhaité. L'exemple ci-dessous à été effectué sur un raspberrypi avec la distrib raspibian (wheezy).


sudo nano /etc/apt/sources.list
# y ajouter
deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free

# plus qu'a installer le nécessaire
cd ~
sudo apt-get source apache2
sudo apt-get install build-essential libpcre3-dev libcrypt-ssleay-perl libcurl4-openssl-dev libwww-perl zlib
lwp-request https://issues.apache.org/bugzilla/attachment.cgi?id=22248 > /tmp/httpd-2.2.9-proxytunnel.patch
cd apache2-2.2.22/
cat /tmp/httpd-2.2.9-proxytunnel.patch | patch -p1
sudo ./configure --enable-modules=all --enable-mods-shared=all --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-ssl
sudo make all
sudo find -name "*proxy*.so" | sudo xargs cp -t /usr/lib/apache2/modules
sudo apache2ctl configtest
sudo apache2ctl restart

Classé dans : Accueil, Unix, Sec - Mots clés : Linux, Proxy, Tunnel, Unix

3 commentaires

dimanche 26 juin 2016 @ 01:53 samuelgeary0 a dit : #1

Hi would you mind stating which blog platform you're working with? I'm going to start my own blog in the near future but I'm having a difficult time selecting between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design seems different then most blogs and I'm looking for something completely unique. P.S My apologies for getting off-topic but I had to ask!

dimanche 26 juin 2016 @ 11:17 janharkins7186 a dit : #2

Nice post. I learn something totally new and challenging on blogs I stumbleupon every day. It will always be exciting to read through articles from other authors and use something from other sites.

mercredi 06 juillet 2016 @ 21:06 luca a dit : #3

@samuelgeary0 :
pluxml

Écrire un commentaire

Quelle est la troisième lettre du mot vmkuw ? : 

Derniers articles

Catégories

Archives