Gerenciando o acesso a vários sistemas Linux

15

A procurou respostas, mas não encontrou nada aqui ...

Para encurtar a história: uma organização sem fins lucrativos precisa urgentemente de modernizar sua infraestrutura. A primeira coisa é encontrar alternativas para gerenciar contas de usuário em vários hosts Linux.

Temos 12 servidores (físicos e virtuais) e cerca de 50 estações de trabalho. Temos 500 usuários em potencial para esses sistemas. O indivíduo que construiu e manteve os sistemas ao longo dos anos se aposentou. Ele escreveu seus próprios scripts para gerenciar tudo. Ainda funciona. Não há queixas. No entanto, muitas coisas são muito manuais e propensas a erros. O código está confuso e, após as atualizações, muitas vezes precisa ser ajustado. A pior parte é que há pouco ou nenhum documento escrito. Existem apenas algumas notas Leia-me e aleatórias que podem ou não ser mais relevantes. Portanto, a manutenção se tornou uma tarefa difícil.

Atualmente, as contas são gerenciadas via / etc / passwd em cada sistema. As atualizações são distribuídas por meio de scripts cron para corrigir os sistemas à medida que as contas são adicionadas no servidor "principal". Alguns usuários precisam ter acesso a todos os sistemas (como uma conta sysadmin), outros precisam acessar servidores compartilhados, enquanto outros podem precisar acessar estações de trabalho ou apenas um subconjunto delas.

Existe uma ferramenta que possa nos ajudar a gerenciar contas que atendam aos seguintes requisitos?

  • De preferência código aberto (ou seja, gratuito, pois o orçamento é MUITO limitado)
  • mainstream (ou seja, mantido)
  • de preferência, possui integração LDAP ou pode ser feita para fazer interface com o serviço LDAP ou AD para autenticação do usuário (será necessário em um futuro próximo para integrar contas a outros escritórios)
  • gerenciamento de usuários (adição, validade, remoção, bloqueio, etc.)
  • permite gerenciar a quais sistemas (ou grupo de sistemas) cada usuário tem acesso - nem todos os usuários são permitidos em todos os sistemas
  • suporte para contas de usuário que possam ter diferentes homedirs e montagens disponíveis, dependendo do sistema em que estão conectados . Por exemplo
    • O sysadmin conectado ao servidor "main" possui main: // home / sysadmin / como homedir e possui todas as montagens compartilhadas
    • O sysadmin conectado às estações de trabalho da equipe teria nas: // user / s / sysadmin como homedir (diferente da acima) e um conjunto potencialmente limitado de montagens,
    • um cliente conectado teria seu homedir em local diferente e nenhuma montagem compartilhada.
  • Se houver uma interface de gerenciamento fácil, isso seria incrível.
  • E se essa ferramenta for multiplataforma (Linux / MacOS / * nix), isso será um milagre!

Eu pesquisei na web e, portanto, não encontrei nada adequado. Estamos abertos a sugestões. Obrigado.

EDIT: Esta pergunta foi incorretamente marcada como uma duplicata. O link para responder apenas fala sobre ter os mesmos proprietários em todos os sistemas, enquanto que precisamos ter proprietários diferentes com base em qual usuário do sistema está conectado no momento (MULTIPLE homedirs). Além disso, o acesso precisa ser concedido apenas a algumas máquinas e não a todo o lote. Mods, por favor, entenda toda a extensão do problema, em vez de apenas marcá-lo como duplicado por pontos ...

Swartz
fonte
Os 'pontos' não são concedidos por marcar duplicados. Sua pergunta não foi clara o suficiente para que 5 pessoas a considerassem duplicada.
user9517
Não sabia. Ok obrigado. No entanto, foi marcado um duplicado às pressas. Por favor, leia os requisitos de formulário que indicam claramente o que é necessário. Isto não é uma duplicata. O link fornecido para "solução" permite acesso indiscriminado a todos os sistemas (precisamos limitar quem tem acesso e a qual sistema ou grupos de sistemas). A localização real do homedir depende do sistema que está sendo acessado. O mesmo usuário pode ter homedirs E montagens diferentes, dependendo do sistema em que está conectado.
Swartz
Apenas para esclarecer: no exemplo sysadmin acima mencionado, main e nas são servidores diferentes? Portanto, o mesmo usuário teria acesso a homedirs diferentes, dependendo do homedir no qual ele se conecta?
Marco Bizzarri
@MarcoBizzarri: não sei ao certo. O sistema no qual o usuário está conectado determina o homedir. O SysA e o SysB podem ter / home / bob em / etc / passwd, enquanto o homdir para Bob no SysC pode ser / someplace / else / bob. Os dois locais conterão dados diferentes. O usuário do sistema conectado determina quais outras montagens estão disponíveis. Isso permitiria que apenas sistemas de equipe acessassem montagens de equipe compartilhadas. Onde os sistemas disponíveis "publicamente" serão limitados a outras montagens. Assim, uma equipe deve estar no PC designado pela equipe para acessar as montagens da equipe. Um pouco de compartimentalização ...
Swartz
Ok, então existem dois pontos diferentes aqui: o homedir é fixo e pode estar em algum lugar (no mesmo servidor ou em outro), mas é sempre isso. Quero dizer, a SysA sempre tem sua casa no serverX, não importa o quê. Depois disso, há um diretório compartilhado entre a equipe, vamos chamá-la de staff_dir, que deve estar disponível quando o pessoal da equipe fizer login na staff_workstation, mas não quando você fizer o login na normal_workstation; isso está correto?
Marco Bizzarri

