O melhor pedaço da Maçã.

Segurança no mundo Apple: gerenciamento remoto

Ícone do Terminal

Gerenciamento é o ato de executar ações em um sistema após a etapa de autenticação e autorização. Estas, também conhecidas como tarefas, são executadas de acordo com o nível de privilégio do usuário autorizado. Existem inúmeras formas de gerenciar um sistema remotamente; você pode utilizar recursos disponíveis no próprio SO ou programas de terceiros.

Publicidade

Ícone do TerminalUma das formas mais primitivas de gerenciamento remoto é a utilização de instruções via linha de comando. No início era muito comum o uso dos protocolos rlogin ou Telnet, entretanto por questões de segurança com o tempo foram substituídos naturalmente pelo Secure Shell (SSH), escrito em 1995 por um pesquisador finlandês.

Com o SSH você precisa de um servidor (computador ao qual você irá gerenciar remotamente) e um cliente (computador que se conectará ao servidor). Todas as distribuições Unix já vêm com o pacote de instalação do SSH, basta você habilitar (iniciar) o serviço. No OS X o serviço encontra-se instalado e configurado pronto para ser habilitado via interface gráfica ou linha de comando.

Os benefícios de se utilizar SSH estão relacionados às facilidades de rodar scripts remotamente, interação via shell — o que expande os recursos de gerenciamento de um sistema Unix, criptografia dos dados trafegados e rapidez na comunicação em virtude do tamanho reduzido dos dados que são trafegados. Existem clientes SSH para diversas plataformas, dentre elas Windows através do famoso PuTTY.

Publicidade

Para habilitar o serviço, abra as Preferências do Sistema (System Preferences) e vá em Compartilhamento (Sharing), habilitando depois a opção Acesso Remoto (Remote Login). Por questões de segurança, permita que apenas o grupo Administradores possa se conectar ao sistema através do serviço; cuide também para que os usuários com privilégios de admin possuam uma senha forte contendo caracteres especiais, letras e números.

Acesso Remoto - Compartilhamento do OS X

Para conectar a um servidor via cliente nativo do OS X, abra o Terminal e digite:

Publicidade
ssh login_do_usuario_remoto@computador_remoto (ssh admin@servidor.local)

Lembre-se que, após conectado, todos os comandos executados rodarão no computador remoto, portanto aí vão algumas dicas de comandos para quem estiver começando:

Listar todos os processos que estão executando no sistema e o seu número PID

ps ax

Finalizar aplicativo de acordo com o PID passado (caso você tenha privilégio sobre o processo)

Publicidade
kill -9 PID

Cantar uma música no sistema remoto

say -v Cellos "Dum dum dum dum dum dum dum he he he ho ho ho fa lah lah lah lah lah lah fa lah full hoo hoo hoo"

Desligar o computador remotamente

sudo shutdown -r NOW

Finalizar a conexão SSH

exit

Vale muito a pena aprender shell, pois, via linha de comando, se tem muito mais recursos do que na interface gráfica do sistema. Em shell podem ser criados scripts para fazer tudo e muito mais — e quando eu falo tudo, é tudo mesmo! Tem maluco que faz até site em Shell Script utilizando CGI, rs…

Além de comandos remotos você também pode utilizar o SSH para transferir arquivos entre computadores utilizando o cliente SCP. Sem dúvida nenhuma, esta é a melhor opção frente ao FTP pois trafega dados em texto plano; se o seu servidor tem o serviço SSH habilitado, então utilize-o.

·   ·   ·

Um pouco de história: há alguns anos, um grupo hacker chamado 7350 (TESO) divulgou um código que explorava uma vulnerabilidade do SSH. Como este roda com direitos de root (maior privilégio em um sistema Unix), o atacante conseguia acesso remoto privilegiado através da vulnerabilidade. Na época existiam inúmeros servidores vulneráveis e começou uma corrida de ataques e correções. Administradores mais atentos e atualizados logo providenciaram formas de se protegerem, outros acabaram sendo invadidos e até hoje existem reflexos dessa onda.

Inúmeros servidores invadidos hoje ainda servem como máquinas zumbis que propagam ataques de negação de serviço ou armazenamento de dados ilegais pela internet. Uma dica importante é sempre verificar a integridade do seu cliente e servidor SSH, pois inúmeros atacantes utilizam backdoors em servidores SSH para garantir o acesso remoto ao computador e também capturar senhas de usuários do sistema.

Para isso, via Terminal, você pode verificar a hash md5 através do seguinte comando:

md5 $(whereis sshd) $(whereis ssh)

Para os nerds de plantão, a Apple mantém um repositório de grande parte dos projetos open source que ela disponibiliza para o mundo ou que ela utiliza em suas distribuições. O código fonte do OpenSSH modificado pela Apple está neste link. Não vão sair modificando a função de login para permitir que um usuário e senha falso seja autenticado e com isso criando backdoors de SSH para máquinas OS X alheias, hein! Bon appétit. 😀

Ver comentários do post

Compartilhe este artigo
URL compartilhável
Post Ant.

Estreando na App Store: Just Sing It!, Run Cow Run e Cobertura

Próx. Post

MacMagazine no Ar, episódio #027: iWatch, atualizações em MacBooks, falhas do iOS 6.1 e mais!

Posts Relacionados