ros防火墙

ros的防火墙非常灵活,如果配上正则表达式则更为强大,

防火Q过滤功能有三个默认的数据链chainsinput, forward和output 他们分别负责从哪里进入路由器的、通过路由器转发的与从路由器发出的数据。用户也可用自定义添加链当然这些链没有默认的传输配置需要在三条默认的链中对action=jump策略中相关的jump-target进行配置。

例:

建立新的跳转数据链chains

add chain=forward protocol=tcp action=jump jump-target=tcp(新数据链名)   

add chain=forward protocol=udp action=jump jump-target=udp   

add chain=forward protocol=icmp action=jump jump-target=icmp     

建立tcp-chain并拒绝一些tcp端口

add chain=tcp protocol=tcp dst-port=69 action=drop comment=”deny TFTP”  

add chain=tcp protocol=tcp dst-port=111 action=drop comment=”deny RPC portmapper”   add chain=tcp protocol=tcp dst-port=135 action=drop comment=”deny RPC portmapper”   add chain=tcp protocol=tcp dst-port=137-139 action=drop comment=”deny NBT”  

 add chain=tcp protocol=tcp dst-port=445 action=drop comment=”deny cifs”   

add chain=tcp protocol=tcp dst-port=2049 action=drop comment=”deny NFS”   

add chain=tcp protocol=tcp dst-port=12345-12346 action=drop comment=”deny NetBus”   add chain=tcp protocol=tcp dst-port=20034 action=drop comment=”deny NetBus”   

add chain=tcp protocol=tcp dst-port=3133 action=drop comment=”deny BackOriffice”   add chain=tcp protocol=tcp dst-port=67-68 action=drop comment=”deny DHCP”      

在udp-chain中拒绝非法的udp端口Deny udp ports in udp chain:

add chain=udp protocol=udp dst-port=69 action=drop comment=”deny TFTP”   

add chain=udp protocol=udp dst-port=111 action=drop comment=”deny PRC portmapper”   add chain=udp protocol=udp dst-port=135 action=drop comment=”deny PRC portmapper”   add chain=udp protocol=udp dst-port=137-139 action=drop comment=”deny NBT”   

add chain=udp protocol=udp dst-port=2049 action=drop comment=”deny NFS”  

在防火墙Layer7-protocol目录下你可以添加正则表达式字符串协议定义他们的名称并在防火墙filter目录下丢弃他们的数据。针对一些应用程序如skype、QQ、MSN、魔兽世界……网络程序做限制和过滤

DMZ 配置事例

路由器一般需要3张网卡Public公网Local本地网络DMZ-Zone非军事区

给相应的Interface添加对应的IP地址如下

[admin@gateway] ip address> print

Flags: X – disabled, I – invalid, D – dynamic

#   ADDRESS            NETWORK         BROADCAST       INTERFACE

0   192.168.0.2/24     192.168.0.0     192.168.0.255   Public  

1   10.0.0.254/24      10.0.0.0        10.0.0.255         Local  

2   10.1.0.1/32        10.1.0.2        10.1.0.2            DMZ-zone  

3   192.168.0.3/24     192.168.0.0     192.168.0.255     Public

配置DMZ服务器的IP地址为IP地址10.1.0.2网络地址段10.1.0.1/24以及网关10.1.0.1  

配置能从因特网访问DMZ服务的dst-nat规则将地址192.168.0.3配置给DMZ服务器 [admin@gateway] ip firewall nat> add chain=dst-nat action=dst-nat \ \… dst-address=192.168.0.3 to-dst-address=10.1.0.2

为网络192.168.0.0/24的所有客户端添加一个限制下载流量为2Mb上传流量1Mb的简单队列规则。  

[admin@MikroTik] queue simple> add name=Limit-Local target-address=192.168.0.0/24 max-limit=1000000/2000000

