0


linux 服务器搭建web网站防御秘籍之雷池WAF包含入门介绍-安装-使用-升级更新

我们在安装了Linux服务器并使用了宝塔面板后发现,宝塔的WAF需要升级版本才能使用。尽管市面上有很多免费的开源WAF解决方案,但我们对它们的学习成本感到有些高,而且对于我们这个刚开始建站的小型项目来说,也不想花费一千多块钱来购买商业WAF每年的许可费。

因此,我在网上进行了一番搜索,希望能找到一款简单上手的开源WAF。最终,我发现了长亭公司开发的雷池WAF,它非常适合我们使用。下面一起来学习一下,内容很干,点赞收藏加关注:

目录

一、检查配置条件

不过有以下配置需求,一般主机也达到要求了。
操作系统:Linux
指令架构:x86_64
软件依赖:Docker 20.10.14 版本以上
软件依赖:Docker Compose 2.0.0 版本以上
最小化环境:1 核 CPU / 1 GB 内存 / 5 GB 磁盘
可以逐行执行以下命令来确认服务器配置

uname-m# 查看指令架构docker version           # 查看 Docker 版本docker compose version   # 查看 Docker Compose 版本docker-compose version   # 同上(兼容老版本 Docker Compose)cat /proc/cpuinfo        # 查看 CPU 信息cat /proc/meminfo        # 查看内存信息df-h# 查看磁盘信息

lscpu |grep ssse3       # 确认 CPU 是否支持 ssse3 指令集

二、安装

官方介绍有三种安装方法,分别是在线安装、离线安装、和牧云助手安装

1、在线安装

龙哥就喜欢这种方法,用下面一行命令搞定
bash-c"$(curl-fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"

不过这个方法也有弊端,有些主机网络不好或者就干脆是连不了外网。那就要用到下面两种了

2、离线安装

如果你的服务器无法连接互联网环境或连接Docker Hub网络不稳定,可以通过镜像包的安装方式进行安装。以下是安装步骤:

  1. 首先,下载"雷池"社区版镜像包并将其传输到需要安装"雷池"的服务器上。
  2. 执行以下命令加载镜像:
cat image.tar.gz |gzip-d|docker load
  1. 创建并进入"雷池"安装目录:
mkdir-p safeline   # 创建safeline目录cd safeline         # 进入safeline目录
  1. 下载编排脚本并将其传输到safeline目录中。
  2. 执行以下命令生成"雷池"运行所需的相关环境变量:
echo"SAFELINE_DIR=$(pwd)">> .env
echo"IMAGE_TAG=latest">> .env
echo"MGT_PORT=9443">> .env
echo"POSTGRES_PASSWORD=$(LC_ALL=C tr-dc A-Za-z0-9 </dev/urandom |head-c32)">> .env
echo"REDIS_PASSWORD=$(LC_ALL=C tr-dc A-Za-z0-9 </dev/urandom |head-c32)">> .env
echo"SUBNET_PREFIX=172.22.222">> .env
  1. 执行以下命令启动"雷池":
docker compose up -d

在这里插入图片描述
到此就按照成功了,可以

请注意,以上是忽略了Docker安装过程的步骤,对Docker感兴趣的朋友下次有时间咱们单独来记录学习一下。
另外龙哥在测试的时候想到大家可能也跟我一样比较懒,龙哥这里也找了一份一键安装脚本,感兴趣的自行研究一下。

#!/bin/bashecho 加载镜像
cat image.tar.gz |gzip-d|docker load

echo 创建安装目录
DIR=/data/docker/safeline/
mkdir-p$DIRecho 复制编排文件
cp-f compose.yaml $DIRcd..rm-rf waf/

