J'installe mon premier Node.js
serveur sur un cloud Linux node
et je suis assez nouveau dans les détails de Linux admin
. (BTW Je n'essaie pas d'utiliser Apache en même temps.)
Tout est installé correctement, mais j'ai trouvé qu'à moins d'utiliser le root login
, je ne suis pas en mesure d'écouter port 80
avec le nœud. Cependant, je préfère ne pas l'exécuter en tant que root pour des raisons de sécurité.
Quelle est la meilleure pratique pour:
- Définir de bonnes autorisations / utilisateur pour le nœud afin qu'il soit sécurisé / en bac à sable?
- Permettez au port 80 d'être utilisé dans ces contraintes.
- Démarrez le nœud et exécutez-le automatiquement.
- Gérer les informations du journal envoyées à la console.
- Tout autre problème général de maintenance et de sécurité.
Dois-je transférer le trafic du port 80 vers un autre port d'écoute?
Merci
la source
/etc/rc.local
, ne sera-t-il pas exécuté commeroot
au démarrage du système? Cela irait à l'encontre de l'objectif de la redirection du port 80.Donner à l'utilisateur autorisé l'autorisation d'utiliser le port 80
N'oubliez pas que nous ne voulons PAS exécuter vos applications en tant qu'utilisateur root, mais il y a un problème: votre utilisateur sécurisé n'a pas la permission d'utiliser le port HTTP par défaut (80). Votre objectif est de pouvoir publier un site Web que les visiteurs peuvent utiliser en accédant à une URL facile à utiliser comme
http://ip:port/
Malheureusement, sauf si vous vous connectez en tant que root, vous devrez normalement utiliser une URL comme
http://ip:port
- où le numéro de port> 1024.Beaucoup de gens sont coincés ici, mais la solution est simple. Il y a quelques options mais c'est celle que j'aime. Tapez les commandes suivantes:
Maintenant, lorsque vous dites à une application Node que vous souhaitez qu'elle s'exécute sur le port 80, elle ne se plaindra pas.
Vérifiez ce lien de référence
la source
Supprimez les privilèges root après vous être connecté au port 80 (ou 443).
Cela permet au port 80/443 de rester protégé, tout en vous empêchant de servir les demandes en tant que root:
Un exemple de travail complet utilisant la fonction ci-dessus:
Voir plus de détails à cette référence complète .
la source
Pour le port 80 (qui était la question d'origine), Daniel a tout à fait raison. J'ai récemment déménagé
https
et j'ai dû passeriptables
à un proxy nginx léger gérant les certificats SSL. J'ai trouvé utile réponse avec un point essentiel par gabrielhpugliese sur la façon de gérer cela. Fondamentalement, jeCréation d'une demande de signature de certificat SSL (CSR) via OpenSSL
Changement de la
location
dans/etc/nginx/conf.d/example_ssl.conf
laFormatage du certificat pour nginx en
cat
regroupant les certificats individuels et lié à celui-ci dans monexample_ssl.conf
fichier nginx (et les éléments non commentés, débarrassé de `` exemple '' dans le nom, ...)J'espère que cela peut sauver quelqu'un d'autre de maux de tête. Je suis sûr qu'il y a une façon pure de faire ça, mais nginx a été rapide et cela a fonctionné.
la source