文章插图
前言硬件WAF , 好像是很高端 , 很神秘的样子 , 而且很贵 。今天向大家展示如何自己动手 , diy一台硬件WAF!
文章插图
软硬件需要
a、服务器一台简单说明:
b、系统:linux centos
c、软件:ShareWAF
d、硬件需求:Bypass网卡
a、使用linux系统 , 是为了在系统中搭建网桥 , 有了网桥 , 就可以实现硬件WAF的透明代理效果 。如果没有Bypass网卡 , 或者不是很需要高可用 , 那么灌装出来的硬件是一台透明代理硬件WAF , 只是不具备bypass功能 。(一般情况下 , 除了银行之类 , 别的单位很少能用着这种级别的高可用设备 , 因为还可以多机热备嘛 , 所以 , 其实没有bypass网卡也没太大关系) 。
b、软件用ShareWAF , ShareWAF是一款WAF软件 , 可以在云端部署 , 也支持灌装硬件(这一点很重要) 。而且 , 防护功能不错 , 目前最大支持同时保护256个网站 。
c、Bypass网卡 , 主要是实现断电、系统故障等情况下自动将硬件“变”成为网线 , 实现Bypass效果 , 达到各种问题下都不中断业务功能 , 也就是实现高可用 。
准备工作ETH1网口连通外网 , 并给其设置IP;
ETH2 , ETH3为一双Bypass网口 , 为做网桥使用;
ETH3口连接内网web服务器 。
系统配置 , 实现透明代理(完整详细步骤 , 如果熟悉linux网络操作命令的话 , 其中有些环节可以跳过)
关闭centos 7自带防火墙
systemctl stop firewalld.servicesystemctl disable firewalld.service
安装iptablesyum -y install iptablesyum -y install iptables-services
开启iptablesservice iptables start
清除Iptables自带规则iptables -F
安装ifconfigyum -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 = 0
1.按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
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 梦见自已打针 梦到自己打针什么预兆
- 梦见自己和家人生气离家出走 梦见自己和家人生气什么意思
- 梦到有人在摸自己 梦到熟人摸自己下面
- 老人把自己也种进了树里 老人种了一辈子树,把自己也种进了树里表现了什么
- 梦见旋风刮到自己身上自己晕倒 梦见旋风刮到自己身上飞起来了
- 梦见打自己小孩的脸代表啥 梦见打自己小孩什么意思
- 梦见蝙蝠飞到身上 梦见蝙蝠咬自己,有什么预兆?
- 君子兰容易枯萎不好养?学会播种繁殖的方法,自己也能培育小苗
- 梦见自己睫毛掉了是什么预兆 梦见睫毛掉了是什么意思
- 做梦梦见刚蒸好的包子梦见生的包子 梦见自己蒸了好多包子是什么意思