HowTo: FHEM - Acesso seguro à interface de configuração

O mais tardar depois de fazer as primeiras configurações em sua interface FHEM, você também deve lidar com a questão da segurança. É realmente irritante quando você perde as funções do seu sistema SmartHome que você compilou e programou meticulosamente. Seja por perda de dados ou porque outras pessoas obtiveram acesso não autorizado ao seu sistema.

O acesso potencial por pessoas não autorizadas não deve ser negligenciado. Na pior das hipóteses, mais danos podem ser causados com esse acesso do que apenas ligar e desligar uma lâmpada.

O artigo a seguir explica como você pode proteger sua instância FHEM e protegê-la contra perda de dados.


instruções de segurança

Eu sei que as notas a seguir são sempre meio chatas e parecem desnecessárias. Infelizmente, muitas pessoas que sabiam "melhor" perderam olhos, dedos ou outras coisas por descuido ou se machucaram. A perda de dados é quase insignificante em comparação, mas mesmo isso pode ser realmente irritante. Portanto, dedique cinco minutos para ler as instruções de segurança. Porque mesmo o projeto mais legal não vale ferimentos ou outros problemas.
https://www.nerdiy.de/sicherheitshinweise/

Links afiliados/Links de publicidade

Os links para lojas online listados aqui são os chamados links de afiliados. Se você clicar em um link de afiliado e fizer uma compra por meio desse link, o Nerdiy.de receberá uma comissão da loja ou fornecedor online relevante. O preço não muda para você. Se você fizer suas compras por meio desses links, estará apoiando o Nerdiy.de para poder oferecer outros projetos úteis no futuro. 🙂 


requisitos

Antes de começar com este artigo, você deve ter preparado o RaspberryPi para que ele possa ser acessado via rede e controlado via SSH.

Os três artigos a seguir descrevem o que precisa ser feito para preparar o RaspberryPi:
RaspberryPi – configuração para nerds!
RaspberryPi – A primeira configuração!
RaspberryPi – Controle o RaspberryPi via SSH
FHEM – Instalação no RaspberryPi

Ferramentas necessárias:
-não-

Materiais necessários:

Na lista a seguir, você encontrará todas as partes necessárias para implementar este artigo.


Altere quaisquer senhas de acesso existentes (padrão)

A medida de segurança mais importante - porque a mais explorada - é alterar quaisquer senhas padrão existentes. Se você usar um RaspberryPi como hardware host para o servidor FHEM, por exemplo, é importante alterar seus dados de login padrão. Os dados de login padrão "pi" e "raspberry" são conhecidos por qualquer um que esteja meio interessado em tecnologia. Se você acabou de ler seus dados de login do RaspberryPi aqui, é hora de alterá-los.

Como mudar isso está no artigo RaspberryPi – A primeira configuração! descrito.


Criar login de usuário HTACCESS

A próxima precaução de segurança contra acesso não autorizado à sua interface FHEM é a proteção de acesso via HTACCESS. Depois de configurado, você será solicitado a inserir os dados de login associados sempre que tentar acessar sua instância FHEM.

Para configurar essa proteção de acesso, você deve primeiro codificar sua combinação de nome de usuário/senha usando base64. Isso funciona no Linux com um comando interno. Para codificar sua combinação de nome de usuário e senha, tudo o que você precisa fazer é inserir o seguinte comando no console. Claro que você tem que antes disso ótimo nome de usuário com seu nome de usuário e ótima senha substitua-o pela sua senha.

Digite o seguinte comando no console do seu RaspberryPi para codificar seus dados de login.
echo -n ótimonome de usuário:ótimasenha | base64
Você receberá uma string codificada em base64 com seus dados de login. Você deve copiá-lo para poder usá-lo mais tarde.

Sem Linux, um codificador Base64 online como www.base64online.com . Basta digitar sua combinação de nome de usuário e senha de acordo com o padrão Usuário senha e clique em codificar (DECODE).

Para ativar o login com os dados de login definidos, você deve fazer o seguinte.

Primeiro você deve criar o módulo "allowedWEB" com o seguinte comando.
definir permitidoWEB permitido

Agora você deve vincular seus dados de login copiados a este módulo, definindo um atributo apropriado. Isso pode ser feito com o seguinte comando.

attr permitidoWEB basicAuth dG9sbGVyQmVudXR6ZXJuYW1lOnRvbGxlc1Bhc3N3b3J0
No último passo você ainda tem que configurar em quais interfaces de login o login deve ser consultado. Neste caso ativamos a consulta de login para "WEB", "WEBPhone" e "WEBtablet" com o seguinte comando. Se você atribuiu outros nomes para as interfaces de login, é claro que eles devem ser adaptados de acordo.
attr permitidoWEB válidoPara WEB,WEBphone,WEBtablet

Já é isso. Agora reinicie o FHEM digitando o seguinte comando

desligar reiniciar
Agora você pode testar o login. Para fazer isso, acesse novamente a URL de sua instância FHEM. Desta vez, uma janela de login deve aparecer solicitando que você insira as informações de login corretas.
Agora digite o nome de usuário e a senha que você especificou anteriormente.
Se você inseriu os dados de login corretos, deverá ser redirecionado para a página inicial de sua instância FHEM. Sua interface de configuração agora está protegida por acesso por nome de usuário e senha.

Criptografe a conexão com um certificado SSL

