查看: 393|回复: 0

[RouterOS] Firewall防火墙规则事例

[复制链接]

主题

好友

566

积分

中尉

签到天数: 35 天

[LV.5]常住居民I

发表于 2016-9-22 16:55 |显示全部楼层
TG-NET
Anywlan微信公众号
防火墙规则事例
3 m6 P/ B6 L, i5 J* c# q. M

, H, \, l' v$ j
我先从 input 链表开始,这里是对所有访问路由的数据进行过滤和处理:
从 input 链表的第一条开始执行,这里一共有三条规则:
" L  I5 \. x  v% b6 r

, w( e9 ~2 ]2 x: B
0 ;;; 接受你信任的 IP 地址访问(src-address=填写信任 IP,默认允许任何地址)chain=input src-address=192.168.100.2 action=accept
/ J/ n# [9 N9 a/ N# f- s* ^4 C* q( v, ?: v# w* D
. k  A& @; K6 d- a
1 ;;; 丢弃非法连接1 y) u% ~  M* X0 ~
chain=input connection-state=invalid action=drop& ]9 ^9 H% x" j- ^
2 ;;; 丢弃任何访问数据
" H) y5 x: a1 u# s: X$ E1 l1 L2 i4 I8 u
chain=input action=drop
1 S0 z* x' ~" ?( C3 `  e

/ }& o) L: }  M. M1 ]
下面是 forward 链表
2 @- g' H) l( i
forward 链表,一共有 7 条规则,包括两个跳转到自定义链表 ICMP 和 virus 链表:6 M$ K' X, `  J8 Z* e* a. w

