Désactiver l'accès externe à l'interface d'administration

Salut,

Je cherche une solution pour désactiver l’accès externe à l’interface d’administration.
J’ai déjà essayé d’ajouter au fichier yunohost_api.conf.inc
allow 127.0.0.1;
allow 192.168.1.0/24;
deny all;
et au fichier yunohost_admin.conf.inc
allow 192.168.1.0/24;
deny all;
Cela m’a aussi bloqué l’accès au site qui sont derrière yunuhost grâce à l’appli redirect
Merci

Ça peut être ça Restreindre l'accès de l'interface admin au réseau local

Merci, j’ai suivi les manips décrites dans le poste que tu m’as donné, ça fonctionne, mais ça bloque aussi l’accès aux sites web accessible normalement à travers redirect

Peux-tu montrer tes fichiers modifiés au complet ?

Peux-tu expliciter ? Sur quelles adresses les apps Redirect sont-elles installées, et vers quelles URLs redirigent-elles ?

@tituspijean
Voilà les fichiers que j’ai modifiés :
yunohost_api.conf.inc:

location /yunohost/api/ {
    proxy_read_timeout 3600s;
    proxy_pass http://127.0.0.1:6787/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;

    

    # Custom 502 error page
    error_page 502 /yunohost/api/error/502;
}

# Yunohost admin output complete 502 error page, so use only plain text.
location = /yunohost/api/error/502 {
    return 502 '502 - Bad Gateway';
    add_header Content-Type text/plain;
    internal;
}
allow 127.0.0.1;
allow 192.168.0.0/24;
deny all;

yunohost_admin.conf.inc:

# Avoid the nginx path/alias traversal weakness ( #1037 )
rewrite ^/yunohost/admin$ /yunohost/admin/ permanent;

location /yunohost/admin/ {
    alias /usr/share/yunohost/admin/;
    default_type text/html;
    index index.html;

    

    location = /yunohost/admin/index.html {
        etag off;
        expires off;
        more_set_headers "Cache-Control: no-store, no-cache, must-revalidate";
    }

    more_set_headers "Content-Security-Policy: upgrade-insecure-requests; default-src 'self'; connect-src 'self' https://paste.yunohost.org wss://$host; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-eval'; object-src 'none'; img-src 'self' data:;";
    more_set_headers "Content-Security-Policy-Report-Only:";
}
allow 192.168.0.0/24;
deny all;

Redirect est installé sur https://mon-sous-domaine.mon-domaine.fr et redirige vers 192.168.0.74

Merci ! Essaie ceci pour voir ?

yunohost_api.conf.inc:

location /yunohost/api/ {
    proxy_read_timeout 3600s;
    proxy_pass http://127.0.0.1:6787/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;

allow 127.0.0.1;
allow 192.168.0.0/24;
deny all;

    # Custom 502 error page
    error_page 502 /yunohost/api/error/502;
}

# Yunohost admin output complete 502 error page, so use only plain text.
location = /yunohost/api/error/502 {
    return 502 '502 - Bad Gateway';
    add_header Content-Type text/plain;
    internal;
allow 127.0.0.1;
allow 192.168.0.0/24;
deny all;
}

yunohost_admin.conf.inc:

# Avoid the nginx path/alias traversal weakness ( #1037 )
rewrite ^/yunohost/admin$ /yunohost/admin/ permanent;

location /yunohost/admin/ {
    alias /usr/share/yunohost/admin/;
    default_type text/html;
    index index.html;

allow 127.0.0.1;
allow 192.168.0.0/24;
deny all;

    location = /yunohost/admin/index.html {
        etag off;
        expires off;
        more_set_headers "Cache-Control: no-store, no-cache, must-revalidate";
    }

    more_set_headers "Content-Security-Policy: upgrade-insecure-requests; default-src 'self'; connect-src 'self' https://paste.yunohost.org wss://$host; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-eval'; object-src 'none'; img-src 'self' data:;";
    more_set_headers "Content-Security-Policy-Report-Only:";
}

1 Like

Super ça fonctionne, merci beaucoup.

Je ne l’avais juste pas mis au bon emplacement ?

1 Like

Oui, il fallait mettre les allow et deny dans les blocs location, sinon ça s’appliquait à tout le serveur. :wink:

J’ai un doute pour /yunohost/admin/index.html, peux-tu vérifier que c’est bien bloqué ?

Ok, je prends note,
oui ça fonctionne bien, j’ai “403 Forbidden”

La modification risque d’être effacé avec une mise à jour ?

Possiblement, mais je crois que tu auras des avertissements au moment des étapes de “regen conf”. A surveiller après chaque mise à jour donc.

@tituspijean J’ai installé l’appli Unattended-upgrades pour garder mon serveur à jour, il va falloir que je surveille le comportement.
Il y a une option Overwriting config files peut-être une piste ?

Pour garder des modifs dans les fichiers de config, tu peux faire appel à des hooks, comme sur ce sujet qui concerne aussi nginx et les locations : Tuto: Bloquer les requêtes selon le pays

1 Like

Merci pour l’info,
J’ai fait des recherches sur les hooks, je pense que je vais avoir besoin d’un coup de main pour mettre cela en place.

J’ai compris qu’il faut que je réalise un hook conf_regen par contre je coince sur le contenu.

Bonjour,

Je passe sans doute un peu tard, cependant si tu bloques toujours pour créer le hook, repasse le dire.
Sinon plus simple, il existe un “setting” pour limiter l’accès de l’interface d’administration, regarde du côté de security.webadmin.allowlist et de security.webadmin.allowlist.enabled. En autorisant que les ip locales, ça devrait restreindre l’accès.

1 Like

Super, merci, c’est effectivement plus simple.

Je n’avais pas encore eu le temps de creuser au sujet des hook