使用 AIX TCP/IP 過濾功能設置防火牆

簡介html

一個 POWER 服務器具備承載上百個 LPAR 或分區(一個分區就是操做系統安裝的一個獨立實例)的處理能力,這意味着,虛擬化功能讓您能在一個物理機器中擁有上百個服務器。若是這上百個服務器在處理 Internet 或其餘敏感的數據,那麼您可能想要在其中設置一些防火牆規則做爲額外的安全層(以及網絡防火牆和***防護設備)。web

本文從簡短回顧 TCP/IP 網絡開始。若是您熟悉 TCP/IP 及其工做方式,那麼能夠跳過下一節。接下來,您還將回顧在 AIX 機器中啓用並設置 TCP/IP 過濾功能須要用到的包、步驟和命令。最後,您要使用第一節中講述的概念,在示例場景中進行配置。安全


TCP/IP 回顧網絡

TCP/IP 是賦予網絡生命的精髓。經過網絡傳輸的數據被分割成小塊,稱爲 「包」 或 「IP 包」(表示 Internet Protocol 包)。當傳輸信息的時候,它被數據發送者分紅包,並標有源和目標電腦的信息,而後經過網絡發送。架構

如今咱們從更高的層次看看網絡包的結構是怎樣的。根據通訊所使用協議的不一樣,您可能會處理如下的 IP 包:app

  • 普通 IP 包IP 數據報:IP 包可用來封裝如下任何協議。一般狀況下,在網絡中看不到普通 IP 包。可是可使用 IP 包中傳輸的信息建立防火牆過濾。
  • ICMP 消息:ICMP 是用來報告和診斷網絡問題的協議。生成 ICMP 消息的最多見命令是 ping,它用來測試是否能鏈接到某個設備上。能夠配置過濾功能來過濾掉某些 ICMP 包,例如,您可能想要防止某些 ICMP 流量發送到與 Internet 相連的服務器上。
  • UDP 包用戶數據報:UDP 是不可靠、無鏈接的協議。UDP 數據包可能會丟失,或者不按順序發送給接收的應用程序;必須在應用程序層進行錯誤處理。因爲協議棧執行的控制少,其優勢是處理時間短、延時少,並且數據傳輸更快。有一些熟知的服務就是基於 UDP,如 DNS 查詢、TFTP 和 VoIP。
  • TCP 包:TCP 是可靠的、面向鏈接的協議。TCP 段能保證以發送時的順序進行交付,代價是須要額外的包來創建和完成鏈接,且協議棧要執行更多的處理來確保這一點。有不少熟知的服務依賴於 TCP:HTTP(web 流量)、SMTP(郵件流量)、FTP(文件傳輸)、SSH (Secure Shell)、Telnet 及其餘。

通常來講,您的服務器只提供其中一項或幾項服務,所以您可能想只容許您所提供的服務的流量。jsp

剖析 ICMP、TCP 和 UDPtcp

如下表格顯示了不一樣類型的網絡包的結構,更重要的是,您能夠看到,哪個是容許咱們基於此字段內容過濾包的 AIX 過濾管理命令的命令行選項。在稍後對過濾所使用的 AIX 命令進行分析時會用到這些命令行選項。ide


表 1 – IP 包格式

比特位 0-15 16-31
0 版本 (-v) IHL 服務類型 總長度
32 標識 標誌 (-f) 分段偏移
64 使用期限 協議 (-c) 報頭檢驗和
96 源地址 (-s)
128 目的地址 (-d)
160 選項 邊距

表 2 – ICMP 格式
比特位 0-15 16 -31
0 類型 (-o / -O) 編碼 校驗和
32 IP 報頭 + 64 位原始數據報

表 3 – UDP 格式
比特位 0-15 16-31
0 源端口 (-o) 目標端口 (-O)
32 長度 校驗和

表 4 – TCP 格式
比特位 0-15 16-31
0 源端口 (-o) 目標端口 (-O)
32 序列號
64 確認號
96 偏移 保留 標誌 窗口
128 校驗和 緊急指針
160 選項 邊距
192 數據


AIX 過濾功能簡介

某些狀況下,您可能想要阻止某些包到達其目的地,或者只讓某一些包到達。

須要的包

一些常見的場景包括,只容許來自信任源的鏈接、阻止鏈接到服務器未提供的服務,以及只容許鏈接到特定服務。在這些狀況下,您均可以使用 AIX 操做系統附帶的 TCP/IP 過濾功能。

TCP/IP 過濾功能包含在 IPSec 包中,所以檢查是否存在的最簡單的方法就是用 lslpp –l 列出已安裝的包,並驗證是否有如下兩個包:

bos.net.ipsec.keymgt
bos.net.ipsec.rte

 

