Não que seja uma boa ideia mudar isso, mas por diversão. De acordo com este post, ainda existem alguns problemas, mesmo após mudando as entradas em /etc/passwd
, /etc/shadow
e /etc/sudoers
. Alguma sugestão?
Não que seja uma boa ideia mudar isso, mas por diversão. De acordo com este post, ainda existem alguns problemas, mesmo após mudando as entradas em /etc/passwd
, /etc/shadow
e /etc/sudoers
. Alguma sugestão?
Respostas:
Teoricamente, alterá-lo /etc/passwd
e /etc/shadow
seria tudo o que você precisa para 'renomear' root. O problema ocorre porque praticamente todos os softwares Unix existentes assumem que o nome de usuário 'root' existe e que é o superusuário - aliases de email, vários daemons, cron ...
Se você está realmente empenhado em tentar, find /etc -type f -exec grep -l root {} +
deve ser um bom começo para encontrar uma lista de todos os arquivos de configuração que provavelmente precisará alterar - mas, como você já disse, essa é uma péssima idéia em quase todas as situações possíveis.
EDIT Outro pensamento - se você ainda não o fez (o que deveria ter), verifique se /etc/aliases
contém uma entrada root
e um nome de usuário que existe ou um endereço de e-mail que é avaliado corretamente. Muitas tarefas automatizadas em todo o sistema ( cron
por exemplo) enviam sua saída por e-mail para root
, o que é tradicionalmente associado aos administradores de sistemas responsáveis pelas operações desse sistema.
chown root …
ou similares em um script de shell.
Todo esse medo, dizendo: "Não faça isso!" é ridículo. Ao mesmo tempo, sim, provavelmente quebrou muitos scripts mal escritos, mas suspeito que não sejam mais tão comuns; pelo menos não nas distribuições padrão.
Nos disseram para renomear a conta root em um subconjunto de servidores linux. Então, depois de tentar pesquisar como fazer isso corretamente, encontrei muitas postagens dizendo "Não faça!" com muitos avisos terríveis de "coisas ruins" acontecendo se você optar por fazer isso. Mas ainda não encontrei exemplos concretos das "coisas ruins" que poderiam acontecer.
Então, deixe-me voltar e explicar onde estou e como chegamos aqui. Estamos criando um ambiente compatível com PCI, e uma das ferramentas que nos ajuda a atender a esses "requisitos" está nos dizendo que precisamos renomear as contas raiz, de administrador e de convidado para outra coisa. Para aqueles sem instrução sobre PCI, você tem a opção de seguir as diretrizes ou documentar por que você não pode ou optar por não seguir essa diretriz e qual estratégia de mitigação você tem para manter os sistemas seguros. Portanto, imagino que a maioria dos locais documenta por que eles não renomearão suas contas raiz, no entanto, nosso grupo decidiu que, se pudermos renomear as contas de administrador do Windows sem problemas, eles também renomearão as contas raiz do linux.
Sou bem versado nos argumentos "segurança através da obscuridade"; Sei que apenas alterar o nome da conta raiz não melhora muito a segurança, a raiz deve ser desativada no SSH etc. Eu sei que não é esse o ponto, não estou interessado em ouvir mais. Também não estou interessado em mais avisos "o céu cairá". Estou procurando por declarações como esta: "> essa coisa ruim <acontecerá com> este pacote padrão <(a menos que você faça isso <)".
Até agora, tenho 3 sistemas CentOS (RHEL) que aparentemente não têm problemas em renomear a conta raiz. Aqui está o que eu fiz: Alterei o nome da conta em / etc / passwd, / etc / shadow, / etc / group e / etc / gshadow. Em seguida, grepped para o nome root em / etc / e modificou o arquivo de aliases do postfix para que root fosse um alias para nosso novo nome de conta, chame-o de rojotoro. (Algo semelhante deve ser feito para outros sistemas de email). Também descobri que precisava alterar algumas configurações para rotação do log ao descrever quem deveria possuir os arquivos que ele criaria automaticamente. E isso foi tudo que mudei até agora.
Eu olhei para muitos scripts init.d, mas não mudei nada, e tudo parece começar bem na inicialização. Preciso especificar a nova conta ao usar o sudo: "sudo -u rojotoro vim / etc / passwd" como exemplo, mas na verdade não preciso alterar nada no arquivo sudoers. Eu esperava talvez alguns problemas com o selinux que temos e aplicando, mas até agora não precisei mexer nesse sistema.
Também posso ver que os scripts mkdev ou mkfs podem precisar ser ajustados, mas não planejo usá-los, portanto não os olhei com o escrutínio que eles merecem.
Se é realmente fácil mudar isso sem causar efeitos negativos em um sistema habilitado para selinux, por que a continuação de todo esse medo?
rpm -Va
diz nos sistemas em que a conta raiz é renomeada? De acordo com o guia Maximum RPM "Os identificadores de usuário e grupo não devem ser numéricos", portanto, qualquer RPM que especifique arquivos deve pertencer à raiz não poderá fazer isso no momento da instalação. Apenas imaginando como seus sistemas lidariam com isso.
sugestão: não faça isso.
Algumas ferramentas tentam falar com o root via uid, aí você não deve ter problemas. algumas ferramentas assumem que sua conta root é chamada root e será interrompida. a menos que você esteja preparado para recompilar metade do seu sistema "por diversão", apenas não tente.
Na minha opinião, a coisa mais fácil a fazer é criar um novo usuário (alias), com o UID 0 e /root
em casa.
Por que você não muda o shell padrão da raiz para /bin/false
ou /sbin/nologin
(para que ninguém possa fazer login, mas o sistema ainda o usa) e faz login no novo alias criado?
razvan@naboo ~ $ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/nologin
root2:x:0:0:root:/root:/bin/bash
razvan@naboo ~ $ su -
Password:
su: Authentication failure
razvan@naboo ~ $ su root2
Password:
naboo razvan # whoami
root
Se você alterar o shell do root para nologin, o sudo, mail ou ftw não serão danificados.
/bin/false
ou /sbin/nologin
não seria possível iniciar nenhum serviço. Então, tudo isso teria que ser reconfigurado. Além disso, o objetivo era melhorar a segurança, adicionar uma segunda conta com permissões "raiz" dificilmente melhora a segurança.
O Linux não é Windows e o root não pode ser renomeado facilmente sem criar problemas futuros desconhecidos.
Desabilitar o login remoto e até local como root é uma abordagem mais segura, pois desativa ativamente a raiz da conta! O UBUNTU basicamente faz isso e força o sudo em vez do acesso root.
Essencialmente, ninguém pode usar a conta root para atacar seu sistema, pois ela não pode mais ser usada para fazer login no sistema!
Seria bom se uma maneira padrão fosse criada para modificar facilmente o nome da conta raiz e gerar seu UID aleatoriamente durante a instalação e, se possível, a cada inicialização a frio para impedir a segmentação por UID, mas que atualmente não existe.
Ajustando o / etc / passwd Modificar root: x: 0: 0: root: / root: / bin / nologin
Crie uma única conta de administrador substituto APENAS PARA USO EM EMERGÊNCIA! fallbackadmin: x: 0: 0: raiz: / raiz: / bin / bash
Implemente o sudo para todos os administradores, para que a auditoria do log de alterações possa ser implementada para rastrear com precisão quem faz alterações por responsabilidade!
Isso implementa os requisitos do PCI US Gov para desativar as contas de administrador / convidado padrão e criar uma única conta de administrador para uso emergencial.
Uma maneira de arquivar logs para auditoria é coletar o histórico do terminal de todos os usuários com acesso à conta sudo se o AAA centralizado não for implementado.
Uma solução para implementar contas apenas de administrador é criar uma conta apenas de usuário e uma conta habilitada para sudo e forçar o usuário a usar sua conta habilitada para sudo para acesso administrativo.
Você também pode implementar a autenticação de cartão inteligente, se desejar uma segurança melhor. Existem soluções disponíveis para o GNU / Linux que se comparam às Soluções CAC do Cartão de Acesso Comum dos EUA para autenticação de dois fatores.