HBB BLOG
首页
登录
🌙
Tor 暗网 WordPress 博客搭建指南
📅 2024-02-27
📝 1793 字
⏱️ 6 分钟
👁️ 11
> **环境**:Ubuntu 24.04 LTS 海外 VPS (2026年主流安全基线) > **原则**:最小权限、服务隔离、仅监听本地回环 (127.0.0.1) ## 〇、前置准备 ### 0.1 创建非 root 用户(如果还没有) ```bash adduser blogadmin usermod -aG sudo blogadmin ``` > 💡 后续操作建议使用普通用户 + `sudo` 执行,避免全程 root 带来的风险。 ### 0.2 更新系统 ```bash sudo apt update && sudo apt upgrade -y ``` --- ## 一、安装 LAMP 环境 (Ubuntu 24.04 适配) ### 1.1 安装 Apache ```bash sudo apt install apache2 -y ``` ### 1.2 安装 MySQL (8.4+) ```bash sudo apt install mysql-server -y ``` ### 1.3 安全初始化 MySQL ```bash sudo mysql_secure_installation ``` **按提示操作(注意 MySQL 8.x 的变化):** - 启用密码验证插件:`Y` - 设置 root 密码(*注:Ubuntu 24.04 默认 root 使用 auth_socket 免密登录,若提示设置密码失败可忽略,后续用 sudo mysql 登录即可*) - 移除匿名用户:`Y` - 禁止 root 远程登录:`Y` - 移除测试数据库:`Y` - 重新加载权限表:`Y` ### 1.4 安装 PHP 8.3 及核心模块 ```bash sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php-bcmath -y ``` ### 1.5 启用必要 Apache 模块 ```bash sudo a2enmod rewrite sudo a2enmod headers sudo systemctl restart apache2 ``` --- ## 二、配置 MySQL 数据库 ### 2.1 登录 MySQL ```bash sudo mysql ``` ### 2.2 创建数据库和专用用户 ```sql CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '你的强密码_至少16位'; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` --- ## 三、安装并配置 WordPress ### 3.1 下载并解压 WordPress ```bash cd /tmp curl -O https://wordpress.org/latest.tar.gz tar -xzvf latest.tar.gz ``` ### 3.2 部署到 Web 目录 ```bash sudo mkdir -p /var/www/wordpress sudo cp -a /tmp/wordpress/. /var/www/wordpress/ ``` ### 3.3 设置严格的所有权和权限 (防篡改核心) ```bash sudo chown -R www-data:www-data /var/www/wordpress sudo find /var/www/wordpress -type d -exec chmod 750 {} \; sudo find /var/www/wordpress -type f -exec chmod 640 {} \; ``` ### 3.4 生成 WordPress 安全密钥 ```bash curl -s https://api.wordpress.org/secret-key/1.1/salt/ ``` > 📋 复制终端输出的这一大段乱码内容,备用。 ### 3.5 配置 wp-config.php ```bash cd /var/www/wordpress sudo cp wp-config-sample.php wp-config.php sudo nano wp-config.php ``` **修改数据库配置:** ```php define( 'DB_NAME', 'wordpress_db' ); define( 'DB_USER', 'wp_user' ); define( 'DB_PASSWORD', '你的强密码_至少16位' ); define( 'DB_HOST', 'localhost' ); define( 'DB_CHARSET', 'utf8mb4' ); define( 'DB_COLLATE', 'utf8mb4_unicode_ci' ); ``` **将刚才生成的密钥替换掉文件中默认的 `put your unique phrase here`。** ### 3.6 添加 Tor 暗网专用配置 (修复版) 在 `wp-config.php` **最末尾** (`/* That's all, stop editing! */` 之前) 添加: ```php // 强制 WordPress 动态适配 .onion 域名 (兼容 WP-CLI) if (isset($_SERVER['HTTP_HOST'])) { define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']); } // 禁用后台主题/插件文件编辑器(防黑客提权) define('DISALLOW_FILE_EDIT', true); // 限制自动大版本更新,防止更新导致暗网配置失效 define('AUTOMATIC_UPDATER_DISABLED', true); ``` --- ## 四、配置 Apache 虚拟主机 (物理隔离) ### 4.1 创建专用虚拟主机配置 ```bash sudo nano /etc/apache2/sites-available/wordpress.conf ``` 写入以下内容: ```apache <VirtualHost 127.0.0.1:80> ServerName localhost DocumentRoot /var/www/wordpress <Directory /var/www/wordpress> AllowOverride All Require all granted </Directory> # 彻底封杀 XML-RPC 暴力破解与 DDoS 攻击 <Files xmlrpc.php> Require all denied </Files> # 分离的日志路径 ErrorLog ${APACHE_LOG_DIR}/tor_error.log CustomLog ${APACHE_LOG_DIR}/tor_access.log combined # 隐藏服务器指纹 ServerTokens Prod ServerSignature Off # 安全响应头 Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "DENY" Header always set X-XSS-Protection "1; mode=block" Header always set Referrer-Policy "no-referrer" </VirtualHost> ``` ### 4.2 启用站点并禁用默认公网站点 ```bash sudo a2dissite 000-default.conf sudo a2ensite wordpress.conf sudo systemctl reload apache2 ``` ### 4.3 验证公网已完全隔离 ```bash curl -I http://127.0.0.1 # 应返回 HTTP 200 curl -I http://你的VPS公网IP # 应返回 403 Forbidden 或拒绝连接,证明公网无法直接访问! ``` --- ## 五、安装与配置 Tor (v3 隐藏服务) ### 5.1 安装 Tor ```bash sudo apt install tor -y ``` ### 5.2 编辑 Tor 配置文件 ```bash sudo nano /etc/tor/torrc ``` 找到并**取消注释**(删除 `#`)以下两行: ```text HiddenServiceDir /var/lib/tor/hidden_service/ HiddenServicePort 80 127.0.0.1:80 ``` ### 5.3 禁用 Tor 客户端功能 (纯服务端模式,节省资源) 在文件末尾添加: ```text SocksPort 0 ``` ### 5.4 启动 Tor 并获取 v3 地址 ```bash sudo systemctl restart tor sudo systemctl enable tor ``` 等待 10-30 秒,Tor 会生成 56 位的 v3 高加密地址: ```bash sudo cat /var/lib/tor/hidden_service/hostname ``` > 📋 复制输出的 `xxxx...xxxx.onion` 地址,这是你唯一的暗网入口! --- ## 六、完成 WordPress 初始化 1. 下载并打开 **Tor Browser** (洋葱浏览器)。 2. 在地址栏输入:`http://你的56位.onion地址` 3. 按照网页向导完成设置: - 站点标题 - 管理员用户名(**绝对不要用 admin**) - 强密码 - 邮箱(建议使用 ProtonMail / Tutanota 等匿名邮箱) --- ## 七、安全加固:Fail2ban 防暴力破解 ### 7.1 安装 Fail2ban ```bash sudo apt install fail2ban -y ``` ### 7.2 创建 WordPress 专用过滤器 ```bash sudo nano /etc/fail2ban/filter.d/wordpress.conf ``` 写入以下内容(精准捕获 wp-login.php 的失败请求): ```ini [Definition] failregex = ^<HOST> -.*"POST /wp-login\.php.* 200 ignoreregex = ``` ### 7.3 配置 Jail 规则 ```bash sudo nano /etc/fail2ban/jail.local ``` 在文件末尾添加: ```ini [wordpress] enabled = true port = http,https filter = wordpress logpath = /var/log/apache2/tor_access.log maxretry = 5 bantime = 86400 findtime = 600 ``` ### 7.4 重启 Fail2ban ```bash sudo systemctl restart fail2ban ``` --- ## 八、灾备与日常管理 (保命指南) ### 8.1 备份 .onion 私钥 (极其重要!) 如果 VPS 损坏,没有这个备份,你的暗网地址将**永久丢失**! ```bash sudo cp -r /var/lib/tor/hidden_service/ ~/tor_backup/ sudo chmod 700 ~/tor_backup # 请将 ~/tor_backup 下载到你的本地冷钱包或加密 U 盘中 ``` ### 8.2 常用管理命令 ```bash # 查看服务状态 sudo systemctl status apache2 tor mysql fail2ban # 查看 Tor 访问日志 (监控是否有人扫描) sudo tail -f /var/log/apache2/tor_access.log # 查看被 Fail2ban 封禁的恶意 IP sudo fail2ban-client status wordpress # 重新生成 .onion 地址 (旧地址将永久失效!) sudo rm -rf /var/lib/tor/hidden_service/* sudo systemctl restart tor sudo cat /var/lib/tor/hidden_service/hostname ``` --- ## 🏗️ 架构拓扑总结 ```text [全球 Tor 节点网络] │ ▼ (.onion v3 端到端加密) [本地 Tor 守护进程] ← 仅作为网关 │ ▼ (127.0.0.1:80 内部转发) [Apache 2.4] ← 物理绑定 127.0.0.1,公网 IP 彻底绝缘 │ ▼ [PHP 8.3 + WordPress] │ ▼ [MySQL 8.4 (本地 Socket)] ``` ``` ### ✅ 部署自检清单 (Self-Check) 部署完成后,请按以下顺序自检,确保 100% 成功: 1. **公网绝缘测试**:在本地浏览器访问 `http://你的VPS公网IP`,必须显示“拒绝连接”或“403 Forbidden”。如果能看到网页,说明 Apache 没有成功绑定 `127.0.0.1`,检查 `wordpress.conf`。 2. **Tor 连通性测试**:在 Tor Browser 中访问 `.onion` 地址,必须能看到 WordPress 初始化页面。 3. **WP-CLI 兼容性测试**:在终端执行 `sudo -u www-data wp core version --path=/var/www/wordpress`,如果能正常输出版本号,说明 `isset($_SERVER['HTTP_HOST'])` 修复生效,CLI 工具可用。 4. **Fail2ban 生效测试**:在 Tor Browser 中故意输错 5 次 WordPress 后台密码,然后在 VPS 终端执行 `sudo fail2ban-client status wordpress`,查看你的 Tor 节点 IP 是否被 Ban。 5. **XML-RPC 拦截测试**:在终端执行 `curl -I http://127.0.0.1/xmlrpc.php`,必须返回 `403 Forbidden`。
# 网站
← 上一篇
Liunx常用相关指令
下一篇 →
奇奇怪怪的网站集合
💬 评论
0
/1000
发表评论
加载中...
> **环境**:Ubuntu 24.04 LTS 海外 VPS (2026年主流安全基线) > **原则**:最小权限、服务隔离、仅监听本地回环 (127.0.0.1) ## 〇、前置准备 ### 0.1 创建非 root 用户(如果还没有) ```bash adduser blogadmin usermod -aG sudo blogadmin ``` > 💡 后续操作建议使用普通用户 + `sudo` 执行,避免全程 root 带来的风险。 ### 0.2 更新系统 ```bash sudo apt update && sudo apt upgrade -y ``` --- ## 一、安装 LAMP 环境 (Ubuntu 24.04 适配) ### 1.1 安装 Apache ```bash sudo apt install apache2 -y ``` ### 1.2 安装 MySQL (8.4+) ```bash sudo apt install mysql-server -y ``` ### 1.3 安全初始化 MySQL ```bash sudo mysql_secure_installation ``` **按提示操作(注意 MySQL 8.x 的变化):** - 启用密码验证插件:`Y` - 设置 root 密码(*注:Ubuntu 24.04 默认 root 使用 auth_socket 免密登录,若提示设置密码失败可忽略,后续用 sudo mysql 登录即可*) - 移除匿名用户:`Y` - 禁止 root 远程登录:`Y` - 移除测试数据库:`Y` - 重新加载权限表:`Y` ### 1.4 安装 PHP 8.3 及核心模块 ```bash sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php-bcmath -y ``` ### 1.5 启用必要 Apache 模块 ```bash sudo a2enmod rewrite sudo a2enmod headers sudo systemctl restart apache2 ``` --- ## 二、配置 MySQL 数据库 ### 2.1 登录 MySQL ```bash sudo mysql ``` ### 2.2 创建数据库和专用用户 ```sql CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '你的强密码_至少16位'; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` --- ## 三、安装并配置 WordPress ### 3.1 下载并解压 WordPress ```bash cd /tmp curl -O https://wordpress.org/latest.tar.gz tar -xzvf latest.tar.gz ``` ### 3.2 部署到 Web 目录 ```bash sudo mkdir -p /var/www/wordpress sudo cp -a /tmp/wordpress/. /var/www/wordpress/ ``` ### 3.3 设置严格的所有权和权限 (防篡改核心) ```bash sudo chown -R www-data:www-data /var/www/wordpress sudo find /var/www/wordpress -type d -exec chmod 750 {} \; sudo find /var/www/wordpress -type f -exec chmod 640 {} \; ``` ### 3.4 生成 WordPress 安全密钥 ```bash curl -s https://api.wordpress.org/secret-key/1.1/salt/ ``` > 📋 复制终端输出的这一大段乱码内容,备用。 ### 3.5 配置 wp-config.php ```bash cd /var/www/wordpress sudo cp wp-config-sample.php wp-config.php sudo nano wp-config.php ``` **修改数据库配置:** ```php define( 'DB_NAME', 'wordpress_db' ); define( 'DB_USER', 'wp_user' ); define( 'DB_PASSWORD', '你的强密码_至少16位' ); define( 'DB_HOST', 'localhost' ); define( 'DB_CHARSET', 'utf8mb4' ); define( 'DB_COLLATE', 'utf8mb4_unicode_ci' ); ``` **将刚才生成的密钥替换掉文件中默认的 `put your unique phrase here`。** ### 3.6 添加 Tor 暗网专用配置 (修复版) 在 `wp-config.php` **最末尾** (`/* That's all, stop editing! */` 之前) 添加: ```php // 强制 WordPress 动态适配 .onion 域名 (兼容 WP-CLI) if (isset($_SERVER['HTTP_HOST'])) { define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']); } // 禁用后台主题/插件文件编辑器(防黑客提权) define('DISALLOW_FILE_EDIT', true); // 限制自动大版本更新,防止更新导致暗网配置失效 define('AUTOMATIC_UPDATER_DISABLED', true); ``` --- ## 四、配置 Apache 虚拟主机 (物理隔离) ### 4.1 创建专用虚拟主机配置 ```bash sudo nano /etc/apache2/sites-available/wordpress.conf ``` 写入以下内容: ```apache <VirtualHost 127.0.0.1:80> ServerName localhost DocumentRoot /var/www/wordpress <Directory /var/www/wordpress> AllowOverride All Require all granted </Directory> # 彻底封杀 XML-RPC 暴力破解与 DDoS 攻击 <Files xmlrpc.php> Require all denied </Files> # 分离的日志路径 ErrorLog ${APACHE_LOG_DIR}/tor_error.log CustomLog ${APACHE_LOG_DIR}/tor_access.log combined # 隐藏服务器指纹 ServerTokens Prod ServerSignature Off # 安全响应头 Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "DENY" Header always set X-XSS-Protection "1; mode=block" Header always set Referrer-Policy "no-referrer" </VirtualHost> ``` ### 4.2 启用站点并禁用默认公网站点 ```bash sudo a2dissite 000-default.conf sudo a2ensite wordpress.conf sudo systemctl reload apache2 ``` ### 4.3 验证公网已完全隔离 ```bash curl -I http://127.0.0.1 # 应返回 HTTP 200 curl -I http://你的VPS公网IP # 应返回 403 Forbidden 或拒绝连接,证明公网无法直接访问! ``` --- ## 五、安装与配置 Tor (v3 隐藏服务) ### 5.1 安装 Tor ```bash sudo apt install tor -y ``` ### 5.2 编辑 Tor 配置文件 ```bash sudo nano /etc/tor/torrc ``` 找到并**取消注释**(删除 `#`)以下两行: ```text HiddenServiceDir /var/lib/tor/hidden_service/ HiddenServicePort 80 127.0.0.1:80 ``` ### 5.3 禁用 Tor 客户端功能 (纯服务端模式,节省资源) 在文件末尾添加: ```text SocksPort 0 ``` ### 5.4 启动 Tor 并获取 v3 地址 ```bash sudo systemctl restart tor sudo systemctl enable tor ``` 等待 10-30 秒,Tor 会生成 56 位的 v3 高加密地址: ```bash sudo cat /var/lib/tor/hidden_service/hostname ``` > 📋 复制输出的 `xxxx...xxxx.onion` 地址,这是你唯一的暗网入口! --- ## 六、完成 WordPress 初始化 1. 下载并打开 **Tor Browser** (洋葱浏览器)。 2. 在地址栏输入:`http://你的56位.onion地址` 3. 按照网页向导完成设置: - 站点标题 - 管理员用户名(**绝对不要用 admin**) - 强密码 - 邮箱(建议使用 ProtonMail / Tutanota 等匿名邮箱) --- ## 七、安全加固:Fail2ban 防暴力破解 ### 7.1 安装 Fail2ban ```bash sudo apt install fail2ban -y ``` ### 7.2 创建 WordPress 专用过滤器 ```bash sudo nano /etc/fail2ban/filter.d/wordpress.conf ``` 写入以下内容(精准捕获 wp-login.php 的失败请求): ```ini [Definition] failregex = ^<HOST> -.*"POST /wp-login\.php.* 200 ignoreregex = ``` ### 7.3 配置 Jail 规则 ```bash sudo nano /etc/fail2ban/jail.local ``` 在文件末尾添加: ```ini [wordpress] enabled = true port = http,https filter = wordpress logpath = /var/log/apache2/tor_access.log maxretry = 5 bantime = 86400 findtime = 600 ``` ### 7.4 重启 Fail2ban ```bash sudo systemctl restart fail2ban ``` --- ## 八、灾备与日常管理 (保命指南) ### 8.1 备份 .onion 私钥 (极其重要!) 如果 VPS 损坏,没有这个备份,你的暗网地址将**永久丢失**! ```bash sudo cp -r /var/lib/tor/hidden_service/ ~/tor_backup/ sudo chmod 700 ~/tor_backup # 请将 ~/tor_backup 下载到你的本地冷钱包或加密 U 盘中 ``` ### 8.2 常用管理命令 ```bash # 查看服务状态 sudo systemctl status apache2 tor mysql fail2ban # 查看 Tor 访问日志 (监控是否有人扫描) sudo tail -f /var/log/apache2/tor_access.log # 查看被 Fail2ban 封禁的恶意 IP sudo fail2ban-client status wordpress # 重新生成 .onion 地址 (旧地址将永久失效!) sudo rm -rf /var/lib/tor/hidden_service/* sudo systemctl restart tor sudo cat /var/lib/tor/hidden_service/hostname ``` --- ## 🏗️ 架构拓扑总结 ```text [全球 Tor 节点网络] │ ▼ (.onion v3 端到端加密) [本地 Tor 守护进程] ← 仅作为网关 │ ▼ (127.0.0.1:80 内部转发) [Apache 2.4] ← 物理绑定 127.0.0.1,公网 IP 彻底绝缘 │ ▼ [PHP 8.3 + WordPress] │ ▼ [MySQL 8.4 (本地 Socket)] ``` ``` ### ✅ 部署自检清单 (Self-Check) 部署完成后,请按以下顺序自检,确保 100% 成功: 1. **公网绝缘测试**:在本地浏览器访问 `http://你的VPS公网IP`,必须显示“拒绝连接”或“403 Forbidden”。如果能看到网页,说明 Apache 没有成功绑定 `127.0.0.1`,检查 `wordpress.conf`。 2. **Tor 连通性测试**:在 Tor Browser 中访问 `.onion` 地址,必须能看到 WordPress 初始化页面。 3. **WP-CLI 兼容性测试**:在终端执行 `sudo -u www-data wp core version --path=/var/www/wordpress`,如果能正常输出版本号,说明 `isset($_SERVER['HTTP_HOST'])` 修复生效,CLI 工具可用。 4. **Fail2ban 生效测试**:在 Tor Browser 中故意输错 5 次 WordPress 后台密码,然后在 VPS 终端执行 `sudo fail2ban-client status wordpress`,查看你的 Tor 节点 IP 是否被 Ban。 5. **XML-RPC 拦截测试**:在终端执行 `curl -I http://127.0.0.1/xmlrpc.php`,必须返回 `403 Forbidden`。
↑
💬 评论