上個月,在單數據包授權系列作品中第一部份中,我描述了叫做單數據包授權(SPA)的下一代被動認證技術的原理,本文不再談論其原理,而是將精力集中在SPA實用應用程序fwknop和iptables,用它們來保護SSHD,抵御偵察和攻擊。在Linux系統上安裝后,沒人能用nmap掃描后說SSHD正在監聽,只有在經過認證的客戶端才能與SSHD進行通訊。
開始之前,我們需要一些關于配置和網絡結構的信息,本文假設你已經在同時運行了SSHD和iptables的系統上安裝好了fwknop的最新版本(寫本文時是1.0.1),你可以從http://www.cipherdyne.org/fwknop下載fwknop,也可以通過運行install.pl腳本從源代碼tar包安裝或通過基于RPM的Linux發行版安裝RPM包。
網絡結構
在圖1中展示了我們安裝的基本網絡結構,fwknop客戶端在被標記為spa_client(15.1.1.1)的主機上執行,fwknop服務器(與iptables一起)在被標記為spa_server(16.2.2.2)的系統上運行,惡意系統被標記為attacker(18.3.3.3),它可以嗅探spa_client和spa_server系統之間的所有通訊。
![]() |
圖使用保護通訊的樣例情景 |
iptables 默認刪除策略
Spa_client系統的ip地址是15.1.1.1,spa_server系統的ip地址是16.2.2.2,在spa_server系統上,iptables被配置為為內部網絡(192.168.10.0/24)提供基本的連接服務、日志記錄及丟棄所有嘗試從外部網絡到服務的連接(通過iptables的LOG和DROP目標),這個策略相當簡單,意味著防火墻沒有為任何服務(包括SSHD)在nmap掃描下進行宣告,任何真實網絡環境下部署將更大更復雜。不管怎樣,一個重要的特征需要注意,那就是通過Netfilter提供連接跟蹤工具,它在iptables策略中保留狀態,最終結果是連接通過防火墻初始化(通過FORWARD鏈表)然后到達防火墻(通過INPUT鏈表)并保持打開,而不需要額外的ACCEPT規則來允許數據包保持連接的建立(如TCP確認等),iptables策略是用下面基礎的firewall.sh腳本來建立的:
[spa_server]# cat firewall.sh #!/bin/sh IPTABLES=/sbin/iptables $IPTABLES -F $IPTABLES -F -t nat $IPTABLES -X $IPTABLES -A INPUT -m state --state ↪ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m state --state ↪ESTABLISHED,RELATED -j ACCEPT $IPTABLES -t nat -A POSTROUTING -s ↪192.168.10.0/24 -o eth0 -j MASQUERADE $IPTABLES -A INPUT -i ! lo -j LOG --log-prefix ↪"DROP " $IPTABLES -A INPUT -i ! lo -j DROP $IPTABLES -A FORWARD -i ! lo -j LOG --log-prefix ↪"DROP " $IPTABLES -A FORWARD -i ! lo -j DROP echo 1 > /proc/sys/net/ipv4/ip_forward echo "[+] iptables policy activated" exit [spa_server]# ./firewall.sh [+] iptables policy activated |
防火墻激活后,我們就可以查看遠程訪問的內容了,在spa_client系統上,我們使用nmap來查看在spa_server上的SSHD是否可以連接:
[spa_client]$ nmap -P0 -sT -p 22 16.2.2.2 Starting Nmap 4.01 ( http://www.insecure.org/nmap/ ) at 2007-02-09 23:55 EST Interesting ports on 16.2.2.2: PORT STATE SERVICE 22/tcp filtered ssh Nmap finished: 1 IP address (1 host up) scanned in 12.009 seconds |
正如預料的一樣,iptables阻止了所有嘗試與SSHD通訊的連接,以及保留的端口(TCP和UDP端口)也類似地被iptables策略保護起來了,如果一個攻擊者擁有一個對付OpenSSH特定版本的0day攻擊程序,那對于部署了這個版本的spa_server系統來說有保護策略就很重要了,所有嘗試與堆棧的通訊都將被iptables阻止。
共5頁: 1 [2] [3] [4] [5] 下一頁 | |||||||
|