2017-04-12 70 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來收集有關偵聽套接字的信息。您可能想要使用它來手動驗證。