Como proteger o Ubuntu para um usuário não técnico? (sua mãe)
12
Minha mãe estará viajando por um tempo e preciso fornecer a ela um laptop seguro para que ela possa trabalhar. Um laptop Windows está fora de questão porque:
ela estará acessando redes sem fio e redes de conferência de hotéis desonestos
preço da licença do Windows para instalar em um netbook
Eu instalei o libreoffice, media players e skype nele. Também habilitei o SSH para poder intervir, mas estou preocupado em não estar em condições de fazê-lo.
Possíveis ameaças:
navegação na web
Pen drives
redes inseguras propensas a invasões
malware
Vulnerabilidades SSH / VNC
Vulnerabilidades do Skype
Todos os guias de " segurança do Ubuntu" assumem que o usuário possui um certo nível de conhecimento técnico, mas esse não é o caso das mães em geral. Se um malware puder obter acesso no nível do usuário, poderá comprometer seus arquivos.
A principal coisa que você pode fazer para manter esse computador seguro é garantir que os pacotes sejam atualizados regularmente. Eu habilitaria atualizações totalmente automáticas (https://help.ubuntu.com/community/AutomaticSecurityUpdates), desde que o potencial de uma explosão no uso da rede enquanto conectado ao Wi-Fi do hotel não seja um problema grave.
Depois disso, acho que o único grande problema é o VNC. Se o servidor VNC estiver em execução constantemente, provavelmente é o maior problema de segurança em potencial no sistema (o SSH tem escopo semelhante, mas é considerado mais seguro por padrão). Se você precisa do VNC instalado e precisa estar em execução o tempo todo, provavelmente não há nada que você possa fazer sobre isso - está sendo executado ou não, e não há muito o que fazer para garantir um processo que tenha controle sobre as entradas / output como o VNC. Mas se você não precisa estar ligado o tempo todo, desative-o. Você pode iniciá-lo manualmente via SSH, se necessário.
Enquanto seus pacotes estiverem atualizados, não me preocuparei com a navegação na Web, pen drives, malware ou vulnerabilidades SSH. Os desktops / notebooks Linux não são um alvo comum para eles e o Ubuntu é bastante bem reforçado pelo design. Mesmo que você não faça nada de especial para se proteger contra essas vulnerabilidades, é menos provável que um sistema Ubuntu seja comprometido do que uma máquina Windows executando um software de segurança bastante bom.
O Skype não é necessariamente seguro, mas não é executado com privilégios elevados e não há muito que você possa fazer para protegê-lo, dado o estado da versão do linux do Skype. Esteja ciente de que o Skype para Linux não é muito estável ou cheio de recursos e não trabalha há muito tempo. Dito isto, eu o uso para fins comerciais o tempo todo e, depois que me acostumei com suas peculiaridades, era adequado.
SSH não vai funcionar se ela está em um hotel (ou qualquer) LAN, porque não haverá nenhuma maneira de alcançá-la máquina sem controlar o router ...
laurent
@ laurent isso comprometerá a segurança SSH?
Gil
@ Gil Abrir a porta SSH na Internet sempre é um problema e se sua mãe estiver em uma LAN (hotel ou sala de conferências), mesmo com a porta aberta, você não poderá acessar o computador dela porque o IP (se você conhece) do visualizador de equipe, por exemplo) será associado ao roteador da LAN e não será encaminhado para o computador da sua mãe. Portanto, você não poderá se conectar ao computador dela dessa maneira (mas outros na LAN do hotel). Então, acho que não é uma solução funcional e é perigosa. Acho que a maneira como respondi usando uma VPN é a única maneira simples de acessar o computador dela sempre e sem alto risco.
laurent
Existe algo como "reverse ssh", em que a conexão é iniciada pelo host - sua mãe nesse caso - e que pode ser empacotada em um script e colocada na área de trabalho para o usuário usar em emergências . Porém, não conheço nenhum detalhe sobre essa abordagem, já que nunca precisei usá-la.
Andrew G.
3
O risco de segurança mais importante para os guerreiros da estrada é uma conexão de rede não segura (WiFi público) que permite que o tráfego não criptografado seja lido por terceiros ou ataques man-in-the-middle ao tráfego criptografado.
A única maneira de contornar isso é usar uma VPN. Se você possui um servidor, basta configurar uma VPN nele. O PPTP ou o OpenVPN são facilmente configurados e pelo menos o primeiro é suportado imediatamente por praticamente tudo (Linux, Mac, Win, iPhone, Android, etc.).
Para suporte remoto, recomendo o Teamviewer. Funciona de qualquer lugar e atrás de todos os firewalls.
É a minha mãe Não há como ela configurar uma VPN toda vez que se conectar.
Gil
3
@ Gil: O Ubuntu permite automatizar esse processo, desde que você tenha um provedor externo "fixo" para a VPN. Por exemplo, você pode configurar uma regra para conectar-se à VPN sempre que a WLAN for usada, enquanto a LAN com fio normal não acionará esse comportamento. +1 para a resposta, btw.
0xC0000022L
2
E o acesso UMTS / LTE? Protegeria de cheirar e permitiria SSH. Ficou realmente fácil de configurar. Você teria que ensinar sua mãe a obter seu IP ou obter uma solução semelhante a dyndns. É uma questão de preços e cobertura, é claro.
Você também deve usar algo como sshguard para garantir que bots automáticos etc. não consigam efetuar login.
http://www.sshguard.net/ O
SSHGuard banirá de uma tentativa de login com falha para 5 ou 15 (não me lembro quais) minutos no início e aumentará exponencialmente após mais tentativas de login com falha. Tenho aliases para ajudar neste caso.
alias ssh-add='\ssh-add -D && \ssh-add '
(Portanto, o ssh-agent não conterá muitas chaves e falhará por causa disso)
alias sshguard-show-bans='sudo iptables -L sshguard --line-numbers'
(Para ver as proibições adicionadas pelo sshguard)
alias sshguard-unban='sudo iptables -D sshguard '
(Para desanexar facilmente o endereço IP. Use sshguard-unban number_from_sshguard_show_bans)
O VNC pode ser encapsulado com SSH. Em ~ / .ssh / config é algo como isto:
Host lan-weibef
Port 8090
User mkaysi
hostname compaq-mini.local
LocalForward 127.0.0.1:8090 127.0.0.1:5900
A última linha encaminha a porta 5900 (VNC) para a porta 8090 do host local, para conectar-se ao servidor remoto, informe ao cliente VNC para conectar-se ao localhost 8090. (Existem 4 espaços antes de "Port" "User" "hostname" e "LocalForward"
Se você precisar usar o ssh (acho que precisa consertar as coisas ... :)) instale o servidor openVPN na sua máquina e o cliente nela (e na conexão automática / permanente). Se o seu IP for dinâmico, você precisará de um DNS dinâmico (como dnsexit.com, por exemplo). Dessa forma, você poderá alcançar sua máquina em qualquer lugar usando o túnel (mesmo em uma LAN em um hotel onde você não poderá usar o SSH de outra maneira, geralmente porque você não controla o roteador em que ela está conectada, apenas VNC ou visualizador de equipe e isso significa que o servidor VNC está sempre on-line ...). Permita a conexão SSH e VNC (ou similares) apenas na sub-rede openvpn (e somente você poderá se conectar a eles).
Não se esqueça de configurar o iptables para bloquear tudo de fora, incluindo todas as sub-redes de redes locais (para LANs inseguras de hotéis), exceto a sub-rede openvpn (e não use a padrão :)).
Use o VNC ou qualquer área de trabalho remota que você deseje além do túnel e esteja seguro.
ATUALIZAÇÃO depois que vi seu comentário sobre a configuração de uma VPN a cada vez: você pode iniciar a VPN na inicialização e deixá-la assim. Quando sua máquina não está online ou sua mãe não está conectada à Internet, a conexão não será bem-sucedida e tentará a cada x minutos (você a configurou). Quando as duas máquinas estiverem OK, a conexão será bem-sucedida, de modo que ela terá uma conexão permanente sem fazer nada (como duas filiais, por exemplo). Outra maneira poderia ser criar um pequeno script iniciando o openvpn e colocar um ícone na área de trabalho, mas ela precisará estar em sudoers para executar o script que acredito e precisará se lembrar de clicar no ícone. Por esse motivo, prefiro a 1ª via com conexão permanente. Você só precisa prestar atenção para não redirecionar todo o tráfego dela através da VPN na configuração.
O risco de segurança mais importante para os guerreiros da estrada é uma conexão de rede não segura (WiFi público) que permite que o tráfego não criptografado seja lido por terceiros ou ataques man-in-the-middle ao tráfego criptografado.
A única maneira de contornar isso é usar uma VPN. Se você possui um servidor, basta configurar uma VPN nele. O PPTP ou o OpenVPN são facilmente configurados e pelo menos o primeiro é suportado imediatamente por praticamente tudo (Linux, Mac, Win, iPhone, Android, etc.).
Para suporte remoto, recomendo o Teamviewer. Funciona de qualquer lugar e atrás de todos os firewalls.
fonte
E o acesso UMTS / LTE? Protegeria de cheirar e permitiria SSH. Ficou realmente fácil de configurar. Você teria que ensinar sua mãe a obter seu IP ou obter uma solução semelhante a dyndns. É uma questão de preços e cobertura, é claro.
fonte
Você deve executar o firewall (ufw) e permitir que apenas as portas necessárias sejam abertas (22 SSH). https://help.ubuntu.com/community/UFW Se você precisar de uma GUI com o ufw, existe o GUFW. https://help.ubuntu.com/community/Gufw
Você também deve usar algo como sshguard para garantir que bots automáticos etc. não consigam efetuar login. http://www.sshguard.net/ O SSHGuard banirá de uma tentativa de login com falha para 5 ou 15 (não me lembro quais) minutos no início e aumentará exponencialmente após mais tentativas de login com falha. Tenho aliases para ajudar neste caso.
(Portanto, o ssh-agent não conterá muitas chaves e falhará por causa disso)
(Para ver as proibições adicionadas pelo sshguard)
(Para desanexar facilmente o endereço IP. Use sshguard-unban number_from_sshguard_show_bans)
Você também deve informar ao SSHd para não permitir o login com senha (opcional, mas recomendado. Se você não fizer isso, use pelo menos sshguard ou alternativa a ele) https://help.ubuntu.com/11.10/serverguide/C/ openssh-server.html
O VNC pode ser encapsulado com SSH. Em ~ / .ssh / config é algo como isto:
A última linha encaminha a porta 5900 (VNC) para a porta 8090 do host local, para conectar-se ao servidor remoto, informe ao cliente VNC para conectar-se ao localhost 8090. (Existem 4 espaços antes de "Port" "User" "hostname" e "LocalForward"
fonte
Mantenha-o atualizado (automático).
Se você precisar usar o ssh (acho que precisa consertar as coisas ... :)) instale o servidor openVPN na sua máquina e o cliente nela (e na conexão automática / permanente). Se o seu IP for dinâmico, você precisará de um DNS dinâmico (como dnsexit.com, por exemplo). Dessa forma, você poderá alcançar sua máquina em qualquer lugar usando o túnel (mesmo em uma LAN em um hotel onde você não poderá usar o SSH de outra maneira, geralmente porque você não controla o roteador em que ela está conectada, apenas VNC ou visualizador de equipe e isso significa que o servidor VNC está sempre on-line ...). Permita a conexão SSH e VNC (ou similares) apenas na sub-rede openvpn (e somente você poderá se conectar a eles).
Não se esqueça de configurar o iptables para bloquear tudo de fora, incluindo todas as sub-redes de redes locais (para LANs inseguras de hotéis), exceto a sub-rede openvpn (e não use a padrão :)).
Use o VNC ou qualquer área de trabalho remota que você deseje além do túnel e esteja seguro.
ATUALIZAÇÃO depois que vi seu comentário sobre a configuração de uma VPN a cada vez: você pode iniciar a VPN na inicialização e deixá-la assim. Quando sua máquina não está online ou sua mãe não está conectada à Internet, a conexão não será bem-sucedida e tentará a cada x minutos (você a configurou). Quando as duas máquinas estiverem OK, a conexão será bem-sucedida, de modo que ela terá uma conexão permanente sem fazer nada (como duas filiais, por exemplo). Outra maneira poderia ser criar um pequeno script iniciando o openvpn e colocar um ícone na área de trabalho, mas ela precisará estar em sudoers para executar o script que acredito e precisará se lembrar de clicar no ícone. Por esse motivo, prefiro a 1ª via com conexão permanente. Você só precisa prestar atenção para não redirecionar todo o tráfego dela através da VPN na configuração.
fonte