Désolé, j'ai surtout travaillé avec NGINX jusqu'à présent. Je voudrais utiliser apache 2 (sur un hôte) pour transférer le trafic https et http vers plusieurs sites Web fonctionnant sur des VM VirtualBox. Chaque VM a plusieurs sites Web ou applications, tous avec peu de trafic (principalement des bots de toute façon), sur ou derrière des serveurs nginx / proxies inversés. Mon routeur n'autorise que quelques ports vers l'hôte (80, 8080, 443) et le pare-feu de l'hôte est également limité à quelques applications (actuellement VirtualBox par exemple). Je préférerais ne pas ouvrir plus de ports que 80(80) et 443.
Comment puis-je le faire en toute sécurité ? En principe, l'idée est dans la conf en dessous de mais est-ce suffisant ? Devrais-je émettre des commandes en ligne de commande ? (Comment)Peut-on le rendre plus sûr ? D'autres directives sont-elles nécessaires ?
httpd.conf :
<IfDefine SERVER_APP_HAS_DEFAULT_PORTS>
Listen 8080
</IfDefine>
<IfDefine !SERVER_APP_HAS_DEFAULT_PORTS>
Listen 80
</IfDefine>
LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so
LoadModule authn_file_module libexec/apache2/mod_authn_file.so
LoadModule authn_core_module libexec/apache2/mod_authn_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so
LoadModule authz_user_module libexec/apache2/mod_authz_user.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule access_compat_module libexec/apache2/mod_access_compat.so
LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so
LoadModule reqtimeout_module libexec/apache2/mod_reqtimeout.so
LoadModule filter_module libexec/apache2/mod_filter.so
LoadModule mime_module libexec/apache2/mod_mime.so
LoadModule log_config_module libexec/apache2/mod_log_config.so
LoadModule env_module libexec/apache2/mod_env.so
LoadModule headers_module libexec/apache2/mod_headers.so
LoadModule setenvif_module libexec/apache2/mod_setenvif.so
LoadModule version_module libexec/apache2/mod_version.so
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
LoadModule slotmem_shm_module libexec/apache2/mod_slotmem_shm.so
LoadModule unixd_module libexec/apache2/mod_unixd.so
LoadModule status_module libexec/apache2/mod_status.so
LoadModule autoindex_module libexec/apache2/mod_autoindex.so
<IfModule !mpm_prefork_module>
#LoadModule cgid_module libexec/apache2/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
#LoadModule cgi_module libexec/apache2/mod_cgi.so
</IfModule>
LoadModule negotiation_module libexec/apache2/mod_negotiation.so
LoadModule dir_module libexec/apache2/mod_dir.so
LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so
<IfModule unixd_module>
User _www
Group _www
</IfModule>
ServerAdmin you@example.com
ServerName localhost
<Directory />
AllowOverride none
Require all denied
</Directory>
<FilesMatch "^\.([Hh][Tt]|[Dd][Ss]_[Ss])">
Require all denied
</FilesMatch>
<Files "rsrc">
Require all denied
</Files>
<DirectoryMatch ".*\.\.namedfork">
Require all denied
</DirectoryMatch>
ErrorLog "/private/var/log/apache2/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "/private/var/log/apache2/access_log" common
</IfModule>
<IfModule alias_module>
ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"
</IfModule>
<IfModule cgid_module>
#Scriptsock cgisock
</IfModule>
<IfModule headers_module>
RequestHeader unset Proxy early
</IfModule>
<IfModule mime_module>
TypesConfig /private/etc/apache2/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
TraceEnable off
Include /private/etc/apache2/extra/httpd-mpm.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf
<IfModule proxy_html_module>
Include /private/etc/apache2/extra/proxy-html.conf
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
Include /private/etc/apache2/other/*.conf
extra/httpd-vhosts.conf
ProxyRequests Off
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass "/" "http://localhost:8082/"
ProxyPassReverse "/" "http://localhost:8082/"
ServerName abc.de
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass "/" "http://localhost:8081/"
ProxyPassReverse "/" "http://localhost:8081/"
ServerName fgh.ij
</VirtualHost>
J'ai également lu que je devais activer les modules d'apache2, en utilisant les instructions LoadModule (sur OSX) : qui sont nécessaires pour le forward proxying sécurisé ?
Je pense que j'aimerais aussi en faire usage : https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html D'après la documentation, il semble que les clients mandataires (Internet, robots) ne soient pas identifiables par les serveurs Web, car ils s'identifient comme le serveur mandataire. Bien sûr, mes sites Web ont besoin de savoir qui les visite.