IPsec 是用來建立服務器之間加密通訊通道的協議,此通道也常被稱爲隧道或 ××× 隧道。本文不會詳細討論 IPsec,若是想要在您的環境中使用 IPSec,要保證已安裝如下包:

bos.msg.LANG.net.ipsec 
bos.net.ipsec.websm 
bos.crypto-priv

 

有關 IPSec 的更完整的描述,您能夠參考本文 參考資料 一節中的 Security Guide 文檔。

命令參考

要使用 TCP/IP 過濾功能,只要用到幾個命令,本節將加以說明,下節將會用到。若是您熟悉 AIX 命令,您將會看到它們很相似,在名稱前都有描述性前綴,如 mklsrm,後面還有 filt 後綴。

  • lsfilt:列出表中的過濾規則。建立以後,每條規則都會被分配一個編號,能夠輕鬆地使用該命令看到。
  • genfilt:向表中添加一條過濾規則。這是用來建立新過濾的命令。若是未使用 –n 參數來指定位置,那麼新的規則將會被添加到表格末尾。
  • chfilt:用來改變現有的過濾規則。您須要提供規則 ID 以指明要修改哪條規則。規則 1 是默認規則,沒法使用此命令修改。
  • rmfiltrm 後綴對全部 UNIX 管理員來講應該很熟悉。您可使用此命令在任什麼時候候根據規則 ID 來刪除過濾規則。
  • mkfilt:這是一個重要的命令,它能夠激活或停用表中的過濾規則,啓用或禁用過濾日誌,並改變默認規則。若是要使對過濾表的更改生效,須要在運行此命令時帶上一些參數。

過濾策略的方法

當談到 TCP/IP 過濾中的策略時,一般是指兩種可能的安全方法:

  • 默認拒絕全部流量,只容許您許可的。
  • 默認容許全部流量,只拒絕您限制的。

從安全角度出發,拒絕全部策略是最安全的。可是若是您是配置正在使用中的服務器,那麼您在運用此策略前必定要很是謹慎,防止產生沒必要要的服務中斷。對於新的服務器,從開始就使用此策略要簡單一些,由於在投入使用以前有足夠的時間進行測試。

容許全部策略更加寬鬆,並且它適用於您有生產服務並想要保護一個特定服務的狀況。


示例場景

在本節中,我將會展現一個簡單的示例場景,以此做爲在服務器上實現其餘過濾配置的良好開端。

場景

您的公司在 p710 Express 服務器的 AIX LPAR 上部署了一個新的內網應用程序,公司的安所有門要求限制對 Web 應用程序的訪問,只容許來自地址爲 172.16.10.5 的內部代理服務器的流量。Web 應用程序監聽 TCP 端口 80 和 443。安所有門提出第二條要求,只容許與鏈接到管理網絡 10.1.1.x 的接口的 SSH 鏈接。安所有門強調,這些要求是強制性的,與服務的的全部配置無關,做爲額外的保護層。服務器的 IP 地址是 172.16.10.45 和 10.1.1.45(第一個是提供給用戶的地址,第二個是供管理員登陸服務器並執行維護任務使用的)。下列圖形顯示了此場景。


圖 1:示例場景
示例場景演示
 

實現 – 設置規則

首先啓用服務器中的 IPSec 以啓用 IP 過濾。爲此,使用 ipsec4 的 smitty 快速路徑:

# smitty ipsec4

 

選擇 Start/Stop IP Security 並按下 Enter 鍵:

Move cursor to desired item and press Enter
    Start/Stop IP Security
    Basic IP Security Congiguration
    Advanced IP Security Configuration

 

選擇 Start IP Security 並按下 Enter 鍵:

Move cursor to desired item and press Enter
    Start IP Security
    Stop IP Security

 

從如下各項中選擇 Start IP Security 並按下 Enter 鍵:

Type or select values in the entry field
Press Enter AFTER making all desired changes              [EntryFields]
    Start IP Security                    [Now and AfterReboot]                  
    Deny ALL Non0Secure IP Packets                        [No]  

 

以前的步驟演示瞭如何啓用 IPSec,從而利用 IP 過濾功能。成功完成後,會顯示以下內容:

Command:OK    stdout: yes    stderr: no
 
Before command completion, additional instructions may appear below.

ipsec_v4 Available
Default rule for IPv4 in ODM has been changed.Successfully set default action to PERMIT 
 

 

若是在這裏看到錯誤,那麼多是系統丟失了某些在 須要的包 一節中提到過的包。確認 IP Sec 是否在系統中啓用的一個方法是使用以下命令:

# lsdev -l ipsec_v4
ipsec_v4 Available  IP Version 4 Security Extension

 

