SSH がローカル IP 範囲外から入ってくるときに通知を送信するように NFTY を設定します。

SSH がローカル IP 範囲外から入ってくるときに通知を送信するように NFTY を設定します。

NTFYを介して外部接続を許可するコンピュータにSSH経由で正常に接続されたら、通知を受けたいと思います。私はこのコンピュータをローカル(192.168.1.0/24)に頻繁にログインするため、その範囲内で接続すると通知を受けたくありません。

ここにリストされた例に従います。 https://docs.ntfy.sh/examples/#ssh-login-alerts

通知は正常に機能しますが、192.168.* を除外するようにスクリプトを変更しようとしています。私のbashは不都合で、数時間この問題で苦労しています。

ntfy-ssh-login.shを次のように修正しました。

#!/bin/bash
if [ "${PAM_TYPE}" = "open_session" ]; then
        if [ "${PAM_RHOST}" != 192.168.* ]; then
          curl \
            -H prio:high \
            -H tags:warning \
            -d "SSH login: ${PAM_USER} from ${PAM_RHOST}" \
            http://192.168.1.137:8777/alerts
        fi
fi

PAM_RHOSTが192.168で始まると、NTFYに警告が送信されるとは予想されません。ただし、常に警告を送信します。 PAM_RHOST値が警告に含まれているため、この値で始まることがわかります。

30/08/2023, 22:12 Priority 4

⚠️ SSH login: --redacted-- from 192.168.1.11

192.168.1.11はで設定されます${PAM_RHOST}

私が何か愚かなことをしているのは間違いありません。

答え1

私の意見をある種の答えに変えてください。

テストは文字をワイルドカード/パターンとして[扱わないため、一致せず、式は常に評価されます。*${PAM_RHOST}then

を使用しているので、/bin/bashテストを使用してパターンで比較を処理できます[[*

if [[ "${PAM_RHOST}" != 192.168.* ]];

関連情報