在RouterOS通过address-list创建黑白名单有效的进行地址分组和管理,例如建立上网黑白名单,通过白名单和黑名单配置方式做一个事例介绍
白名单事例
在内网有三个IP地址段192.168.10.0/24、192.168.20.0/24和192.168.30.0/24,在ip address查看配置
[admin@MikroTik] /ip/address> print Flags: X, D - DYNAMIC Columns: ADDRESS, NETWORK, INTERFACE # ADDRESS NETWORK INTERFACE 0 192.168.10.2/24 192.168.10.0 ether2 1 192.168.20.2/24 192.168.20.0 ether3 2 192.168.30.2/24 192.168.30.0 ether4
网络中仅允许192.168.10.0/24、192.168.20.88/32、192.168.30.88/32的主机能访问互联网,其他IP地址拒绝访问,首先在/ip firewall address-list创建白名单列表
[admin@MikroTik]>/ip firewall address-list [admin@MikroTik] /ip/firewall/address-list>add address=192.168.10.0/24 list="whitelist" [admin@MikroTik] /ip/firewall/address-list>add address=192.168.10.88 list="whitelist" [admin@MikroTik] /ip/firewall/address-list>add address=192.168.30.88 list="whitelist"
进入/ip firewall filter下配置过滤策略,内部局域网到互联网访问是forward链表,首先匹配允许白名单列表通过
[admin@MikroTik] >/ip firewall filter [admin@MikroTik] /ip/firewall/filter> add action=accept chain=forward src-address-list="whitelist"
再添加拒绝所有IP通过,注意添加顺序,防火墙是按照顺序执行,规则在优先级越高。
[admin@MikroTik] /ip/firewall/filter>add action=drop chain=forward
黑名单事例
在之前的白名单事例反过来配置,即拒绝不能上网的IP地址,就是黑名单的方式
禁止192.168.20.0/24和192.168.30.0/24访问互联网,创建一个blacklist黑名单
[admin@MikroTik] /ip/firewall/address-list>add address=192.168.20.0/24 list="blacklist" [admin@MikroTik] /ip/firewall/address-list>add address=192.168.30.0/24 list="blacklist"
在filter下配置过滤策略,内部局域网到互联网访问是forward链表,配匹blacklist的ip地址禁止通过
[admin@MikroTik] /ip/firewall/filter> add action=drop chain=forward src-address-list="blacklist"
注意:默认情况下所有filter链表规则是accept接受通过,因此只需要添加drop丢弃规则,不匹配的IP将会被接受通过
之前我们的策略允许192.168.20.88和192.168.30.88可以访问互联网,那我们需要补充两条规则
[admin@MikroTik] /ip/firewall/filter>add action=accept chain=forward src-address=192.168.20.88 [admin@MikroTik] /ip/firewall/filter>add action=accept chain=forward src-address=192.168.30.88
使用print命令查看filter列表,规则1,2是192.168.20.88和192.168.30.88的允许规则,在规则0后面,肯定不会优先处理
[admin@ MikroTik] /ip/firewall/filter> print Flags: X - disabled, I - invalid; D - dynamic 0 chain=forward action=drop src-address-list=blacklist log=no log-prefix="" 1 chain=forward action=accept src-address=192.168.20.88 log=no log-prefix="" 2 chain=forward action=accept src-address=192.168.30.88 log=no log-prefix=""
将规则1,2移动到0之前优先处理,通过move命令调整顺序
[admin@MikroTik] /ip/firewall/filter> move 1,2 0
查看修改情况:
[admin@ MikroTik] /ip/firewall/filter> print Flags: X - disabled, I - invalid; D - dynamic 0 chain=forward action=accept src-address=192.168.20.88 log=no log-prefix="" 1 chain=forward action=accept src-address=192.168.30.88 log=no log-prefix="" 2 chain=forward action=drop src-address-list=blacklist log=no log-prefix=""
当然,192.168.20.88和192.168.30.88可以创建一个whitelist中,添加一条src-address-list规则完成,这样适合较多的白名单IP地址情况。