Como você renomeia raiz?

27

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/shadowe /etc/sudoers. Alguma sugestão?

yxkb
fonte
o nome da conta "raiz"? o diretório de nível superior "/"?
akira
4
o nome de usuário root
yxkb
11
então, por favor esclarecer sua pergunta ...
akira
7 anos depois, eu me pergunto se você foi em frente com ele e que tipo de BadStuff aconteceu por causa disso ... ^ _ ^
Mioriin 25/09/18

Respostas:

29

Teoricamente, alterá-lo /etc/passwde /etc/shadowseria 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/aliasescontém uma entrada roote um nome de usuário que existe ou um endereço de e-mail que é avaliado corretamente. Muitas tarefas automatizadas em todo o sistema ( cronpor 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.

Shadur
fonte
2
/ etc / grupo também tem os nomes de usuário ...
vrdhn
Somente nomes de usuários quando o grupo em questão não é o grupo padrão, mas é um bom argumento.
Shadur 02/03/11
3
é isso? eu pensei que a maioria dos aplicativos ir para UID e não o name.i acho idealmente, nenhum aplicativo deve assumir "root = UID 0"
yxkb
2
@yxkb: Você está certo, nenhum aplicativo deve assumir isso. Mas eu realmente gostaria de receber 1 $ por cada aplicativo ou script que receber! :)
Bram
11
De fato. Vamos pensar em todos os momentos em que todos nós escrevemos pessoalmente chown root …ou similares em um script de shell.
derobert
24

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?

5mi11er
fonte
11
Essa seria uma resposta bastante melhor se você recortar os vários parágrafos dedicados a chamar as pessoas de ignorantes; não é realmente necessário
Michael Mrozek
3
Você está certo, mas demorou um pouco para eu admitir. Sua intenção era ajudar a garantir que outras pessoas tivessem experiência real com a alteração do nome de usuário root antes de simplesmente contestar a idéia, mas isso realmente não era necessário.
11 de
3
Como você está no CentOS: você pode verificar o que rpm -Vadiz 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.
Bram
11
Onde, no PCI, ele diz que você precisa renomear ROOT?
Kidburla
@MichaelMrozek, normalmente eu concordaria que uma resposta não deveria ter uma história como essa. No entanto, uma pesquisa na Internet para esse tópico está repleta de tantos avisos exatos que o OP gasta três parágrafos falando, acho que é necessário neste caso. Isso ajudou a enquadrar o parágrafo "Como fazer" e facilitou o acompanhamento, sabendo que o contexto de sua solução é semelhante ao meu.
user1717828
7

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.

kuhkatz
fonte
2
Não acho que alguém esteja contestando que renomear raiz é, na melhor das hipóteses, uma péssima idéia.
Shadur 02/03/11
Kuhkatz, é apenas uma precaução. Se alguém faz isso, pode ajudar a reverter isso, se você sabe o que acontece quando alguém muda de raiz
yxkb
o artigo que você teve com essa ideia nas notas de que isso interrompe o login como root, como usar o sudo. portanto, a única maneira de revertê-lo seria uma reinstalação limpa. portanto, você não precisa experimentá-lo, é obviamente como restaurá-lo. além disso, tenha um LART à mão, caso um usuário tente de qualquer maneira.
precisa saber é o seguinte
Por conta de recompilar ... gogo gentoo? Um patch em cada Ebuild para governar todos eles?
Bananguin 07/02
4

Na minha opinião, a coisa mais fácil a fazer é criar um novo usuário (alias), com o UID 0 e /rootem casa.

Por que você não muda o shell padrão da raiz para /bin/falseou /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.

fromnaboo
fonte
É certo que, como o @ 5mi11er apontou, eu não tentei isso, mas se o shell do root estiver definido como /bin/falseou /sbin/nologinnã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.
Bram
Eu acho que essa solução é a melhor até agora, ela permite que o nome anule a pesquisa para root e desativa o login para root. Você pode trocar a ordem das linhas para que o root2 apareça antes do root, então whoami reportará root2, ie. A pesquisa uid to name pára quando a primeira entrada de uid é correspondida. Não concordo que os serviços não possam ser iniciados, pois o kernel inicia um processo e fornece o uid 0 para configurar o sistema (init, upstart, ...) #
X Tian
2

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.

Timothy Butterworth
fonte