Agora que você garantiu o acesso à sua interface FHEM, a próxima precaução de segurança é garantir que sua comunicação com ela não seja interceptada ou manipulada. Para isso, a criptografia SSL dos dados de comunicação agora está configurada. Para fazer isso, um certificado SSL deve primeiro ser criado e depois conectado ao FHEM.

Para criar o certificado SSL, você deve primeiro instalar dois pacotes. Para fazer isso, execute o seguinte comando.
sudo apt-get install libio-socket-ssl-perl && sudo apt-get install libwww-perl
Durante a instalação dos pacotes, você pode ser questionado se concorda que a instalação use memória adicional. Confirme isso com um "J" e "Enter".
Depois de instalar os pacotes, use o seguinte comando para alternar para a pasta de instalação do FHEM.
cd /opt/fhem
A pasta “certs” é criada lá com o seguinte comando, no qual os certificados são então criados/salvos.
certificados sudo mkdir
Agora mude para a pasta "certs" que você acabou de criar.
cd /opt/fhem/certs
Para criar o certificado SSL, você deve executar o seguinte comando.
sudo openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem
À medida que o certificado é gerado, serão solicitados detalhes desse certificado. Primeiro você deve inserir o código do país aqui, por exemplo. Essas entradas não precisam ser verdadeiras. Então você pode dar as informações corretas ou...
... use três hífens ou outros caracteres como espaços reservados, conforme mostrado.
O seguinte comando obtém o certificado e...
sudo chmod 644 /opt/fhem/certs/*.pem
... a pasta do certificado ainda tem os direitos de arquivo corretos.
sudo chmod 711 /opt/fhem/certs
Nas duas últimas etapas, você agora deve ativar o HTTPS para o módulo WEB...
atr WEB HTTPS
...e reinicie o FHEM para que as alterações entrem em vigor.
desligar reiniciar

Se você reiniciou o servidor FHEM, poderá acessá-lo quase como de costume. A única diferença é que agora você precisa prefixar o endereço do servidor FHEM com HTTPS.

Como você está usando um certificado autoassinado, quase todos os navegadores agora o avisarão e apontarão isso. Na Internet "normal", isso pode ser uma indicação de vazamento de dados. Nesse caso, você não precisa se preocupar com isso. Então você pode ignorar o aviso. Clique em "Avançado"...
...em seguida, clique em "Continuar para... (não tenho certeza)" para ignorar o aviso e acessar seu servidor FHEM.
Se você ativou o login do usuário, agora serão solicitados os dados de login.
Sem um login de usuário ou se você inseriu os dados de login corretamente, você acessará a página inicial do FHEM como de costume.

Definir backup automático antes de cada atualização

Agora você está bem protegido contra os perigos de pessoas e máquinas malignas. Outra configuração útil são os backups automáticos antes de cada atualização do ambiente FHEM. Desta forma, você também está protegido em caso de falha na atualização e não precisa restaurar manualmente toda a configuração.

Para fazer isso, digite os seguintes comandos na linha de comando de sua instância FHEM.
atr global updateInBackground 1
atr global backup_before_update 1

Acesso Telnet seguro

O FHEM oferece, entre outras coisas, a possibilidade de executar comandos através de uma conexão Telnet. Isso não é instalado/ativado por padrão. No entanto, se você usar isso, é importante que você também proteja o acesso aqui com uma senha. Isso pode ser feito com o seguinte comando. Claro que você ainda tem que fazer a parte ótima senha substitua-a pela senha escolhida. Você também pode ter que ajustar a parte “telnetPort” aqui. Este é o nome do seu módulo telnet configurado e deve corresponder ao nome que você está usando.

attr telnetPort senha ótima senha


Fusível FHEM

Agora você está bem protegido contra os perigos de pessoas e máquinas malignas. Mas agora você tem que se armar contra o maior inimigo: sua própria estupidez. Especialmente ao experimentá-lo e experimentá-lo, pode acontecer rapidamente que você configure o sistema, que funcionou bem até agora, incorretamente. No entanto, se o pior acontecer, um sistema que não inicia mais pode ser restaurado rapidamente. Desde que você tenha um backup atual, de preferência em uma mídia de dados externa. Assim, você pode restaurar o último status de trabalho sem problemas.

definir regularBackup em *03:00:00 backup

Com esta configuração, um backup é criado todos os dias às 03:00 e armazenado na pasta /opt/fhem/backup. Os arquivos armazenados aqui também devem ser sincronizados com outra unidade. Esta é a única forma de também estarem protegidos em caso de erro na unidade ou no cartão SD.


Informações adicionais

https://de.wikipedia.org/wiki/Base64

https://wiki.fhem.de/wiki/Telnet


Divirta-se com o projeto

Espero que tudo funcionou como descrito para você. Se não, ou se você tiver alguma dúvida ou sugestão, por favor, deixe-me saber nos comentários. Em seguida, adicionarei isso ao artigo, se necessário.
Ideias para novos projetos são sempre bem vindas. 🙂

PS Muitos desses projetos - especialmente os projetos de hardware - custam muito tempo e dinheiro. Claro que faço isso porque gosto, mas se você acha legal que eu compartilhe as informações com você, ficaria feliz com uma pequena doação para o fundo do café. 🙂

Compre-me um café em ko-fi.com       

Ein Kommentar

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert