Ребята, я видел, что несколько человек спрашивали про возможность разрешать TCP и UDP в одном правиле для firewall/nat/mangle, но почему бы не зайти чуть дальше? Мне очень хотелось бы иметь опцию, похожую на Address Lists, но для разных протоколов/портов. Например: я создаю «Service Group» под названием «IPSec_VPN». В эту группу сервисов вошли бы: протокол UDP, порт назначения 500; протокол IPSec-ESP; протокол IP-Encap. Тогда я мог бы создать правило firewall/NAT/Mangle, использующее эту «Service Group» с такой же функциональностью, как мы используем Address Lists для адресов. Одно правило, которое срабатывает на множество условий, определённых в «Service Group».
Пример конфигурации firewall:
/ip firewall filter
# цепочка input
add action=accept chain=input connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=accept chain=input limit=5,5 service-group="ICMP WAN"
add action=accept chain=input service-group="ROS Management WAN" in-interface=ether1-WAN
add action=accept chain=input service-group="ROS Management LAN" in-interface=ether2-LAN
add action=accept chain=input service-group="ROS VPN" src-address-list="VPN Partners"
add action=drop chain=input
# цепочка forward
add action=accept chain=forward connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=accept chain=forward in-interface=ether2-LAN out-interface=ether1-WAN comment="Allow LAN -> WAN"
add action=accept chain=forward dst-address=XXX.XXX.XXX.XXX service-group="HTTP"
add action=accept chain=forward dst-address=XXX.XXX.XXX.XXY service-group="DNS"
add action=accept chain=forward dst-address-list=Servers limit=2,2 service-group="ICMP Servers"
add action=drop chain=forward
Address Lists будут определены так:
Address List «Servers» содержит IP:
XXX.XXX.XXX.YYY
XXX.XXX.XXX.ZZZ
Address List «VPN Partners» содержит IP:
XXX.XX.X.YZ
XXX.XX.XYZ.YZ
XX.XYZ.XY.XY
А Service Groups определены так:
Service Group «ROS Management LAN» содержит:
dst-port=5678,20561 protocol=udp
dst-port=22,8291 protocol=tcp
Service Group «HTTP» содержит:
dst-port=80 protocol=tcp
dst-port=443 protocol=tcp
Service Group «DNS» содержит:
dst-port=53 protocol=tcp
dst-port=53 protocol=udp
Service Group «ICMP Servers» содержит:
icmp-options=0:0-255 protocol=icmp
icmp-options=3:3 protocol=icmp
icmp-options=3:4 protocol=icmp
icmp-options=8:0-255 protocol=icmp
icmp-options=11:0-255 protocol=icmp
Service Group «ROS Management WAN» содержит:
dst-port=8291 protocol=tcp
Service Group «ICMP WAN» содержит:
icmp-options=0:0-255 protocol=icmp
icmp-options=3:3 protocol=icmp
icmp-options=3:4 protocol=icmp
icmp-options=8:0-255 protocol=icmp
icmp-options=11:0-255 protocol=icmp
Service Group «ROS VPN» содержит:
protocol=UDP dst-port=500
protocol=ipsec-esp
protocol=encap
protocol=ipip
Это всего лишь примеры. Лично для меня это реально очистило бы цепочки firewall и таблицу NAT. Буду рад любой дискуссии на эту тему! Спасибо, tom
Пример конфигурации firewall:
/ip firewall filter
# цепочка input
add action=accept chain=input connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=accept chain=input limit=5,5 service-group="ICMP WAN"
add action=accept chain=input service-group="ROS Management WAN" in-interface=ether1-WAN
add action=accept chain=input service-group="ROS Management LAN" in-interface=ether2-LAN
add action=accept chain=input service-group="ROS VPN" src-address-list="VPN Partners"
add action=drop chain=input
# цепочка forward
add action=accept chain=forward connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=accept chain=forward in-interface=ether2-LAN out-interface=ether1-WAN comment="Allow LAN -> WAN"
add action=accept chain=forward dst-address=XXX.XXX.XXX.XXX service-group="HTTP"
add action=accept chain=forward dst-address=XXX.XXX.XXX.XXY service-group="DNS"
add action=accept chain=forward dst-address-list=Servers limit=2,2 service-group="ICMP Servers"
add action=drop chain=forward
Address Lists будут определены так:
Address List «Servers» содержит IP:
XXX.XXX.XXX.YYY
XXX.XXX.XXX.ZZZ
Address List «VPN Partners» содержит IP:
XXX.XX.X.YZ
XXX.XX.XYZ.YZ
XX.XYZ.XY.XY
А Service Groups определены так:
Service Group «ROS Management LAN» содержит:
dst-port=5678,20561 protocol=udp
dst-port=22,8291 protocol=tcp
Service Group «HTTP» содержит:
dst-port=80 protocol=tcp
dst-port=443 protocol=tcp
Service Group «DNS» содержит:
dst-port=53 protocol=tcp
dst-port=53 protocol=udp
Service Group «ICMP Servers» содержит:
icmp-options=0:0-255 protocol=icmp
icmp-options=3:3 protocol=icmp
icmp-options=3:4 protocol=icmp
icmp-options=8:0-255 protocol=icmp
icmp-options=11:0-255 protocol=icmp
Service Group «ROS Management WAN» содержит:
dst-port=8291 protocol=tcp
Service Group «ICMP WAN» содержит:
icmp-options=0:0-255 protocol=icmp
icmp-options=3:3 protocol=icmp
icmp-options=3:4 protocol=icmp
icmp-options=8:0-255 protocol=icmp
icmp-options=11:0-255 protocol=icmp
Service Group «ROS VPN» содержит:
protocol=UDP dst-port=500
protocol=ipsec-esp
protocol=encap
protocol=ipip
Это всего лишь примеры. Лично для меня это реально очистило бы цепочки firewall и таблицу NAT. Буду рад любой дискуссии на эту тему! Спасибо, tom