Try   HackMD

linux 網路安全管理 - 安全

防護

1. Firewall

防火牆是一個監控傳入和傳出網路流量的網路安全裝置,並依據規則對進出流量做存取控制, 在 linux 中常見的就是 iptables 與 TCP wrapper

iptables 與 tcp wrapper 的關係( iptables > tcp wrapper > service )

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

圖片來源: readhat - TCP Wrappers and xinetd

1.1. iptables

操作 linux 核心的 netfilter,可以從底層開始過濾更完全

1.1.1. iptables 在 linux kernel 核心的運作

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

圖片來源: Packet flow in Netfilter and General Networking

參照圖片: 封包進入 kernel 的 dataflow

1.1.2. 簡單的操作界面

iptables 設定相對複雜不易於學習,容易對資安或 linux 菜鳥造成心靈創傷

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

所以可以透過較淺顯易懂的操作界面來設定 iptables,以 ufw 為例

ufw
Uncomplicated Firewall ( ufw )
Ubuntu系統上預設的防火牆套件,規則設定指令簡單易讀

  • 通過與否
    • allow
    • deny
  • 管控對象
    • {port_num / service_name}設定 port

      ​​​​​​​​sudo ufw allow 80 # 允許 80 ​​​​​​​​sudo ufw allow 443 # 允許 443 ​​​​​​​​sudo ufw deny 3389 # 封鎖 3389 ​​​​​​​​sudo ufw deny 21 # 封鎖 21 ​​​​​​​​sudo ufw allow ssh # 允許 22
    • {port_num / service_name}/{tcp/udp}指定 protocol, 沒加 protocol 預設 udp & tcp 一起

      ​​​​​​​​ufw deny 53/tcp # 阻止通過 53 連接埠使用 tcp 協定連線本機
    • from {ip} 設定 IP

      ​​​​​​​​sudo ufw allow from 192.168.11.10 # 允許 192.168.11.10 的所有連線 ​​​​​​​​sudo ufw allow from 192.168.11.0/24 # 允許 192.168.11.1~192.168.11.255 的所有連線 ​​​​​​​​sudo ufw deny from 192.168.11.4 # 封鎖 192.168.11.4 的所有連線

參考:https://noob.tw/ufw/

uif Userfriendly Iptables Frontend,也是一種便於設定的 iptables 界面

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
參考:Ubuntu uif manpage

1.2. tcp wrapper

由 tcpd 所控制,攔截 inet.d.conf 的內容,只能過濾 application layer
但也因此可以過濾範圍擴至 host name
常見支援之服務: telnet、ssh、sendmail、ftp、pop3

1.2.1. 設定檔

/etc/hosts.allow 設定服務允許通過的來源 IP

/etc/hosts.deny 設定服務阻擋的來源 IP

判定順序

  1. /etc/hosts.allow: 通過
  2. /etc/hosts.deny: 擋掉
  3. 兩個檔案規則都不符合: 通過

規則格式 ( hosts.allow, hosts.deny 通用 )

  • 多個來源可用空格做區別
  • 網域表示法不支援遮罩 bit 數值表示( ex: 192.168.1.0/24 要用 /255.255.255.0)
{ 服務名稱 }: {IP, hostname, 網域}

Ex:
(規則) 本機全部的服務都接受, rsync 接受網域 192.168.1.0/24 與 10.0.0.100 其餘皆拒絕

/etc/hosts.allow

ALL: 127.0.0.1 rsync: 192.168.1.0/255.255.255.0 10.0.0.100

/etc/hosts.deny

rsync: ALL
1.2.2 優點與限制

優點

  • 簡單好設定( hosts.allow / deny )
  • 可以用 hostname 設定

限制

  • 作用在 application layer 無法往下過濾
  • 支援限定的服務

支援服務的條件

  • 由 super daemon (xinetd) 所管理的服務
    • 即設定檔在 /etc/xinetd.d/ 裡面的服務
  • 有支援 libwrap.so 模組的服務