echo 添加配置
cat>>${DIR}.env <<EOF
SAFELINE_DIR=${DIR}
IMAGE_TAG=latest
MGT_PORT=9443
POSTGRES_PASSWORD=$(LC_ALL=C tr-dc A-Za-z0-9 </dev/urandom |head-c32)
REDIS_PASSWORD=$(LC_ALL=C tr-dc A-Za-z0-9 </dev/urandom |head-c32)
SUBNET_PREFIX=169.254.0
EOFcat${DIR}.env

echo 启动镜像
docker-compose-f${DIR}compose.yaml up -decho 安装成功
echo 访问:http://ip:9443,登录雷池控制台

注意要将镜像包、编排文件、安装脚本,上传到服务器:/data/docke/waf 目录下,没有就创建一下
执行以下命名一键离线包安装

chmod +x install.sh && ./install.sh

3、使用牧云助手安装

在这里插入图片描述
有兴趣的自己去了解一下吧,这也不过多介绍

四、具体使用和DIV

浏览器输入:ip:9443
注意记得要在宝塔安全组和服务器安全组添加上该端口号
在这里插入图片描述
成功进入后台,对了进入后台是要下载身份验证器绑定的。龙哥这里就不写了,傻瓜式操作。
这里就要说明一下waf的工作原理了
原来我们服务器是:
用户——apache——服务器
现在我们需要把雷池waf放在用户访问下面
用户——雷池waf——apache——服务器

所以我们的网站需要改一下端口,就改成81 然后waf设置为http的 80
在这里插入图片描述
https的443端口也要设置一下
在这里插入图片描述
http自动跳转到https

修改雷池waf的nginx配置,将80请求重定向到443,雷池预留了自定义配置参数

安装路径下,safeline/resources/nginx/custom_params
在这里插入图片描述

添加以下配置

return307 https://www.waf.com$request_uri;

重启雷池waf的nginx

dockerexec safeline-tengine nginx -t

还有很多好用的功能,小伙伴们就自行研究了。

类似:站点维护,黑白名单,人机验证。这都是很实用的功能。完全免费。长亭科技大大滴良心。

ps:自定义页面

很多小伙伴想自定义,403页面、维护页面,但是雷池waf默认是不允许修改的,每分钟会定时覆盖掉。

这里给你们提供一个自定义的思路,因为这些页面是通过nginx容器来代理跳转的,nginx里面修改配置就行了,然后重启,所以你懂的吧。

但还是提醒下免费版默认不允许商用的,这些自定义页面属于个人行为,小伙伴们研究研究自己玩玩就好。

补充:
我使用的是宝塔面板 lamp 用的apache 搭建网站。
这里需要把443 和80端口给到waf
所以咱们网站这边需要修改一下默认的443端口和80端口
具体修改方法:
nano /www/server/apache/conf/httpd.conf
#Listen 443
#Listen 80
注释掉修改为
Listen 8443 https
Listen 8080 http
nano /www/server/apache/conf/extra/httpd-ssl.conf
443 修改8443
网站重新保存一下 ssl
完美解决同一服务器装waf的端口冲突!

五、更新

可以直接在线升级,执行以下命令即可进行升级。

bash-c"$(curl-fsSLk https://waf-ce.chaitin.cn/release/latest/upgrade.sh)"

升级成功后,记得执行以下命令删除旧版本 Docke 镜像,以释放磁盘空间。

docker rmi $(docker images |grep"safeline"|grep"none"|awk'{print $3}')

有部分环境的默认 SafeLine 安装路径是在 /data/safeline-ce,安装之后可能会发现需要重新绑定 OTP、配置丢失等情况,可以修改 .env 的 SAFELINE_DIR 变量,指向 /data/safeline-ce

离线镜像
适用于 docker hub 拉取镜像失败的场景,手动更新镜像(具体目录自行修改)。

# cd /path/to/safelinemv compose.yaml compose.yaml.old
wget"https://waf-ce.chaitin.cn/release/latest/compose.yaml" --no-check-certificate -O compose.yaml

wget"https://waf-ce.chaitin.cn/release/latest/seccomp.json" --no-check-certificate -O seccomp.json

