Некоторые картинки не загружаются из РФ и РК, используйте VPN.

вторник, 7 ноября 2023 г.

NGinx NextCloud ограничить доступ

Решил ограничить доступ к NextCloud за пределами организации. А именно:
  • Всем дать возможность скачать файл
  • На страницу входа доступ только после предавторизации
  • Для Let's Encrypt изменить root. Сервер nginx отдельная тачка, сертификаты генерируем на нем и рассылаем сервисам
  • Остальным - 404
Если есть комментарии/критика, можем обсудить в комментариях
В итоге получились такие конфиги
/etc/nginx/sites-available/cloud.domain.ru:

server {
        listen 80;
        server_name www.nxtcloud.domain.ru nxtcloud.domain.ru;
        return 301 $scheme://cloud.domain.ru$request_uri;

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/nxtcloud.domain.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/nxtcloud.domain.ru/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
        listen 80;
        server_name cloud.domain.ru www.cloud.domain.ru;
        access_log /var/log/nginx/cloud.domain.ru.access.log;

        proxy_set_header        Host    $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto       $scheme;

        location /.well-know {
                root /var/www/html;
        }
        location ~ ^/(index.php/(s|apps|csrftoken|js|css)|apps|core|public.php|ocs) {
                proxy_pass https://cloud.domain.ru;
                proxy_read_timeout      90;

        }

        location /index.php/login {
                auth_basic      "Administrator’s Area";
                auth_basic_user_file    /etc/nginx/.htpasswd;

                proxy_pass      https://cloud.domain.ru;
                proxy_read_timeout      90;
        }

        location / {
                return 404;
        }


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/cloud.domain.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/cloud.domain.ru/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}


Комментариев нет:

Отправить комментарий