OWA aussi connu sous le nom d'Outlook Web Access permet d'accéder à ses mails depuis un navigateur.
On suppose que le site web qui permet celà est déjà hebergé sur notre réseau local et fonctionnel.
On y accède avec http://nom_du_serveur/exchange
Ce qui nous interesse est de rendre cet accès possible depuis le Web.
Mais pour éviter d'exposer directement le serveur et le contenu des mails, on souhaite insérer une machine qui va filtrer l'accès.
Comme on ne souhaite pas transférer en clair notre login/pass, on va crypter tout le traffic entre notre PC et la machine qui filtre.
Cette machine n'acceptera que les connexions sur le port 443.
On ajoutera également le port 80 à des fins de compatibilités.
Ainsi si l'on tappe www.domaine.com (HTTP : port 80), on tombera sur une page web basique avec un lien vers la connexion securisée.
Pour faire celà, on utilise Apache2 et ses fonctionnalités de reverse proxy.
Voilà les présentations sont faites
----------------------
Ayant pas mal galeré, je met à contribution mes quelques notes sur le sujet.
A noter que je suis loin d'être expert sous linux donc si un HFRien confirmé pouvait infirmer/confirmer la démarche, celà ne pourrait qu'améliorer l'exactitude du topic.
Ce tuto décrit l'installation et la configuration sous Suse 10.
J'ai également fait de même sous Debian.
En effet, selon la distrib, les fichiers de configuration ne sont pas planqués au même endroit.
----------------------------
SUSE 10
Apache2 nécessite peu de configuration sous Suse10 car beaucoup de choses sont mâchées par l'assistant YAST. Cependant il faut être vigilant et rigoureux.
Lancez le centre de contrôle YAST et aller dans ajouter/supprimer des logiciels.
Installer les paquetages apache2 + doc + autres (genre PHP si nécessaire) à l'aide du DVD/CD.
Le paquetage d'apache2 contient déjà de quoi faire du SSL et du reverse proxy.
Toujours sous YAST, allez dans securité et utilisateurs puis firewall.
Ouvrir les port 80 et 443 sur le firewall pour autoriser l'arrivée du trafic HTTP et HTTPS/SSL..
Ouvrez votre navigateur et tapez http://localhost sur le serveur ou http://ip_serveur.
Si vous obtenez une page apache, vous avez réussi votre installation.
A ce stade, apache2 est présent à 3 endroits clés.
/etc/apache2 contient tous les fichiers de config qui nous intéressent
/var/log/apache2 contient tous les logs
/srv/www est le répertoire de base pour héberger le site web
Créons un répertoire 'html' ( /srv/www/html ) dans lequel nous copions notre index.html.
Ce fichier va nous permettre de rediriger nos internautes qui se connectent en HTTP (non crypté) vers le formulaire d'identification OWA en HTTPS (crypté).
Voici le contenu de mon fichier index, adaptez le à votre nom de domaine bien sûr :
Code :
- <html>
- <head>
- <title>Le Courrier</title>
- </head>
- <body>
- <div align="center">
- <br /><a href="https://www.domaine.com/exchange"><font size="+2">Acces au courrier</font></a>
- </div>
- </body>
- </html>
|
note pour la suite : AVANT D'OUVRIR UN FICHIER DE CONFIG, FAITES EN UNE COPIE !!!
Pour cela utilisez la commande suivante : cp nom_du_fichier.conf nom_du_fichier.old
Sous Suse, le fichier httpd.conf ne fait qu'appeler d'autres fichiers .conf
Voici le contenu du fichier httpd.conf :
Code :
- #
- # /etc/apache2/httpd.conf
- #
- Include /etc/apache2/uid.conf
- Include /etc/apache2/server-tuning.conf
- ErrorLog /var/log/apache2/error_log
- Include /etc/apache2/sysconfig.d/loadmodule.conf
- Include /etc/apache2/listen.conf
- Include /etc/apache2/mod_log_config.conf
- Include /etc/apache2/sysconfig.d/global.conf
- Include /etc/apache2/mod_status.conf
- Include /etc/apache2/mod_info.conf
- Include /etc/apache2/mod_usertrack.conf
- Include /etc/apache2/mod_autoindex-defaults.conf
- TypesConfig /etc/apache2/mime.types
- DefaultType text/plain
- Include /etc/apache2/mod_mime-defaults.conf
- Include /etc/apache2/errors.conf
- Include /etc/apache2/ssl-global.conf
- <Directory />
- Options None
- AllowOverride None
- Order deny,allow
- Deny from all
- </Directory>
- AccessFileName .htaccess
- <Files ~ "^\.ht">
- Order allow,deny
- Deny from all
- </Files>
- DirectoryIndex index.html index.html.var
- Include /etc/apache2/default-server.conf
- Include /etc/apache2/sysconfig.d/include.conf
- Include /etc/apache2/vhosts.d/*.conf
|
Nous allons faire le gros de la config avec l'assistant. Je détaillerais ce que l'assistant écrit dans nos fichiers de configuration par la suite.
Sous YAST, allez dans services réseau puis serveur HTTP.
Le service HTTP doit être activé, cochez ouvrir le parefeu sur les ports sélectionnés (normalement c'est inutile, nous l'avons fait au dessus à la main).
Cliquez sur 'listen activé' puis modifier, ajoutez le port 443 pour toutes les adresses réseau.
Modifiez ensuite la liste des modules.
Chez moi, voici ceux qui sont activés (en gras, ceux qui me semble indispensable, à vérifier):
access
action
alias
auth
autoindex
cgi
dir
include
log_config
mime
negotiation
setenvif
status
userdir
asis
headers
imap
proxy
proxy_connect
proxy_http
proxy_ftp
ssl
php4
Puis modifiez hôte par défaut.
Pour la racine du document, précisez : /srv/www/html
Modifiez hôtes.
Ajoutez un hote de type www.domaine.com
Les paramètres importants à renseigner :
Nom du serveur : www.domaine.com
Racine du document : /srv/www/html
Adresse IP : *:80
Cliquez sur terminer.
Le gros de la configuration vient d'être automatisé.
Ensuite nous allons jeter un oeil à listen.conf qui est le fichier de configuration des ports écoutés par apache2.
Code :
- #
- # /etc/apache2/listen.conf
- #
- Listen 80
- Listen 443
|
Voilà ce que vous devriez avoir suite à la configuration via YAST.
On peut pousser le vice et mettre à profit les balises IfDefine et IfModule pour écouter sur le port 443 uniquement si le module SSL est actif.
Code :
- #
- # /etc/apache2/listen.conf
- #
- <IfDefine SSL>
- <IfDefine !NOSSL>
- <IfModule mod_ssl.c>
- Listen 443
- </IfModule>
- </IfDefine>
- </IfDefine>
- Listen 80
|
Il est temps de configurer le lancement du fameux module SSL.
Il faut éditer le fichier apache2 et vérifier que ssl soit dans la liste APACHE_MODULE. Puis APACHE_SERVER_FLAG doit être fixé à -D SSL pour activer le SSL.
Fixez également APACHE_START_TIMEOUT à 5 (plus d'infos dans les liens à la fin)
Passez APACHE_LOGLEVEL à debug pour faciliter l'installation.
Code :
- #
- # /etc/sysconfig/apache2
- #
- DOC_SERVER="no"
- APACHE_CONF_INCLUDE_FILES=""
- APACHE_CONF_INCLUDE_DIRS=""
- APACHE_MODULES="access actions alias auth autoindex cgi dir include log_config mime negotiation setenvif status userdir asis imap proxy proxy_connect proxy_ftp proxy_http ssl php4 headers"
- APACHE_SERVER_FLAGS="-D SSL"
- APACHE_HTTPD_CONF=""
- APACHE_MPM=""
- APACHE_SERVERADMIN="root@linux"
- APACHE_SERVERNAME="linux"
- APACHE_START_TIMEOUT="5"
- APACHE_SERVERSIGNATURE="on"
- APACHE_LOGLEVEL="debug"
- APACHE_ACCESS_LOG="/var/log/apache2/access_log combined"
- APACHE_USE_CANONICAL_NAME="off"
- APACHE_SERVERTOKENS="OS"
- APACHE_EXTENDED_STATUS="off"
- APACHE_BUFFERED_LOGS="off"
- APACHE_TIMEOUT="300"
|
Nous allons ensuite vérifier default-server.conf
On fait pointer la racine de notre serveur web vers le dossier /srv/www/html. YAST a déjà dû compléter le nécessaire mais vérifiez.
Code :
- #
- # /etc/apache2/default-server.conf
- #
- DocumentRoot "/srv/www/html/"
- <Directory "/srv/www/html">
- Options None
- AllowOverride None
- Order allow,deny
- Allow from all
- </Directory>
- #
- Alias /icons/ "/usr/share/apache2/icons/"
- #
- <Directory "/usr/share/apache2/icons">
- Options Indexes MultiViews
- AllowOverride None
- Order allow,deny
- Allow from all
- </Directory>
- #
- ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"
- #
- <Directory "/srv/www/cgi-bin">
- AllowOverride None
- Options +ExecCGI -Includes
- Order allow,deny
- Allow from all
- </Directory>
- #
- Include /etc/apache2/conf.d/*.conf
- #
- Include /etc/apache2/conf.d/apache2-manual?conf
- ServerName linux
- #
- ServerAdmin jeoff@hfr.com
|
Il est temps de configurer nos virtual hosts.
Il faut aller dans /etc/apache2/vhosts.d/
On copie vhost.template vers vhost.conf et vhost-ssl.template vers vhost-ssl.conf
Voilà la configuration des deux fichiers :
Code :
- #
- # /etc/apache2/vhosts.d/vhost.conf
- #
- <VirtualHost *:80>
- ServerAdmin jeoff@hfr.com
- ServerName www.domaine.com
- DocumentRoot /srv/www/html
- ErrorLog /var/log/apache2/error_log
- CustomLog /var/log/apache2/access_log combined
- HostnameLookups Off
- UseCanonicalName Off
- ServerSignature On
- ScriptAlias /cgi-bin/ "/srv/www/vhosts/dummy-host.example.com/cgi-bin/"
- <Directory "/srv/www/html/cgi-bin">
- AllowOverride None
- Options +ExecCGI -Includes
- Order allow,deny
- Allow from all
- </Directory>
- <IfModule mod_userdir.c>
- UserDir public_html
- Include /etc/apache2/mod_userdir.conf
- </IfModule>
- <Directory "/srv/www/html">
- Options Indexes FollowSymLinks
- AllowOverride None
- Order allow,deny
- Allow from all
- </Directory>
- </VirtualHost>
|
Attention, remplacez srv1 par le nom de la machine qui héberge les pages OWA
Code :
- #
- # /etc/apache2/vhosts.d/vhost-ssl.conf
- #
- <IfDefine SSL>
- <IfDefine !NOSSL>
- <VirtualHost _default_:443>
- ProxyRequests off
- ServerName srv1
- ErrorLog /var/log/apache2/error_log
- TransferLog /var/log/apache2/access_log
- SSLEngine on
- SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
- SSLCertificateFile /etc/apache2/ssl.crt/server.crt
- SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
- <Files ~ "\.(cgi|shtml|phtml|php3?)$">
- SSLOptions +StdEnvVars
- </Files>
- <Directory "/srv/www/cgi-bin">
- SSLOptions +StdEnvVars
- </Directory>
- SetEnvIf User-Agent ".*MSIE.*" \
- nokeepalive ssl-unclean-shutdown \
- downgrade-1.0 force-response-1.0
- CustomLog /var/log/apache2/ssl_request_log ssl_combined
- SSLProxyEngine on
- ProxyVia on
- RequestHeader set Front-End-Https "On"
- ProxyPass /exchange http://srv1/exchange/
- ProxyPassReverse /exchange http://srv1/exchange/
- ProxyPass /exchweb http://srv1/exchweb/
- ProxyPassReverse /exchweb http://srv1/exchweb/
- ProxyPass /public http://srv1/public/
- ProxyPassReverse /public http://srvmali1/public/
- ProxyPass /iisadmpwd http://srv1/iisadmpwd/
- ProxyPassReverse /iisadmpwd http://srv1/iisadmpwd/
- ProxyPreserveHost on
- </VirtualHost>
- </IfDefine>
- </IfDefine>
|
Bien, la configuration d'apache est terminée, il faut désormais générer le certificat.
/usr/bin/gensslcert -c FR -s VO -l "EPINAL" -o XTELECOM -e jeoff@hfr.com -d -n www.domaine.com
Liste des options (en anglais):
-C Common name "$name"
-N comment "$comment"
-c country (two letters, e.g. DE) $C
-s state $ST
-l city $L
-o organisation "$O"
-u organisational unit "$U"
-n fully qualified domain name $CN (\$FQHOSTNAME)
-e email address of webmaster webmaster@$CN
-y days server cert is valid for $srvdays
-Y days CA cert is valid for $CAdays
-d run in debug mode
-h show usage
Cela crée une série de fichier dans les dossiers de type /etc/apache2/ssl.*
Faites attentions à ce que le paramètre -n soit équivalent à ServerName des fichiers de configuration. Ici on a utilisé www.domaine.com.
Ajoutez une entrée au fichier /etc/hosts sur le serveur Apache
192.168.0.1 srv1
Vérifiez que votre fichier /etc/host.conf ressemble à ça :
order hosts, bind
multi on
Lancez apache : apache2 restart.
Si ca ne fonctionne pas, placez vous dans /etc/init.d ou ajoutez /etc/init.d au PATH pour pouvoir lancer apache2 depuis n'importe quel répertoire.
PATH=/etc/init.d:$PATH
export PATH
apache2 restart
Allez dans le rép /etc/apache2 puis lancez la commande
httpd2 -D SSL -S
Vous devriez voir quelque chose de ce style :
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 www.domaine.com (/etc/apache2/vhosts.d/vhost.conf:13)
_default_:443 www.domaine.com (/etc/apache2/vhosts.d/vhost-ssl.conf:35)
Syntax OK
Lancez votre navigateur local.
http://localhost
et https://localhost doivent afficher la même page.
Pour le second cas, vous devrez accepter le certificat.
LIEN :
http://www.ornl.gov/~jar/Apache/SSL_in_Apache_2.html
http://3cx.org/item/46
----------------------------
Debian
Sous debian.
Prérequis : debian installée,connexion internet active et les ports 80 et 443 ouverts.
Pour commencer, une mise à jour de la liste des paquetages est recommandée.
en root, lancez
pour ma part j'ai modifié le fichier /etc/apt/sources.list en choisissant l'option 'edit source list by hand' dont voici le détail mais vous pouvez très bien vous laisser guider par l'assistant en faisant un autre choix.
Notes :
- Ne mettez pas trop de sources car vous risquez d'avoir des erreurs de ce type par la suite : 'dynamic nmap ran out of room'.
- Si vous faites 'edit source list by hand', vous tombez sous l'éditeur nano.
La liste des raccourcis affichés correspond à une combinaison CTRL + lettre.
On installe aptitude pour faciliter l'installation d'apache2 et ses dépendances.
Code :
- apt-get install aptitude
|
Puis on fait
suivi de
. Répondez aux questions posées.
Voilà on est désormais prêt à installer apache2.
Code :
- aptitude install apache2
|
A ce stade, http://localhost (en local) et http://ip_serveur (à distance) doivent afficher la page par défaut d'apache dans votre navigateur.
Les fichiers d'apache2 se situent à 3 endroits principaux :
/etc/apache2 qui contient tous les fichiers de configuration
/var/log/apache2 qui contient les logs
/var/www qui contient les pages web
On va substituer la page par défaut par une page de redirection vers la connexion securisée.
Créez le fichier index.html dans votre répertoire /var/www/
Voici un exemple de fichier index.html à customiser selon vos besoins.
Code :
- <html>
- <head>
- <title>Le Courrier</title>
- </head>
- <body>
- <div align="center">
- <br /><a href="https://www.domaine.com/exchange"><font size="+2">Acces au courrier</font></a>
- </div>
- </body>
- </html>
|
Jetons un oeil à notre fichier apache2.conf situé dans /etc/apache2
Préparez-vous mentalement, le ficher est assez gros .
J'ai mis en gras les lignes que vous devrez modifier et/ou déplacer en début de section par rapport au fichier d'origine.
Ca représente peu de modifs au final (3).
--------------------------------
ServerName www.domaine.com
ServerRoot "/var/www"
LockFile /var/lock/apache2/accept.lock
PidFile /var/run/apache2.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 20
MaxRequestsPerChild 0
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
AcceptMutex fcntl
</IfModule>
User www-data
Group www-data
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combine
d
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
ErrorLog /var/log/apache2/error.log
#
# Ce fichier appelle l'ensemble des autres fichiers de configuration
#
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/[^.#]*
Alias /icons/ "/usr/share/apache2/icons/"
<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
Alias /error/ "/usr/share/apache2/error/"
<Directory "/usr/share/apache2/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
</IfModule>
</IfModule>
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
UseCanonicalName Off
TypesConfig /etc/mime.types
DefaultType text/plain
HostnameLookups Off
IndexOptions FancyIndexing VersionSort
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* RCS CVS *,t
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage ko .ko
AddLanguage pt .pt
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw
#
#On donne la priorité au jeu d'encodage UTF8 (utilisé par OWA)
#
AddCharset UTF-8 .utf8
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
AddType application/x-tar .tgz
<FilesMatch "\.shtml(\..+)?$">
SetOutputFilter INCLUDES
</FilesMatch>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-caref
ully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
Include /etc/apache2/sites-enabled/[^.#]*
----------------------
Si j'ai bien compris la structure des fichiers de config :
- les dossiers /etc/apache2/mods-available et /etc/apache2/sites-available contiennent des modèles (template) de config
- apache2 va charger tous les fichiers de configurations qu'il trouve dans /etc/apache2/mods-enabled et /etc/apache2/sites-enabled
On se sert du template pour configurer le virtualhost pour le port HTTP (80).
Code :
- cp /etc/apache2/sites-available/default /etc/apache2/sites-enabled/port80.conf
|
Afin de ne pas être redirigé sur la page de test il faut modifier le fichier port80.conf, en ajoutant entre autre # devant la ligne 17 (RedirectMatch ^/$ /apache2-default/).
Voici une copie de mon fichier, adaptez à votre cas.
Code :
- #NameVirtualHost *
- <VirtualHost *:80>
- ServerAdmin jeoff@hfr.com
- DocumentRoot /var/www/
- <Directory />
- Options FollowSymLinks
- AllowOverride None
- </Directory>
- <Directory /var/www/>
- Options Indexes FollowSymLinks MultiViews
- AllowOverride None
- Order allow,deny
- allow from all
- # This directive allows us to have apache2's default start page
- # in /apache2-default/, but still have / go to the right place
- #RedirectMatch ^/$ /apache2-default/
- </Directory>
- ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
- <Directory "/usr/lib/cgi-bin">
- AllowOverride None
- Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
- Order allow,deny
- Allow from all
- </Directory>
- ErrorLog /var/log/apache2/error.log
- # Possible values include: debug, info, notice, warn, error, crit,
- # alert, emerg.
- LogLevel warn
- CustomLog /var/log/apache2/access.log combined
- ServerSignature On
- Alias /doc/ "/usr/share/doc/"
- <Directory "/usr/share/doc/">
- Options Indexes MultiViews FollowSymLinks
- AllowOverride None
- Order deny,allow
- Deny from all
- Allow from 127.0.0.0/255.0.0.0 ::1/128
- </Directory>
- </VirtualHost>
|
Puis on se sert du template pour configurer le virtualhost pour le port HTTPS (443).
Code :
- cp /etc/apache2/sites-available/default /etc/apache2/sites-enabled/ssl.conf
|
Code :
- <IfDefine SSL>
- <IfDefine !NOSSL>
- NameVirtualHost *:443
- <VirtualHost *:443>
- ProxyRequests off
- ServerName srv1
- ErrorLog /var/log/apache2/error_log
- TransferLog /var/log/apache2/access_log
- SSLEngine on
- SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
- :+eNULL
- <Files ~ "\.(cgi|shtml|phtml|php3?)$">
- SSLOptions +StdEnvVars
- </Files>
- <Directory "/srv/www/cgi-bin">
- SSLOptions +StdEnvVars
- </Directory>
- SetEnvIf User-Agent ".*MSIE.*" \
- nokeepalive ssl-unclean-shutdown \
- downgrade-1.0 force-response-1.0
- CustomLog /var/log/apache2/ssl_request_log ssl_combined
- SSLProxyEngine on
- ProxyVia on
- RequestHeader set Front-End-Https "On"
- ProxyPass /exchange http://srv1/exchange/
- ProxyPassReverse /exchange http://srv1/exchange/
- ProxyPass /exchweb http://srv1/exchweb/
- ProxyPassReverse /exchweb http://srv1/exchweb/
- ProxyPass /public http://srv1/public/
- ProxyPassReverse /public http://srv1/public/
- ProxyPass /iisadmpwd http://srv1/iisadmpwd/
- ProxyPassReverse /iisadmpwd http://srv1/iisadmpwd/
- ProxyPreserveHost on
- </VirtualHost>
- </IfDefine>
- </IfDefine>
|
Bien, maintenant ajoutons des modules à notre serveur apache2.
On se place dans /etc/apache2/mods-enabled.
On exécute les commandes suivantes.
Code :
- a2enmod proxy
- a2enmod proxy_connect
- a2enmod proxy_http
- a2enmod proxy_ftp (facultatif)
- a2enmod headers
- a2enmod ssl
|
A ce stade, si vous listez le rép avec ls, voici ce que vous devez voir au minimum :
proxy.conf ssl.load
proxy.load proxy_http.load
headers.load proxy_connect.load ssl.conf
Editez proxy.conf pour changer 'Deny from all' en 'Allow from all'.
Sinon le reverse proxy va bloquer toutes vos requêtes sur HTTPS (443).
Si cela devait se produire, votre /var/log/apache2/error_log contiendrait des entrées de ce type :
[client 82.127.52.13] client denied by server configuration: proxy:http://machine_locale/exchange/, referer: http://www.domaine.com/
Code :
- <IfModule mod_proxy.c>
- ProxyRequests Off
- <Proxy *>
- Order deny,allow
- #Deny from all
- Allow from all
- </Proxy>
- ProxyVia On
- CacheRoot "/var/cache/apache2/proxy"
- CacheSize 5
- CacheGcInterval 4
- CacheMaxExpire 24
- CacheLastModifiedFactor 0.1
- CacheDefaultExpire 1
- </IfModule>
|
ssl.conf n'a pas besoin d'être retouché.
Revenons à /etc/apache2 et éditons httpd.conf afin d'activer le ssl.
Code :
- SSLProtocol -all +SSLv2
- SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP
- SSLCertificateFile /etc/apache2/ssl/apache.pem
|
Cela suppose que nous avons crée un certificat (apache.pem), pour se faire, on tappe la commande apache2-ssl-certificate et on réponds aux questions.
A noter que le certificat par défaut n'est pas prévu pour durer plus d'un mois.
Mais on doit pouvoir le générer à la mano, lisez le tuto suse 10 pour en savoir plus.
Editez le fichier ports.conf et vérifiez que les deux ports soient à l'écoute.
Code :
- Listen 443
- Listen 80
|
Ajoutez une entrée au fichier /etc/hosts sur le serveur Apache
Vérifiez que votre fichier /etc/host.conf ressemble à ça :
Code :
- order hosts, bind
- multi on
|
Lancez apache : apache2 restart.
Si ca ne fonctionne pas, placez vous dans /etc/init.d ou ajoutez /etc/init.d au PATH pour pouvoir lancer apache2 depuis n'importe quel répertoire.
PATH=/etc/init.d:$PATH
export PATH
apache2 restart
Lancez votre navigateur local.
http://localhost doit afficher notre page de redirection.
Lorsque l'on clique sur le lien, il faut accepter le certificat puis nous accédons à la fenêtre de login OWA.
Une fois loggé, vous devez avoir accès à votre boîte.
LIEN :
http://www.libordux.org/debian-doc [...] server.php
http://forum.hardware.fr/hardwaref [...] 5672-1.htm
Message édité par jeoff le 21-02-2006 à 16:44:08