"sshd_config"에서 여러 사용자 일치

"sshd_config"에서 여러 사용자 일치

sshd여러 사용자에게 동일한 설정을 적용하려고 합니다 .

매뉴얼에 따르면, 그것이 Match User하는 일은 다음과 같습니다 AND:

조건부 블록을 도입합니다. 해당 줄의 모든 조건이 충족되면 Match다음 줄의 키워드가 구성 파일의 전역 섹션에 설정된 키워드보다 우선 적용됩니다.

"다음 사용자 중 하나에 대해..."를 어떻게 선언합니까? 이 경우 bob, joe, 및 은 philSSH를 프록시로 사용할 수 있지만 로그인은 허용되지 않습니다.

Match User bob, User joe, User phil
    PasswordAuthentication yes
    AllowTCPForwarding yes
    ForceCommand /bin/echo 'We talked about this guys. No SSH for you!'

답변1

제가 직접 해본 적은 없고 설명서에 나오는 대로만 따를 수 있습니다.

sshd_config매뉴얼 에서 :

일치 패턴은 단일 항목 또는 쉼표로 구분된 목록으로 구성될 수 있으며 패턴 섹션에 설명된 와일드카드 및 부정 연산자를 사용할 수 있습니다 ssh_config(5).

즉, 다음과 같이 말할 수 있어야 합니다.

Match User bob,joe,phil
  PasswordAuthentication yes
  AllowTCPForwarding yes
  ForceCommand /bin/echo 'We talked about this guys. No SSH for you!'

"쉼표로 구분됨"은 이름 사이에 추가 공백을 삽입해서는 안 된다는 의미입니다.

정보 보안 포럼에서 이 답변도 참조하세요.SSH에서 사용자별 인증 방법 만들기.

답변2

사용자가 아닌 그룹에 Match 지시문을 사용합니다. 그런 다음 사용자를 그룹에 추가하십시오.

Match Group users_with_no_ssh
    PasswordAuthentication yes
    AllowTCPForwarding yes
    ForceCommand /bin/echo 'We talked about this guys. No SSH for you!'

답변3

ForceCommand가 SFTP와 잘 작동할지는 잘 모르겠습니다. 또한 로그에서 "DenyUsers"라는 단어를 보는 것이 좋을 수도 있습니다. 어쨌든 저는 이것을 사용합니다(글쎄, Group을 사용하는 것이 더 나을 수도 있습니다):

sshd_config

# support, ansible & backup only from specific IP                                                                    
Match User ansible,backup,support Address *,!176.x.x.x                                                          
      DenyUsers ansible,backup,support

Match User backup
        AllowTcpForwarding yes
        AllowAgentForwarding yes
        PermitListen 127.0.0.1:2223
        AcceptEnv RESTIC_REPOSITORY RESTIC_PASSWORD

테스트 구성

# sshd -T -C addr=176.x.x.x,user=backup | egrep '^((deny|allow)users|permitlisten|acceptenv)'
denyusers root
acceptenv RESTIC_REPOSITORY
acceptenv RESTIC_PASSWORD
permitlisten 127.0.0.1:2223

# sshd -T -C addr=8.8.4.4,user=backup | egrep '^((deny|allow)users|permitlisten|acceptenv)' 
denyusers ansible,backup,support
acceptenv RESTIC_REPOSITORY
acceptenv RESTIC_PASSWORD
permitlisten 127.0.0.1:2223

실제 세계 테스트

Jan 29 16:50:12 mx1 sshd[71309]: Connection from 199.x.x.x port 21042 on 199.x.x.x port 2222 rdomain "0"   
Jan 29 16:50:13 mx1 sshd[71309]: User support from 199.x.x.x not allowed because listed in DenyUsers
Jan 29 16:50:13 mx1 sshd[71309]: Connection closed by invalid user support 199.x.x.x port 21042 [preauth]

관련 정보