Я настраиваю свой первый Node.js
сервер на, cloud Linux node
и я довольно плохо знаком с деталями Linux admin
. (Кстати, я не пытаюсь использовать Apache одновременно.)
Все установлено правильно, но я обнаружил, что, если я не использую root login
, я не могу слушать port 80
с узла. Однако я бы не хотел запускать его как root по соображениям безопасности.
Какова лучшая практика для:
- Установить хорошие права доступа / пользователя для узла, чтобы он был безопасным / изолированным?
- Разрешить использование порта 80 в рамках этих ограничений.
- Запустите узел и запустите его автоматически.
- Обработка информации журнала, отправленной на консоль.
- Любые другие вопросы общего обслуживания и безопасности.
Должен ли я перенаправлять трафик порта 80 на другой порт прослушивания?
Спасибо
источник
/etc/rc.local
, не будет ли он выполняться какroot
при загрузке системы? Это победило бы цель перенаправления порта 80.Дайте безопасное пользовательское разрешение на использование порта 80
Помните, мы НЕ хотим запускать ваши приложения от имени пользователя root, но есть загвоздка: ваш безопасный пользователь не имеет разрешения использовать порт HTTP по умолчанию (80). Ваша цель - иметь возможность публиковать веб-сайт, который могут использовать посетители, перейдя по такому простому URL-адресу, как
http://ip:port/
К сожалению, если вы не войдете в систему как root, вам обычно придется использовать URL-адрес, например,
http://ip:port
где номер порта> 1024.Многие люди застряли здесь, но решение легко. Там несколько вариантов, но это тот, который мне нравится. Введите следующие команды:
Теперь, когда вы сообщаете приложению Node, что хотите, чтобы оно работало на порту 80, оно не будет жаловаться.
Проверьте эту ссылку ссылку
источник
Отбросьте привилегии root после привязки к порту 80 (или 443).
Это позволяет порту 80/443 оставаться защищенным, в то же время не позволяя обслуживать запросы от имени root:
Полный рабочий пример с использованием вышеуказанной функции:
Подробности смотрите в этом полном справочнике .
источник
Для порта 80 (который был первоначальный вопрос), Даниэль совершенно прав. Недавно я перешел на
https
и должен был переключитьсяiptables
на легкий прокси-сервер nginx, управляющий сертификатами SSL. Я нашел полезный ответ вместе с сутью по gabrielhpugliese о том , как справиться с этим. В основном яСоздан запрос на подпись сертификата SSL (CSR) через OpenSSL
Поменял
location
в/etc/nginx/conf.d/example_ssl.conf
наОтформатировал сертификат для nginx,
cat
собрав вместе отдельные сертификаты и связав его с ним в моемexample_ssl.conf
файле nginx (и не комментируя, избавился от «примера» в названии, ...)Надеюсь, что это может спасти кого-то еще от некоторых головных болей. Я уверен, что есть способ сделать это на чистом узле, но nginx был быстрым и сработал.
источник