Como executo o wireshark, com privilégios de root?

95

Uma instalação padrão do Wireshark não dá ao programa permissão para acessar a interface de rede.

Suponho que tenho que executar o programa sudo, mas não sei como adicioná-lo ao ícone - se é esse o caminho.

Sven AA
fonte
Você está falando sobre o WireShark? Caso contrário, você pode acessar a página inicial do aplicativo para ver o que você está falando. Obrigado.
Oli
Na verdade, ele provavelmente está falando sobre o Wireshark em vez do WireShark. :-)
Você pode tentar a tcpdumpferramenta no Linux se wiresharkestiver causando muitos problemas.
warfreak92

Respostas:

149

Para o WireShark, há uma maneira melhor. O pouco que normalmente precisa de raiz é o aplicativo de coleta de pacote e isso pode ser configurado para permitir que certas pessoas a usá-lo sem sudo, gksu, etc.

Em um terminal (muito importante que você esteja em um terminal, não apenas no diálogo Alt + F2), execute o seguinte:

sudo dpkg-reconfigure wireshark-common

Isso perguntará se você deseja permitir que usuários não root possam farejar. É isso que pretendemos, então selecione Yese pressione Enter.

Reconfigurando o wireshark-common

Isso adiciona um wiresharkgrupo. Qualquer pessoa nesse grupo será capaz de cheirar sem ser raiz. Obviamente, isso é mais seguro do que deixar alguém cheirar, mas significa que não há verificação de senha. Tecnicamente, qualquer pessoa com acesso a um computador conectado com uma wiresharkconta poderá farejar. Se isso é aceitável para você, continue.

Caso contrário, execute-o novamente e selecione não.

Então você só precisa adicionar o usuário a esse grupo. Rode isto:

sudo adduser $USER wireshark

E reinicie ou saia. Quando você voltar, deve começar a cheirar sem se preocupar em ser raiz.

Oli
fonte
2
Alguma maneira de pular a etapa de reinicialização / logout?
Taha Jahangir
4
Esta solução parou de funcionar em 14.04
Janghou
9
E, sim, é definitivamente uma maneira muito melhor do que executar o Wireshark como root. O arquivo README.packaging na fonte do Wireshark diz "O WIRESHARK CONTÉM MAIS DE DOIS MILHÕES DE LINHAS DE CÓDIGO DE ORIGEM. NÃO OS EXECUTARÁ COMO RAIZ".
3
@TahaJahangir Se o reinício / logout for inconveniente, você pode usar o newgrp wiresharkcomando para entrar temporariamente no grupo depois de se tornar um membro do wiresharkgrupo.
Lekensteyn
3
@TahaJahangir e Oli: Muito mais conveniente do que encerrar a sessão é usar su - $USERcomo descrito na Recarregar trabalhos de grupo de um usuário Linux sem sair - Usuário Super
nealmcb
3

Você também pode executar o Wireshark com privilégios de root executando a gksu wiresharkpartir do terminal.

Observe que existem preocupações de segurança com a execução do Wireshark nesse modo, a saber, qualquer exploração que comprometa o Wireshark agora tem privilégios de root, em vez de privilégios de usuário. Isso é mais uma preocupação do Wireshark do que de outros aplicativos, porque, por sua natureza (captura e processamento de entradas arbitrárias), o Wireshark é mais vulnerável a explorações do que os aplicativos de desktop típicos. Você provavelmente está seguro em uma rede SOHO, mas deve estar ciente dessa preocupação antes de continuar.

Citações:

Maverick
fonte
Acabei de configurá-lo com o sinalizador --enable-setcap-install e não posso fazer isso.
Smile.Hunter
Isso é muito mais perigoso e mais problemático, porque existem erros mais exploráveis ​​ao executar a GUI completa como raiz, e problemas de configuração podem surgir quando um programa de GUI é executado como raiz. Veja a solução dpkg-reconfigure acima para uma opção muito melhor.
Nellmcb
Para usuários de desktop, considero isso uma solução alternativa. Quando você faz o sudo do aplicativo, todos os arquivos que ele cria têm permissão de root e você precisa constantemente alterar as permissões de arquivo para disponibilizá-las ao usuário atual no diretório inicial. Para servidores e administradores de sistemas em geral, o sudo é realmente a melhor abordagem.
JulioHM
@JulioHM A execução do Wireshark como root é perigosa para todos, incluindo servidores e administradores de sistemas.
Kraxor
1
Aproximadamente na linha 40 do arquivo doc / README.packaging do Wireshark , ele diz "O WIRESHARK CONTÉM MAIS DE DOIS MILHÕES DE LINHAS DE CÓDIGO DE ORIGEM. NÃO OS EXECUTARÁ COMO RAIZ". Leve essa afirmação muito a sério.
3

Realmente você não precisa iniciar o WireShark como root. Por favor, leia a página oficial . Em resumo, você deve fazer:

sudo groupadd wireshark
sudo usermod -a -G wireshark $USER
sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod o-rx /usr/bin/dumpcap
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
sudo getcap /usr/bin/dumpcap

Em seguida, efetue logout e logon novamente.

Nota: este método foi testado em 16.04 LTS, 17.10 e 18.04 LTS.

pyprism
fonte
1
Isso permanecerá interfaces de carregamento, a menos que seja alterado. sudo chgrp USER_NAME / usr / bin / dumpcap
amrx:
1

você pode tentar isso também, abra o terminal, execute este comando

# setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap

execute o wireshark como um usuário não raiz

vik
fonte