国民党
(1)既然你输入了0.0.0.0/0作为一个
允许IP,没有必要输入其他的,它们都包括在内。
(2) Wireguard是一种UDP协议,因此您的输入规则之一是不需要的(应该删除)。
添加action=accept chain=input dst-port=13231协议
= tcp
Add action=accept chain=input dst-port=13231 protocol=udp
(3)防火墙规则和组织缺乏,默认情况下很好,只需要稍作调整。
/ip防火墙过滤器{Input Chain} add action=accept Chain = Input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked add action=drop Chain = Input comment="defconf: drop invalid" connection-state=invalid add action=accept Chain = Input comment="defconf: drop invalid"accept ICMP" protocol= ICMP add action=accept chain=input dst-port=13231 protocol=udp add action=accept chain=input in-interface-list=LAN add action=drop chain=input comment="drop all else {forward chain} add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related,untracked " connection-state=established,related,untracked add action=drop chain=forward comment="defconf: accept established,related,untracked " connection-state=established,related,untracked add action=drop chain=forward comment="defconf: accept established,related,untracked "connect -state=invalid add action=accept chain=forward comment="allow internet traffic" in-interface-list=LAN out-interface-list=WAN add action=accept chain=forward comment="allow port forwarding" connect -nat-state=dstnat add action=accept chain=forward comment="allow local subnet to enter wg tunnel \ src-address=10.7.7.0/24 out-interface=wireguard1 add action=accept chain=forward comment="allow remote subnet to exit tunnel \ in-interface=wireguard1 dst-address=10.7.7.0/24Src-address =10.8.8.0/24 add action=drop chain=forward
注意:我倾向于使用防火墙规则允许子网进入隧道,并使用防火墙规则(在另一端,接收端)更明确地说明允许流量从隧道的哪里流出!因此上面的两条规则就不同了。第一个基本上是说,是的,来自子网的流量是允许进入隧道的,特别是如果要从远程站点上网。但是,如果流量来自隧道,我想确保我至少配置了目的地,如果您有多个可能的子网..........,源是必不可少的
(5)不需要Mangling和remove(因此fastrack现在是正向链规则的一部分)
(6)缺少但不是完全必要的接口和接口列表........使用子网非常方便。比起防火墙地址列表,我更喜欢它们。使用防火墙地址列表的一个原因是如果您的子网少于一个子网,比如一个或一组ip,或者子网和一个或一组ip的混合。例如,ip可以来自不同的子网。
现在它可能不是百分之百必要的,但以后可能真的很有用。
因此建议加入
/接口列表
添加名称=广域网
添加名称=局域网
/接口列表成员
add interface=ether1 list=WAN
add interface=LAN- right - half list=LAN
PS,这将在防火墙链中工作,因为LAN将可以访问路由器的DNS和NTP服务。
如果你想为dns和ntp维护单独的规则,你总是可以这样做。
add action=accept chain=input in-interface-list=LAN src-address-list=Admin dst-port=xxxxxx,yyyyyy protocol=tcp {winbox port add action=accept chain=input comment="允许LAN DNS查询- udp " \{和NTP ***服务,如果需要等}dst-port= 53123 in-interface-list=LAN protocol=udp add action=accept chain=input comment="允许LAN DNS查询- tcp " \ dst-port=53 in-interface-list=LAN protocol=tcp add action=drop chain=input comment="drop all else"
src-address-list是来自internet的管理设备或甚至外部ip的防火墙地址列表。
例如,在我自己的源地址列表中,我将wireguard IP设置为我的iphone,这样我就可以通过wireguard进入我的路由器,然后访问配置。
(7)就局域网流量的路由而言,您确实意识到我们正在将您的所有子网流量移出wireguard隧道,因此路由看起来就像基本的术语。
add dst-address=0.0.0.0/0 gateway=ISPgateway table=main
添加dst-address=0.0.0.0/0 gateway=wireguard1 table=via-wg
您已经构建了表,现在是路由规则,它将确保所有用户进入wireguard隧道。
add src-address=10.7.7.0/24 action=lookup-only-in-table table=via-wg
注意:如果你仍然希望用户能够在wireguard隧道不工作时访问本地WANIP,那么简单地将操作更改为:
action =查找
+++++++++++++++++++++++++++++
问题的棘手之处在于,稍后您有了另一个本地子网,并且您希望用户能够访问其他子网。
在这种情况下,我们在互联网规则之前添加了额外的路由规则,有多种方法来实现这些目标,但最简单的是(和顺序计数)
/添加路由规则
dst -地址= =主要subnetB表
add src-address=10.7.7.0/24 action=lookup-only-in-table table=via-wg
在这里,路由器将确保从使用internet的子网(子网a)到子网B的流量优先。
(8)查看你的路线,需要一点调整,..........
去掉你需要的路由之间的距离,它们都应该设置为默认值1。
第一个wireguard,确保任何传入的远程子网流量在与本地子网交互后都有返回隧道的路径。
第二个wireguard路由为所有来自本地路由器的流量创建一条出隧道的路由,并将其放入via-wg表中。
(路由规则然后“强制”本地子网到那个表,从而路由)。