|
|
传统WAF的痛点:
商业WAF太贵(年付上万)
ModSecurity配置复杂到怀疑人生
云WAF又担心数据泄露
看着IIS日志里的攻击记录,只能干着急
今天,用10分钟给Windows Server穿上免费"防弹衣"——SamWAF,一款真正为Windows优化的开源WAF。
一、为什么Windows Server必须用SamWAF?
SamWAF在Windows Server上的独特优势
原生 Windows 服务支持:完美集成到 Windows Server 的服务管理体系中
无依赖部署:不需要安装额外的运行时环境
资源占用极低:在 Windows Server 上内存占用通常小于 50MB
图形化+命令行双管理:同时满足不同用户习惯
对比项 SamWAF ModSecurity+IIS 云WAF
部署难度 ⭐☆☆☆☆ 10分钟 ⭐⭐⭐⭐☆ 数小时 ⭐⭐☆☆☆ 需改DNS
资源占用 <50MB内存 >300MB内存 不占用
IIS兼容性 完美支持 需额外模块 完全独立
数据隐私 本地加密存储 本地存储 流经第三方
年费用 0元 0元 5000-50000元
Windows优化 原生支持 一般 通用方案
结论:SamWAF是Windows Server上性价比最高的WAF解决方案,没有之一。
二、Windows Server部署全流程(附每个步骤截图)
环境准备
系统要求:Windows Server 2012 R2及以上版本
硬件要求:1核2G内存以上(实测1核1G也能跑)
网络要求:至少1个公网IP
步骤1:下载SamWAF(2分钟)
打开SamWaf 网站官网:SamWaf 网站防火墙,点击软件下载,下载最新版本SamWAF即可。
步骤2:安装为Windows服务(2分钟)
直接启动
双击SamWaf64.exe文件,完成服务启动。
服务形式(安装服务需以管理员身份运行cmd)
- # 依然在管理员PowerShell中
- # 安装并启动
- SamWaf64.exe install && SamWaf64.exe start
- #停止并卸载
- SamWaf64.exe stop && SamWaf64.exe uninstall
- # 验证服务状态
- SamWaf64.exe status
- # 查看Windows服务(GUI方式)
- # 运行 -> services.msc -> 找到"SamWaf"服务
- # 应显示"正在运行"
复制代码
步骤3:配置Windows防火墙(关键!2分钟)
必须放行的端口:
- # 打开PowerShell(管理员)
- # 放行管理后台端口(26666)
- New-NetFirewallRule -DisplayName "SamWAF Management" -Direction Inbound -Protocol TCP -LocalPort 26666 -Action Allow -Profile Any
- # 放行HTTP端口(80)
- New-NetFirewallRule -DisplayName "SamWAF HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow -Profile Any
- # 放行HTTPS端口(443)
- New-NetFirewallRule -DisplayName "SamWAF HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow -Profile Any
- # 验证规则是否创建成功
- Get-NetFirewallRule -DisplayName "*SamWAF*"
复制代码
步骤4:首次登录并修改密码(1分钟)
浏览器访问:http://你的服务器IP:26666
默认账号:admin
默认密码:admin868
⚠️ 立即修改密码!
登录后 → 右上角"admin" → “修改密码” → 输入新密码(建议16位以上混合字符)
三、操作手册
操作手册:SamWaf 网站防火墙操作手册
三、Windows Server故障排查实战
问题1:SamWAF服务无法启动
症状:SamWaf64.exe start 报错
排查步骤:
- # 1. 查看详细错误信息
- .\SamWaf64.exe console # 直接运行查看输出
- # 2. 检查端口占用
- netstat -ano | findstr :26666
- # 如果占用,结束进程或修改SamWAF端口
- # 3. 检查依赖库
- # 下载并安装Visual C++ Redistributable
- # https://aka.ms/vs/17/release/vc_redist.x64.exe
- # 4. 查看Windows事件日志
- Get-EventLog -LogName Application -Source SamWAF -Newest 10
复制代码
问题2:网站通过SamWAF访问变慢
症状:延迟从10ms增加到100ms
优化方案:
- # 1. 关闭Windows防火墙的深层检测(冲突)
- Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
- # 2. 调整SamWAF性能模式
- # 编辑 C:\SamWAF\conf\config.yaml
- performance:
- mode: "high" # 高性能模式
- max_workers: 0 # 自动检测CPU核心数
- # 3. 重启服务
- Restart-Service -Name "SamWAF"
- # 4. 监控性能
- Get-Counter "\Process(SamWaf64)\% Processor Time"
复制代码
问题3:IIS和SamWAF端口冲突
症状:80端口已被IIS占用,SamWAF无法监听
正确配置流程:
- # 1. 修改IIS监听地址(仅本地)
- # PowerShell管理IIS
- Import-Module WebAdministration
- # 查看当前绑定
- Get-WebBinding -Name "Default Web Site"
- # 修改为仅监听localhost
- Remove-WebBinding -Name "Default Web Site" -BindingInformation "*:80:"
- New-WebBinding -Name "Default Web Site" -IPAddress "127.0.0.1" -Port 80 -Protocol http
- # 2. 验证IIS不再监听公网
- netstat -ano | findstr ":80"
- # 应显示 127.0.0.1:80,而不是 0.0.0.0:80
- # 3. 现在SamWAF可以正常监听80端口
- .\SamWaf64.exe restart
复制代码
附录:Windows Server快速命令参考
- # 服务管理
- Start-Service SamWAF
- Stop-Service SamWAF
- Restart-Service SamWAF
- Get-Service SamWAF
- # 实时日志监控
- Get-Content "C:\SamWAF\logs\access.log" -Tail 100 -Wait
- # 性能监控
- Get-Counter "\Process(SamWaf64)\*" | Format-Table
- # 网络连接查看
- Get-NetTCPConnection -LocalPort 80,443,26666 | Format-Table
- # 防火墙规则管理
- Get-NetFirewallRule -DisplayName "*SamWAF*"
- Remove-NetFirewallRule -DisplayName "SamWAF Management"
- # 备份配置
- Copy-Item "C:\SamWAF\conf" "D:\Backup\SamWAF\conf_$(Get-Date -Format 'yyyyMMdd')" -Recurse
- Copy-Item "C:\SamWAF\data" "D:\Backup\SamWAF\data_$(Get-Date -Format 'yyyyMMdd')" -Recurse
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|