@@ -62,7 +62,6 @@ if [ $? -eq 0 ]; then
6262 get_docker_cumulative_command_line_args ' --tlsverify' | grep ' tlsverify' > /dev/null 2>&1
6363 if [ $? -eq 0 ]; then
6464 pass " $check_2_6 "
65- # pass " * Docker daemon currently listening on TCP with TLS and verification"
6665 else
6766 warn " $check_2_6 "
6867 warn " * Docker daemon currently listening on TCP with TLS, but no verification"
10099check_2_9=" 2.9 - Confirm default cgroup usage"
101100get_docker_effective_command_line_args ' --cgroup-parent' | grep " cgroup-parent" > /dev/null 2>&1
102101if [ $? -eq 0 ]; then
103- info " $check_2_9 "
102+ warn " $check_2_9 "
104103 info " * Confirm cgroup usage"
105104else
106105 pass " $check_2_9 "
144143
145144# 2.14
146145check_2_14=" 2.14 - Enable live restore"
147- get_docker_effective_command_line_args ' --live-restore' 2> /dev/null | grep " live-restore" > /dev/null 2>&1
148- if [ $? -eq 0 ]; then
146+ if docker info 2> /dev/null | grep -e " Live Restore Enabled:\s*true\s*" > /dev/null 2>&1 ; then
149147 pass " $check_2_14 "
150148else
151149 if docker info 2> /dev/null | grep -e " Swarm:\s*active\s*" > /dev/null 2>&1 ; then
167165# 2.16
168166check_2_16=" 2.16 - Control the number of manager nodes in a swarm"
169167if docker info 2> /dev/null | grep -e " Swarm:\s*active\s*" > /dev/null 2>&1 ; then
170- managernodes=$( docker node ls | grep " Leader" | wc -l )
171- if [ $managernodes -le 1 ]; then
168+ managernodes=$( docker node ls | grep -c " Leader" )
169+ if [ " $managernodes " -le 1 ]; then
172170 pass " $check_2_16 "
173171 else
174172 warn " $check_2_16 "
@@ -194,3 +192,63 @@ if [ $? -eq 0 ]; then
194192else
195193 warn " $check_2_18 "
196194fi
195+
196+ # 2.19
197+ check_2_19=" 2.19 - Encrypt data exchanged between containers on different nodes on the overlay network"
198+ if docker network ls --filter driver=overlay --quiet | \
199+ xargs docker network inspect --format ' {{.Name}} {{ .Options }}' 2> /dev/null | \
200+ grep -v ' encrypted:' 2> /dev/null 1>&2 ; then
201+ warn " $check_2_19 "
202+ for encnet in $( docker network ls --filter driver=overlay --quiet) ; do
203+ if docker network inspect --format ' {{.Name}} {{ .Options }}' " $encnet " | \
204+ grep -v ' encrypted:' 2> /dev/null 1>&2 ; then
205+ warn " * Unencrypted overlay network: $( docker network inspect --format ' {{ .Name }} ({{ .Scope }})' " $encnet " ) "
206+ fi
207+ done
208+ else
209+ pass " $check_2_19 "
210+ fi
211+
212+ # 2.20
213+ check_2_20=" 2.20 - Apply a daemon-wide custom seccomp profile, if needed"
214+ if docker info --format ' {{ .SecurityOptions }}' | grep ' name=seccomp,profile=default' 2> /dev/null 1>&2 ; then
215+ pass " $check_2_20 "
216+ else
217+ info " $check_2_20 "
218+ fi
219+
220+ # 2.21
221+ check_2_21=" 2.21 - Avoid experimental features in production"
222+ if docker info 2> /dev/null | grep -e " ^Live Restore Enabled:\s*false\s*$" > /dev/null 2>&1 ; then
223+ pass " $check_2_21 "
224+ else
225+ warn " $check_2_21 "
226+ fi
227+
228+ # 2.22
229+ check_2_22=" 2.22 - Use Docker's secret management commands for managing secrets in a Swarm cluster"
230+ if docker info 2> /dev/null | grep -e " Swarm:\s*active\s*" > /dev/null 2>&1 ; then
231+ if [ " $( docker secret ls -q | wc -l) " -ge 1 ]; then
232+ pass " $check_2_22 "
233+ else
234+ info " $check_2_22 "
235+ fi
236+ else
237+ pass " $check_2_22 (Swarm mode not enabled)"
238+ fi
239+
240+ # 2.23
241+ check_2_23=" 2.23 - Run swarm manager in auto-lock mode"
242+ if docker info 2> /dev/null | grep -e " Swarm:\s*active\s*" > /dev/null 2>&1 ; then
243+ if ! docker swarm unlock-key 2> /dev/null | grep ' SWMKEY' 2> /dev/null 1>&2 ; then
244+ warn " $check_2_23 "
245+ else
246+ pass " $check_2_23 "
247+ fi
248+ else
249+ pass " $check_2_23 (Swarm mode not enabled)"
250+ fi
251+
252+ # 2.24
253+ check_2_24=" 2.24 - Rotate swarm manager auto-lock key periodically"
254+ info " $check_2_24 "
0 commit comments