Respostas:

17

O FreeIPA é provavelmente o que você está procurando. É para o Linux o que o Active Directory é para o Windows. (Ele também pode conversar com o AD se você tiver um ambiente heterogêneo, mas não deve ser usado para gerenciar máquinas Windows diretamente. Use o AD para isso.)

A documentação da Red Hat (eles chamam de Gerenciamento de Identidade) é muito completa e fácil de seguir, e deve ser aplicada principalmente se você não estiver usando sistemas derivados da Red Hat.

Michael Hampton
fonte
+1 freeipa é incrível.
Sirex
Eu vou estar olhando para FreeIPA. Obrigado pela dica. Pergunta: O FreeIPA suporta ter homedirs diferentes em sistemas diferentes? Exemplo: o usuário Bob possui o homedir (exportado por NFS) em / shared / home / xyz quando conectado ao SystemA e SystemB, mas quando no SystemC / qualquer que seja / special é o homedir de Bob.
Swartz
Você olhou para montagens automáticas ? Isso deve levar você a cerca de 90% do caminho, com os 10% restantes sendo pequenas alterações no ambiente existente.
Michael Hampton
Sim, os sistemas existentes usam a montagem automática. Eles são configurados manualmente para cada tipo de sistema. Infelizmente, nosso ambiente existente é muito complicado de manter. Especialmente após atualizações ou ao criar novas imagens do sistema. Embora seu núcleo funcione, sempre há algo que precisa ser aprimorado para fazê-lo funcionar.
Swartz
Bem então. Agora você tem uma boa oportunidade para começar a limpar as coisas.
Michael Hampton
6

Sugiro um bom consultor local para avaliar os detalhes da sua situação ...

Realmente.

Pode haver outros requisitos ou nuances de negócios que as pessoas deste fórum podem não reconhecer ou investir - o suficiente para considerar. Um recurso dedicado é sua melhor aposta ... Caso contrário, estamos apenas lançando recomendações de produtos para você, para algo que está facilmente fora do escopo para uma simples pergunta e resposta.


Apesar disso, minha abordagem seria aproveitar o Microsoft Active Directory e amarrar os sistemas Linux usando SSSD ou LDAP. O FreeIPA é bom em uma casa totalmente Linux, mas mesmo que você diga "sem fins lucrativos", isso não exclui necessariamente o Windows. Você encontrará o Active Directory em algum lugar ao longo do caminho. Você pode aumentar isso com diretórios pessoais montados automaticamente, mas as especificidades de quem é montado quando ou onde não são claras.

Mesmo nos ambientes de nuvem privada com 99% de Linux que eu construo agora, ainda confio no Active Directory para facilitar o gerenciamento e a autenticação centralizada. Os grupos e as permissões de acesso são fáceis, a política de senhas e o vencimento da conta são diretos. Quaisquer preocupações sobre manutenção, compartilhamento de mente e compatibilidade são cobertas pela solução da Microsoft. A replicação é incorporada, está bem documentada e há algumas provas de futuro inerentes à tecnologia.

No entanto, existem alguns detalhes ausentes da sua pergunta original ...

  • Quais distribuições Linux específicas estão presentes no ambiente? As versões são consistentes?
  • Você precisa do mesmo nível de granularidade de gerenciamento para seus sistemas Macintosh (a maioria das organizações não tenta gerenciar completamente os computadores Apple)?
  • Existem usuários remotos?
  • Você mencionou "* nix" - Que tipo de * nixes estão presentes?
