收起左侧

给飞牛nas上企业级防护

1
回复
496
查看
[ 复制链接 ]

18

主题

40

回帖

0

牛值

fnOS系统内测组

飞牛百度网盘玩家fnOS1.0上线纪念勋章

2026-4-16 20:10:10 显示全部楼层 阅读模式

一、环境介绍

来自:https://blog.wamoyu.com/archives/7ghN4NEo

家里自组了一个飞牛NAS,为了访问安全以及审计NAS的流量日志,咸鱼购买了一个FortiGate-50E设备,通过双网口配置实现NAS访问外网走防火墙侧,内网设备访问走另一个网口,这样NAS访问外网或外网访问NAS的流量全过防火墙,通过飞塔防火墙配置IPS和AV进行流量清洗转发给NAS虚拟机中的1P,然后流量会在过一遍雷池WAF和1p专业版WAF后才正常转发给飞牛OS。

因为飞塔50E只能把日志存内存,所以会话日志这种大量的在管理界面中查询不到历史日志,需要把日志推送到syslog里面查询。家用的话感觉使用传统的ELK太重了,所以这里使用轻量化日志服务平台OpenObserve。

OpenObserve、Vectro均使用docker搭建。syslog使用rsyslog作为服务器收集日志,vectro处理日志并且推送到openobserve。
最终实现效果如图

二、rsyslog部署和配置

2.1 安装

apt install rsyslog -y

2.2 修改配置文件

开启udp 514端口监听

vim /etc/rsyslog.conf

修改日志存放配置

vim /etc/rsyslog.d/default.conf

打开配置文件后复制以下内容到default.conf

# 1. 原始日志模板(只存原始内容,无时间、无IP前缀)
$template RawMsg,"%msg%\n"

# 2. 日志存储路径(按IP+日期创建文件)
$template RemoteLogs,"/var/log/syslog/%FROMHOST-IP%/%FROMHOST-IP%-%$YEAR%-%$MONTH%-%$DAY%.log"

# 3. 应用规则(核心:用原始格式写入)
*.* ?RemoteLogs;RawMsg
& stop

重启rsyslog服务

systemctl restart rsyslog

# 设置开机自启
systemctl enable rsyslog

2.3 测试

通过以下命令测试看看是否正常

logger -n 127.0.0.1 -P 514 "这是一条来自本机的测试日志"

三、openobserve部署

这里使用docker搭建,需要二机制部署的也可以自行参考官网文档。https://openobserve.ai/docs/

直接在1panel面板创建新的容器,主要是注意添加环境变量(邮箱和密码)就行,这里测试就使用sqlit了。

启动后访问http://即可。

sudo docker run -d \
 --name openobserve \
 -v /app/openobserve/data:/data \
 -p 80:5080 \
 -e ZO_ROOT_USER_EMAIL="root@example.com" \
 -e ZO_ROOT_USER_PASSWORD="Complexpass#123" \
 --restart=on-failure:5 \
 openobserve/openobserve:0.70.0

四、vectro部署

4.1 配置文件

vectro可以处理多个来源文件,这样就可以实现针对不同类型设备日志进行处理,例如防火墙、交换机日志个性化处理等。

# 全局数据目录
data_dir: "/var/lib/vector"
# ======================输入
sources:
  fw_log_in:
    type: file
    include: ["/logs/192.168.10.110/*.log"]
# ======================转换:remap
transforms:
  fw_log:
    type: remap
    inputs: [ "fw_log_in" ]
    source: |
      # 把输入内容转成字符串,用于存储原始日志
      msg = string!(.message)
      .message = msg
      # 把输入内容转成json
      parsed = parse_key_value!(.message)
      # 修复:使用正确的变量名parsed,而不是错误的parsed_fields
      . = merge(., parsed)
      # 删除vector自动生成的字段
      del(.host)
      del(.source_type)
      del(.timestamp) 
