sshd_config의 예기치 않은 일치 동작

sshd_config의 예기치 않은 일치 동작

내에서 다음 제한 사항을 구성하려고 합니다 sshd_config.

  1. 로컬 IP 주소를 가진 사용자에게는 어떠한 제한도 적용되지 않습니다.
  2. 그룹에 로컬이 아닌 IP 주소가 있는 사용자는 sftpchroot Jail에서 sftp를 사용할 수 있습니다.
  3. 이 그룹에 속하지 않는 비로컬 IP 주소를 가진 사용자 sftp는 어떤 작업도 수행할 수 없습니다.

이것이 내가 생각해낸 것입니다:

Match Address 10.0.0.0/24,172.16.0.0/20,192.168.0.0/16
        X11Forwarding yes

Match Address *,!10.0.0.0/24,!172.16.0.0/20,!192.168.0.0/16 Group sftp
        X11Forwarding no
        AllowTcpForwarding no
        ChrootDirectory %h
        ForceCommand internal-sftp

Match Address *,!10.0.0.0/24,!172.16.0.0/20,!192.168.0.0/16 Group *,!sftp
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand /sbin/nologin

문제: SFTP가 아닌 사용자로 내부 주소에서 로그인하려고 하면 세 번째 일치 트리거가 거부됩니다.

맨페이지 에 따르면 sshd_config모든 조항이 충족되는 경우에만 일치가 충족되지만 제 경우에는 첫 번째 조항이 충족되지 않았고(IP 주소가 172.16.0.0/20인 시스템에서 입력했습니다) 두 번째 조항만 예(I' m은 sftp 그룹에 속하지 않습니다).

맨페이지 오류 sshd_config? 내가 원하는 것을 할 수 있습니까?

업데이트: @steve의 제안에 따라 디버그 모드에서 sshd를 실행하여 다음을 얻었습니다.

debug1: userauth-request for user root service ssh-connection method none
debug1: attempt 0 failures 0
debug1: connection from 172.19.187.49 matched 'Address *,!10.0.0.0/24,!172.16.0.0/20,!192.168.0.0/16' at line 144
debug1: user root does not match group list sftp at line 144
debug1: connection from 172.19.187.49 matched 'Address *,!10.0.0.0/24,!172.16.0.0/20,!192.168.0.0/16' at line 150
debug1: user root matched group list *,!sftp at line 150
debug1: PAM: initializing for "root"

no-internal-adress 절도 일치합니다. 또한 첫 번째 일치 항목이 디버그 로그에 언급되지 않아 이상해 보입니다.

고쳐 쓰다:

@Gilles가 지적했듯이 위에 표시된 주소 사양이 올바르지 않습니다. 10.0.0.0/24 대신 10.0.0.0/8을, 172.16.0.0/20 대신 172.16.0.0/12를 사용했어야 했습니다. 0에서 시작하여 카운트업하는 대신 32부터 시작하여 마스크 비트를 카운트다운하고 있습니다. 이런.

올바른 주소를 사용하면 구성이 작동합니다. 자일스와 우리엘에게 감사드립니다!

(마지막 줄의 /sbin/nologin도 /bin/false로 변경했습니다. 전자는 sftp:에서 이상한 오류 메시지를 표시했습니다. Received message too long 1416128883)

답변1

비슷한 질문에 대답하고 있어요슈퍼유저 웹사이트, 그러나 답장을 한 후에는 그것이 맞는지 더 이상 확신할 수 없습니다.

openssh-7.0요컨대 지금은 불가능하거나 심지어 가능하다고 생각하는데 이러한 버그는 아직 수정되지 않았기 때문에 업스트림으로 푸시해야 합니다.

긍정적인 피드백을 제공하는 대체 답변이 있지만 이것이 바로 결과를 얻으려는 방식인 것 같습니다. 시도하지는 않았지만 그룹에만 해당되는 것 같습니다. 그렇지 않으면 경기가 *,!something의미가 없습니다.

sshd여기서는 업스트림을 비난하고 건설적인 피드백을 제공하지 않고 서로 다른 포트에서 두 개의 별도 서비스를 실행하는 것이 좋습니다 . 서버를 사용 AllowGroup sftp하고 강제로 사용합니다 sftp. 다른 하나는 내부 네트워크의 요청에만 응답합니다.

답변2

네트워크 태그가 잘못되었습니다. 개인 네트워크를 포함하려면 다음을 사용해야 합니다.

10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

이는 오류가 아닌 불일치의 원인일 수 있습니다 ssh.

관련 정보