對於日誌功能,決定要記錄哪些事件時要很是慎重。像 「記錄全部內容」 這樣的策略可能會變成填寫日誌文件系統的噩夢,甚至可能對服務器形成反作用。要理性對待日誌策略。在此場景中,只要記錄被過濾功能拒絕的包,所以日誌將會幫助您識別未受權的鏈接源。日誌是由每條規則中的 -l(小寫 L)參數控制的,其後是 Y 或 N(Yes 或 No)。

如今可使用 lsfilt 命令來查看建立的默認規則。不要急着修改默認規則,先搞懂它們的用途和影響。

如今,建立符合安所有門要求的規則。

咱們首先建立限制對管理網絡的管理訪問的規則。

## Rules to allow authorized administration traffic
# genfilt -v 4 -a P -s 10.1.1.0 -m 255.255.255.0 -d 10.1.1.45 -M
255.255.255.255 -g N -c tcp -o gt -p 1023 -O eq -P 22 -r L -w I -l 
N -f Y -i all
Filter rule 3 for IPv4 has been added successfully.
# genfilt -v 4 -a P -s 10.1.1.45 -m 255.255.255.255 -d 10.1.1.0 -M 
255.255.255.0 -g N -c tcp/ack -o eq -p 22 -O gt -P 1023 -r L -w O -l
N -f Y -i en1
Filter rule 4 for IPv4 has been added successfully.

## Rules to deny and log unauthorized administration traffic. 
## Note that we add one rule per server address to have 
## independence from service configuration.
# genfilt -v 4 -a D -s 0 -m 0 -d 10.1.1.45 -M 255.255.255.255 -g N -c 
tcp -O eq -P 22 -r L -w I -l Y -f Y -i all
Filter rule 5 for IPv4 has been added successfully.
# genfilt -v 4 -a D -s 0 -m 0 -d 172.16.10.45 -M 255.255.255.255 -g N 
-c tcp -O eq -P 22 -r L -w I -l Y -f Y -i all
Filter rule 6 for IPv4 has been added successfully.

 

以上規則實現了管理員鏈接的目標。請注意,儘管我故意在第 1 條、第 3 條規則留下空擋,不限制 en1 的接口。我這麼作是爲了展現如何使用 chfilt 命令來修改已有的規則,以下所示:

# chfilt -v 4 -n 3 -i en1
Filter rule 3 for IPv4 has been changed successfully.#

 

如今咱們添加規則來限制來自內部代理服務器 172.16.10.5 對內網應用程序的訪問。

## Rules to allow traffic between Proxy and Web Application
# genfilt -v 4 -a P -s 172.16.10.5 -m 255.255.255.255 -d 172.16.10.45 
-M 255.255.255.255 -g N -c tcp -o gt -p 1023 -O eq -P 80 -r L -w I -l 
N -f Y -i en2
Filter rule 7 for IPv4 has been added successfully.
# genfilt -v 4 -a P -s 172.16.10.45 -m 255.255.255.255 -d 172.16.10.5 
-M 255.255.255.255 -g N -c tcp/ack -o eq -p 80 -O gt -P 1023 -r L -w O 
-l N -f Y -i en2
Filter rule 8 for IPv4 has been added successfully.
# genfilt -v 4 -a P -s 172.16.10.5 -m 255.255.255.255 -d 172.16.10.45 
-M 255.255.255.255 -g N -c tcp -o gt -p 1023 -O eq -P 443 -r L -w I -l N 
-f Y -i en2
Filter rule 9 for IPv4 has been added successfully.
# genfilt -v 4 -a P -s 172.16.10.45 -m 255.255.255.255 -d 172.16.10.5 
-M 255.255.255.255 -g N -c tcp/ack -o eq -p 443 -O gt -P 1023 -r L -w 
O -l N -f Y -i en2
Filter rule 10 for IPv4 has been added successfully.

## Rules to reject traffic to the Web Application not coming from the Proxy
# genfilt -v 4 -a D -s 0 -m 0 -d 172.16.10.45 -M 255.255.255.255 -g N 
-c tcp -O eq -P 80 -r L -w I -l Y -f Y -i all
Filter rule 11 for IPv4 has been added successfully.
# genfilt -v 4 -a D -s 0 -m 0 -d 10.1.1.45 -M 255.255.255.255 -g N 
-c tcp -O eq -P 80 -r L -w I -l Y -f Y -i all
Filter rule 12 for IPv4 has been added successfully.
# genfilt -v 4 -a D -s 0 -m 0 -d 172.16.10.45 -M 255.255.255.255 -g N
-c tcp -O eq -P 443 -r L -w I -l Y -f Y -i all
Filter rule 13 for IPv4 has been added successfully.
# genfilt -v 4 -a D -s 0 -m 0 -d 10.1.1.45 -M 255.255.255.255 -g N 
-c tcp -O eq -P 443 -r L -w I -l Y -f Y -i all
Filter rule 14 for IPv4 has been added successfully.

 