# ================================输出
sinks:
  openobserve:
    type: "http"
    inputs: ["fw_log"]
    uri: "http://openobserve:5080/api/default/fortinet_50e-Test/_json"
    method: "post"
    auth:
      strategy: "basic"
      user: "xxxxxxx"
      password: "xxxxxxxxxxxxx"
    compression: "gzip"
    encoding:
      codec: "json"
      timestamp_format: "rfc3339"
    healthcheck:
      enabled: false

4.2 启动vectro容器

sudo docker run -d \
 --name vector \
 -v /app/vector/config/vector.yaml:/etc/vector/vector.yaml \
 -v /logs:/logs \
 -v /app/vector/data:/var/lib/vector \
 --restart=on-failure:5 \
 timberio/vector:0.54.0-debian

四、网络设备添加日志服务器

其他也差不多,防火墙中添加日志服务器即可。

五、飞塔配置安全策略及飞牛导入证书

这里为了对https流量也进行防护,所以SSL这选择了深度检测,选择该选项需要将飞塔的CA证书导入到飞牛中才行。

否则默认访问https站点会有问题

将证书到处后执行以下命令导入证书到fnos(如果不识别直接改后缀为crt)

# 复制证书到系统证书目录
cp Fortinet_CA_SSL.crt /usr/local/share/ca-certificates/

# 更新系统证书库
update-ca-certificates

六、WAF配置

关于雷池WAF和1panelWAF配后请参考该文章配置:https://www.zway.top/archives/1panel-lei-chi-waf-pang-lu-jie-ru-2.0-v2-8.0.0-lts-bu-shu

按照上述文章配置后2个waf就是协调使用了,而不是通过反向代理套娃。

七、测试效果

7.1 防病毒AV测试

防病毒可以通过导入NAS后使用以下命令测试:

wget http://www.csm-testcenter.org/csm-eicar.co

可以看到下不动,查看ob和飞塔日志可以看到直接被飞塔50E拦截了

7.2 IPS测试

这里直接使用豆包生成的脚本简单测试了一下

import requests

target = "NAS外网访问地址"

payloads = [
    "/?id=1' OR 1=1--",
    "/?q=<script>**('xss')</script>",
    "/?exec=id;uname -a",
    "/../../etc/passwd",
]

eicar_url = "http://www.eicar.org/download/eicar.com"

print("===== WAF/IPS 测试 =====")
for p in payloads:
    try:
        r = requests.get(target + p, timeout=3)
        print(f"{p[:50]:<60} STATUS={r.status_code}")
    except Exception as e:
        print(f"{p[:50]:<60} BLOCKED (拦截成功)")

print("\n===== AV 测试 EICAR =====")
try:
    r = requests.get(eicar_url, timeout=3)
    if "X5O!P%" in r.text:
        print("AV 未拦截 —— 检测失败")
    else:
        print("AV 拦截正常")
except:
    print("AV 拦截正常")

7.3 WAF测试

脚本里面的攻击特征很明显,直接被ips拦截了,这里临时关闭ips防护,看看waf拦截效果

可以看到雷池WAF拦截了

再把雷池WAF关了,试试1pWAF

这次则被1pWAF拦截

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

18

主题

40

回帖

0

牛值

fnOS系统内测组

飞牛百度网盘玩家fnOS1.0上线纪念勋章

2026-4-16 20:18:51 楼主 显示全部楼层

上述安全防护除了飞塔,其他均是基于fnos虚拟机中的,或者虚拟机中docker的

开启ipv6访问是为了方便的把资料分享给朋友,实际还是建议大家用vpn连进来最方便

提一嘴,通过查看飞塔的流量日志发现飞牛自带下载即使没有任何任务也会和境外pt节点互联,不使用的该下载应用的可以使用下面命令进行操作

root@5825U:~# cat 1.txt 
下载服务:dlcenter
# 启动服务
systemctl start dlcenter
# 停止服务
systemctl stop dlcenter
# 设置开机自启
systemctl enable dlcenter
# 关闭开机自启
systemctl disable dlcenter

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则