第十四周-day55-iptables防火墻(上)

day55-iptables防火墻.png

架構展望
https://www.processon.com/view/link/5d19b17be4b0beaf6b9feff8


iptables防火墻必會面試題:https://www.cnblogs.com/wajika/p/6382853.html

非常詳細的iptable原理
http://www.zsythink.net/archives/1199/

1.常見防火墻選用

  • 硬件防火墻

  • 開源軟件:iptables(默認規則改為INPUT DROP)

  • 云服務器:安全組(阿里云 白名單,默認是拒絕的)

2.iptables使用 執行過程
3.iptables 4表5鏈
4.準備iptables環境
5.iptables功能之一防火墻
  • 封IP 封端口

  • 準許某個ip訪問 網段訪問

6.iptables功能之內網服務器上外網(共享上網)
7.iptables功能之 端口轉發

2.常見防火墻選用

  • 公司網站入口使用的硬件 防火墻 、三次路由帶有防火墻功能
  • itpables訪問量小 C5 C6自帶,CentOS 7為Firewalld
  • SELinux

3.相關名詞與單詞

名詞 含義 對比
容器 存放內容/存放東西
Netfilter/iptables 是表的容器 國家
(table) 是用來存放鏈的容器
(chain) 鏈 存放規則的容器
規則(policy) 準許/拒絕訪問 區/縣

4.防火墻執行過程

  1. 防火墻是層層過濾的,實際是按照配置規則的順序從上到下從前到后進行過濾的。
  2. 如果匹配上規則,即明確表示是阻止(DROP)還是通過(ACCEPT)數據包就不再向下匹配新的規則。
  3. 如果規則中沒有明確表明是阻止還是通過的,也就是沒有匹配規則,向下進行匹配,直到匹配默認規則得到明確的阻止還是通過。
  4. 防火墻的默認規則是所有規則執行完才執行的。

5.四表五鏈

5.1 四表及作用

功能
Filter 過濾,默認的表,防火墻功能
NAT 實現NAT轉化:1.共享上網 2.端口轉發
mangle 查詢幫助man iptables 了解即可
raw 查詢幫助man iptables 了解即可

5.2 四表中的5鏈


五鏈:
PREROUTING
FORWARD
INPUT
OUPUT
POSTROUTING

5.3 filter表和nat表

image.png

5.3.1 filter表

filter表 企業工作場景:主機防火墻
INPUT 就是過濾進入主機的數據包
FORWARD 負責轉發流經主機的數據包
OUTPUT 就是處理從主機發出去的數據包

5.3.2 nat表

nat表
PREROUTING 處理用戶請求中的目的地址 目的端口 端口轉發 ip映射
POSTROUTING 處理離開服務器的請求 源端口 源ip :共享上網
OUTPUT 和主機放出去的數據包有關,改變主機發出數據包的目的地址

補充:

filter表:
??INPUT 作用:用于發送到本地套接字的數據包。
?FORWARD 作用:對于正在通過該框路由的數據包
?OUTPUT 作用:用于本地生成的數據包。

nat表:
?PREROUTING 作用:因為他們一進來就改變了包
?OUTPUT 作用:用于在路由之前更改本地劃分的數據包。
?POSTROUTING 作用:改變包,因為它們即將離開

6.防火墻之filter表

6.1環境準備

m01 iptables iptables-services
db01 iptables iptables-services
[root@m01 ~]# rpm -qa iptables-services
iptables-1.4.21-28.el7.x86_64
[root@m01 ~]# rpm -ql iptables-services
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables #iptables 配置文件
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service    #iptables服務管理配置

啟動防火墻

[root@m01 ~]# systemctl stop firewalld    #CentOS7關閉firewalld
[root@m01 ~]# systemctl restart iptables
[root@m01 ~]# systemctl enable iptables

手動加載內核模塊

[root@m01 ~]# modprobe ip_tables
[root@m01 ~]# modprobe iptable_filter
[root@m01 ~]# modprobe iptable_nat
[root@m01 ~]# modprobe ip_conntrack
[root@m01 ~]# modprobe ip_conntrack_ftp
[root@m01 ~]# modprobe ip_nat_ftp
[root@m01 ~]# modprobe ipt_state

檢查防火墻內核模塊是否加載成功:

[root@m01 ~]# lsmod |egrep 'nat|ipt|filter'
nf_nat_ftp             12770  0 
nf_conntrack_ftp       18638  1 nf_nat_ftp
ipt_REJECT             12541  2 
nf_reject_ipv4         13373  1 ipt_REJECT
ipt_MASQUERADE         12678  1 
nf_nat_masquerade_ipv4    13412  1 ipt_MASQUERADE
iptable_filter         12810  1 
xt_nat                 12681  2 
iptable_nat            12875  1 
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26787  4 nf_nat_ftp,nf_nat_ipv4,xt_nat,nf_nat_masquerade_ipv4
nf_conntrack          133095  8 nf_nat_ftp,nf_nat,xt_state,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ftp,nf_conntrack_ipv4
ip_tables              27126  2 iptable_filter,iptable_nat
libcrc32c              12644  3 xfs,nf_nat,nf_conntrack