sed-i"s/IMAGE_TAG=.*/IMAGE_TAG=latest/g"".env"grep"SAFELINE_DIR"".env"> /dev/null ||echo"SAFELINE_DIR=$(pwd)">>".env"grep"IMAGE_TAG"".env"> /dev/null ||echo"IMAGE_TAG=latest">>".env"grep"MGT_PORT"".env"> /dev/null ||echo"MGT_PORT=9443">>".env"grep"POSTGRES_PASSWORD"".env"> /dev/null ||echo"POSTGRES_PASSWORD=$(LC_ALL=C tr-dc A-Za-z0-9 </dev/urandom |head-c32)">>".env"grep"REDIS_PASSWORD"".env"> /dev/null ||echo"REDIS_PASSWORD=$(LC_ALL=C tr-dc A-Za-z0-9 </dev/urandom |head-c32)">>".env"grep"SUBNET_PREFIX"".env"> /dev/null ||echo"SUBNET_PREFIX=172.22.222">>".env"#下载 雷池社区版镜像包 并传输到需要安装雷池的服务器上,执行以下命令加载镜像docker load -i image.tar.gz

# 执行以下命令替换 Docker 容器docker compose down
docker compose up -d

OK,升级完成,下面继续上一键更新代码

#!/bin/bash#雷池waf安装目录DIR=/data/docker/safeline/

echo 备份yaml
mv${DIR}compose.yaml ${DIR}compose.yaml.old

cp-f compose.yaml ${DIR}echo 加载镜像
docker load -i image.tar.gz

cd$DIRecho 添加配置

sed-i"s/IMAGE_TAG=.*/IMAGE_TAG=latest/g"".env"grep"SAFELINE_DIR"".env"> /dev/null ||echo"SAFELINE_DIR=$(pwd)">>".env"grep"IMAGE_TAG"".env"> /dev/null ||echo"IMAGE_TAG=latest">>".env"grep"MGT_PORT"".env"> /dev/null ||echo"MGT_PORT=9443">>".env"grep"POSTGRES_PASSWORD"".env"> /dev/null ||echo"POSTGRES_PASSWORD=$(LC_ALL=C tr-dc A-Za-z0-9 </dev/urandom |head-c32)">>".env"grep"REDIS_PASSWORD"".env"> /dev/null ||echo"REDIS_PASSWORD=$(LC_ALL=C tr-dc A-Za-z0-9 </dev/urandom |head-c32)">>".env"grep"SUBNET_PREFIX"".env"> /dev/null ||echo"SUBNET_PREFIX=172.22.222">>".env"echo 删除旧容器
docker-compose down
echo 启动新容器
docker-compose up -decho 更新成功

保存为update.sh 将镜像包、编排脚本、更新脚本,上传到服务器 /data/docker/update 目录下执行
chmod +x update.sh && ./update.sh

六、常见问题

安装遇到的常见问题
目录已存在 如果出现提示目录已存在,则请先删除默认目录

删除雷池默认安装目录

rm-rf /data/safeline

网络错误

查看网络

docker network ls
NETWORK ID     NAME          DRIVER    SCOPE
9184fc154499   bridge        bridge    local
b0f8e15ec2ba   hosthostlocal
ac895c25e0d8   none          null      local
c6e1fa9cfecc   safeline-ce   bridge    local

删除无效网络

docker network rm c6e1fa9cfecc
官方网站:https://waf-ce.chaitin.cn/docs/

好了,今天就记录到这,有不明白的地方多看几遍

标签: 服务器 linux 前端

本文转载自: https://blog.csdn.net/weixin_38912950/article/details/132637197
版权归原作者 longm龙哥 所有, 如有侵权,请联系我们删除。

“linux 服务器搭建web网站防御秘籍之雷池WAF包含入门介绍-安装-使用-升级更新”的评论:

还没有评论