Aparência
Instalação segura do Mergin Maps
AVISO
Esta secção tem como objetivo fornecer algumas orientações e um exemplo simples sobre como garantir a segurança de uma Mergin Maps implementação.
Devem ser implementadas novas medidas de reforço da segurança por especialistas, em conformidade com as políticas de cibersegurança em vigor.
Por motivos de segurança e privacidade Mergin Maps as implementações devem permitir uma ligação segura via HTTPS através de um ficheiro de certificado.
Fornecemos um ficheiro de configuração modelo ssl-proxy.confcomo base para a sua configuração.
Vamos dar uma vista de olhos rápida às secções principais:
concha
server {
listen 443 ssl;
server_name merginmaps.company.com; # FIXME
client_max_body_size 4G;
...Aqui, ativamos o SSL através da configuração predefinida 443 abrir a porta e configurar o servidor HTTPS com autenticação por nome através de nome_do_servidor. Aqui, deve alterar esta informação de acordo com o nome do servidor de destino.
Não recomendamos definir um client_max_body_size superior ao especificado, pois isso pode provocar erros de tempo limite durante o envio dos seus dados para Mergin Maps.
Em seguida, é necessário indicar os ficheiros de certificado na configuração do NGINX. Isto é feito nas linhas seguintes da configuração de segurança:
concha
...
ssl_certificate_key /etc/letsencrypt/live/merginmaps.company.com/privkey.pem; # FIXME
ssl_certificate /etc/letsencrypt/live/merginmaps.company.com/fullchain.pem; # A CORRIGIR
...O exemplo acima utiliza chaves geradas automaticamente pelo CertBot. Para mais informações, visite o site do CertBot e veja como pode gerar as suas próprias chaves.
São disponibilizadas algumas definições de segurança adicionais para os cabeçalhos HTTP. Por favor, analise-as e atualize-as de acordo com as suas necessidades.
concha
# Prevent crawlers from indexing and following links for all content served from the mergin app
add_header X-Robots-Tag "none";
# Protect against clickjacking iframe
add_header Content-Security-Policy "frame-ancestors 'self';" always;
# Add a HSTS policy to prevent plain http from browser
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# Set cookies security flags
proxy_cookie_flags ~ secure httponly samesite=strict;
location / {
root /var/www/html;
# The lines below were copied from application proxy
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
# we don't want nginx trying to do something clever with
# redirects, we set the Host: header above already.
proxy_redirect off;
proxy_pass http://app_server;
}