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

这篇具有很好参考价值的文章主要介绍了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 -c 32)" >> .env
echo "REDIS_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> .env
echo "SUBNET_PREFIX=172.22.222" >> .env
  1. 执行以下命令启动"雷池":
docker compose up -d

雷池waf,wordpress建站,服务器维护相关,服务器,linux,前端
到此就按照成功了,可以

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

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

echo 创建安装目录
DIR=/data/docker/safeline/
mkdir -p $DIR

echo 复制编排文件
cp -f compose.yaml $DIR

cd ..
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 -c 32)
REDIS_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)
SUBNET_PREFIX=169.254.0
EOF

cat ${DIR}.env

echo 启动镜像
docker-compose -f ${DIR}compose.yaml up -d

echo 安装成功
echo 访问:http://ip:9443,登录雷池控制台

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

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

3、使用牧云助手安装

雷池waf,wordpress建站,服务器维护相关,服务器,linux,前端
有兴趣的自己去了解一下吧,这也不过多介绍

四、具体使用和DIV

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

所以我们的网站需要改一下端口,就改成81 然后waf设置为http的 80
雷池waf,wordpress建站,服务器维护相关,服务器,linux,前端
https的443端口也要设置一下
雷池waf,wordpress建站,服务器维护相关,服务器,linux,前端
http自动跳转到https

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

安装路径下,safeline/resources/nginx/custom_params
雷池waf,wordpress建站,服务器维护相关,服务器,linux,前端

添加以下配置

return 307 https://www.waf.com$request_uri;

重启雷池waf的nginx

docker exec 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/safeline

mv 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 -c 32)" >> ".env"
grep "REDIS_PASSWORD" ".env" > /dev/null || echo "REDIS_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> ".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 $DIR

echo 添加配置

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 -c 32)" >> ".env"
grep "REDIS_PASSWORD" ".env" > /dev/null || echo "REDIS_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> ".env"
grep "SUBNET_PREFIX" ".env" > /dev/null || echo "SUBNET_PREFIX=172.22.222" >> ".env"

echo 删除旧容器
docker-compose down
echo 启动新容器
docker-compose up -d

echo 更新成功

保存为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   host          host      local
ac895c25e0d8   none          null      local
c6e1fa9cfecc   safeline-ce   bridge    local

删除无效网络

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

好了,今天就记录到这,有不明白的地方多看几遍文章来源地址https://www.toymoban.com/news/detail-773488.html

到了这里,关于linux 服务器搭建web网站防御秘籍之雷池WAF包含入门介绍-安装-使用-升级更新的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 无云服务器,Linux本地快速搭建web网站,并内网穿透发布上线(1)

    转载自cpolar文章:Linux CentOS本地搭建Web站点,并实现公网访问 在web项目中,部署的web站点需要被外部访问,则需要一个媒介,通过把资源放在这个媒介中,再通过所暴露的端口指向这个站点,当外部访问这个媒介所对应的端口时,媒介指向站点,完成访问,像这种类似的媒介,常用的有

    2024年02月03日
    浏览(50)
  • Linux -- 进阶 Web服务器 搭建基于 HTTPS 协议的静态网站 (实验实操)

                  现在我们想架设一个 互联网网站的话,我们就得想法认证自己是官方的,得产生一个证书         这个证书呢,我们使用的是 X.509  格式的证书                                该证书 包含三个文件 :  key , csr , crt 。           先介绍下 :  PKI(

    2024年02月07日
    浏览(48)
  • 【IIS搭建网站】如何使用本地电脑做服务器搭建web站点并公网访问

    目录 前言 Windows网页设置 Windows IIS功能设置 IIS网页访问测试 Cpolar内网穿透 下载安装Cpolar Cpolar云端设置 3.3 Cpolar本地设置 公网访问测试 结语 在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如网页运行的Apache和Nginx、数据库软件MySQL和MSSQL之类,为方便用户使

    2023年04月14日
    浏览(87)
  • 宝塔面板快速搭建贪吃蛇小游戏web网站 - 无需云服务器,网站发布上线

    转载自远程内网穿透的文章:Linux使用宝塔面板搭建网站,并内网穿透实现公网访问 宝塔面板作为简单好用的服务器运维管理面板,它支持Linux/Windows系统,我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等,通过Web端轻松管理服务器。 以下教程,我们将演示使用宝塔

    2024年02月05日
    浏览(62)
  • 【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透」

    在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如网页运行的Apache和Nginx、数据库软件MySQL和MSSQL之类,为方便用户使用,还出现了XAMPP、PHPStudy、宝塔面板等等一系列集成服务,都是为了方便我们能快速建立网站。是不是不适用这些软件就无法建立网站了呢?

    2024年02月02日
    浏览(60)
  • 如何使用宝塔面板搭建网站(Linux服务器配置篇)

    搭建网站我们需要: 必须是Linux服务器 (最低要求配置1核1G当然再低些也能运行但是不建议) 自己的域名(可以去阿里云或者腾讯云了解) PHP项目   此处展示的是华为云服务器 (各个服务器的购买和使用差别不大,这里提供参考) 登录之后点击控制台  点击右上角的搜索

    2024年02月07日
    浏览(72)
  • 【贪吃蛇小游戏】宝塔面板快速搭建贪吃蛇小游戏Web网站 - 无需云服务器

    转载自远程内网穿透的文章:Linux使用宝塔面板搭建网站,并内网穿透实现公网访问 宝塔面板作为简单好用的服务器运维管理面板,它支持Linux/Windows系统,我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等,通过Web端轻松管理服务器。 以下教程,我们将演示使用宝塔

    2024年02月05日
    浏览(66)
  • linux搭建web服务器流程

    本篇文章用于学习Linux搭建web服务器,创建个人博客站点实训。 您需要将其中的 ipaddress 替换为您的ECS服务器的公网IP地址。例如。 命令显示结果如下。 输入yes,然后输入云服务器的登录密码。 登录成功后会显示如下信息。 使用Apache作为后端服务器,并在云服务器上创建一

    2024年02月04日
    浏览(48)
  • 用Linux搭建web服务器

    web 服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在 redhat 中,这个目录默认在/var/www/html。浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据的

    2024年02月04日
    浏览(44)
  • Linux下的web服务器搭建

    Web服务器:专门处理HTTP请求的服务器,常被称为Web服务器。 有时间好好研究这个。 另外可以参照  mac/linux安装php那篇一起看看 零、         常用的Web服务器有Apache和Nginx 。Apache server(httpd)是非常流行的web服务器长期稳居第一。Apache httpd又可以简称为httpd或者Apache,是Intern

    2024年02月04日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包