Permitir login raiz apenas de um endereço IP


14

Eu tenho centos5.

Existe alguma maneira que eu possa fazer logon no meu servidor vps com o usuário root apenas de um determinado endereço IP.

Eu li que posso usar chave privada para fazer login no sshd. Mas o problema é que estou usando SFTP para todos os meus webistes e não quero que usuários de TI não usem chaves para fazer login com SFTP.

OU existe alguma maneira de que apenas o root possa usar chaves para fazer login no shell, mas para outros sua senha normal

centos  root  ssh 

Respostas:


15

Uma maneira melhor agora é usar a palavra-chave Match:

Match Host myworkstation
        PermitRootLogin yes

ou

Match Address 192.168.1.100
        PermitRootLogin yes

Dessa forma, você pode deixar PermitRootLogin definido como 'não', mas ainda pode fazer login como root na sua estação de trabalho.

Isso também pode ser usado, por exemplo, para permitir que o root sincronize dados entre dois hosts.


seu exemplo do rsync é exatamente o caso de uso para o qual eu pesquisei essa questão no Google. Obrigado! ;)
Jan

Esteja ciente de que isso só funciona usando o DNS reverso do endereço IP de origem. (pelo menos para mim, foi a única maneira)
mveroone

9

Geralmente, é uma prática recomendada fazer login como um usuário não privilegiado e depois usar 'su -' ou 'sudo' para obter privilégios de root, mas ...

Você sempre pode colocar a restrição de IP em sua chave em ~ root / .ssh / allowed_keys:

from="192.168.1.100" ssh-rsa AAAAh9uif...auwehuf== yourkey@yourhost.com

Isso permitiria que o ssh usasse a chave yourkey@yourhost.com apenas a partir de 192.168.1.100.


Concordou, apesar de que é mais complicado do que fazer para coisas como sftp, rsync, sshfs ...
mveroone

3

Usar:

PermitRootLogin sem senha

Em / etc / ssh / sshd_config. Todo usuário, exceto o root, poderá usar logins com senha. O Root precisa usar chaves para fazer login.


Essa slution funcionará ?? u tentou isso

Eu uso essa configuração em todos os servidores que mantenho. Impede ataques bruteforce / dict de raiz. unixhelp.ed.ac.uk/CGI/man-cgi?sshd_config+5
rubiojr

Este parece quebrar git pullembora: / etc / ssh / ssh_config: Linha 68: opção de configuração Bad: PermitRootLogin
geoidesic

Também PermitRootLogin não aparece emman ssh_config
geoidesic

Também é facilmente anulado comssh -o PreferredAuthentications=password
geoidesic

2

Edite sshd_config(geralmente em /etc/ssh) e adicione ou altere as seguintes diretivas

  PermitRootLogin yes
  AllowUsers root@thehosttoallow

Em seguida, reinicie o daemon

  service ssh restart

Acredito que, se o OP quisesse usar AllowUsers, ele precisaria especificar todos os usuários que ele deseja ter acesso. Seu exemplo permitiria apenas a autenticação do root via ssh.
EEAA

1
Sim, isso é de propósito. Para permitir que qualquer usuário, de *@thehosttoallowfato , permita que ele entre.
Ring Ø

Também é facilmente anulado comssh -o PreferredAuthentications=password
geoidesic

0

Primeiro, por que você deseja impedir que os usuários usem a autenticação de chave? Isso não faz sentido para mim.

Segundo, não permita o login root via ssh. Apenas não faça - não há boas razões para precisar fazê-lo. Isso vai contra todas as melhores práticas existentes, e por boas razões. Se você precisar conceder permissões para ler / gravar certos arquivos, poderá fazê-lo através das permissões padrão do sistema de arquivos linux. Se você precisar de um controle de acesso mais refinado, consulte o sistema ACL linux.


e se eu desativar o login root e nenhum usuário tiver acesso a algum arquivo de configuração principal. Então eu estou bloqueado como eu não consigo entrar via raiz

1
Quando você desabilita o login root via ssh, o root ainda poderá entrar pelo console. Além disso, você sempre tem a opção de conceder permissões de esquema de usuário normais via sudo. Isso não funcionará para o sftp, mas como um failback, caso você precise consertar as coisas, funcionaria bem e é a maneira preferida de conceder permissões.
EEAA

1
@ErikA Permitir a rootpartir de um host único não é inseguro. Houve uma tendência contra o rootacesso através telnetde alguns anos atrás (besore sshera comum), mas permitindo que rootvia ssha única um host não parece tão inseguro.
Anel Ø

Claro, talvez seja "seguro", mas ainda vou argumentar que é uma má idéia. Digo isso principalmente devido ao fato de que, quando as pessoas têm uma maneira fácil de obter acesso root, elas a usam, em vez de usar uma maneira mais segura e adequada de obter acesso (sudo).
EEAA

2
Considerando a pergunta do autor, pode-se assumir que ele deseja executar tarefas administrativas por meio do rootusuário. Permitir rootacesso direto de apenas um host neste caso é uma alternativa razoável.
Anel Ø
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.