站库分离技术--反向代理技术-雷池云WAF-给自己搭建一个安全点的网站

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 站库分离技术--反向代理技术-雷池云WAF-给自己搭建一个安全点的网站

概要

新买了一个云服务器,想搭建一个站库分离的wordpress为主的网站,采用docker技术,和nginx实现反向代理,同时实现本地搭建雷池WAF过滤流量数据,实现拦截和监测

整体架构流程

以docker内的虚拟机为基础提供web服务,portainter为docker图形化的统一管理界面,服务器本机的nginx为反向代理设置server监听81端口,让雷池绑定域名使用80端口,清洗通过网站的流量返回给81端口,再溯源到8080,最后到容器内的woedpress。

技术名词解释

  • docker+wordpress+mysql

Docker安装WordPress

Docker安装wordpress并配置数据库(超详细版)

Docker实战:Docker安装WordPress,快速搭建自己的博客

  • Portainer CE

Portainer CE 安装汉化教程

  • Nignx

docker安装wordpress,通过nginx反向代理

nginx配置反向代理,一篇搞定!

一文理清nginx中的location配置(系列一)

  • 雷池WAF

同一个站点配置

  • tomcat

技术细节

ssh-ubuntu服务器

Ubuntu 系统的默认用户名是 ubuntu,并在安装过程中默认不设置 root 账户和密码。您如有需要,可在设置中开启允许 root 用户登录。具体操作步骤如下:

Ubuntu 系统如何使用 root 用户登录实例?

关于Ubuntu拒绝root用户ssh远程登录

docker-映射-链接-通信

docker映射 :可以使用 -v 参数来指定挂载点。例如,假设你有一个硬盘 /data ,你可以将它挂载到 WordPress容器内的 /var/www/html 目录上,命令如下所示:

  • 配置mysql容器 此时的mysql已经运行起来了,但是需要配置允许外部访问才可使用。

#进入容器

docker exec -it mysql5.7 bash

#进入mysql数据库–123456

mysql -u root -p

#设置mysql允许访问

GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ WITH GRANT OPTION;

FLUSH PRIVILEGES;

但是我感觉现在像上面这样配置数据库不安全,下面我重新配置一下mysql密码和用户

  • docker链接本地的数据库主机用host.docker.internal
  • 用docker下载的mysql则用数据库ip进行连接
    docker inspect <mysql-container-name> | grep IPAddress

nginx反代

我遇到2个问题,

  1. 如果只再location直接添加proxy_pass http://宿主机ip:8080;会导致我的网站重定向次数过多,直接无法正常显示,才知道

启动端口不是80,需要添加配置:

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

为什么呢?

原因:nginx中proxy_set_header Host h o s t 的作用及 host的作用及host的作用及proxy_host,h o s t 与 host与host与http_host的区别

  1. 如果点击网页上的某个按钮或标签,又会跳转到带有其他端口的地方,这会导致用户访问可以绕过WAF通过端口访问原站
    我的解决暂时如下:不知道还会不会有绕过方法

   vim /etc/nginx/sites-available/default

vim /etc/nginx/nginx.conf

wordpress网站后台这里设置不带端口

最后就可以再服务器的安全策略组关闭一些不能开放的端口了,比如8080,81,防止绕过

mysql设置数据库新密码

MySQL数据库修改用户登录密码的三种方式

mysql修改远程登录密码

但是mysql 8.x 版本修改密码,只能使用命令:alter user ‘root’@‘localhost’ identified by ‘123456’;

小结

我的mysql映射目录

/data/mysql:/var/lib/mysql

我的wordpress映射目录

/data/www:/var/www/html

以后记得备份这两个目录哟

未完待续…还没添加ssl证书

docker -wordpress镜像的SSL证书配置

WordPress网站发送邮件(配置SMTP)

成果展示

尝试sql注入:

成功被WAF拦截页面

相关文章
|
5月前
|
测试技术 网络架构
【技术干货连载 一】业务经过WAF HTTP 400问题排查
教你如何排查和解决业务经过WAF 七层代理HTTP 400问题原因?
199 1
|
3月前
|
安全 算法 数据安全/隐私保护
11K star!开源WAF的NO1,不花钱也能搞定安全
当我们的网站上线后首先会遇到什么,可能不一定是自己的客户,而是来自网络的攻击。 今天我们分享的开源项目,它是登顶GITHUB的开源WAF,让黑客不敢越雷池一步,并且还是国产的开源项目,它就是:雷池(SafeLine)
|
3月前
|
SQL 运维 监控
安全设备篇——WAF
**Web应用防火墙(WAF)摘要** WAF是关键的网络安全工具,专注于Web应用防护,提供应用层保护,具备事前预防、事中响应和事后审计功能。它通过HTTP/HTTPS策略阻止恶意请求,防止SQL注入、XSS攻击等,并能防止会话劫持、DDoS攻击。WAF支持自定义规则、日志监控和与其他安全产品集成。其特点包括异常检测、输入验证、安全规则库、用户行为分析及多种部署模式如透明网桥、单机和旁路反向代理。与传统防火墙不同,WAF在应用层工作,提供更具体的安全防护。两者结合可增强整体网络安全性。
安全设备篇——WAF
|
4月前
|
存储 负载均衡 应用服务中间件
Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护
Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护
|
5月前
|
SQL 监控 安全
【阿里云云原生专栏】云原生安全体系构建:阿里云云防火墙与WAF的应用
【5月更文挑战第27天】阿里云云防火墙和WAF是构建云原生安全体系的关键产品,提供网络、主机和Web应用多维度防护。云防火墙采用分布式架构抵御网络攻击,确保应用安全稳定;WAF专注Web应用安全,防止SQL注入、XSS和DDoS等威胁。简单部署配置,结合使用可实现全面安全防护,提升企业云上应用安全性,保障业务安全运行。未来,阿里云将持续强化云原生安全建设。
325 1
|
5月前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
数据采集 安全 网络安全
01-基础设施安全-3-WEB应用防火墙-ACA-01-产品简介与特性解析
01-基础设施安全-3-WEB应用防火墙-ACA-01-产品简介与特性解析
181 1
|
监控 安全 网络协议
01-基础设施安全-3-WEB应用防火墙-ACA-03-产品使用流程
01-基础设施安全-3-WEB应用防火墙-ACA-03-产品使用流程
|
负载均衡 安全 网络协议
01-基础设施安全-3-WEB应用防火墙-ACA-02-核心能力与接入原理
01-基础设施安全-3-WEB应用防火墙-ACA-02-核心能力与接入原理
172 0
|
SQL 域名解析 安全
浅谈WAF——你的网站安全管家
浅谈WAF——你的网站安全管家
687 0