这里不想让服务器192。168。0。1受到我们添加上面规则的任何流量限制我们可以通过添加一个没有任何限制的规则max-limit=0/0代表没有任何限制并把它移到列表的顶部 [admin@MikroTik] queue simple> add name=Server target-addresses=192.168.0.1/32

Queue tree HTB实

通过用new-connection-mark标记向外的连接并采取mark-connection动作。当这个完成时你可以使用new-packet-mark标记属于这个连接的所有数据包并采用mark-packet。 首先VIP数据标记我们通过ip firewall address-list定义VIP用户的地址列表定义完成后通过src-address-list调用

     chain=forward action=mark-connection new-connection-mark=vip       passthrough=yes src-address-list=vip   

     chain=forward action=mark-packet new-packet-mark=vip passthrough=no       connection-mark=vip

跟着定义web数据这里我们需要针对访问网页的tcp/80端口和域名解析的DNS端口tcp/53和udp/53端口标记

2   ;;; web      chain=forward action=mark-connection new-connection-mark=web       passthrough=yes protocol=tcp dst-port=80    

3   chain=forward action=mark-connection new-connection-mark=web       passthrough=yes protocol=tcp dst-port=53    

4   chain=forward action=mark-connection new-connection-mark=web       passthrough=yes protocol=udp dst-port=53    

5   chain=forward action=mark-packet new-packet-mark=web passthrough=no       connection-mark=web

标记数据完成后我们进入queue tree中对数据进行优先级的配置

我们进入forward链表添加一条跳转的规则将forward中所有数据首先进入dstgames的链表过滤一次将游戏分离出来 /ip firewall mangle add chain=forward action=jump jump-target=dstgam

连接标记用于区分网页视频的速率 chain=forward action=mark-connection new-connection-mark=web_video passthrough=yes protocol=tcp dst-port=80 connection-bytes=700000-0 connection-rate=70k-10

HTB令牌桶方式控制各个数据的优先级并通过PCQ动态分配带宽我们进入queue的tree设置HTB但我们首先还是要先设置PCQ参数 进入queue type添加PCQ规则我们添加一个down的PCQkind= pcqrate设置每台主机的带宽这里我们选择0即动态分配带宽你也可以设置一个固定值以k或者m为单位选择dst-address为下行的规则

masquerade – 以一个路由策略自动分配的IP地址取代IP包的源地

netmap – 创造一个IP地址从一端到另一端的静态11映像。通常用于分配公用IP地址到专用内网的主机上

passthrough – 忽略次条规则并转到下一个规则

redirect – 把IP包的目的地址替换成一个路由器的本地地址

对公用接口添加公用IP /ip address add address=10.5.8.200/24 interface=Public       添加允许外部网络访问本地服务器的规则 /ip firewall nat add chain=dstnat dst-address=10.5.8.200 action=dst-nat \  to-addresses=192.168.0.109

如果你想从公用IP子网11.11.11.1/32访问本地的2.2.2.2/32你应该使用目的地址翻译以及源地址翻译特性设置action=netmap。

/ip firewall nat add chain=dstnat dst-address=11.11.11.1 \  action=netmap to-addresses=2.2.2.2  

/ip firewall nat add chain=srcnat src-address=2.2.2.2 \  action=netmap to-addresses=11.11.11.1

。Mangle标记仅存在于该路由器中他们无法传输到网络中去。 根据数据传输方式不同可以选择

? Prerouting路由前常用于标记策略和端口路由

? Input进入路由器的数据

? Foreward通过路由转发用于修改TTL、TCP-MSS和流量控制规则   

? Output数据输出

? Prostrouting路由后

标记IP数据流的三种类型这三种类型会在各种应用中多次出现特别是Queue的流量控制和ip route的路由

? Mark-connection标记所有IP流的连接

? Mark-packet标记IP流中数据包

? Mark-routing标记IP流中IP数据包的路由信息

三种类型的关系所有的在IP数据包传输前首先需要通过建立TCP/UDP连接进行传输。所以当数据通过IP流进入Mangle后建立相应的连接标记并从连接标记中提取数据包做处理

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注