모든 사용자에게 SSH 접속을 허용해야 하는데, UID가 6000~6500 사이라면 SSH 소스의 IP가 /etc/remote-hosts 파일에 있는지 확인해야 합니다.
/etc/remote-hosts
1.2.3.4
5.6.7.8
9.10.11.12
이를 수행할 수 있는 방법이 있습니까? 이에 대한 정보는 찾을 수 없으며 특정 IP 또는 UID를 허용 및 차단하는 것만 가능합니다.
답변1
당신이 찾고 있는 것은 아마도pam_list 파일기준 치수.
다음과 같은 블록이 /etc/pam.d/sshd
원하는 작업을 수행할 수 있습니다.
account [success=1 default=ignore] pam_succeed_if.so quiet uid < 6000 uid > 6500
account required pam_listfile.so file=/etc/remote-hosts item=rhost sense=allow onerr=fail
pam_listfile
UID가 6000-6500 범위를 벗어나는 경우 첫 번째 줄은 테스트를 건너뜁니다. quiet
이 테스트가 언제 실행되는지 확인하려면 이 플래그를 제거하세요 . debug
로그를 실제로 채우도록 변경하세요 .
두 번째 줄은 사용자의 원격 호스트가 액세스 파일에 있는지 확인합니다. 를 사용하도록 해당 행을 변경할 수 있습니다 onerr=succeed
. 그렇다면 해당 UID 범위의 모든 사용자가 로그인할 수 있도록 액세스 파일을 제거할 수 있습니다.
정책 수정을 제안할 수 있으면 UID 범위를 사용하지 말고 대신 해당 사용자를 "restrictedssh"와 같은 공개 그룹에 추가하세요. 그러면 그러한 모든 사용자를 특정 UID 범위로 가져오는 것에 대해 걱정할 필요가 없습니다. 다음 블록을 시도해 보십시오:
account [success=1 default=ignore] pam_succeed_if.so quiet user notingroup restrictedssh
account required pam_listfile.so file=/etc/remote-hosts item=rhost sense=allow onerr=fail
두 경우 모두 해당 줄은 파일 상단 근처 /etc/pam.d/sshd
, 다른 account
줄 바로 뒤에 추가됩니다.