동일한 사용자 정의 체인으로 두 번 점프하지 마십시오.

동일한 사용자 정의 체인으로 두 번 점프하지 마십시오.

내 안에는 /etc/pam.d/sshd다음 줄이 있습니다.

session optional pam_exec.so /usr/local/bin/pam_exec_sshd

ssh를 들어오거나 나갈 때마다 내 스크립트가 호출됩니다. 스크립트 내용:

#!/bin/bash
IPTABLES=/usr/sbin/iptables
case $PAM_TYPE in
open_session) act=-I;;
close_session) act=-D;;
*) exit 0;;
esac

$IPTABLES "$act" INPUT -s "$PAM_RHOST" -j PAM_EXEC_SSHD

PAM_EXEC_SSHD임의의 포트로 전송된 임의의 프로토콜 패킷이 유효한 SSH 클라이언트 호스트에서 오면 내 사용자 정의 netfilter 체인으로 이동하는 규칙을 추가하거나 제거합니다.

INPUT호스트에 2개 이상의 동시 SSH 연결이 있는 경우 체인에는 일종의 참조 카운트인 2개 이상의 동일한 규칙이 있습니다 .

하지만 PAM_EXEC_SSHD뒤에서 돌아올 때 INPUT또 다른 동일한 규칙이 있으면 PAM_EXEC_SSHD다시 그 규칙으로 점프합니다. 이런 일이 발생하는 것을 방지하는 방법은 무엇입니까?

호스트당 하나의 규칙만 유지하도록 스크립트를 변경하면 두 세션 중 하나가 닫힐 때 해당 호스트의 유일한 규칙이 삭제됩니다.

관련 정보