0x00 必要性

我还是喜欢在Blog唠嗑一下,虽然但是没什么人看。天生愚笨,此事耗时较久。但是安全一路本就是坎坷之途,越是困难越要战胜它。

附:我好奇问一下读者,作为一名hacker,你能从上面这段话收集多少信息。

0x01 nginx配置

推荐视频:
Nginx入门必须懂3大功能配置 - Web服务器/反向代理/负载均衡_哔哩哔哩_bilibili

一. 基础理解

我被一个文件和两个目录困扰

.../nginx.conf 总配置文件 注意一行代码:

1
include .../sites-enabled/*;

.../sites-enabled

很明显这个目录可以写配置

../sites-availabled

这个一般来说就不行了

https://www.jianshu.com/p/42c4ffd044e6

看不懂,先这样理解。

二. 配置代码理解

enabled下创建port_handsome(这只是一个名称.jpg),代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server{
listen port;
server_name IP;
root /var/www/html;
index 帅哥.php;

location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 确保这里的版本号与安装的PHP版本匹配
}
location ~ /\.ht {
deny all;
}

}

server 块

1
server {

这个块定义了一个虚拟服务器的配置,所有的配置指令都在这个块内。

listen 指令

1
listen 614;

listen 指令指定Nginx监听的端口号。在这个例子中,Nginx将监听614端口。

server_name 指令

1
server_name IP;

server_name 指令指定了这个虚拟服务器的服务器名称或IP地址。在这个例子中,服务器名称是 555.555.555.555

root 指令

1
root /var/www/html;

root 指令设置了服务器根目录。在这个例子中,根目录是 /var/www/html,即所有的请求文件都相对于这个目录。

index 指令

1
index redirect.php;

index 指令指定了默认的索引文件。在这个例子中,当访问根目录时,默认文件是 redirect.php

location / 块

1
2
3
location / {
try_files $uri $uri/ =404;
}

location / 块定义了对根路径的请求处理方式。try_files 指令尝试按顺序查找文件:

  1. $uri:请求的URI。
  2. $uri/:请求的URI作为目录。
  3. =404:如果前两个都找不到,返回404错误。

location ~ .php$ 块

1
2
3
4
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 确保这里的版本号与安装的PHP版本匹配
}

location ~ \.php$ 块定义了对PHP文件的请求处理方式:

  1. include snippets/fastcgi-php.conf:包含了FastCGI的配置片段。
  2. fastcgi_pass unix:/var/run/php/php8.1-fpm.sock:将PHP请求传递给PHP-FPM服务,通过Unix套接字通信。这里的版本号需要与实际安装的PHP版本匹配。

location ~ /.ht 块

1
2
3
location ~ /\.ht {
deny all;
}

location ~ /\.ht 块定义了对以 .ht 开头的文件的请求处理方式:

  • deny all:拒绝所有访问。这通常用于保护 .htaccess 文件,不让它们被外部访问。

0x02 重定向代码

filename:R.php

1
2
3
4
<?php
header("Location: http://555.555.555.555:555/R.php");
exit()
?>

0x03 善后

检查配置是否错误:

1
nginx -t

重载:

1
systemctl reload nginx