Suas netmaks estão incorretas. Se você quiser incluir redes privadas, use:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
Provavelmente é por isso que você não corresponde, em vez de um erro ssh
.
Estou tentando configurar as seguintes restrições no meu sshd_config
:
sftp
, têm permissão para usar o sftp em uma cadeia chroot sftp
, não podem fazer nada. Veja o que eu criei:
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
O problema: quando eu tento logar de um endereço interno, como um usuário não-sftp, sou rejeitado; o terceiro jogo é acionado.
De acordo com a% man_de% manpage, uma correspondência só é satisfeita se todas as suas cláusulas forem satisfeitas, mas no meu caso, a primeira cláusula não está satisfeita (eu estou vindo de uma máquina com um 172.16.0.0/20 Endereço IP), apenas o segundo é (não estou no grupo sftp).
A% man_de% manpage está errada? É possível fazer o que estou tentando fazer?
UPDATE: por sugestão do @ steve, executei o sshd no modo de depuração e obtive isto:
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"
As cláusulas no-internal-adress são correspondentes; também, o primeiro Match não é mencionado no log de depuração, o que parece estranho.
ATUALIZAÇÃO:
Como apontou @Gilles, minhas especificações de endereço, conforme mostrado acima, estão incorretas. O que eu deveria ter usado era 10.0.0.0/8, não 10.0.0.0/24 e 172.16.0.0/12, não 172.16.0.0/20. Eu estava contando os bits da máscara de 32 em vez de 0. Yikes.
Com os endereços corrigidos, a configuração funciona. Obrigado Gilles e Uriel!
(Eu também alterei o / sbin / nologin na última linha para / bin / false; o primeiro leva a uma estranha mensagem de erro do sftp: sshd_config
.)
Eu estava respondendo a uma pergunta semelhante em Superuser.com , mas depois das respostas eu não tenho mais certeza se está certo.
Em suma, acredito que atualmente não é possível e até openssh-7.0
está fora, mas esses bugs não foram corrigidos, então teremos que insistir no upstream.
Também há resposta alternativa com feedback positivo, mas acho que é assim que você está tentando alcançar seus resultados. Eu não tentei, mas parece que isso está relacionado apenas a grupos. Caso contrário, *,!something
não faz muito sentido.
Para não culpar todo o processo até aqui e não apresentar nenhum feedback construtivo, recomendo que você execute dois serviços sshd
separados em portas diferentes. Um seria usuário AllowGroup sftp
e forçar sftp
server. O outro responderia apenas a solicitações da sua rede interna.
Tags openssh sshd configuration