- k, W/ Q' w4 P% U
0 ;;; 接受已建立连接的数据
1 t: s1 D" r4 B: p
chain=forward connection-state=established action=accept
$ R2 Z6 t$ u( a
1 ;;; 接受相关数据: Z* |1 L! a3 H7 X& L3 s* C5 u0 Z
chain=forward connection-state=related action=accept
( z& \. |: @; H; T+ r/ a8 |( E
2 ;;; 丢弃非法数据包, J' B$ W$ a+ Y9 s8 L. }1 m

+ F3 g0 f  X& `" ~% j. Z2 m
chain=forward connection-state=invalid action=drop
; {8 h: Q! U2 F: r5 U6 f
3 ;;; 限制每个主机 TCP 连接数为 80 条9 ]  O5 O$ P* o+ d- {8 F; o
chain=forward protocol=tcp connection-limit=80,32 action=drop6 A9 y; p% r$ i( r. g% h, K4 \
4 ;;; 丢弃掉所有非单播数据# h, R, B; |. c, t) U. j" h1 U# c
chain=forward src-address-type=!unicast action=drop$ \) N9 o4 ~& U1 Z  s& [
5 ;;; 跳转到 ICMP 链表
# S; `9 C, d0 |* e' t  s, `5 ^6 x: ]
chain=forward protocol=icmp action=jump jump-target=ICMP
0 b9 x( x5 {* h; u: {  D/ s' r
6 ;;; 跳转到病毒链表
, F. f$ O0 h+ s' Z% ]
chain=forward action=jump jump-target=virus
& @& ]% r8 U6 a& \7 L" t! B

" a4 J$ O& x% s' N: N6 R
forward 工作过程如下:  
; P3 x1 D/ [' y% @9 j
2 o2 m1 a6 W1 P# g2 N& Z
在自定义链表 ICMP 中,是定义所有 ICMP(Internet 控制报文协议),ICMP 经常被认为是 IP 层的一个组成部分。它传 递差错报文以及其他需要注意的信息。ICMP 报文通常被 IP 层或更高层协议(TCP 或 UDP)使用。例如:ping、traceroute、 trace TTL 等。我们通过 ICMP 链表来过滤所有的 ICMP 协议:
6 D: I  Q3 O8 O8 K, L
: ~) N+ u) W  s; h& _1 Y
ICMP 链表操作过程:* z, L$ c, r, A
) \% N& X) r# ]% g' r! V' h- Q
0 ;;; Ping 应答限制为每秒 5 个包
- K3 M  b8 m; j% C5 k( h
chain=ICMP protocol=icmp icmp-options=0:0-255 limit=5,5 action=accept
9 N" D$ ~- O2 q2 a
1 ;;; Traceroute 限制为每秒 5 个包
1 r3 u, ^, {" ?5 m' |
% w1 T" `5 g2 |; G
chain=ICMP protocol=icmp icmp-options=3:3 limit=5,5 action=accept
$ \+ w9 t9 v+ s
2 ;;; MTU 线路探测限制为每秒 5 个包
6 |! v% D5 u8 D0 b0 w
chain=ICMP protocol=icmp icmp-options=3:4 limit=5,5 action=accept7 H1 W" Z- p7 }0 S5 q: c
3 ;;; Ping 请求限制为每秒 5 个包
0 D4 h# ]8 n& @' I; ^  z
chain=ICMP protocol=icmp icmp-options=8:0-255 limit=5,5 action=accept" {: }4 }1 m  O+ _
4 ;;; Trace TTL 限制为每秒 5 个包
9 c4 a& a& e( T& p+ ~% H- g" n5 \/ n
chain=ICMP protocol=icmp icmp-options=11:0-255 limit=5,5 action=accept, @3 l) d4 X- B
5 ;;; 丢弃掉任何 ICMP 数据; x+ V0 @, f6 T, ^7 l
chain=ICMP protocol=icmp action=drop
# X( O- |) n6 i6 F7 A5 V) m) E

, g! D5 K, b4 a
ICMP 类型:代码值
3 r  R* X% r- M5 y

% n8 m  I$ p+ |( w- s( Y0 z
通过指令保护你的路由器和相连接私有网络,你需要通过配置防火墙丢弃或拒绝 ICMP 协议的传输。然而一些ICMP 数据包则需要用来维护网络和故障判断用。  }( _" g& B1 b$ ^! y5 A
: w9 f4 ~4 F: D1 {' p6 v
下面是 ICMP 类型列表:通常下面的 ICMP 传输建议被允许通过
. J5 e1 y; u# C* e+ Z% e( E# a
/ x+ [5 V8 I% d/ {* g; S7 E0 i
Ping
3 c, m. A- s. h- i
3 g/ h; j" U+ t. u3 s
o 8:0 – 回应请求9 A8 n: n# E% ]3 H

  S' a) t( p! z/ b
o 0:0 – 回应答复
! G7 n% p3 O- o! |& x
; w  `, S( _4 R4 N' C
Trace# J! f5 L7 f- O7 }; E" T
% E% t9 A' o3 ?
o 11:0 – TTL 超出. Z0 M& {& O/ g* }

- l0 y$ ^2 a" p+ T
o 3:3 – 端口不可到达/ w7 l; {3 N* R( d
: {; M/ }: t+ i: R# k7 c
路径 MTU 探测, N8 d+ M( X8 r4 a* A

0 `/ B  l. [) P* y' g8 ~. s
o 3:4 – 分段存储 Fragmentation-DF-Set
$ Z! o$ Z# i5 C  e% ^
8 |: J6 h1 l, ?' V9 E) w! {  Q
一般 ICMP 过滤建议:. W; [9 q: v8 A8 p

' z' G) O$ S- @' ]* C8 u
-- 允许 ping—ICMP 回应请求向外发送和回应答复进入* e* x% h5 R  I6 i, \

6 S7 P5 V0 f) X8 _  q
-- 允许 traceroute—TTL 超出和端口不可到达信息进入, S% \$ j8 L# a1 `5 c7 b- c
2 \/ t: f5 @) @* p$ L
-- 允许路径 MTU—ICMP Fragmentation-DF-Set 信息进入# D& H# G/ [& v1 T; \
- b" c8 ?" P7 d
-- 阻止其他任何数据
4 ~& ~. N9 l% M/ G. ~3 {$ E
, J. d$ Z: ~# ~+ O' S* D! ]8 Y' Q
在 virus 链表中过滤常见的病毒,我可以根据需要在该链表中添加新的病毒对他们做过滤:
阻止不必要的 IP 广播:
) M9 r0 S3 ~2 N1 I7 J- T, x9 g; `
1 @' G# k: v/ _" P; O2 |
add chain=forward src-address=0.0.0.0/8 action=drop add chain=forward dst-address=0.0.0.0/8 action=drop add chain=forward src-address=127.0.0.0/8 action=drop add chain=forward dst-address=127.0.0.0/8 action=drop add chain=forward src-address=224.0.0.0/3 action=drop add chain=forward dst-address=224.0.0.0/3 action=drop
) U- B3 p  A* z

! e2 l, S8 I& V, \/ l
建立新的跳转数据链(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
* u5 @3 A. E' G5 A8 a6 O& h
: k+ \8 c& d* X, f& u8 [
, a4 E6 Y& k8 X) C' a' I6 C
& [4 K8 v& {/ |
建立 tcp-chain 并拒绝一些 tcp 端口:
/ N/ Y" |9 ?8 Q( ^0 b) B
. g7 o9 d8 [3 M4 W* v- v* a  p
add chain=tcp protocol=tcp dst-port=69 action=drop comment="deny TFTP"% e6 ^3 v" I: P- x+ e
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"8 n& k- q" @9 g5 F4 V. H
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"
# W) D$ F2 t* _; ?( R
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") K4 R% q7 x/ w3 H3 l: [9 w
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"- L( B/ ?6 q4 N- V# {! F
6 S( l* A7 U" F9 t- t! B7 s0 X2 ~7 N. n
在 udp-chain 中拒绝非法的 udp 端口 Deny udp ports in udp chain:add chain=udp protocol=udp dst-port=69 action=drop comment="deny TFTP". X6 @. D7 p+ K$ x
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"
/ e  E  H; B+ n0 k1 nadd chain=udp protocol=udp dst-port=2049 action=drop comment="deny NFS"! l" `# a- l# D1 c
' P2 F. x3 F0 P- R1 @9 L2 v
add chain=udp protocol=udp dst-port=3133 action=drop comment="deny BackOriffice"; i5 |% P; h& K  O  b/ K

: n5 E. k: K7 ~' U% T5 X. |  E" |& y4 {
; Q5 J, F9 o8 {* R3 Q1 j0 v# k
在 icmp-chain 允许相应需要的 icmp 连接:add chain=icmp protocol=icmp icmp-options=0:0 action=accept comment="drop invalid connections"8 H8 b; l0 c1 H/ T) C
add chain=icmp protocol=icmp icmp-options=3:0 action=accept \: Q; L8 x8 }% F9 r8 ]( p9 |
comment="allow established connections"8 U* A- `8 p0 m0 E3 q8 Q
add chain=icmp protocol=icmp icmp-options=3:1 action=accept \
8 p3 F( u) K! \4 _, S
comment="allow already established connections"5 w( n8 x5 H8 @% I  p
add chain=icmp protocol=icmp icmp-options=4:0 action=accept \" @8 s- V% T8 u
comment="allow source quench"2 \/ r" P/ a4 O& M: X; r3 k0 x
add chain=icmp protocol=icmp icmp-options=8:0 action=accept \
) ]9 B( a! e$ r/ G0 e$ t6 c2 X% b5 S8 O
comment="allow echo request"
# u# h% z9 X8 a3 W
add chain=icmp protocol=icmp icmp-options=11:0 action=accept \, t8 [! E# e$ `/ c/ |
comment="allow time exceed"
1 {. V! Z, [; I. h! v1 o1 F/ `0 o
add chain=icmp protocol=icmp icmp-options=12:0 action=accept \
* \, U( k' e; [' F
comment="allow parameter bad"
( g0 R9 g$ v( G* ~2 g  d' S
add chain=icmp action=drop comment="deny all other types"+ A* X; ~- ]$ N7 `$ S6 Y9 J) ~
( V: y! E  |$ r+ I
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

Archiver| 手机版| 中国无线门户 ( 粤ICP备11076993 )  |网站地图    小黑屋 | 免责声明

GMT+8, 2017-2-27 19:19

Powered by Discuz! X3.2

© 2003-2013 广州威思信息科技有限公司

返回顶部 返回列表