
|
回顾内容 4 O9 m% s% U+ n6 N$ F% m* \
还记得上次我们聊的 iptables 内容吗?回顾一下上次的内容,Linux 内核通过 netfilter 这个安全框架来实现防火墙机制,iptables 是用户操作 netfilter 实现功能的命令行工具,他们两个组合起来就是 Linux 防火墙 iptables 。4 M5 _' T% \/ K) @" @$ |$ V
Iptables 包含四表五链,其中四表就好比四个不同的“功能部门”,如:“海关、警察、税务、城管”,五链就好比五个位置的“关卡”,一般情况下一个“部门”要在多个“关卡”派驻人员,一个“关卡”内也会驻守多个部门的人。
Linux安全——iptalbes(二)
% m& s( d! P! X/ ^
上图中我们可以看到mangle“部门”在每个“关卡”都派驻了人员,而OUTPUT“关卡”则每个“部门”都派人蹲守。
2 u+ c& i5 h s5 U/ A6 F表(部门)功能: 7 e! A4 ?0 D y; b W1 c0 h
Filter 表——过滤数据包# x4 ^+ u. l% X5 C
Nat 表——网络地址转换7 ^/ N- e+ F9 ?3 O. p" e
Mangle 表——修改数据包服务类型、TTL 值(用来实现 QOS 功能)
. x) a' \/ F( s8 l$ |2 i% JRaw 表——数据包状态跟踪) ^. o# g) P' i5 L+ k' l: M' @/ q
链(关卡)的位置:
Linux安全——iptalbes(二)
2 z% V4 n0 N: E! X. ]! P规则查看
- G% C0 Q3 o9 }理论说多了就睡着了,我们先来操作下看看 iptables 到底长什么样吧。因为 iptables 是防火墙功能,而实现防火墙功能的主要是 filter 表,我们就从 filter 表开始看。
Linux安全——iptalbes(二)
' g% ^( ?* ]% t( `7 A: [我们可以使用 iptables -t filter -L 命令来查看 filter 表中的规则,命令选项 -t 是指定要操作的表,-L 是列出表中的规则,这句命令解释起来就是“列出 filter 表在每个链上所制定的所有规则”。
4 ?! y1 ?8 K0 q3 v: {: t- w图中绿色括号括起来的就是每个链上的规则内容,蓝色下划线标注的是 filter 表对应的链,有 INPUT、FORWARD、OUTPUT 三个链每个链上都有不同的规则,正如前面所介绍的不同的链位于数据流向上的不同位置,所以需要在不同的链上设置不同规则来达到你所需要的防火墙目的。比如,我们需要禁止某个 IP 地址访问我们的主机,我们则需要在INPUT链上定义规则(明白为什么不?看看前文),又如果我们想要禁止本机往外发数据包我们又该在那个链上写那?所以具体规则制定要结合具体场景和需求。
+ j4 h2 B2 d: ]- H- W6 ?3 N我们继续看命令,一般情况下我们看数据流向习惯性的是从那个 IP 地址到那个 IP 地址,而大家会发现刚才图中是用 anywhere 来表示的,是对,iptalbes 默认会为我们进行名称解析,名称解析的效率一般会低而且不适合我们的习惯,这时候我们可以使用 -n 选项,表示不对 IP 地址进行名称解析。1 [# e! n6 |7 Z( M5 b7 i# f- K
同时如果你觉得 -L 展示的信息还不够详细的话我们可以使用-v选项,查看更多更详细的信息内容。: F3 y) u ~6 c
Linux安全——iptalbes(二)
8 A% [8 o+ i1 r+ w是不是展示的内容就多了很多,我们来简单解释下这些内容: G: M$ B5 q9 x7 R( S
Pkts ——对应规则匹配到底报文个数;
$ {7 l: J: v0 rBytes ——对应规则匹配报文大小;- E# S5 p5 o S$ Q
Target ——规则对应的操作;
1 I) r) E3 c/ A7 @8 G1 P7 LProt ——规则对应的协议;
- R+ ~7 v1 F6 D5 V; QOpt ——规则对应的选项;- u, {- N( y* Y( H4 D
In ——表示数据包由哪个网卡流入,我们可以设置那个网卡来的报文才被匹配;2 c, E# O* N3 @- ?6 z' ?
Out ——表示数据包由哪个网卡流出,我们以设置那个网卡露出的报文才被匹配;& T" l$ N5 |5 v5 {
Source ——表示源地址; V7 s) b3 m: e9 r2 U" U
Destination ——表示目标地址;
. ]; ^. y- s2 h6 z5 T3 P S; Y6 Q(其实如果觉得内容还不够详细,可以使用 -vv 选项会有更详细的信息展示,当然是不是还有 -vvv 那可以试下)9 P7 X1 y9 F- k2 |
上图中还有画蓝色线的部分,其中 policy ACCEPT 表示当前链的默认策略,也就是说 INPUT 链上的默认策略是 ACCEPT 放行的。
7 k& S& a* Y5 aPackets 表示当前链的默认策略所匹配到的数据包数量,0 就表示默认策略没有匹配到数据包。2 q0 p9 a# @* c- N0 i
Bytes 表示当前链默认策略匹配到数据包的大小(总和)。2 f+ e4 n. { E8 M! w
(当匹配到的包达到一定数量时,匹配到的包大小会自动转换单位,也就是说会自动转换成 100K bytes、10M bytes)9 u, M) X1 k h2 ] T( T3 A9 l5 z
其实我们是可以省略 -t filter 这个选项的,因为当没有 -t 这个选项时 iptables 默认就是 filter 表,所以当我们直接 iptables -nvL 时就会直接出现上图的内容。
/ h8 v% w/ u* O5 i9 [我们还可以只查看指定表中的指定链,比如我们只想查看 filter 表中 INPUT 链上的规则,我们就可以用 iptables -nvL INPUT,这里的链一定要是大写的。
; }1 [# {" `$ v. X如果规则设置很多那我们就需要查看一个有序号的列表,不然让你统计下现在到底做了多少条规则你都会头疼,使用 iptables --line -nvL INPUT 就可以查看有序列号的规则。
0 |+ z+ }8 I7 A* W6 M
Linux安全——iptalbes(二)
! }- x; c. b- Y& k# ? B我们再用同样的方法来看下其他几张表的内容
) s# |2 H% G& X- f+ vIptables -t raw -nvL
- |5 g7 k5 W7 P+ t- J1 j' J7 |
Linux安全——iptalbes(二)
& j( x& G% o% B4 n. Y, H2 s. RRaw 表对应的 PREROUTING 和 OUTPUT 链
2 K0 B; m; ~: u4 Y+ B4 |+ G% kIptables -t mangle -nvL: ~7 y B# m1 q( B
Linux安全——iptalbes(二)
0 z. V! m8 H' R6 t$ j
' V4 h; Q4 N. L2 f6 z
3 ?" \2 l0 q% ~, D5 p( O) ^& WMangle 表对应所有五个链
/ v3 d H" g3 j7 c9 l: J! TIptalbes -t nat -nvL
1 {) B+ L- Q8 v& A# E# r$ J0 U9 s
Linux安全——iptalbes(二)
! s% c' e" R7 B! H
Nat 表对应 PROROUTING、POSTROUTING、OUTPUT 三个链
" i% E9 U) G5 h# T0 c其实我们会发现前面看到的 filter 表中是有规则存在的,其实那些规则是系统启动 iptables 时默认设置的规则。为了保持环境的干净我们还是先把这些默认添加的规则清理了吧。% m/ }) R3 W$ G( e M0 W7 x
使用 iptables -F 命令清空filter表中的所有规则;
$ K' g- x$ C' _
Linux安全——iptalbes(二)
! s/ x% Q# ?6 q" P6 k
总结下这次的命令:
. R% G7 ?6 P& U0 {, `iptables --line -t 表名 -nvL 链名
* u; ?& R( U8 x% d0 `查看指定表的中指定链上的规则,显示详细信息 -v,不进行地址解析-n,并显示规则的序号。0 R! ?% X1 z. Z ~- T/ q4 {0 V
不加表名默认 filter 表,不加链名默认所有链
$ C! m$ R+ [( [, C" ^2 @2 X/ Diptables -nvL% B, S" O, }6 ?4 o; b" F
查看 filter 表对应的所有链上的规则
3 S# s* y% W: l- y6 p, K4 o riptables -F
; z( b q( r' P7 l$ g* J清空 filter 表上的所有规则
, i6 [7 D, U! H$ n% g# p( D5 r$ t: g1 M相关阅读:' |3 J2 f# ]1 |2 Q- k
Linux安全—iptables(一): n) d0 X) s; X" m" y$ l6 [
6 p q+ D/ Z7 m' K' s0 Y. q
官网:www.yeslab.net
7 v2 V- y& O& S/ `7 u: U400-004-8626' P! l# r' h4 v, ?
Linux安全——iptalbes(二)
9 l% r. P. z( }2 I, K( A$ Z/ l
' g( G3 a9 w! D* |4 K) h9 q0 j* b7 d9 z v; x$ L5 P6 D8 X. k) O! c
|
|