自己动手,DIY一台硬件WAF


自己动手,DIY一台硬件WAF

文章插图
 
前言硬件WAF , 好像是很高端 , 很神秘的样子 , 而且很贵 。今天向大家展示如何自己动手 , diy一台硬件WAF!
自己动手,DIY一台硬件WAF

文章插图
 
软硬件需要
a、服务器一台
b、系统:linux centos
c、软件:ShareWAF
d、硬件需求:Bypass网卡
简单说明:
a、使用linux系统 , 是为了在系统中搭建网桥 , 有了网桥 , 就可以实现硬件WAF的透明代理效果 。
b、软件用ShareWAF , ShareWAF是一款WAF软件 , 可以在云端部署 , 也支持灌装硬件(这一点很重要) 。而且 , 防护功能不错 , 目前最大支持同时保护256个网站 。
c、Bypass网卡 , 主要是实现断电、系统故障等情况下自动将硬件“变”成为网线 , 实现Bypass效果 , 达到各种问题下都不中断业务功能 , 也就是实现高可用 。
如果没有Bypass网卡 , 或者不是很需要高可用 , 那么灌装出来的硬件是一台透明代理硬件WAF , 只是不具备bypass功能 。(一般情况下 , 除了银行之类 , 别的单位很少能用着这种级别的高可用设备 , 因为还可以多机热备嘛 , 所以 , 其实没有bypass网卡也没太大关系) 。
 
准备工作ETH1网口连通外网 , 并给其设置IP;
ETH2 , ETH3为一双Bypass网口 , 为做网桥使用;
ETH3口连接内网web服务器 。
 系统配置 , 实现透明代理(完整详细步骤 , 如果熟悉linux网络操作命令的话 , 其中有些环节可以跳过)
关闭centos 7自带防火墙
systemctl stop firewalld.servicesystemctl disable firewalld.service安装iptables
yum -y install iptablesyum -y install iptables-services开启iptables
service iptables start清除Iptables自带规则
iptables -F安装ifconfig
yum -y install net-tools.x86_64安装网桥
yum -y install bridge-utils设置网桥
/sbin/modprobe bridge/usr/sbin/brctl addbr br0(设置网桥名为br0)/sbin/ifup enp4s0 (要加入网桥的网卡 , 通过ifconfig查看)/sbin/ifup enp5s0 (要加入网桥的网卡)注:执行以上两步之前最好将能通的网线插在网口上,否则执行时间会稍长 , 会显示激活失败 。
如果以上步骤报错:
无法创建 NMClient 对象GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Method "GetManagedObjects" with signature "" on interface "org.freedesktop.DBus.ObjectManager" doesn't exist这时 , 执行如下命令:
chkconfig NetworkManager offchkconfig network onservice NetworkManager stopservice network start/usr/sbin/brctl addif br0 enp4s0/usr/sbin/brctl addif br0 enp5s0设置网桥IP (例:192.168.1.73 设置一个在内网网段的IP)
ifconfig br0 192.168.1.73 netmask 255.255.255.0开启网桥
/sbin/ip link set br0 up查看
sudo brctl show关闭
ifconfig br0 down删除 (删除前先将网桥关闭)
sudo brctl delbr br0在/etc/sysctl.conf下添加内容
vi /etc/sysctl.conf将光标移至文字最后一行按o , 右键选择粘贴
net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-arptables = 1net.ipv4.ip_forward = 1net.ipv4.ip_nonlocal_bind = 1net.ipv4.conf.default.rp_filter = 0net.ipv4.conf.all.rp_filter = 0net.ipv4.conf.br0.rp_filter = 01.按esc 2.输入 : 3.然后输入 wq 回车
执行使生效
sysctl -p如果报错:
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: 没有那个文件或目录sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: 没有那个文件或目录sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-arptables: 没有那个文件或目录执行 modprobe br_netfilter再次执行sysctl -p添加路由
/sbin/ip -f inet rule add fwmark 1 lookup 100/sbin/ip -f inet route add local default dev lo table 100添加规则前 , 首先查内是否有其他规则
iptables -t 表名 -L


推荐阅读