6.2 配置規則-禁止訪問22端口

[root@m01 ~]# iptables -F  #清除規則
[root@m01 ~]# iptables -X
[root@m01 ~]# iptables -Z
[root@m01 ~]# iptables -nL #查看規則
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
[root@m01 ~]# #添加一條規則,禁止22端口訪問
[root@m01 ~]# iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
[root@m01 ~]# 
Type `help' to learn how to use Xshell prompt.
[d:\~]$    #斷開了~跑下機房
刪除規則,重新連接m01
[root@m01 ~]# iptables -nL --line-number #查看防火墻規則
[root@m01 ~]# iptables -t filter -D INPUT 1   #刪除第1條規則
[root@m01 ~]# iptables -nL --line-number #再次查看
image.png

重新連接 22端口就可以用了

Type `help' to learn how to use Xshell prompt.
[d:\~]$ 

Connecting to 10.0.0.61:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Tue Jul  2 17:04:55 2019
[root@m01 ~]# 
配置防火墻規則注意事項:
  1. 去機房重啟系統或者登陸服務器刪除剛才的禁止規則。

  2. 讓機房人員重啟服務器或者讓機房人員拿用戶密碼登錄進去

  3. 通過服務器的遠程管理卡管理(推薦)

  4. 先寫一個定時任務,每5分鐘就停止防火墻**5. 測試環境測試好,寫成腳本,批量執行

6.3 filter表其他規則配置

6.3.1 只讓10.0.0.0/24網段進行訪問連接

只要是10.0.0.0/24 局域網的用戶 訪問m01 都ACCEPT

此例子主要限制:網段或ip地址

[root@m01 ~]# iptables -A INPUT -p tcp ! -s 10.0.0.0/24 -j DROP   #"!" 嘆號表示取反
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  -- !10.0.0.0/24          0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination      

去另一臺服務器上測試一下是否成功:

[root@db01 ~]# ssh 10.0.0.61  #連接10.0.0.61,可以連接
root@10.0.0.61's password: 
Last login: Tue Jul  2 17:41:01 2019 from 10.0.0.51
[root@m01 ~]# logout  #退出
Connection to 10.0.0.61 closed.
[root@db01 ~]# ssh 172.16.1.61    #連接172.16.1.61,不可以連接
....等到死
image.png

6.3.2準許或禁止端口

多個端口:表示范圍 1-1024范圍

[root@m01 ~]# iptables -I INPUT -p tcp ! --dport 1:1024 -j DROP 
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:!1:1024
2    DROP       tcp  -- !10.0.0.0/24          0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination  

多個端口 不連續 80,443,52113,22

[root@m01 ~]# iptables -I INPUT -p tcp -m multiport ! --dport 80,443,22 -j DROP 
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports  !80,443,22
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination  

6.4 iptables命令及參數

iptables
-t 指定表 filter(默認) nat
-A append 把規則追加到末尾
-I (大寫字母i ) insert 把規則插入到規則的第1條 (添加拒絕類規則的時候)
-p protocal 指定協議:tcp /udp/icmp
--dport destination port 目標端口
--sport source port 源端口
-d dest ip address 目標ip地址
-s source ip address 源ip地址
-j jump 方法 DROP (拒絕)、 ACCEPT(準許) 、REJECT(拒絕)
iptables查看 刪除
-F 清除鏈中所有規則
-X 清空自定義鏈的規則
-Z 清空計數器
-n 不要把端口解析服務名字
-L 顯示表中的規則
--line-number 給每個鏈中的規則加上行號
-D 刪除規則 根據規則的號碼進行刪除

7. nc命令

nc用法:

nc -l 指定監聽端口

nc/telnet 連接

[root@m01 ~]# nc -l 888 #m01服務器上
愛你哦
晚上好
你也好

[root@db01 ~]# nc 10.0.0.61 888 #db01服務器上
愛你哦
晚上好
你也好

8.練習題

http://www.lxweimin.com/p/2180face8381

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,055評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,365評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,346評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,889評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,118評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,637評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,558評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,739評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,980評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,347評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,702評論 2 370

推薦閱讀更多精彩內容

  • 1.安全技術 (1)入侵檢測與管理系統(Intrusion Detection Systems): 特點是不阻斷任...
    尛尛大尹閱讀 2,480評論 0 2
  • 一、設置主機防火墻。 開放: 服務器的:web服務、vsftpd 文件服務、ssh遠程連接服務、ping 請求。 ...
    大福技術閱讀 1,125評論 0 0
  • 詳述iptables五鏈 防火墻程序是工作在內核的TCP/IP的網絡協議棧的框架之上,通過網絡過濾可以實現入侵檢測...
    Net夜風閱讀 874評論 1 1
  • 防火墻的概念iptables的簡介iptables命令網絡防火墻NATfirewalld服務 一、防火墻的概念 (...
    哈嘍別樣閱讀 1,834評論 0 1
  • 梔子花開,美得純凈。 梔子花不用光鮮亮麗的顏色點綴自己,只有點點雪白,若有若無地隱匿在綠葉的后面,不過分張揚。走近...
    劉姿l閱讀 290評論 0 0