bonjour
quelqun pourait me dire comment avoir unserveur nginx derrire une ip fixe avec un non de domaine duckdns.org qui se trouve derriere un routeur ubiquiti, quand je tape l'adresse de mon serveur j'arrive sur l'interface ubiquiti alors que quand j'etait sur freebox j'ouvrait les ports et j'arrivai directement sur mon serveur.
merci d'avance
L'IA peut aider, après faut bien sûr revérifier derrière, mais ça aide vachement !
Bonjour ! Je vais t’aider à configurer ton serveur Nginx derrière une IP fixe avec un nom de domaine DuckDNS.org, tout en étant derrière un routeur Ubiquiti. Ton problème semble venir du fait que lorsque tu tapes l’adresse de ton serveur, tu arrives sur l’interface de gestion de ton routeur Ubiquiti (probablement UniFi OS) au lieu de ton serveur Nginx. C’était différent avec ta Freebox, car tu avais configuré une redirection de ports qui fonctionnait directement. Je vais t’expliquer comment résoudre ça étape par étape.
Problème identifié
Quand tu accèdes à ton domaine (par exemple, mondomaine.duckdns.org), tu tombes sur l’interface de gestion de ton routeur Ubiquiti (souvent accessible via des ports comme 80 ou 443). Cela signifie que :
- Ton routeur Ubiquiti intercepte les requêtes sur les ports 80 (HTTP) ou 443 (HTTPS), qui sont utilisés par défaut pour l’interface de gestion UniFi.
- La redirection de ports (port forwarding) n’est pas correctement configurée pour envoyer les requêtes vers ton serveur Nginx.
- Il est possible que ton serveur Nginx ne soit pas configuré pour répondre correctement, ou qu’un problème de NAT Loopback empêche l’accès interne.
Avec ta Freebox, la redirection de ports était probablement bien configurée, et la Freebox n’utilisait pas les ports 80/443 pour son interface de gestion, ce qui évitait ce conflit.
Étapes pour résoudre le problème
1. Vérifier que ton IP publique est bien fixe
- Puisque tu as une IP fixe, tu n’as pas besoin de configurer un service de mise à jour automatique de DuckDNS. Cependant, tu dois t’assurer que ton domaine DuckDNS pointe bien vers ton IP publique fixe.
- Va sur duckdns.org, connecte-toi, et vérifie que ton domaine (par exemple, mondomaine.duckdns.org) est associé à ton IP publique fixe. Si ce n’est pas le cas, mets à jour manuellement l’IP dans l’interface DuckDNS.
2. Configurer une IP statique pour ton serveur Nginx
- Assure-toi que ton serveur Nginx a une IP locale statique dans ton réseau (par exemple, 192.168.1.100).
- Dans l’interface UniFi de ton routeur Ubiquiti :
- Va dans Settings > Network > Clients.
- Trouve ton serveur Nginx dans la liste des appareils connectés.
- Clique dessus et configure une IP statique (par exemple, 192.168.1.100).
- Cela garantit que l’IP de ton serveur ne change pas, ce qui est essentiel pour la redirection de ports.
3. Changer les ports de l’interface de gestion Ubiquiti
- Par défaut, l’interface UniFi OS de ton routeur Ubiquiti utilise les ports 80 et 443, ce qui entre en conflit avec ton serveur Nginx (qui utilise aussi ces ports pour HTTP et HTTPS). Tu dois changer les ports utilisés par l’interface UniFi pour éviter ce conflit.
- Dans l’interface UniFi OS :
- Va dans Settings > System > Advanced.
- Cherche une option pour modifier les ports de gestion (par exemple, change le port HTTP de 80 à 8080 et le port HTTPS de 443 à 8443).
- Applique les modifications.
- Après cela, tu accéderas à l’interface UniFi via https://ton-ip-locale:8443 au lieu de https://ton-ip-locale.
4. Configurer la redirection de ports (Port Forwarding)
- Maintenant que les ports 80 et 443 sont libérés sur ton routeur, configure la redirection de ports pour envoyer le trafic vers ton serveur Nginx.
- Dans l’interface UniFi OS :
- Va dans Settings > Firewall & Security > Port Forwarding.
- Crée une nouvelle règle :
- Name : "Nginx HTTP"
- From : Anywhere (ou une plage IP spécifique pour plus de sécurité).
- Port : 80 (pour HTTP).
- Forward IP : L’IP statique de ton serveur Nginx (ex. 192.168.1.100).
- Forward Port : 80.
- Crée une deuxième règle pour HTTPS :
- Name : "Nginx HTTPS"
- From : Anywhere.
- Port : 443 (pour HTTPS).
- Forward IP : L’IP statique de ton serveur Nginx (ex. 192.168.1.100).
- Forward Port : 443.
- Enregistre les règles.
5. Configurer Nginx sur ton serveur
- Assure-toi que ton serveur Nginx est bien configuré pour répondre sur les ports 80 et 443.
- Voici un exemple de configuration Nginx de base pour ton domaine DuckDNS :
- Ouvre le fichier de configuration Nginx (souvent /etc/nginx/sites-available/default) sur ton serveur :
nginx
server {
listen 80;
listen [::]:80;
server_name mondomaine.duckdns.org;
# Rediriger HTTP vers HTTPS (optionnel, si tu veux forcer HTTPS)
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name mondomaine.duckdns.org;
# Chemin vers tes certificats SSL (si tu utilises HTTPS)
ssl_certificate /chemin/vers/fullchain.pem;
ssl_certificate_key /chemin/vers/privkey.pem;
# Paramètres SSL recommandés
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# Chemin vers le contenu de ton site
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
- Si tu veux utiliser HTTPS (recommandé), tu devras générer des certificats SSL pour ton domaine DuckDNS avec Let’s Encrypt. Tu peux le faire avec certbot :
- Installe Certbot : sudo apt install certbot python3-certbot-nginx (sur une distribution basée sur Debian/Ubuntu).
- Génère les certificats : sudo certbot --nginx -d mondomaine.duckdns.org.
- Certbot configurera automatiquement Nginx pour utiliser les certificats.
6. Vérifier le pare-feu de ton routeur
- Assure-toi que le pare-feu de ton routeur Ubiquiti autorise le trafic entrant sur les ports 80 et 443 :
- Va dans Settings > Firewall & Security > Firewall Rules.
- Crée une règle pour autoriser le trafic entrant sur les ports 80 et 443 vers l’IP de ton serveur Nginx.
7. Tester l’accès
- Depuis un appareil hors de ton réseau local (par exemple, via les données mobiles de ton téléphone), accède à http://mondomaine.duckdns.org ou https://mondomaine.duckdns.org (selon ta configuration).
- Si tout est bien configuré, tu devrais voir le contenu servi par ton serveur Nginx (par exemple, une page HTML par défaut si tu n’as rien modifié).
8. Résoudre le problème d’accès interne (NAT Loopback)
- Si tu testes depuis l’intérieur de ton réseau et que tu tombes encore sur l’interface Ubiquiti, c’est probablement un problème de NAT Loopback. Certains routeurs Ubiquiti ne gèrent pas bien le NAT Loopback (quand tu essaies d’accéder à ton domaine DuckDNS depuis ton réseau local, il ne redirige pas correctement vers ton serveur).
- Solutions possibles :
- Utiliser un port différent pour l’accès interne : Configure Nginx pour écouter sur un autre port (par exemple, 8080) pour les connexions internes, et accède à ton serveur via http://192.168.1.100:8080 depuis ton réseau local.
- Configurer un DNS local : Si tu as un serveur DNS local (comme Pi-hole), tu peux configurer une règle pour que mondomaine.duckdns.org pointe directement vers 192.168.1.100 à l’intérieur de ton réseau.
- Désactiver le NAT Loopback : Certains utilisateurs désactivent cette fonctionnalité sur Ubiquiti, mais cela peut compliquer l’accès. Dans ce cas, teste uniquement depuis l’extérieur.
Comparaison avec la Freebox
Avec ta Freebox, la configuration était plus simple car :
- La Freebox n’utilise probablement pas les ports 80/443 pour son interface de gestion, donc il n’y avait pas de conflit.
- La redirection de ports sur la Freebox était directe : tu redirigeais le port 80/443 de la Freebox vers ton serveur, et ça fonctionnait.
- La Freebox gère souvent mieux le NAT Loopback, ce qui te permettait d’accéder à ton serveur depuis l’intérieur de ton réseau sans problème.
Ubiquiti, en revanche, est plus orienté vers des utilisateurs avancés et nécessite une configuration plus précise pour éviter les conflits (comme celui des ports de gestion).
Conseils supplémentaires
- Sécurité : Si ton serveur Nginx est accessible depuis l’extérieur, sécurise-le bien. Utilise HTTPS, configure un pare-feu sur ton serveur (par exemple, ufw pour bloquer tout sauf les ports 80 et 443), et active l’IDS/IPS sur ton routeur Ubiquiti pour détecter les intrusions.
- Logs : Si tu n’arrives toujours pas à accéder à ton serveur, vérifie les logs de Nginx (sudo journalctl -u nginx ou /var/log/nginx/error.log) pour voir s’il y a des erreurs.
- Test de ports : Utilise un outil comme canyouseeme.org pour vérifier que les ports 80 et 443 sont bien ouverts sur ton IP publique.
Résultat attendu
Une fois ces étapes suivies, taper mondomaine.duckdns.org depuis l’extérieur devrait t’amener directement à ton serveur Nginx, et non à l’interface Ubiquiti. Si tu as d’autres questions ou si tu rencontres une erreur, fais-le-moi savoir, et je t’aiderai à approfondir !