第 5 堂課 - 系統防火牆原理與實際設定
上次更新日期 2018/11/04
基本上,伺服器系統還是以軟體沒有問題、程式碼沒有問題為主要的資安解決方案,防火牆只是用來一個預防的方案而已, 也就是說,防火牆的目的是在於預防你沒有預計要放行的服務被攻擊~而不是用來抵擋已經放行的服務啦!這個是很重要的概念。 Linux 防火牆是直接整合在核心當中,效率非常的好!指令也很簡單~就讓我們來玩一玩!
- 5.1: 什麼是防火牆與防火牆的功能
- 5.2: CentOS 7 的防火牆服務
- 5.3: iptables 防火牆的實際建置
- 5.4: 本日練習
- 5.5: 課後練習
5.1: 什麼是防火牆與防火牆的功能
基本上,主機系統的防火牆,目的當然就是避免主機系統的某些服務被外來的攻擊程式所影響,因此才會放置一組程式在進行『防火牆』的功能。 那麼有哪些類型的防火牆,以及這些防火牆到底是如何運作的呢?就讓我們來一探究竟~
- 主機系統的防火牆分類以及運作方式
基本上,主機系統的防火牆軟體,主要分為兩大類:
- 軟體防火牆:透過某些特定的軟體功能,進行某些功能的抵擋。例如,有種軟體稱為代理伺服器 (proxy),這種軟體只能代理 http 或 https,經過特殊設定則可以進行 ftp 的服務。proxy 還能夠根據使用者傳輸的資料,進行網址列的文字分析,或者是網頁內容的分析, 透過這些分析則可以進行某些資訊的過濾 (例如率除掉某些色情文件等)。除此之外,包括防毒、防木馬軟體,有的也會提供過濾機制。
- 封包過濾防火牆:例如 Linux 的 iptables 或者是硬體防火牆內建的機制,大多數就是封包過濾。 所謂的封包過濾,就是直接分析 layer 2, layer 3, layer 4 等封包的表頭資料,進行封包上面資訊的放行與否的過濾行為。 這種分析是比較底層的,不是去分析封包內部資料,跟上面的軟體式防火牆不同。
但是,無論何種防火牆,其抵擋的機制大多是設定一堆流程與規則,讓封包要進入到本機前,需要通過這些規則的順序, 以達到放行或者是拒絕的程序。簡單的說,所謂的規則分析流程現象有點像底下的模樣:
如上所示,你的防火牆基本上共有 10 個規則,每種規則會針對某個網路封包特性做一些定義,當進入的封包確定符合該規則時, 封包就會被開始動作 (可能是放行,也可能是拒絕,看你的設定而定)。但是,如果進入的封包都沒有符合的規則時, 就會透過『預設政策』來決定是否放行。
- Linux 常見的封包過濾防火牆
在 Linux 上面,內建的防火牆機制就整合在核心 (作業系統層級),因此效能特別好。Linux 核心內建的防火牆機制,就是透過封包過濾。 因此,我們就針對封包過濾類型的防火牆來做個簡介。
要使用封包過濾行的防火牆,你得要先設定一些『放行或抵擋的規則』才行,這就有點像你要決定中午吃啥一樣, 先列出一些店家,然後開始依序挑選你想要的,找到之後,就會跑去吃,而不會在看該家店後面的其店家了。另外, 也像是你要外出去旅遊時,總得要有些清單列表給你參考,那所謂的防火牆規則就像那一條一條的清單就是了。
底下列出幾條常見的規則,同時請注意分析這些規則的順序喔!不能夠搞混的。
- 放行本機的網路界面 (lo, 就是 localhost 那片網卡)
- 放行 ICMP 這個封包檢測的功能 (例如 ping 就是其中一種 icmp 封包)
- 放行本機自己的回應封包 (就是本機自己向外要求的封包回應訊息,例如去 centos 官網後,官網回傳的訊息)
- 放行區域網路連線到自己本機的 ssh 服務要求。
- 放行來源為區域網路的所有要求
- 拒絕全部的連線
- 放行整個 Internet 連線到自己本機的 www 服務要求。
那這些規則是怎麼運用的呢?大致上是如下的分析與應用方式:
- 當有任何網路來源對你這部系統發起連線時,就需要通過上面的規則流程測試,而只要有任何一個流程通過, 後面的流程就不會被檢測 (重要的項目排在前面較佳)。
- 萬一發起連線的封包並沒有符合任何一條規則時,那系統就會使用預設政策 ( Policy ) 來決定該連線封包是否放行。
- 通常建議網路主機的預設政策為丟棄,亦即『關閉所有連線,開放特定服務』的設定機制較佳。
- 對自己『 ping localhost 』會通不會通?用到那條規則?
- 『 ssh localhost 』會通不會通?用到那條規則?
- 用戶端對我『 ping localhost 』時?
- 用戶端對我發起網路連線 (用瀏覽器連線我的 WWW 時)?
- 用戶端『 ssh 我的IP 』時?
- 我連線到 www.google.com 去搜尋資料時?
- 網際網路的用戶想要 ping 我的伺服器時
- 網際網路的用戶想要連接到我的 ssh 服務時
- 網際網路的用戶想要連接到我的 www 服務時
5.2: CentOS 7 的防火牆服務
為了簡化本機的防火牆設定,所以 CentOS 7 提供了一個新的 firewalld 機制來進行管理。不過,這個機制其實有點麻煩! 因此,我們還是比較傾向於使用舊式的 iptables 指令直接來執行與規劃即可!底下我們就分別來談談如何開啟/關閉這些服務吧!
- CentOS 7 的防火牆機制
如前所述,Linux kernel 就是使用 iptables 這個 netfilter 的防火牆機制,由於是核心提供的防火牆,所以效能特別好。 不過為了簡化主機的設定,因此 CentOS 7 提供了兩個管理機制,一個直接使用 iptables 來管理,一個則透過 firewalld 這個服務來管理。但是 firewalld 需要透過專屬的 firewall-cmd 這個指令來管理,在正常一般的管理行為中, firewall-cmd 較為簡易,但若有特別的規則時,則需要使用到 firewall-cmd 的 rich rule 來管理!其實學習 rich rule 才是王道!
事實上,最終 firewalld 還是透過核心的 iptables 來達成防火牆控制。因此,在學習防火牆機制行為上,個人還是建議先摸一下 iptables 較佳。 因為 CentOS 7 預設是使用 firewalld 的服務,而且防火牆服務只能啟用一個!因此,如果想要啟用 iptables 傳統服務,關閉 firewalld 就是必須要進行的任務了。首先,先來觀察一下 firewalld 有沒有啟用吧:
[root@localhost ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since 六 2018-11-03 22:56:23 CST; 2min 25s ago Docs: man:firewalld(1) Main PID: 746 (firewalld) CGroup: /system.slice/firewalld.service └─746 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid 11月 03 22:56:23 pc250.dic.ksu systemd[1]: Starting firewalld - dynamic firewall daemon... 11月 03 22:56:23 pc250.dic.ksu systemd[1]: Started firewalld - dynamic firewall daemon. 11月 03 22:57:21 pc250.dic.ksu firewalld[746]: WARNING: /etc/sysconfig/network-scripts/ifcfg-eth0:..
要注意的是上面出現的特殊字體,第一個特殊字體『enabled』代表開機時會啟用這個服務,第二個特殊字體『 active (running) 』 代表現在正在運作當中。現在讓我們來關閉這個服務,而且讓該服務不會再被啟用吧!
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) 11月 03 22:56:23 pc250.dic.ksu systemd[1]: Starting firewalld - dynamic firewall daemon... 11月 03 22:56:23 pc250.dic.ksu systemd[1]: Started firewalld - dynamic firewall daemon. 11月 03 22:57:21 pc250.dic.ksu firewalld[746]: WARNING: /etc/sysconfig/network-scripts/ifcfg-eth0:... 11月 03 23:02:45 pc250.dic.ksu systemd[1]: Stopping firewalld - dynamic firewall daemon... 11月 03 23:02:45 pc250.dic.ksu systemd[1]: Stopped firewalld - dynamic firewall daemon.
關閉了預設的防火牆之後,現在才來安裝舊的服務,同時啟動該服務!方法如下:
# 1. 先來安裝這個服務: [root@localhost ~]# yum install iptables-services # 2. 啟動這個服務: [root@localhost ~]# systemctl start iptables # 3. 開機也要啟動這個服務: [root@localhost ~]# systemctl enable iptables [root@localhost ~]# systemctl status iptables ● iptables.service - IPv4 firewall with iptables Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled) Active: active (exited) since 六 2018-11-03 23:06:08 CST; 14s ago Main PID: 2605 (code=exited, status=0/SUCCESS) 11月 03 23:06:08 pc250.dic.ksu systemd[1]: Starting IPv4 firewall with iptables... 11月 03 23:06:08 pc250.dic.ksu iptables.init[2605]: iptables: Applying firewall rules: [ OK ] 11月 03 23:06:08 pc250.dic.ksu systemd[1]: Started IPv4 firewall with iptables.
確認上面兩個特殊字體是 enable 與 active 的,那就代表 iptables 確實是啟動了。如果想要更進一步觀察,可以輸入 iptables-save 來看看情況:
[root@localhost ~]# iptables-save
# Generated by iptables-save v1.4.21 on Sat Nov 3 23:08:18 2018
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [24:2992]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sat Nov 3 23:08:18 2018
- 會影響防火牆的許多服務
由於虛擬化的技術被廣泛的使用,因此一部實體主機可以產生多個邏輯上面完全獨立的作業系統。這種方式對於主機硬體資源來說, 可以進行非常多有效的分配。因此,CentOS 7 預設已經啟動了這些虛擬化的服務。問題是,我們的系統原本就是虛擬系統, 因此無須這些服務。同時,這些服務也會產生一些防火牆規則,導致我們的防火牆學習產生一些困擾。
不過,因為我們的系統已經被鳥哥進行過改造,因此你不會有這方面的問題。不過,未來你自己架設 server 時, 其實這個問題是會存在的。為此,我們先依據底下的方式來產生這個問題,然後再來設法解決它囉! 先依序進行底下的任務:
[root@localhost ~]# systemctl start libvirtd [root@localhost ~]# virsh net-define /usr/share/libvirt/networks/default.xml [student@localhost ~]$ virsh net-start default [student@localhost ~]$ virsh net-list 名稱 狀態 自動啟動 Persistent ---------------------------------------------------------- default 啟用 no yes [student@localhost ~]$ iptables-save .... -A FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT -A FORWARD -i virbr0 -o virbr0 -j ACCEPT -A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -j REJECT --reject-with icmp-host-prohibited -A OUTPUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT ....
你不難發現,多了一大堆莫名其妙的東西!尤其是那個 virbr0 的怪咖!非常討人厭!那怎麼辦呢?沒關係,我們可以透過底下的方式來處理! 首先,你已經知道『使用 iptables-save 會產生一大堆 virbr0 的鬼東西』,這個是大前提!為了要處理掉這個 virbr0 , 我們就進行底下的動作流程囉!
# 1. 先檢查是否有名為 default 的虛擬化網路界面: [root@localhost ~]# virsh net-list 名稱 狀態 自動啟動 Persistent ---------------------------------------------------------- default 啟用 no yes # 2. 開始『關閉』這個虛擬化的網路界面 [root@localhost ~]# virsh net-destroy default 網路 default 已經刪除 # 3. 開始『開機不啟用』這個虛擬化的網路界面 [root@localhost ~]# virsh net-undefine default 網路 default 已經取消定義 # 4. 最終關閉不要的 libvirtd 這個虛擬化軟體囉! [root@localhost ~]# systemctl stop libvirtd [root@localhost ~]# systemctl disable libvirtd # 5. 最後,重新啟動防火牆,再次觀察,應該就會恢復正常囉: [root@localhost ~]# systemctl restart iptables [root@localhost ~]# iptables-save # Generated by iptables-save v1.4.21 on Sat Nov 3 23:29:51 2018 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [15:1412] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Sat Nov 3 23:29:51 2018
上面的練習對你來說,應該還是很重要的!因為,你會一直重複的遇到它!記得,未來有問題,回來這裡檢查看看囉!
5.3: iptables 防火牆的實際建置
從上個小節我們將 iptables 服務啟動,同時關閉了 firewalld 之後,就可以開始來嘗試處理防火牆了。不過,在開始之前, 你還是得要知道一下,所謂的防火牆是個什麼東西!基本上,網路都是『雙向』的,有來有往,因此, 你的防火牆至少就會有兩個大項目,一個是對內 (從外面來的),一個是對外 (從本機主動出去的)。那就來談一談:
- iptables 針對本機的工作鏈 (chain)
基本上,iptables 至少有三個基本的表格 (table),不過,我們這裡僅探討與本機有關的 filter (過濾) 這個表格就好。 針對本機的這個 filter 表格當中,至少有三條鏈,不過你只需要注意 INPUT, OUTPUT 即可!還有另外一個知道有 FORWARD 就是了。 稍微說明一下如下:
- 針對本機的防火牆表格是 filter (過濾) 這個表格
- filter 共有三個預設的鏈,分別是 INPUT, OUTPUT, FORWARD
- INPUT 任何進入本機使用本機服務的封包 (包括從伺服器端回傳的回應資訊),都會經過這個鏈
- OUTPUT 從本機主動發出的封包,包括回應給用戶端的訊息,都會經過這個鏈
- FORWARD 沒有進入本機,但是透過本機轉遞 (例如本機為路由器的角色時) 的封包,就會經過這個鏈
- 一般來說,在單純的伺服器環境下 (沒有開放讓其他用戶使用本機的 ssh 等本地端服務),只要管制 INPUT 鏈即可,OUTPUT 及 FORWARD 都可以直接放行。
- 觀察 iptables 的防火牆規則: iptables-save
透過 iptables-save 去觀察防火牆的規則~如下表所示:
[root@localhost ~]# iptables-save
# Generated by iptables-save v1.4.21 on Sun Nov 4 00:19:42 2018
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [22:2596]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sun Nov 4 00:19:42 2018
上面的規則如何觀察呢?基本上,你要注意到冒號 (:)、以及 -A 即可!底下稍微說明輸出的資訊:
- 出現 *filter 代表使用的是 filter 這個表格
- 出現 :INPUT 代表 INPUT 的 chain ,而 ACCEPT 代表預設政策為接受,後續的 :OUTPUT, :FORWARD 都是類似的意思
- 出現 -A INPUT 為 INPUT 的依順序的各個規則!因為 -A INPUT 共有 5 個,因此就是說,共有 5 個針對 INPUT chain 的規則之意。
- -A FOWARD 僅有一條規則
- 沒有出現 -A OUTPUT 代表沒有 OUTPUT 定義規則,亦即 OUTPUT 完全使用預設政策的意思。
在這個觀察中,你先知道星號 (*)、冒號 (:) 與規則順序 (-A INPUT) 即可!後面的相關規則,包括 -p [tcp|icmp]、 -p tcp --dport 22,就是一堆針對 layer 2, 3, 4 所制定的規則。至於最後的動作 (jump) 項目,大概就是接受與否 (-j ACCEPT, -j REJECT)。注意幾個英文字即可喔!
- 清除防火牆規則: iptables -[F|X|Z]
由於防火牆是有規則順序的,因此,常見的處理方法,就是將防火牆所有的規則通通清除,然後再依序一個一個規則加入, 這樣就能夠自動的排列好所有的規則了!如果沒有清除舊規則就加入新規則,那規則順序就會很混亂。清除規則需要寫三個指令, 因為三個指令分別清除的項目為:所有規則、自訂鏈名稱、統計資訊。
- 先清除所有的規則 (共有三個指令)
- 觀察防火牆規則,看看還有沒有 -A INPUT 出現呢?
- 設定預設政策: iptables -P INPUT [ACCEPT|DROP]
一般我們會指定的政策 (Policy) 大概都是『拒絕所有,開放特定』的方式,因此,預設的 INPUT 政策, 通常我們會指定為 DROP 的。至於 OUTPUT 與 FORWARD 則先指定為 ACCEPT 即可。
# iptables -P [INPUT|OUTPUT|FORWARD] [ACCEPT|DROP] # 定義預設政策 (政策僅能有 ACCEPT 與 DROP 喔!)
- 將 INPUT 定義為 DROP
- 將 OUTPUT 與 FORWARD 定義為 ACCEPT
- 處理完畢請觀察,確定設定沒有問題
- 使用 iptables 指令處理 Layer 3, 4 的防火牆規則語法
你知道 Layer 3 就是 IP 位址的相關規範,因此所謂的 Layer 3 就是來源與目標的 IP 位址規範。 如果是 Layer 4 的層級時,就會知道應該是要使用 tcp 或 udp 的來源與目標的埠口 (port number)。那如何使用 iptables 來規範呢? 基本上可以參考底下的語法:
# iptables [-A INPUT] [-i lo|eth0] [-s IP/Netmask] [-d IP/Netmask] [-p tcp|udp [--sport ports] [--dport ports]] [-j ACCEPT|REJECT|DROP]
來練習一下囉:
# 1. 讓 lo 這個內部迴圈測試網路卡為信任網卡: [root@localhost ~]# iptables -A INPUT -i lo -j ACCEPT # 2. 讓內部區網來源,假設為 192.168.1.0/24 ,可以完整的進入本機: [root@localhost ~]# iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT # 3. 讓本機的 http (port 80) 可以對外提供服務: [root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 4. 讓 icmp (就是 ping) 可以通行: [root@localhost ~]# iptables -A INPUT -p icmp -j ACCEPT # 5. 讓來自區網的來源,可以連線到本機的 ssh 埠口 (port 22): [root@localhost ~]# iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT # 6. 全部的進入的封包,全部都拒絕: [root@localhost ~]# iptables -A INPUT -j REJECT # 7. 最後來觀察一下喔: [root@localhost ~]# iptables-save
基本上,上面就是常見的防火牆規則制定方式~不過,還是有其他例外的情況~例如透過網路卡! 還是透過某些封包狀態來決定是否放行的依據!
- 狀態模組: 處理網路卡位址
如果需要使用到 layer2 的管制網路卡,那就得要載入 iptables 的模組 (就是你們常聽的外掛), 使用網卡模組的方法可以使用底下的方式來處理:
# 基本語法: [root@localhost ~]# iptables [-A INPUT] [[-m mac] [--mac-source aa:bb:cc:dd:ee:ff]] [-j ACCEPT|REJECT|DROP] # 讓來自 aa:bb:cc:dd:ee:ff 的這張網卡的任何封包,都可以進入到本機: [root@localhost ~]# iptables -A INPUT -m mace --mac-source aa:bb:cc:dd:ee:ff -j ACCEPT
- 狀態模組: 處理回應封包
一般來說,我們傳出去的網路封包從對方回傳的時候,都會給予一個確認的回函 (ACK 標籤),我們可以透過這些額外的表頭資料, 得知該封包是否是我們傳出去的回傳資料。既然是我們向外頭要的資料,當然得要讓該連線近來吧!於是, 就可以使用所謂的『封包狀態模組』,也就是 state 這個模組來處理!基本語法如下:
# iptables [-A INPUT] [-m state] [--state RELATED,ESTABLISHED] [-j ACCEPT|DROP|REJECT]
- ESTABLISHED:已經連線成功的連線狀態;
- RELATED:這個最常用!表示這個封包是與我們主機發送出去的封包有關
其實上面這個規則,對於本機來說,應該算是『最重要的』一個規則了!要有它才有網際網路啦! 一般來說,針對用戶端本機來說,最重要的幾條規則,大概就是:
- 本機內部 lo 成為信任裝置
- 針對 icmp 封包讓它進入本機
- 如果是本身提出的封包,回應封包要予以放行 (ESTABLISHED,RELATED)。
其他的規則大多則是針對本機作為伺服器之用的情況喔!針對用戶端,還真的這三條規則就很厲害了!
- 先將所有的規則、自訂鏈、統計資料全部刪除歸零
- 針對政策 (Policy) 設定: INPUT 作為 DROP、其他兩個作為 ACCEPT
- 針對 INPUT 的規則設定:
- 讓 lo 成為信任網卡
- 讓 icmp 封包可以進入本機
- 讓本機的回應封包可以進入本機
- 檢查你的 gateway 的網卡卡號,將網卡卡號放行
- 讓 ssh 只在屬於你的區域網路放行
- 將 https 針對 internet 全部放行
- 將全部的連線通通拒絕
- 將所有的規則設定儲存到 /etc/sysconfig/iptables 設定檔當中。
- 執行該檔案『 sh /root/firewall.sh 』
- 再以 iptables-save 觀察,所有的防火牆規則是否正確的執行了!
- 使用 systemctl restart iptables 重新啟動防火牆,再次 iptables-save 觀察防火牆是否持續存在。
5.4: 本日練習
現在來複習一下今日的動作,作為本日的點名與查驗資訊。請在目前的雲端機器上面完成底下的實做,要完成且讓老師檢查完畢後,才可以離開教室喔!
- 請先確認你的網路狀態如同第四堂課的內容!一定要跟第四堂課一樣!否則後續會出現很多問題!
- 實際設定好本機防火牆,重複更新你的 /root/firewall.sh 腳本檔案內容:
- 先將所有的規則、自訂鏈、統計資料全部刪除歸零
- 針對政策 (Policy) 設定: INPUT 作為 DROP、其他兩個作為 ACCEPT
- 針對 INPUT 的規則設定:
- 讓本機的回應封包可以進入本機
- 讓 lo 成為信任網卡
- 讓 icmp 封包可以進入本機
- 放行你自己的內部區域網路那個網域的所有連線要求
- 讓 ssh 只對外部的 172.16.0.0/16 這個區網放行
- 檢查你的 gateway 的網卡卡號,將網卡卡號放行
- 將 http 針對 internet 全部放行
- 將 https 針對 internet 全部放行
- 將全部的連線通通拒絕
- 將所有的規則設定儲存到 /etc/sysconfig/iptables 設定檔當中。
完成之後請告知老師你的學號與 IP 尾數,老師即可檢測你的設定狀態了。
5.5: 課後練習
請撰寫一個 word 檔案,檔名為:『 unit05-A050cxxx-你的名字.docx 』,內容回答下列問題,然後每週作業上傳到對應的 EP 上面去:
- 封包過濾式防火牆系統,主要大多是著重分析 OSI 七層協定的 Layer 2, 3, 4,請問:
- Layer 2, Layer 3, Layer 4 主要是什麼封包? (寫下封包名稱,如 ICMP...)
- 那上述的封包表頭,主要具有什麼重要的資訊?例如 Layer 3 的 IP 具有來源與目標的什麼這樣。
- (1)CentOS 7 提供了哪兩個防火牆的服務?(2)當重複的時候,這兩個以哪一個為主? (3)我們上課時,關閉哪一個?啟動哪一個?
- iptables 針對本機設定的預設表格為 filter,這個 filter (1)預設有幾條自訂鏈? (2)針對本機的管理主要是針對哪一條鏈去設計規則?
- 我們說,針對最陽春的本機防火牆設定,大概指的是哪三條設定?寫下來。
同場加映:不用上傳的資料,請 google 一下打字時,手指與鍵盤指法的對應,然後自由練習底下的資訊:
- 小寫的 a~z (abcdefg...xyz) ,共打 10 次
- 小寫的 0~9,a~z (012..89abcdefg...xyz) ,共打 10 次
- 不要啟動大寫燈,用組合按鍵輸入 A-Z (ABCD...XYZ),共 10 次
每天上課各練一次,最慢 10 天,你的打字就會嚇嚇叫了!