libwrap查詢方式
for name in {要查詢服務名稱}; do echo $name;ldd $(which $name) | grep libwrap; done

EX:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

1.3 iptables 與 tcp wrapper 的作用 layer

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

2. IDS

通過監測網路流量來偵測惡意攻擊的軟體
當發現有入侵跡象會紀錄並通知系統管理員

2.1. IDS 種類

2.1.1. HIDS (主機型入侵偵測系統, Host-based IDS)
  • 位置:安裝於要保護的主機中
  • 分析主機內部活動( 系統 log, 系统Process, 文件完整性 )
  • 缺點:佔用一定的系統資源
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
2.1.2 NIDS (網路型入侵偵測系統, Network-based IDS)
  • 位置:安裝於被保護的網段中( 可以架設在防火牆的: 內 or 外 or 內 + 外 )
  • 分析經過這網段的所有封包
  • 缺點:需要多一台機器運作 IDS

Out-of-Band
機器外加於原先的網路架構
此圖 IDS 的實現是透過 switch, router 等設備設定 port mirror 把所有流進的複製一份給 NIDS 做偵測用
好處是當 NIDS 主機掛掉,不會癱瘓整個網路,可以降低風險

2.2. 偵測方式

2.2.1. 不當行為偵測(misuse detection)
  • 特徵比對(signature-based detection),利用已知的攻擊事件建立出各種攻擊特徵資料庫
  • 優: 誤判率較低
  • 缺: 偵測率較低(新的攻擊入侵型態就抓不到)

常見的 system 入侵徵兆

  • 修改系統軟體與設定檔案
  • 系統 crash 或 reboot
  • log 太短或是不完整
  • log 有奇怪的 timestamp
  • log 的 permission 或 owner 很奇怪
  • 不熟悉的 process

常見的 network 入侵徵兆

  • 不斷的偵測機器上有提供的服務
  • 從奇怪的地方連線過來
  • 不斷的嘗試從遠端 host 連線過來
2.2.2. 異常偵測(anomaly detection)
  • 透過統計模型 or 機器學習的方式建立正常行為的模式基準, 行為與之差異過大就視為異常行為
  • 優缺點與特徵比對相反
2.2.3. 常見 IDS 介紹
IDS HIDS - NIDS Unix Linux Windows MacOS
Snort NIDS V V V 老牌 IDS,有強大的社群支持
Suricata NIDS V V V V Snort的替代品,可以繼承 Snort 規則
Bro NIDS V V V 陡峭的學習曲線, 能夠檢測其他入侵檢測工具可能會忽略的異常和模式
OSSEC HIDS V V V V 功能最全面的HIDS, 系統資源的占用非常小
Fail2Ban HIDS V V V 可以保護電腦伺服器免受蠻力攻擊

3. IPS

入侵防禦系統 ( Intrusion Prevention System ),可視為IDS功能的延伸
用以彌補 IDS 功能不足,偵測到入侵會主動防禦

3.1. 種類

3.1.1. NIPS

透過偵測流經的網路流量,提供對網路的安全保護,一旦辨識出入侵行為,NIPS 封包到達主機前切斷連線

3.1.2. HIPS

主機型入侵防禦,用於保護伺服器和主機系統不受入侵行為的攻擊,會將攻擊封包丟棄

4. IDS / IPS / Firewall

Firewall

  • 管控進出

IDS

  • 偵測,有攻擊會通知 firewall 抵擋
  • 可以阻擋合法網路連結 ( DDOS )
    • 透過特徵比對,防禦可以不用限定在個別的 IP 封鎖
  • 可以分析內網的流量, 防止內部攻擊

IPS

inline裝置本身也是網路架構的組成分子,除非要支援 pass_through 否則掛掉造成網路癱瘓

P.S. 對比 2.1.2 Out-of-Band

發現問題(分析 log )


圖片來源: Log Analytics, Log Mining and Anomaly Detection with Deep Learning

Log 的組成要件

  • 以時間為主軸
  • 發起 process
  • 事件描述

