使普通用户启动nginx(监牢模式) - Revival - CSDN博客

为什么给nginx服务使用普通用户:

默认情况下nginx的Master进程使用的用户root,worker进程使用的是nginx指定的普通用户,使用root用户跑nginx的master进程有两个问题。

1.管理用户必须是root,这样使的最小化分配权限遇到问题

2.使root跑nginx服务,一旦网站出现了漏洞,用户就可以轻松的获得服务器的root权限。

配置实战:

1.常见普通用户,通过普通用户启动nginx:

useradd inca

su - inca

pwd

mkdir conf logs www

cp /application/nginx/conf/mime.types ~/conf

echo inca > www/index.html

---------------------------------------------------------------

2.配置nginx配置文件

cat conf/nginx.conf

worker_processes 1;

worker_rlimit_nofile 65535;

error_log /home/inca/logs/error.log;

user inca inca;

pid /home/inca/logs/nginx.pid;

events {

use epoll;

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

server {

listen 8990;

server_name www.ofo.com;

root /home/inca/www;

location / {

index index.html index.php index.htm;

}

access_log /home/inca/logs/web_access.log;

}

}

LANG=en

tree

|-- conf

| |-- mime.types

| `-- nginx.conf

|-- logs

| |-- error.log

| |-- nginx.pid

| `-- web_access.log

`-- www

`-- index.html

简单说明:

需要单独制定pid,用户。location下的目录,以及默认网站根目录所有参数的值要配置到/home/inca用户家目录下

特权用户root使用的80端口,改为普通用户使用的端口,在1024以上

启动nginx:

# ps -ef |grep nginx |grep -v grep

/applocation/nginx/sbin/nginx -c /home/inca/conf/nginx.conf <以root启动吧,要不又报错

ps -ef |grep nginx |grep -v grep

inca 4210 1 0 15:23 ? 00:00:00 nginx: master process /applocation/nginx/sbin/nginx -c /home/inca/conf/nginx.conf

inca 4211 4210 0 15:23 ? 00:00:00 nginx: worker process

lsof -i :8990

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

nginx 4210 inca 5u IPv4 19061 0t0 TCP *:http-wmap (LISTEN)

nginx 4211 inca 5u IPv4 19061 0t0 TCP *:http-wmap (LISTEN)

配置好客户端进行测试:

[root@localhost ~]# curl 192.168.1.251:8990/index.html

inca

解决普通端口非80提供问题。

可以通过负载均衡web服务进行转换。可以haproxy nginx f5等

本次解决方案优点;

给nginx服务降权,让网站更安全

按用户设置站点权限,让站点更安全

不必要给几把开发root权限

可实现责任划分(划重点)


Original url: Access
Created at: 2019-09-26 15:36:04
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论