一、回顾
1、iptables/netfilter
a、netfilter:raw,mangle,nat,filter
PREROUTING --> INPUT
PREROUTING --> FORWARD --> POSTROUTING
OUTPUT --> POSTROUTING
b、filter:INPUT,FORWARD,OUTPUT
c、nat:PREROUTING,INPUT,OUTPUT,POSTROUTING
2、iptables:
a、[-t table] COMMAND [chain] rule-specification
-m matchname [per-match-options]
-t targetname [per-target-options]
[options]
b、匹配条件
(1)、基本匹配条件:-s,-d,-p,-m,-i,-o
(2)、扩展匹配条件:
1)、隐式扩展:
-p tcp:--dport,--sport,--tcp-flags,--syn
-p udp:--dport,--sport
-p icmp:--icmp-type
2)、显示扩展
multiport:--sports,--dports
iprange:--src-range,--dst-range
time:--timestart,--timestop,--weekdays,--monthdays,--datestart,--datestop
string:--algo {bm|kmp},--string
connlimit:--connlimit-upto,--connlimit-above
limit:--limit,--limit-burst
state:--state
NEW,ESTABLISHED,RELATED,INVALID,UNTRACKED
c、target
(1)、-j:
ACCEPT/DROP
REJECT:--reject-with
LOG:--log-level,--log-prefix
自定义链:
RETURN
d、iptables-save/iptables-restore
二、iptables(3)
1、接下来我们来讲网络防火墙功能,我们Linux何种情况下可以作为网络防火墙来工作呢?想象一个场景,我们说过对于任何一个局域网来说我们都需要网关设备,假如我们一个局域网中有很多客户端主机,假如我们这儿有一个网关设备,我们任何非本地网络通信的报文都要经由他来负责转发的。这个设备可能是一个硬件的路由器。我们路由器在报文路由时源mac和目标mac都会进行修改,而我们的源IP和目标IP是不会改变的。
2、我们linux做网关设备一般是这样的。首先我们需要开启默认转发功能。然后我们需要有两张网卡,一张网卡作为内部网关,另一张网卡接入外部网络。
3、假如我们现在有一个主机有三个网卡。一块连接内网。一块连接A网络。一块连接B网络。假如我们内网一客户端 172.16.0.67发一报文,只要到网关就表示非本地通信了,我们前提是打开我们主机的核心转发功能,打开核心转发后报文就在本地内核中转了一圈,因为他不与本地进程通信因此他不会到达我们的用户空间,他只是在内核空间中走了一遭。然后他会根据我们的路由条目转发至某一个