특정 IP 주소(개인 주소)에서 사용자 로그인을 제한하는 방법은 무엇입니까?

특정 IP 주소(개인 주소)에서 사용자 로그인을 제한하는 방법은 무엇입니까?

내 SSH 서버 시스템에는 user_A와 user_B라는 두 명의 사용자가 있습니다. user_B는 원격에서 로그인해야 하므로 보안상의 이유로 개인 키를 사용하여 로그인하는 것이 허용됩니다. 모두 작동합니다. 내 질문: user_A는 로컬 네트워크에서만 로그인하면 되므로 사용자 이름/비밀번호를 사용하여 원격으로 로그인하는 것을 어떻게 방지할 수 있습니까? sshd 매뉴얼 페이지에 따르면 CIDR 표기가 허용됩니다.

내가 한 일:
#605433이 제안되었으므로 조정했습니다.AllowUsers [email protected]AllowUsers [email protected]/24

#740700 제안:

Match 192.168.0.10/24
   AllowGroups PrivateSubnetSshUsers

내 버전은 다음과 같습니다

Match 192.168.10.0/24
   AllowUsers user_A

놀랍게도 두 경우 모두 user_A는 여전히 192.168.1.220에서 로그인할 수 있습니다. 다시 시도하기 전에 몇 가지 작업을 수행했습니다 systemctl restart sshd.

내가 여기서 무엇을 간과하고 있습니까?

답변1

첫째, 귀하의 진술에는 단순한 오류가 아닌 오류가 있어야 Match합니다 . 해당 버전에서는 sshd를 다시 시작하려고 할 때 오류 메시지가 표시됩니다. 받지 못하셨나요?Match address 192.168.10.0/24Match 192.168.10.0/24

Match둘째, 주소가 아닌 사용자 이름을 사용해야 합니다 . 다음이 작동합니다.

Match user user_A
   AllowUsers [email protected]/24

그런데. 내 테스트에서는 단독(즉, 블록이 아닌)도 작동하지만(따라서 테스트할 때 뭔가 잘못된 것이 틀림없습니다) 제한됩니다.AllowUsers [email protected]/24Match다른 모든 사용자user_A 이외의 로그인별말씀을요(그리고 user_A는 지정된 네트워크에서만 로그인할 수 있습니다.) 위 블록 내 Match에서 user_A는 지정된 네트워크에서만 로그인할 수 있으며, 다른 모든 사용자는 모든 IP 주소에서 로그인할 수 있습니다.

답변2

나는 매우 당황스럽다. 물론 사건은 Raj가 지적한 대로 해결되었습니다. 당황스러웠던 내 실수는 항상 sshd_config 대신 ssh_config를 편집하는 것이었습니다. 죄송합니다. 도움을 주셔서 다시 한번 감사드립니다!

답변3

설명서에 따르면(https://www.man7.org/linux/man-pages/man5/sshd_config.5.html) 다음과 같이 작동해야 합니다.

# Only user_B is allowed to login
AllowUsers user_B

# Only the group PrivateSubnetSshUsers is allowed to login from the network 192.168.10.0/24
Match Address 192.168.10.0/24
        AllowGroups PrivateSubnetSshUsers 

# user_B is not allowed to login with password
Match User user_B
        PasswordAuthentication no

첫 번째 옵션을 사용하면 user_B를 제외한 모든 사용자를 잠글 수 있습니다. 두 번째 옵션은 특정 네트워크에 연결되어 있고 PrivateSubnetSshUsers 그룹의 구성원인 경우 로그인을 허용합니다. 세 번째 옵션은 user_B가 키를 사용하도록 강제합니다.

아주 간단하지는 않지만 작업을 완료해야 합니다.

관련 정보