Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Vhosts Apache supplémentaires sur eole3
Aller à la navigation
Aller à la recherche
Vhosts Apache supplémentaires sur eole3
[modifier | modifier le wikicode]Principe
[modifier | modifier le wikicode]cockpit.ajlsm.com→ proxy Apache vershttps://127.0.0.1:9090sftpgo.ajlsm.com→ proxy Apache vershttp://127.0.0.1:8080
Les enregistrements DNS de type A doivent pointer vers l’IP publique de eole3 :
cockpit.ajlsm.com→ IP publique eole3sftpgo.ajlsm.com→ IP publique eole3
Modules Apache nécessaires
[modifier | modifier le wikicode]/usr/sbin/a2enmod proxy proxy_http proxy_wstunnel ssl rewrite headers
/usr/sbin/apachectl configtest
systemctl reload apache2
Cockpit
[modifier | modifier le wikicode]Vhost HTTP
[modifier | modifier le wikicode]Fichier :
/etc/apache2/sites-available/cockpit.ajlsm.com.conf
<VirtualHost *:80>
ServerName cockpit.ajlsm.com
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ErrorLog /var/log/apache2/cockpit.errors.log
CustomLog /var/log/apache2/cockpit.log combined
</VirtualHost>
Vhost HTTPS
[modifier | modifier le wikicode]Fichier :
/etc/apache2/sites-available/cockpit.ajlsm.com-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName cockpit.ajlsm.com
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
ProxyPreserveHost On
SSLProxyEngine On
RequestHeader set X-Forwarded-Proto "https"
RewriteEngine On
# Restriction IP (à adapter selon whitelist fail2ban / IP autorisées)
RewriteCond %{REMOTE_ADDR} !127.0.0.1
RewriteCond %{REMOTE_ADDR} !192.168.123.0/24
RewriteCond %{REMOTE_ADDR} !109.190.129.96
RewriteCond %{REMOTE_ADDR} !82.66.151.165
RewriteCond %{REMOTE_ADDR} !141.95.206.118
RewriteRule ^ - [F,L]
# Websocket Cockpit
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) wss://127.0.0.1:9090/$1 [P,L]
ProxyPass / https://127.0.0.1:9090/
ProxyPassReverse / https://127.0.0.1:9090/
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ErrorLog /var/log/apache2/cockpit.errors.log
CustomLog /var/log/apache2/cockpit.log combined
SSLCertificateFile /etc/letsencrypt/live/cockpit.ajlsm.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cockpit.ajlsm.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Activation
[modifier | modifier le wikicode]/usr/sbin/a2ensite cockpit.ajlsm.com.conf
/usr/sbin/apachectl configtest
systemctl reload apache2
Certificat
[modifier | modifier le wikicode]certbot --apache -d cockpit.ajlsm.com
Vérification
[modifier | modifier le wikicode]curl -I http://cockpit.ajlsm.com/
curl -Ik https://cockpit.ajlsm.com/
Remarque sécurité
[modifier | modifier le wikicode]Une fois le proxy Apache opérationnel, il est recommandé de fermer l’accès public direct au port 9090 et de ne conserver que :
- Apache en 443
- restriction IP dans Apache
SFTPGo
[modifier | modifier le wikicode]Vhost HTTP
[modifier | modifier le wikicode]Fichier :
/etc/apache2/sites-available/sftpgo.ajlsm.com.conf
<VirtualHost *:80>
ServerName sftpgo.ajlsm.com
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ErrorLog /var/log/apache2/sftpgo.errors.log
CustomLog /var/log/apache2/sftpgo.log combined
</VirtualHost>
Vhost HTTPS
[modifier | modifier le wikicode]Fichier :
/etc/apache2/sites-available/sftpgo.ajlsm.com-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName sftpgo.ajlsm.com
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https"
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
ErrorLog /var/log/apache2/sftpgo.errors.log
CustomLog /var/log/apache2/sftpgo.log combined
SSLCertificateFile /etc/letsencrypt/live/sftpgo.ajlsm.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sftpgo.ajlsm.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Activation
[modifier | modifier le wikicode]/usr/sbin/a2ensite sftpgo.ajlsm.com.conf
/usr/sbin/apachectl configtest
systemctl reload apache2
Certificat
[modifier | modifier le wikicode]certbot --apache -d sftpgo.ajlsm.com
Vérification
[modifier | modifier le wikicode]curl -I http://sftpgo.ajlsm.com/
curl -Ik https://sftpgo.ajlsm.com/
Vérifications utiles
[modifier | modifier le wikicode]Vhosts chargés
[modifier | modifier le wikicode]/usr/sbin/apachectl -S
Modules actifs
[modifier | modifier le wikicode]/usr/sbin/a2query -m proxy
/usr/sbin/a2query -m proxy_http
/usr/sbin/a2query -m proxy_wstunnel
/usr/sbin/a2query -m ssl
Test local des backends
[modifier | modifier le wikicode]curl -Ik https://127.0.0.1:9090/
curl -I http://127.0.0.1:8080/
Ordre recommandé
[modifier | modifier le wikicode]- créer les entrées DNS
- créer les fichiers vhosts Apache
- activer les sites Apache
- tester la configuration Apache
- générer les certificats avec certbot
- tester les FQDN en HTTPS
- restreindre ensuite finement l’accès à Cockpit
- restreindre ensuite l’accès à SFTPGo selon les IP clientes
Conclusion
[modifier | modifier le wikicode]cockpit.ajlsm.comest exposé proprement en HTTPS via Apache, avec restriction IPsftpgo.ajlsm.comest exposé proprement en HTTPS via Apache, proxy vers le port 8080- les ports internes ne sont plus exposés directement aux utilisateurs finaux