扫一扫
关注微信公众号

用单数据包授权保护SSH服务器(1)
2009-01-03   

上个月,在单数据包授权系列作品中第一部份中,我描述了叫做单数据包授权(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] 下一页
 第 1 页:  第 2 页:Fwknop SPA配置
 第 3 页:通过对称加密SPA  第 4 页:通过非对称加密SPA
 第 5 页:附录A

热词搜索:

上一篇:单数据包授权全面提升安全系数(1)
下一篇:Web应用安全系列:用WVS实施漏洞扫描(1)

分享到: 收藏