2017-04-12 38 views
0

环境INSPEC should_be_listening测试失败当端口是开放的

chefdk 1.3.40

伯克斯5.6.4

厨房1.16.0

流浪汉1.9.3

在“厨房登录”后,我们可以看到端口80已打开

sudo iptables-save | grep 80 
-A IN_public_allow -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT 

但是,在运行时的 '厨房验证' 的测试失败:

PORT 80 
[MAJR] should be listening 
expected 'Port 80.listening?' to return true, got false 

这里是INSPEC测试:

describe port(80) do 
    it { should be_listening } 
end 
+1

而且是实际上正在监听端口80的应用程序吗?因为你只是显示iptables规则(或者是'conntrack'部分的魔法)?试试'netstat -ntl',因为这是Inspec所称的IIRC。 – StephenKing

+0

不,应用程序还没有(听)。我们正在尝试对此进行测试,并且这部分配方仍在编写中。 netstat -ntl tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN –

+0

@StephenKing添加chef_nginx配方使该测试通过。如果您提交您的评论作为答案,我会接受它。谢谢! –

回答

3

根据所提供的命令,没有任何迹象表明,任何程序实际上正在侦听端口80. iptables-save输出仅显示允许传入连接的防火墙规则。

InSpec本身调用netstat -tulpen来收集有关侦听套接字的信息。您可能想要使用它来手动验证。