參考資料: Log分析入門

syslog 的欄位

rsyslogd 的 syslog 格式

  • TIMESTAMP
    • 根據 RFC 3164 定義格式是 Mmm dd hh:mm:ss
    • Mmm 是英文的月份縮寫
      • Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
    • hh:mm:ss local time
      • hh 是 24 小時制,從 00 - 23
      • mm, ss 從 00 - 59
  • HOSTNAME
    • 用於辨別發送訊息的機器
    • 一般是 hostname,如果沒有會用 IP address
    • 如果有多組 IP,則以傳送訊息的 interface 的 IP address 為準
  • APP-NAME[PROCID]
    • 用於辨別發送訊的 devicce 或 application 資訊
    • PROCID process 在系統的 PID
  • MSG
    • 在 RFC 3164 被稱為 Content
    • 自由格式
    • 描述事件的資訊
    • 根據 RFC 5424 定義字元集 (character set) 需要是 UNICODE
    • RFC3629 指定會以 UTF-8 進行編碼(encode)


參考資料: RFC5424 - The Syslog Protocol
參考資料: RFC3164
參考資料: Wiki - syslog
參考資料: Linux Logging Basics
參考資料: syslog 詳解

RFC5234 定義的 syslog 所有訊息格式


圖片來源: RFC5424 - The Syslog Protocol

log 會有哪些訊息

以常見的 log 檔案做說明

/var/log/syslog/ system log,所有訊息的匯集地

/var/log/cron.log
crontab 排程有沒有實際被進行? 進行過程有沒有發生錯誤?你的 /etc/crontab 是否撰寫正確?

/var/log/auth.log
牽涉到『需要輸入帳號密碼』的軟體,那麼當登入時 (不管登入正確或錯誤) 都會被記錄在此檔案中

/var/log/wtmp, /var/log/faillog
記錄正確登入系統者的帳號資訊 (wtmp) == 指令 last
錯誤登入時所使用的帳號資訊 (faillog)

/var/log/lastlog
可以記錄系統上面所有的帳號最近一次登入系統時的相關資訊, 對應指令lastlog

/var/log/utmp
當前登入系統的情況, 即指令 who, w

/var/log/{服務名稱}
不同的網路服務會使用它們自己的 log 檔

log 是怎麼產生的:rsyslogd

在 linux 是以 rsyslog.service 來紀錄 log 檔, 產生的各個資訊的登錄

確定服務開啟

運行中的程式
ps aux |grep rsyslog
服務啟動狀況
systemctl status rsyslog.service

