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