以上命令已經建立了知足此場景要求的全部規則。請注意,規則的順序對實現目標是很是重要的。

下一步,還須要作一些事來啓用對拒絕包的記錄,並激活配置。

實現 – 設置日誌

如今配置 syslog 守護進程將全部來自 IP 過濾的條目記錄在指定的文件中。

## Backup syslog.conf file before modifying it.
# cp /etc/syslog.conf /etc/syslog.conf.bak
## Append entry for IP filters logs.
# echo "local4.debug /var/adm/ipsec.log" >> /etc/syslog.conf
## Create log file and set permissions (permissions may depend on 
## company policies)
# touch /var/adm/ipsec.log
# chmod 644 /var/adm/ipsec.log
## Refresh the syslog subsystem to activate the new configuration.
# refresh -s syslogd
0513-095 The request for subsystem refresh was completed successfully.

 

實現 – 激活全部內容

到此爲止,您已經建立了過濾規則,並準備好了 syslog 以記錄被拒絕包的日誌。如今可使用 mkfilt 命令激活配置。

 # Start the log functionality of the filter rule module
# mkfilt -g start
# # Activates the filter rules
# mkfilt –u

 

應急模式:假設您經過控制檯登陸到服務器,建立並激活了新的防火牆規則。此時忽然接到某人的電話,說他沒法訪問服務器中運行的某一項服務。您意識到,其中一條規則有疏漏,或不正確,但此時來不及逐條檢查,須要當即恢復服務。若是發生這種狀況,您只要運行 mkfilt –d 來停用這些規則。不要誤用 rmfilt,此命令不只會影響表中的規則,並且在運行 mkfilt 命令後纔會起做用。

一旦完成配置,您就能夠按期檢查 /var/adm/ipsec.log 文件丟棄了哪些包,並檢測潛在***以及對配置所作的調整。


結束語

在本文中,我演示了 AIX IP 過濾功能,這是一項內置的並且頗有用的功能,可以讓系統管理員在服務器中實現額外的安全層。同時還講解了一些基本的網絡概念,並總結了執行過濾所要用到的包和命令。與往常同樣,全部的防火牆配置都要認真規劃,以免產生反作用,這些反作用每每很難排除。

本文是一個對想要使用此模塊進行配置的 UNIX 管理員的很好的入門指導。


 

參考資料

學習

  • RFC768 - User Datagram Protocol 提供了對協議、格式和接口的簡介。

     
  • RFC791 - Internet Protocol 專門介紹 DoD Standard Internet Protocol。

     
  • RFC792 - Internet Control Message Protocol 用於主機到主機的數據報服務。

     
  • RFC793 - Transmission Control Protocol 描述了 DoD Standard Transmission Control Protocol (TCP)。

     
  • AIX Security Guide 爲系統管理員提供了關於文件、系統和網絡安全的完整信息。

     
  • AIX and UNIX 專區:developerWorks 的「AIX and UNIX 專區」提供了大量與 AIX 系統管理的全部方面相關的信息,您能夠利用它們來擴展本身的 UNIX 技能。

     
  • AIX and UNIX 新手入門:訪問「AIX and UNIX 新手入門」頁面可瞭解更多關於 AIX 和 UNIX 的內容。

     
  • AIX and UNIX 專題彙總:AIX and UNIX 專區已經爲您推出了不少的技術專題,爲您總結了不少熱門的知識點。咱們在後面還會繼續推出不少相關的熱門專題給您,爲了方便您的訪問,咱們在這裏爲您把本專區的全部專題進行彙總,讓您更方便的找到您須要的內容。

     
  • AIX and UNIX 下載中心:在這裏你能夠下載到能夠運行在 AIX 或者是 UNIX 系統上的 IBM 服務器軟件以及工具,讓您能夠提早免費試用他們的強大功能。

     
  • IBM Systems Magazine for AIX 中文版:本雜誌的內容更加關注於趨勢和企業級架構應用方面的內容,同時對於新興的技術、產品、應用方式等也有很深刻的探討。IBM Systems Magazine 的內容都是由十分資深的業內人士撰寫的,包括 IBM 的合做夥伴、IBM 的主機工程師以及高級管理人員。因此,從這些內容中,您能夠了解到更高層次的應用理念,讓您在選擇和應用 IBM 系統時有一個更好的認識。

     

得到產品和技術

  • 免費 試用 IBM 軟件 。下載試用版,登陸在線試用,在沙箱環境中使用產品,或是經過雲來訪問。有超過 100 種 IBM 產品試用版選擇。

     

討論

相關文章
相關標籤/搜索