rsyslogd 設定檔
位於/etc/rsyslog.conf/etc/rsyslog.d/*

設定 服務 產生相關資訊哪些 訊息等級 需要紀錄,以及其 對應位置

服務名稱


圖片來源: 鳥哥 - 認識與分析登錄檔

訊息等級
訊息嚴重性 0 - 7, 愈嚴重的等級數值愈小

. 該訊息等級 & 更嚴重的訊息等級(等級數值 <= )
.= 指定的訊息等級(等級數值 =)
.! 嚴重低於這個等級(等級數值 > )


圖片來源: 鳥哥 - 認識與分析登錄檔

語法
ex: /etc/rsyslog.d/50-default.conf

log 好醜整理一下

​​​​透過字串處理工具過濾 log 內容,並整理成更適合閱讀的格式

awk
以 column 為單位擷取文字,以 ${col_num} 的格式表現

通常會搭配 print 輸出(感覺是類似 echo 就是 awk 中輸出的指令)
cat /var/log/nginx/access.log.1 |awk '{print "IP="$1, "\tRequest="$6$7$8$9}'

Perl

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
待補全
Perl 是由 Practical Extraction Report Language 所組成
以 C 語言開發而成的 Script
開發的目的是為讓報表處理的工作變得更方便
融合了 C、sed、awk 和 sh 的特色
當初開發是在 Unix 的環境可以很好的支援 Unix 體系的作業系統
可以在 shell 直接執行

perl -E 'say("hello")

hello

perl -E 'say(100*100)

10000

BT 補充
是非常有彈性的語言(就像是詩)
很多程式語言都有其限制,但 Perl 唯一的限制只來自於使用者的想像力

sed
可以將輸入資料做編輯 ( 新增, 修改, 刪除, 取代 ) 後輸出

{line_num}d 刪掉

{line_num}a {要增加的 txt} append 在指定行後

{line_num}i {要增加的 txt} insert 在指定行前

{line_num}c {取代內容} 取代指定行的內容

{line_num}p 列出指定行的內容(建議加入參數 -n)
沒加-n


-n

sort
將輸入內容做排序輸出的工具

-o {輸出檔案} 將排序後的資料輸出到檔案

-fu 刪去重複內容(不分大小寫)

-t {分隔符號} -k {欄位號碼} 指定排序欄位

-M 按照英文月份排序
非英語系系統要加上參數LC_ALL=C

合併文件


不排序合併(-m)

uniq
處理重複的工具

刪去重複後輸出

計算出現次數

使用 fail2Ban 抵擋 暴力破解法 與 DNS DDOS

暴力破解法

又稱為窮舉攻擊(英語:Exhaustive attack),是一種密碼分析的方法,即將密碼進行逐個推算直到找出真正的密碼為止

方式

  • 字典暴力破解:有一個字典檔,裡面包含了一些可能常見的密碼組合,再利用字典檔去進行暴力破解。

  • 純粹暴力破解:嘗試所有組合

彩虹表攻擊

常用於破解加密過的密碼雜湊。彩虹表指的是 hash 與 原始值 對照,透過擷取封包或其他途徑取得的密碼 hash 值,對照彩虹表破解密碼

DNS DDOS 攻擊

DoS (Denial of Service),為駭客利用大量偽造且無意義的封包,藉以消耗被攻擊者的網路頻寬與系統資源,導致網路癱瘓,無法提供正常的服務。DoS是採一對一的攻擊方式

DDoS ( Distributed Denial of Service ,分散式阻斷服務攻擊)為 DoS 的延伸主要利用分散於不同地方的多部電腦主機,發送大量的偽造封包,進而達到癱瘓網路電腦主機伺服器的目的

DNS DDOS 攻擊

  • 基本洪水攻擊:這種攻擊會送出許多 DNS 請求到 DNS 伺服器上,企圖耗盡這些伺服器的網域名稱解析器,以及快取資料庫資源。

  • 遞迴式洪水攻擊:攻擊者會對 DNS 伺服器,送出並不存在 DNS 快取資料的網域名稱解析請求,增加 DNS 伺服器與網路頻寬的負擔。

  • DNS反射(reflection)攻擊: 攻擊者偽造成攻擊目標 IP 不斷向 DNS 發出 request,因為 DNS response 相對 request 是大的,如果攻擊目標一次收到大量 DNS server 的回覆封包,造成攻擊目標癱瘓

fail2ban

Fail2ban 是一套以 Python 語言所撰寫的 GPLv2 授權軟體,藉由分析系統紀錄檔,並透過設定過濾條件 (filter) 及動作 (action),當符合我們所設定的過濾條件時,將觸發相對動作來達到自動化反應的效果 (如封鎖來源 IP、寄信通知管理者、查詢來源 IP 資訊等)
可以防止一些常見的服務被攻擊 ex: SSH, ftp, apache

原理

  • 分析 log 檔案 ( 定義 filter ),把疑似攻擊的連線封鎖( action )

安裝
sudo apt install fail2ban

設定檔結構

  • jail.conf 設定 filter 與 action 的關聯性, 建議自定義寫在 jail.local, jail.conf 在系統更新或升級的時候可能會變動
  • filter.d/ 存放 filter 的設定檔, filter 定義攻擊篩選條件
  • action.d/ 存放 action 的設定檔, action 定義後續執行動作 ex: 「sendmail 寄信通知」、「iptables 阻擋來源位址」、「使用 whois 查詢來源 domain 資訊」


圖片來源: 清華大學 - Fail2ban

(lab) 阻擋在 1 min 內 ssh 錯誤嘗試 3 次

/etc/fail2ban/jail.local

[sshd-hello] enabled = true # 啟用 ssh port = ssh filter = sshd logpath = /var/log/auth.log # log檔查詢位置 maxretry = 3 # 最高容忍錯誤嘗試次數 findtime = 60 # 計次期間(s): 通常 1 min, 1s 之內 bantime = 300 # 封鎖時間

重啟 fail2ban
sudo service fail2ban restart

查看運行中的所有 jail
sudo fail2ban-client status

運行結果

[sshd] 中沒有對應 action 設定會參照 [DEFAULT]

是使用 iptables 的規則去阻擋入侵, 所以可以在 iptables 的 list 中看到

解除封鎖 IP ( 不小心鎖錯人

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
)
sudo fail2ban-client set {jail_nmae} unbanip {要解鎖IP}

SYN Flood

TCP 連線時,client 端送 SYN 到伺服器,伺服器會回覆 SYN+ACK,並該 request 放進 Half-Open Queue,此時稱為半連接 ( Half-Open )
該 request 會在 Queue 中直到伺服器收到 ACK 回覆才算完成(establish)
如果伺服器一直沒有收到 ACK,會在超時重傳 SYN+ACK

SYN Flood 則是攻擊者傳送多個 SYN 請求並不給予回覆,直到塞爆 Queue ,導致伺服器無法負荷正常連線,是常見的 DDOS 攻擊

SYN-flood 塞爆 Queue 示意圖


圖片來源 - SYN-floods and SYN-cookies animated

tcp header


圖片來源: NotFalse 技術客 - TCP 三向交握 (Three-way Handshake)

SYN cookies 技術可以在伺服器半連接 ( Half-Open ) 停佇列已滿的情況下仍能處理新的 SYN 請求

SYN cookie 開啟時,SYN request 並不會被放進 Queue 中,而是將相關訊息做成 cookie 塞進 SYN+ACK 封包
SYN cookies 會將來源 IP, Port, timestamp 等與這次握手相關的訊息進行處理成為回覆 SYN+ACK 封包中的 sequence number
在伺服器收到 client 端 ACK 回覆,再取出 ACK_num - 1 還原 sequence num
進行特定比對,成功即完成三項交握。

  • t timestamp mod 32 成 5 bit
  • m SYN Queue 中的 MSS (maximum segment size),會 encode 成 3 bit
  • s IP, port, timestamp相關資訊做 hash 成 24 bit,用於收到 ACK 時驗證

收到 ACK 後會做的事情


圖片來源: NotFalse 技術客 - TCP 三向交握 (Three-way Handshake)

將 ACK_num - 1 還成原本的 SYN

  1. 確認 time out
  2. s 確認正確性
  3. 重建 SYN Queue

開啟 ( 預設已經開啟 )
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

使用 PortSentry 抵擋惡意 Port Scanning

惡意 port Scanning

目的:找出攻擊目標提供服務的 port 以進行攻擊
判別方式: 通常會以短時間內每個 port 都戳一次(壞)

PortSentry

透過監聽指定 port 確認是否被惡意 scan,會配合 tcp_wrapper 阻擋惡意 host

重要檔案

  • /etc/portsentry/portsentry.conf 主設定檔

  • /etc/portsentry/portsentry.ignore 要忽略的 IP,設定永遠不會被 ban 的 host (每次 restart 會被 rebulid, 參照 ignore.static 動態產生 )

  • /etc/portsentry/portsentry.ignore.static static IP ignore,當 restart 的時候,會根據這份檔案設定的子網路( IP/netmask ) 查詢指令 ifconfig -a 動態抓取 IP 並 rebuild 要 portsenty.ignore,所以要設定忽略名單是編輯這份檔案

  • /etc/default/portsentry 攸關 portsentry 啟動的選項 ex: portsentry -tcp

  • /etc/init.d/portsentry Start 或 Stop portsentry deamon 的 script ( 腳本 )

    • 使用方式
      • /etc/init.d/portsentry start
      • /etc/init.d/portsentry stop
      • /etc/init.d/portsentry restart
  • /var/lib/portsentry/portsentry.blocked.tcp & /var/lib/portsentry/portsentry.blocked.udp
    被阻擋的 host 名單 ( daemon reload 後會被清空)

  • /var/lib/portsentry/portsentry.history 紀錄曾經被 blcok 的 host , 包含 udp 與 tcp

設定 portsenrty 的 protocol mode

In file /etc/default/portsentry

TCP_MODE= tcp / stcp / atcp UDP_MODE= udp / sudp / audp
  • tcp/udp

  • stcp / sudp

  • atcp/audp

    • advanced tcp

    • 監控 " 所有 " 小於設定值的 port ( 官方建議數值不要大於 1024 )

    • Advanced tcp mode 的排除不掃的名單

      default config 預設不掃的 port 與功用補充

      113 特定 TCP 連線的使用者認證 ( ident protocol ),舊的伺服器身分辨識系統

      139 netBIOS session service,提供了一個可靠的雙向有序資料給兩個NetBIOS

      137 netBIOS name service

      138 netBIOS datagram distribution service ( send, recieve, broadcast)

      520 routing information protocol for UDP

      67 Bootstrap protocol server. Used by DHCP servers to communicate addressing information to remote DHCP clients

      指令查詢 port
      /etc/service

基本操作

  • 啟動

    • 法一 service portsentry start
    • 法二 /etc/init.d/portsentry start
  • 查看執行狀況

    • 服務運行狀況 service portsentry status

    • process 運行狀況 ps -ef | grep -v grep | grep portsentry
      (正確開啟時 ps 狀況如下)

(lab) VM 使用 nmap scan 主機 port

注意 VM 網路不可以選擇 NAT

VM scan 本機 port
nmap -p 1-65535 -T4 -A -v -PE -PS22,25,80 -PA21,23,80 {本機IP}

nmap參數說明

-PA ACK ping

-PS SYN ping

-PE Echo ping

防火牆通常會設定阻擋 ICMP ping,所以由外部向內連線的 SYN ping (PS) 會無法通過
而 ACK ping (AP) 會被誤認為回應的 ACK 封包,有時可以通過
但如果有狀態確認 (stateful) 的防火牆會阻擋非預期封包,則該法也會被阻擋
所以通常會採用 PA PS PE 一同使用的方式提高機率

T{0-5} timing template


圖片來源: NMAP.ORG - Timing Templates

VM scan 本機的 port 的結果(沒有開啟 portsentry 防護)

VM scan 本機的 port 的結果(本機開啟 portsentry)

開啟主設定檔啟動 block (將 0 > 1)
sudo vim +135 /etc/portsentry/portsentry.conf

port scan 會出現在 /var/log/syslog

被 ban 跡象
查看 routing table route -n


/var/lib/portsentry/portsentry.blocked.tcp

/var/lib/portsentry/portsentry.history

/etc/hosts.deny

VM 發出 request 被拒絕 ( ping, ssh, telnet 皆被拒 )

誤判 ban 錯 host 解除封鎖方式
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

( PS: 先 stop service,設定好再 start )

  1. (reload 後紀錄會不見)排除欲解除 IP 複製一份目前 blocked ip list /var/lib/portsentry/portsentry.blocked.tcp
    grep -v {解封 IP} portsentry.blocked.tcp | sudo tee portsentry.blocked.tcp.new

  2. 直些編輯 hosts.deny 或 排除欲解除 IP 複製一份目前被 deny 的 host /etc/hosts.deny
    grep -v {解封 IP} hosts.deny |sudo tee hosts.deny.new

  3. 刪除 routing table 中關於封鎖欲解除 IP 的規則
    route del -host {解封 IP} reject