ewwhite
fonte
2
não vale a pena nada que o freeipa possa fazer tudo isso por máquinas linux (replicação, política de senhas, grupos etc.) e é muito fácil de configurar (realmente!). Ele também faz replicação bidirecional contra o diretório ativo (com certeza os novos usuários são unidirecionais devido ao fato de o AD ter campos extras), mas se você tiver máquinas Windows, desejará muito o AD, independentemente, pois é tão central para a maneira como o Windows trabalha. vida. Além disso, a documentação no freeipa ainda está um pouco ausente.
precisa
Infelizmente, não há orçamento para um consultor. Não há máquinas Windows (somente se a equipe trouxer suas próprias). Todos os sistemas são CentOS (alguns 5.x outros são 6.x). A organização está no processo de obter alguns iMacs mais antigos (2007-ish), portanto, seria bom ter uma ferramenta que funcione no OSX e Linux. Uma coisa legal: não precisa se preocupar com o Windows.
Swartz
Concorde com a sugestão do Active Directory - se os custos de licenciamento forem um problema, o Samba4 é uma alternativa gratuita e usa as mesmas ferramentas / infraestrutura de gerenciamento que um AD nativo do Windows-hosetd. Quase tudo o mais pode ser configurado para autenticar no AD através do PAM, winbind, LDAP, etc. Para gerenciamento de configuração de toda a infraestrutura, consulte Salt ( saltstack.com/community.html blog.smartbear.com/devops/… )
nedm 01/07/2013
3

O sistema atual funciona, mas é difícil de gerenciar. Acho que também existem outros problemas para gerenciar esses servidores, se tudo foi feito manualmente. Eu adotaria uma abordagem diferente, não substituindo algo que funciona (gerenciamento de usuários) e resolvendo o problema de administração dos servidores.

Eu recomendo usar algo como cfengine http://cfengine.com/community (edição gratuita lá) para "modernizar" a administração do sistema, não apenas o gerenciamento de usuários. É uma boa oportunidade para experimentá-lo porque seu sistema atual funciona como usar o cfengine para distribuir a configuração para os servidores, no seu caso, o / etc / passwd. Portanto, em vez de substituir, você migra esses scripts para cfengine. Espero que o impacto seja muito mínimo, porque você ainda está usando o mesmo / etc / passwd.

Quando estiver familiarizado com o cfengine, você poderá criar mais receitas para resolver mais problemas, como ter um sistema de gerenciamento de usuários completamente novo e ter a ferramenta para gerenciar a configuração nos servidores.

Para ajudar você a começar, encontrei este link http://explosive.net/opensource/cfpasswd/doc/cfengine.html que mostra como distribuir o arquivo / etc / passwd e arquivos relacionados.

Mesmo se você quiser substituir o sistema de gerenciamento de usuários agora, ainda precisará de uma ferramenta de administração para gerenciar esses servidores. É melhor ter a ferramenta de administração mais cedo ou mais tarde e reconfigurar o gerenciamento de usuários em uma ferramenta de administração.

imel96
fonte
0

Apenas algumas coisas rápidas para adicionar -

Eu tenho usado o Puppet em minha implantação - idéia semelhante ao cfengine - http://puppetlabs.com

Isso também pode fazer o gerenciamento de usuários e a configuração geral / gerenciamento de servidores.

Se você quiser experimentar algo tão versátil quanto o Samba, poderá haver a possibilidade de gerenciar os diretórios com alguma configuração, bem como a possibilidade de usar um back-end LDAP para configuração. O Samba 4 amadureceu bastante e poderia realmente fornecer um ambiente integrado ao Windows e Linux para gerenciamento / autenticação.

O Samba trabalha com o AD ou também como um substituto para o AD.

Há também um produto chamado Centrify, que eu olhei há algum tempo. Eu nunca fui muito longe com isso, mas acredito que eles também têm uma versão freeware / opensource. Se bem me lembro, tinha potencial para um ambiente misto, fornecendo gerenciamento de Windows e Linux e possivelmente Mac.

Eu secundaria a sugestão de um consultor. Essas implantações podem ser muito complicadas de instalar, com rapidez, mas são fáceis de manter, uma vez documentadas e configuradas.

Best of Luck

JTWOOD
fonte
1
Eu olhei para Puppet e Chef para gerenciamento de configuração desde o início. O Puppet permite 10 nós grátis, com o Chef você ganha 5 grátis. Depois desse ponto, o Puppet Labs cobra US $ 99 / nó / ano. Seria alguns milhares para nós. Empecilho. Embora eu não me lembre dos preços do Chef, mas é a mesma idéia. Não está no orçamento. :(
Swartz