Bonjour é um protocolo utilizado para descoberta de serviços presentes em uma rede local, como compartilhamento de arquivos, impressão, chat, música e outros serviços em redes IP. Ele monitora serviços disponíveis em outros computadores e também fornece informações sobre os serviços disponíveis no sistema local.
Usuários e aplicações em uma rede local podem utilizar o Bonjour para determinar rapidamente quais serviços estão disponíveis no computador local e também divulgar para outros computadores e dispositivos os seus serviços. Pelo fato de a Apple ter tornado o projeto Bonjour open source, hoje ele está disponível em diversos sistemas, aplicativos e equipamentos de rede.
Uma rede de pesquisa Bonjour é definida pelo domínio .local
— desta forma, para localizar um determinado host ou serviço basta procurar por nomecomputador.local
. Para modificar o nome Bonjour do seu computador, abra as Preferências do Sistema (System Preferences) e vá em Compartilhamento (Sharing). Logo no topo você encontrará o campo nome do computador, mas você também pode modificá-lo pela linha de commando (não precisa utilizar .local
como sufixo):
sudo systemsetup -setlocalsubnetname novo-nome
Existem alguns recursos interessantes que utilizam a tecnologia Bonjour, como por exemplo o Despertar a Pedido (Wake on Demand) — o qual permite que seu computador continue compartilhando itens como músicas, impressoras, arquivos ou tela mesmo quando está em modo repouso. Ou também o aplicativo Mensagens (antigo iChat), que possibilita trocar informações com outros computadores que estão na mesma rede sem a necessidade de configurar uma conta de serviço.
Essa troca fácil de informações torna o serviço de descoberta muito conveniente, mas também gera um risco de segurança pois expõe os serviços presentes no seu computador. Para reduzir os problemas de segurança, o OS X roda todos os serviços de rede dentro de um ambiente controlado chamado de sandboxing. Isto evita que atacantes explorem vulnerabilidades e tenham acesso privilegiado dentro do SO.
Caso você não confie nos computadores e dispositivos presentes em sua rede, evite as facilidades do Bonjour pois um atacante poderia se passar facilmente por um servidor e prover arquivos maliciosos em uma rede. Conecte-se em serviços disponíveis na rede utilizando o IP do servidor. No Finder, vá ao menu Ir » Conectar ao Servidor… (Go » Conect to Server…, ou use o atalho Command + K). Lembrando que você deve especificar previamente o protocolo e em seguida o IP ou nome do seu servidor:
Compartilhamento de arquivos entre computadores Apple
afp://servidor
Compartilhamento de arquivos entre Mac e Windows
smb://servidor
Compartilhamento de tela
vnc://servidor
Servidor FTP (não recomendável pois o usuário e senha são trafegados em texto plano)
ftp://servidor
Servidor WebDAV (atualmente muito utilizado para trocar informações com aplicações iOS)
http://servidor/pasta
Para desabilitar a publicação Bonjour dos serviços do seu computador, edite o arquivo /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
e insira a linha <string>-NoMulticastAdvertisements</string>
abaixo da linha <string>-launchd</string>
. Em seguida, reinicie o seu computador ou digite os comandos abaixo no Terminal:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Atenção: alguns aplicativos que compartilham dados como informações de contato, fotos e músicas utilizam a tecnologia Bonjour para que outros usuários e computadores da rede possam descobrir sobre o compartilhamento. Impressoras de rede também utilizam esse tipo de recurso. Se o Bonjour estiver desativado, você terá que configurar manualmente determinado recurso ou voltar à configuração acima.
Caso você seja um administrador de redes e queira bloquear a propagação dos serviços Bonjour, basta bloquear a porta 5353 UDP. Neste link a Apple disponibiliza documentos e vídeos sobre como implementar Bonjour em aplicativos e periféricos de rede.