Luis Gustavo S. Barreto€¦ · Apotando pela Linux Magazine como “SSH do século XXI” e a...

Preview:

Citation preview

Luis Gustavo S. Barreto

● Trabalha na O.S. Systems onde

desenvolve soluções para Linux há

cerca de 15 anos.

● Cocriador e desenvolvedor do

projeto ShellHub

AGENDA

● O.S. Systems - Quem somos?● O que é o ShellHub?

○ Por que desenvolvemos o ShellHub?

○ Por que SSH do século XXI?○ O problema de um servidor SSH padrão

● Benefícios● Usando o ShellHub

○ Versões

○ Instalaçao

○ Casos de uso

● O que vem por aí...

Quem somos?

A O.S. Systems está no mercado desde 2002, com foco no desenvolvimento e personalização de sistemas embarcados e consultoria especializada em software de código aberto.

Diante da ausência de soluções completas que suprissem nossas demandas na área de embarcados, nos últimos 5 anos passamos a desenvolver soluções próprias para atualização OTA (UpdateHub) e acesso remoto (ShellHub).

O que é o ShellHub?

Introdução

O ShellHub é uma plataforma open source, desenvolvida para permitir o acesso remoto a dispositivos Linux.

Compatível com com diversas arquiteturas de hardware, o que significa que pode ser utilizado para acessar desde um computador de mesa à uma Raspeberry Pi, por exemplo.

Por que desenvolvemos o ShellHub?

● Suprir uma necessidade que grande parte

dos nossos clientes tinham;

● Necessidade de acesso remoto ao terminal dos

dispositivos

● Em alguns casos, acessar a interface não é

suficiente;

● Equipamentos com alto valor agregado

distribuídos nos mais diversos cenários e

localidades;

Por que desenvolvemos o ShellHub?

● Muitos dispositivos desempenham tarefas críticas, o que torna a segurança o principal requisito.

● Nesse caso possibilitar o acesso ao hardware passa a ser um risco, além de demandar mais tempo de desenvolvimento.

● É necessário configuração específica de infraestrutura de rede (VPN, Firewall, Tunel Reverso) tornado o projeto muito mais complexo e aumentando as chances de vulnerabilidade.

Comunidade

Desde o ínicio o ShellHub nasceu para ser um projeto de código aberto e em 4 de Junho o projeto completou 1 ano de desenvolvimento.

● Stars: 249● Forks: 20● Contributors: 11● Releases: 19

Por que SSH do século XXI?

Apotando pela Linux Magazine como “SSH do século XXI” e a “Reinvenção do SSH” o ShellHub oferece uma maneira inovadora de acessar remotamente dispositivos Linux.

Pense no ShellHub como um servidor SSH centralizado (cloud) fornecendo acesso a dispositivos Linux que não estão visíveis publicamente na internet.

O problema de um servidor SSH padrão

O protocolo SSH é um protocolo muito seguro, simples e versátil, tendo uma infinidade de aplicações diferentes e seu uso é amplamente difundido na área de TI.

Então qual é o problema? Na verdade nenhum. O que acontece é que o servidor SSH mais popular, o OpenSSH, não acompanhou o era cloud/IoT e funcionalidades como virtual hosts não foram implementadas.

Virtual host

O termo virtual host é utilizado na configuração de webservers como Apache. Com virtual hosts é possível em uma única instância de um webserver server diferentes sites através de diferentes domínios.

Simulando virtual host com tunnel SSH

É possível criar um túnel reverso utilizando o OpenSSH mas essa abordagem possui alguns problemas:

● Manter um servidor SSH na internet;● Necessidade de executar um comando longo e

complexo no cliente para iniciar o tunel;● Ter que abrir ínumeras portas no firewall do servidor;● Criar um mapeamento contendo qual porta pertence a

um determinado cliente (tunel);

Resolvendo o problema de resolução de virtual hosts com o ShellHub

O ShellHub resolve o problema de resolução de virtual hosts com um conceito chamado “SSHID” que é o endereço de um dispositivo dentro do ShellHub e seu formato é similar a um endereço de email.

Visão Geral

Sistemas operacionais suportados

● Distros desktop convencionais○ Ubuntu, Debian, Fedora, etc…

● Distros/build systems para embarcado:○ Yocto, Buildroot, Raspbian, Ubuntu

Core, etc…● Praticamente qualquer distribuição

Linux

Funcionalidades

● Acesso remoto por interface Web● Acesso remoto por cliente padrão SSH● Suporte a SCP (copiar para e copiar de)● Suporte a multiplas sessões SSH

simultaneas● Registro de sessões SSH

Tecnologias

Benefícios do ShellHub

Benefícios

>_ Conectividade: Acesse o terminal do Linux a partir de qualquer lugar;

>_ Facilidade: Não é necessário configurar VPN ou Firewall;

>_ Segurança: Baseado no protocolo SSH (conexão criptografada com chaves RSA);

>_ Economia: Redução de custos de deslocamento e unidades de assistência remota;

Utilizando o ShellHubLet’s Do It!

Versões

O ShellHub pode ser utilizado de duas formas:

● Self-hosted: Instalado por você em seu servidor local ou em qualquer cloud-provider como AWS, GCP, DigitalOcean, etc..

○ Pode ser instalada seguindo as instruções de instalação na documentação oficial do ShellHub:

https://docs.shellhub.io

○ Requisitos:

■ Linux, 2GB de RAM, Docker e Docker Compose instalados

● SaaS: Utilizar a versão instalada e mantida pela O.S. Systems em nosso cluster Kubernetes.

○ É necessário realizar um cadastro rápido gratuitamente no site oficial do ShellHub:

https://shellhub.io

Primeiros passos

Com apenas o login e senha, você terá acesso à plataforma, onde é possível cadastrar todos os equipamentos.

É possível acessar o ShellHub a partir de qualquer máquina.

Ou seja, após cadastrados, você pode acessar os seus dispositivos Linux de qualquer navegador ou utilizando um cliente SSH padrão (Linux) ou Putty (Windows).

Tela de boas vindas

Registrando um dispositivo no ShellHub

Para registrar um dispositivo no ShellHub é necessário instalar o agente do ShellHub no dispositivo. Existem duas formas de instalar o agente:

○ Container:

■ Utilizando o one-line install script que requer o Docker instalado no dispositivo

○ Nativa:

■ Utilizando o layer meta-shellhub ou compilando diretamente o agente a partir do código

fonte.

Registrando um dispositivo utilizando o one-line install script

curl "https://cloud.shellhub.io/install.sh?tenant_id=344b608e-d702-4afa-9659-35efb6583558" | sh

Lista de dispositivos

A lista de dispositivos mostra todos os dispositivos cadastrados no ShellHub.

Acessando um dispositivo

O acesso a um dispositivo conectado ao ShellHub pode ser feito por qualquer navegador moderno (Chrome, Firefox) e também por clientes SSH tradicionais do Linux, Mac ou Windows. Exemplo:

$ ssh gustavo@ossystems.98-83-89-75-46-9f@cloud.shellhub.io

Acessando um dispositivo pela Web

1

2

3

Terminal Web

Lista de sessões

A lista de sessões mostra todas as sessões SSH criadas para os dispositivos cadastrados no ShellHub.

O que vem por aí...

● Suporte a autenticação por chave SSH● Gravação de sessão e reprodução de sessão● Regras de firewall● Proteção contra ataques de força bruta

Quer saber mais?

shellhub.io

Contato

>_ Com a empresa:

>_ Comigo:

Recommended