Skip to content

Commit d1cd36d

Browse files
authored
Update go, kernel, lldpd and nftables-exporter, also fix typos (#230)
1 parent 59e379b commit d1cd36d

File tree

13 files changed

+40
-40
lines changed

13 files changed

+40
-40
lines changed

cmd/cmdexec.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func (i *cmdexec) command(p *cmdParams) (out string, err error) {
3030
start = time.Now()
3131
output []byte
3232
)
33-
i.log.Info("running command", "commmand", strings.Join(append([]string{p.name}, p.args...), " "), "start", start.String())
33+
i.log.Info("running command", "command", strings.Join(append([]string{p.name}, p.args...), " "), "start", start.String())
3434

3535
ctx := context.Background()
3636
if p.timeout != 0 {

debian/context/etc/logrotate.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ weekly
66
rotate 4
77

88
# create new (empty) log files after rotating old ones
9-
# CIS 4.4 - ensure logrotate assigns approriate permissions
9+
# CIS 4.4 - ensure logrotate assigns appropriate permissions
1010
create 0640 root utmp
1111

1212
# use date as a suffix of the rotated file

debian/context/etc/ssh/sshd_config

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ RekeyLimit 512M 6h
1313
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
1414
# CIS 5.2.14 - Ensure only strong MAC algorithms are used
1515
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-256
16-
# CIS 5.2.15 - Ensure only strong Key Exchange algorithms are used (minified version of CIS recomendation)
16+
# CIS 5.2.15 - Ensure only strong Key Exchange algorithms are used (minified version of CIS recommendation)
1717
KexAlgorithms diffie-hellman-group-exchange-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256
1818

1919
# Logging

debian/docker-make.ubuntu.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ default-build-args:
1313
- DOCKER_APT_CHANNEL=jammy
1414
- CRI_VERSION=v1.29.0
1515
# see https://kernel.ubuntu.com/mainline for available versions
16-
- UBUNTU_MAINLINE_KERNEL_VERSION=v6.6.22
16+
- UBUNTU_MAINLINE_KERNEL_VERSION=v6.6.28
1717
- ICE_VERSION=1.12.7
1818
- ICE_PKG_VERSION=1.3.35.0
1919

firewall/Dockerfile

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
ARG BASE_OS_NAME
22
ARG BASE_OS_VERSION
3-
ARG DROPTAILER_VERSION=v0.2.12
3+
ARG DROPTAILER_VERSION=v0.2.14
44
ARG FIREWALL_CONTROLLER_VERSION=v2.3.0
55
ARG TAILSCALE_VERSION=v1.50.1
66

@@ -15,7 +15,7 @@ FROM ${BASE_OS_NAME}:${BASE_OS_VERSION}
1515
ENV DEBCONF_NONINTERACTIVE_SEEN="true" \
1616
DEBIAN_FRONTEND="noninteractive" \
1717
NODE_EXPORTER_VERSION=1.7.0 \
18-
NFTABLES_EXPORTER_VERSION=v0.2.8
18+
NFTABLES_EXPORTER_VERSION=v0.2.9
1919

2020
# iptables reinstallation is required, so that image works in mini-lab environment.
2121
# Most likely the reason is that old config is removed during deletion.
@@ -41,7 +41,7 @@ RUN /suricata-and-chrony-installation.sh
4141
# also remove the most recent version of frr and install the distribution version
4242
# this should bring back frr-8.1 on ubuntu and frr-7.5.1 on debian
4343
# TODO can be reverted once https://github.com/FRRouting/frr/issues/12391 is fixed upstream
44-
# This issue is fixed with 8.5.3 but we still face redundacy issues.
44+
# This issue is fixed with 8.5.3 but we still face redundancy issues.
4545
# must be done after suricata installation because we need to remove the
4646
# apt sources entries, otherwise we will get back v8.5.x of frr.
4747
COPY --from=ghcr.io/metal-stack/frr:9.1-ubuntu-22.04 /artifacts/*.deb /tmp/

firewall/context/etc/chrony/chrony.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Welcome to the chrony configuration file. See chrony.conf(5) for more
2-
# information about usuable directives.
2+
# information about usable directives.
33

44
# Cloudflare offers a free public time service that allows us to use their
55
# anycast network of 180+ locations to synchronize time from their closest server.

firewall/context/etc/suricata/update.yaml

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
# Configuration with disable filters.
2-
# - Overrided by --disable-conf
2+
# - Overridden by --disable-conf
33
# - Default: /etc/suricata/disable.conf
44
disable-conf: /etc/suricata/disable.conf
55

66
# Configuration with enable filters.
7-
# - Overrided by --enable-conf
7+
# - Overridden by --enable-conf
88
# - Default: /etc/suricata/enable.conf
99
enable-conf: /etc/suricata/enable.conf
1010

1111
# Configuration with drop filters.
12-
# - Overrided by --drop-conf
12+
# - Overridden by --drop-conf
1313
# - Default: /etc/suricata/drop.conf
1414
drop-conf: /etc/suricata/drop.conf
1515

1616
# Configuration with modify filters.
17-
# - Overrided by --modify-conf
17+
# - Overridden by --modify-conf
1818
# - Default: /etc/suricata/modify.conf
1919
modify-conf: /etc/suricata/modify.conf
2020

21-
# List of files to ignore. Overrided by the --ignore command line option.
21+
# List of files to ignore. Overridden by the --ignore command line option.
2222
ignore:
2323
- "*deleted.rules"
2424

@@ -35,7 +35,7 @@ ignore:
3535
#test-command: ${SURICATA_PATH} -T -S ${OUTPUT_FILENAME} -l /tmp
3636

3737
# Provide a command to reload the Suricata rules.
38-
# May be overrided by the --reload-command command line option.
38+
# May be overridden by the --reload-command command line option.
3939
reload-command: sudo systemctl reload suricata
4040

4141
# Remote rule sources. Simply a list of URLs.

go.mod

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ module github.com/metal-stack/metal-images
33
go 1.22
44

55
require (
6-
github.com/aws/aws-sdk-go v1.50.36
6+
github.com/aws/aws-sdk-go v1.51.25
77
github.com/flatcar/ignition v0.36.2
88
github.com/google/go-cmp v0.6.0
99
github.com/metal-stack/metal-hammer v0.12.3
10-
github.com/metal-stack/metal-lib v0.15.1
10+
github.com/metal-stack/metal-lib v0.16.2
1111
github.com/metal-stack/metal-networker v0.42.0
1212
github.com/metal-stack/v v1.0.3
1313
github.com/olekukonko/tablewriter v0.0.5
@@ -39,16 +39,16 @@ require (
3939
github.com/josharian/intern v1.0.0 // indirect
4040
github.com/mailru/easyjson v0.7.7 // indirect
4141
github.com/mattn/go-runewidth v0.0.15 // indirect
42-
github.com/metal-stack/metal-go v0.28.0 // indirect
42+
github.com/metal-stack/metal-go v0.28.4 // indirect
4343
github.com/mitchellh/mapstructure v1.5.0 // indirect
4444
github.com/oklog/ulid v1.3.1 // indirect
4545
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
4646
github.com/rivo/uniseg v0.4.7 // indirect
4747
github.com/stretchr/objx v0.5.2 // indirect
4848
github.com/vincent-petithory/dataurl v1.0.0 // indirect
49-
go.mongodb.org/mongo-driver v1.14.0 // indirect
49+
go.mongodb.org/mongo-driver v1.15.0 // indirect
5050
go4.org v0.0.0-20230225012048-214862532bf5 // indirect
51-
golang.org/x/sys v0.18.0 // indirect
51+
golang.org/x/sys v0.19.0 // indirect
5252
golang.org/x/text v0.14.0 // indirect
5353
google.golang.org/protobuf v1.33.0 // indirect
5454
gopkg.in/inf.v0 v0.9.1 // indirect

go.sum

+12-12
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ github.com/ajeddeloh/go-json v0.0.0-20160803184958-73d058cf8437/go.mod h1:otnto4
2222
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
2323
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
2424
github.com/aws/aws-sdk-go v1.8.39/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k=
25-
github.com/aws/aws-sdk-go v1.50.36 h1:PjWXHwZPuTLMR1NIb8nEjLucZBMzmf84TLoLbD8BZqk=
26-
github.com/aws/aws-sdk-go v1.50.36/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
25+
github.com/aws/aws-sdk-go v1.51.25 h1:DjTT8mtmsachhV6yrXR8+yhnG6120dazr720nopRsls=
26+
github.com/aws/aws-sdk-go v1.51.25/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
2727
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
2828
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
2929
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
@@ -128,12 +128,12 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ
128128
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
129129
github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
130130
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
131-
github.com/metal-stack/metal-go v0.28.0 h1:rCRmUI0N3sPHHi0PKzqzoo1YiP2nDNDnbCBX7nz8FP8=
132-
github.com/metal-stack/metal-go v0.28.0/go.mod h1:Iw4xnzbtcn3qz7YaK0ekCAcLZUyz5E7e0ZCvJ5pX0gU=
131+
github.com/metal-stack/metal-go v0.28.4 h1:cTI2jZqn59FNw0RkPAD7TYeK5YKJjj94YFJiuRl8eDo=
132+
github.com/metal-stack/metal-go v0.28.4/go.mod h1:gYLZX3umsoZLWZ5d4MJdVbnR8eFXUTlLTK7tyx638As=
133133
github.com/metal-stack/metal-hammer v0.12.3 h1:XY6PwTnOqBlhL9z/sk13/rdy8XRYdBAdf0PS6PRoGTc=
134134
github.com/metal-stack/metal-hammer v0.12.3/go.mod h1:2igSC1ZnqxZcARkkUW9qA8PV04VdN9qmUIfUAZ1lGhs=
135-
github.com/metal-stack/metal-lib v0.15.1 h1:QCmtZ6ci6pHsf3RQnSDbbvYshpyRaxCSeXghVvbDFuA=
136-
github.com/metal-stack/metal-lib v0.15.1/go.mod h1:x1nyPRi+b/WeK7N41cm4R8w4pScnhOYv8hos2UM4lXY=
135+
github.com/metal-stack/metal-lib v0.16.2 h1:RJls/Spai4h5xr3BEmQt9UdWNN4RB9+SOINoZcjYaA8=
136+
github.com/metal-stack/metal-lib v0.16.2/go.mod h1:nyNGI4DZFOcWbSoq2Y6V3SHpFxuXBIqYBZHTb6cy//s=
137137
github.com/metal-stack/metal-networker v0.42.0 h1:tVuYw/3GN8lGhkJ91vTD+ax8fAAouFzBRysKxqQlUXo=
138138
github.com/metal-stack/metal-networker v0.42.0/go.mod h1:exBcBdyDzngo2s3848tASbndizrPlS6a2/Eg90xLTwc=
139139
github.com/metal-stack/v v1.0.3 h1:Sh2oBlnxrCUD+mVpzfC8HiqL045YWkxs0gpTvkjppqs=
@@ -175,8 +175,8 @@ github.com/vincent-petithory/dataurl v1.0.0/go.mod h1:FHafX5vmDzyP+1CQATJn7WFKc9
175175
github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk=
176176
github.com/vmware/vmw-ovflib v0.0.0-20170608004843-1f217b9dc714/go.mod h1:jiPk45kn7klhByRvUq5i2vo1RtHKBHj+iWGFpxbXuuI=
177177
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
178-
go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80=
179-
go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c=
178+
go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc=
179+
go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c=
180180
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
181181
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
182182
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -232,8 +232,8 @@ golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLL
232232
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
233233
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
234234
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
235-
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
236-
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
235+
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
236+
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
237237
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
238238
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
239239
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -264,8 +264,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
264264
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
265265
golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
266266
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
267-
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
268-
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
267+
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
268+
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
269269
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
270270
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
271271
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=

test.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ fi
2828
echo "import image oci to ignite: ${IMAGE}"
2929
sudo ignite stop "${VM_NAME}" || true
3030
sudo ignite rm "${VM_NAME}" || true
31-
# cleaning up all prior images to prevent ambigious image names
31+
# cleaning up all prior images to prevent ambiguous image names
3232
for image in $(sudo ignite images -q); do
3333
sudo ignite image rm -f "$image"
3434
done

test/inputs/cis-benchmark.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ chmod 644 /etc/resolv.conf
77
apt update && apt install -y git
88
rm /var/log/apt/*
99
git clone -b ${CIS_VERSION} --depth 1 https://github.com/ovh/debian-cis.git
10-
cd debian-cis
10+
cd debian-cis || exit
1111
cp debian/default /etc/default/cis-hardening
1212
sed -i "s#CIS_ROOT_DIR=.*#CIS_ROOT_DIR='$(pwd)'#" /etc/default/cis-hardening
1313

14-
# Disable inapropriate checks
14+
# Disable inappropriate checks
1515
bin/hardening.sh --create-config-files-only --allow-unsupported-distribution --batch
1616

1717
disable-testcase () {
@@ -25,7 +25,7 @@ disable-testcase () {
2525

2626
grep -o '^[^#]*' /cis-disabled.txt | while read testcases; do
2727
for i in bin/hardening/$testcases ; do
28-
disable-testcase `basename $i .sh`
28+
disable-testcase $(basename $i .sh)
2929
done
3030
done
3131

test/inputs/cis-disabled.txt

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
1.1.6_* # we use separate partions for /var/lib, /var/log
1+
1.1.6_* # we use separate partitions for /var/lib, /var/log
22
1.1.6.[12]_* # nodev and nosuid would break some containers
33
1.1.[789]_* # /var/tmp will be added by metal-hammer
44
1.1.10_* # /var/tmp will be added by metal-hammer
55
1.1.11* # mounted noexec,nosuid,nodev for /var/log will be added by metal-hammer
66
1.1.17_* # created by system - tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
77
1.1.1.7_* # VFAT filesystem is needed for UEFI boot, we disabled USB-drives instead
88
1.1.[2345]_* # tmpfs (rw,nosuid,nodev,noexec,...) is used on the nodes, but not in the test
9-
1.1.12* # auditd is not part of the image, we recomend deployment as daemonset
9+
1.1.12* # auditd is not part of the image, we recommend deployment as daemonset
1010
1.1.13_* # there are no regular users on the nodes (no /home needed)
1111
1.1.14* # there are no regular users on the nodes (no /home needed)
1212
1.4.[12]_* # tripwire should be deployed as daemonset
@@ -24,8 +24,8 @@
2424
3.3.7_* # Kubernetes-nodes are required to act as a router
2525
3.3.9_* # IPv6 is necessary for BGP-unnumbered
2626
3.5.4.1.1_* # iptables-rules are managed by kube-proxy and the CNI plugin
27-
4.1.* # auditd is not part of the image, we recomend deployment as daemonset
28-
4.2.1.* # nodes only use journald, we recomend deploying log-shippers in Kubernetes
27+
4.1.* # auditd is not part of the image, we recommend deployment as daemonset
28+
4.2.1.* # nodes only use journald, we recommend deploying log-shippers in Kubernetes
2929
4.2.2.3_* # Storage=persistent is set in /etc/systemd/journald.conf.d/01-journal-persistent.conf
3030
5.1.* # cron is not installed/needed
3131
5.3.1_* # setting passwords is not supported

test/inputs/goss.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ command:
159159
stdout:
160160
- "!null"
161161
stderr: []
162-
"bgp has two peers visibile":
162+
"bgp has two peers visible":
163163
exec: "vtysh -c 'show bgp sum json' | jq '.ipv4Unicast.totalPeers'"
164164
exit-status: 0
165165
stdout:

0 commit comments

Comments
 (0)