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.* ]];

관련 정보