iptables
 ip 的 tables ip的表格;
 iptables只是netfilter的前端管理工具;netfilter是linux內核提供的數據流量管理模塊;
 iptables/netfilter數據流量管理框架;

 普遍人問IPtables就是一個防火牆;

 作用:流量過濾;(防火牆:1、流浪過濾 2、接VPN)

1、網絡防火牆
 首先,網絡防火牆一般處在外網出口處;
 主要對於內外網交互的流量進行監控與過濾;
 
2、主機防火牆(並不提到360、xx管家)
 主機有內核空間和用户空間,netfilter的過濾模塊運行在內核空間,但是它又無法提供數據匹配,所以我們需要使用函數來調用netfilter模塊,匹配數據流量;
 5個鈎子:匹配數據流量:就有我們所説的 Chain (鈎子)
  PREROUTING
  INPUT
  FORWARD
  OUTPUT
  POSTROUTING

 3種流量:1、到達主機的流量
  2、通過主機的流量
  3、主機發起的流量

 4張表來決定行為:
  1、raw      保持連接--建議不要開啓這個表的功能
  2、mangle      做數據包修改
  3、nat nat映射,包括SNAT DNAT
  4、filter  數據包過濾(默認啓用)

  那些表,可以關聯那些“鈎子”呢?
  raw -- OUTPUT  PREROUTING
  mangle -- PREROUTING INPUT FORWARD OUTPUT POSTROUTING
  nat  --  POSTROUTING OUTPUT PREROUTING
  filter -- OUTPUT INPUT FORWARD
  【對於數據包的行為,就決定了這個數據包要經過那個鏈】

 *注意:寫策略的時候,需要關聯鈎子,策略是屬於“鈎子”的,而鈎子只做策略匹配,但不能進行數據操作;
 所以,我們需要再關聯表,每一種表決定了一種行為操作;

 表 包含鏈  -- 鏈 包含 策略;

3、iptables的用法:
 iptables [-t table] {-A|-D} chain rule-specification
 iptables [-t table] -I chain [rulenum] rule-specification
 iptables [-t table] -R chain rulenum rule-specification
 iptables [-t table] -D chain rulenum
 iptables [-t table] -S [chain [rulenum]]
 iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]
 iptables [-t table] -N chain
 iptables [-t table] -X [chain]
 iptables [-t table] -P chain target
 iptables [-t table] -E old-chain-name new-chain-name

 -t 指定 表
 -A -I 添加策略 -A在最下面添加,-I 在最上面添加
  建議:工作的時候一定要用 -A 不要用 -I
 -D  刪除策略
 -R  替換鏈表 需要指定所替換的編號
  iptables -t filter -R INPUT 2 -s 1.1.1.1 -d 2.2.2.2 -j ACCEPT
 -S  顯示鏈表的所有用法
 -P  指定鏈表的默認行為
  iptables -t filter -P INPUT DORP
  建議:寫白名單
 -N  自己定義鏈表;
  如果策略過多,我們需要將策略分類,這就用自己定義鏈表來分類;
  讓後再將自己定義的鏈表調用在其他可以匹配數據流量的鏈表上;
  【如何去調用呢?】
 -X  也是清除自定義的鏈表
  iptables -t filter -X [chain]
 -v  可以查看策略匹配的數據包
 -vv  詳細查看數據包匹配情況 -vvv
  iptables -t filter -L -v
 -Z  將數據包計數歸零;
 -L  --list顯示所選chain上面所有規則rule
 -F  清空制定chain上面所有規則
 -E  替換chain的名稱;
 ------------------------------------------
 -p  udp icmp tcp  esp ah
 -s
 -d
 -j  jump  DROP ACCEPT REJECT SNAT DNAT MARK
 -i  進入的網卡
 -o 出去的網卡
 -c 設置收發數據包的警告值
 -n 不做解析
 --line-number 顯示策略行號
 -f  TCP協議的標籤 -- syn ack fin rst pus ...