| #!/bin/env bash |
| # Copyright (c) HashiCorp, Inc. |
| # SPDX-License-Identifier: BUSL-1.1 |
| |
| set -exo pipefail |
| |
| # Run nc to listen on port 9090 for the socket auditor. We spawn nc |
| # with nohup to ensure that the listener doesn't expect a SIGHUP and |
| # thus block the SSH session from exiting or terminating on exit. |
| # We immediately write to STDIN from /dev/null to give nc an |
| # immediate EOF so as to not block on expecting STDIN. |
| nohup nc -kl 9090 &> /dev/null < /dev/null & |
| |
| # Wait for nc to be listening before we attempt to enable the socket auditor. |
| attempts=3 |
| count=0 |
| until nc -zv 127.0.0.1 9090 &> /dev/null < /dev/null; do |
| wait=$((2 ** count)) |
| count=$((count + 1)) |
| |
| if [ "$count" -le "$attempts" ]; then |
| sleep "$wait" |
| if ! pgrep -x nc; then |
| nohup nc -kl 9090 &> /dev/null < /dev/null & |
| fi |
| else |
| |
| echo "Timed out waiting for nc to listen on 127.0.0.1:9090" 1>&2 |
| exit 1 |
| fi |
| done |
| |
| sleep 1 |
| |
| # Enable the auditors. |
| $VAULT_BIN_PATH audit enable file file_path="$LOG_FILE_PATH" |
| $VAULT_BIN_PATH audit enable syslog tag="vault" facility="AUTH" |
| $VAULT_BIN_PATH audit enable socket address="127.0.0.1:9090" || true |