Mvwrt log reports
Este artigo visa em explicar como utilizar a aplicação scp em substituição de sftp ou ftp para transferência de ficheiros através de openssh ou dropbear utilizando chaves de criptografia públicas e privadas.
Este tipo de sistema de envio de logs de registo do é utilizado em mvwrt2015 e superior vem substituir o anterior uso de ssmtp que já não cabe dentro da imagem final do firmware devido ao tamanho de pacotes necessários para funcionar. Simultaneamente esta alteração trás as seguintes vantagens:
- Ajuste do nível e tipo criptografia utilizada e pretendida
- 2 pacotes de software removidos do sistema que perfaziam um total de 615K para libopenssl e 24K para ssmtp
- Configurações mais complexas e dependência de um intermediário para serviço de email que arquiva todos os logs
- Facilidade de envio de logs para vários destinatários ao mesmo tempo e liberdade para escolher o receptor/servidor
- Adicionalmente scp vem ainda substituir o uso de sftp que ocupava 21K de espaço e permitir a sua remoção do firmware
No sistema operativo
ssh-keygen -t rsa -b 4096 -f wirelesspt -N ''
Generating public/private rsa key pair. Your identification has been saved in wirelesspt. Your public key has been saved in wirelesspt.pub. The key fingerprint is: SHA256:gxL/bY6W1AxeqZew2Jj5OOwzbHVFhto1sK1UOzRtqmc mvwrt@nixbits The key's randomart image is: +---[RSA 4096]----+ | .o+. | | .==oo | | . oo=++ | | o .+.+.o. | | . oBSO.+ | | .=.BoB E | | o =.+oo | | O ++ | | o.=. . | +----[SHA256]-----+
ls wirelesspt wirelesspt.pub
Convertemos a chave privada em formato openssh para formato dropbear
dropbearconvert openssh dropbear wirelesspt wirelesspt_dropbear Key is a ssh-rsa key Wrote key to 'wirelesspt_dropbear'
ls wirelesspt wirelesspt.pub wirelesspt_dropbear
Adicionamos a wirelesspt.pub na conta de utilizador do servidor que vai receber os logs.
cat wirelesspt.pub >> ~/.ssh/authorized_keys ; chmod 600 ~/.ssh/authorized_keys
Colocamos a wirelesspt_dropbear que é a privada no router que vai enviar os logs:
scp ~/wirelesspt_dropbear root@ip.do.router:/root/.ssh/
Estabelecemos ligação para início de sessão no router e enviamos para lá a chave privada, uma das seguintes formas desde que as directorias existam:
scp -i .ssh/wirelesspt_dropbear /tmp/*.log user@servidor.com:/<porta>/home/utilizador/logs/ scp -i .ssh/wirelesspt_dropbear /tmp/*.log account@servidor.com:/<porta>/~/logs/ scp -i .ssh/wirelesspt_dropbear /tmp/*.log nome@servidor.com:/~/logs/ scp -i .ssh/wirelesspt_dropbear /tmp/*.log utilizador@servidor.com:/~/
No firmware
cd /root dropbearkey -t rsa -f .ssh/dropbear_user.key -s 4096
Generating key, this may take a while... Public key portion is: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCVVGoPNEX+Ek8PK6pkb4nAMTsJ02unhnO3lPopltyKIg6oGKYtO0baAwdD7tKfHJodEB6KooLH3wIpyZiGX23jknu2Z+eQ+pUhufJBfoxN0Nfv0e9A9YYtIkL8MLD// uYkiplTWXSqVZKN3wChIejzQJrpShCkzEfTUEdDinUNBVLA9bfOUFrWEsL4ROyNm3PBL8MM+FhgoXaUsjBLHhnhPe0eXrELqwR0PDd3LxdohPbSUF+VJV3rh0GhKPmQxv4qJNWfSrCfitwK+lMyjpAAevb9NuUuWw5eNlZE9CliRALqOledBalpuw6wUlmZ1beyUevKV+x/J/WZF2+Dpgp5 root@OpenWrt Fingerprint: md5 7b:72:a0:dd:bc:f6:5b:39:47:42:1d:7d:9d:3e:97:56
Quando revelada a fingerprint md5 não deve ser revelada a ninguém e caso se perca a chave pública ssh-rsa a mesma pode ser obtida da seguinte forma:
dropbearkey -y -f .ssh/dropbear_user.key | grep "^ssh-rsa "
Para autorizar e inserir automáticamente a chave pública no firmware basta digitar:
dropbearkey -y -f .ssh/dropbear_user.key | grep "^ssh-rsa " >> /etc/dropbear/authorized_keys
Envio de ficheiros do computador para o router
As chaves dropbear não directamente compatíveis com openssh e necessitarão de conversão no router:
opkg install dropbearconvert dropbearconvert dropbear openssh .ssh/dropbear_user.key .ssh/openssh_user.key
Para vermos a chave e copiar-mos para a conta de utilizador (.ssh/authorized_keys) existente no computador
cat .ssh/openssh_user.key
Após a conversão aqui fica um exemplo de como utilizar um compuatdor para enviar ficheiros de qualquer router:
scp -i openssh_user.key ficheiro root@some-host.com:/root/
Envio de ficheiros do router para o computador
scp -i dropbear_user.key ficheiro pedro@some-host.com:/home/pedro/ scp -i dropbear_user.key ficheiro username@host.pt:/home/username/path/to/logdir/ scp -i dropbear_user.key ficheiro account@host.pt:/<porta>/home/username/path/to/logdir/
Para enviar para ligações a outros routers basta colocar neles a chave pública em authorized_keys e estabelecer ligação digitando:
scp -i .ssh/dropbear_user.key ficheiro root@ip.ip.ip.ip:/root/
Authenticity of host
Quando questionado desta forma sobre a autenticidade da ligação pela primeira vez ou após mudança de chaves, dever-se-a aceitar a nova fingerprint manualmente.
The authenticity of host can't be established. RSA key fingerprint is SHA256:E3HcdqXCLYsXx1CHfBQKPx+8xtq4U2AP040cBW9Is1Q. Are you sure you want to continue connecting (yes/no)?
Log de registo
O conteúdo do log feito pelo firmware pode ser alterado para conter mais ou menos informação e ou detalhes. Por padrão contém relatórios sobre:
- Estado e capacidade de memória flash
- Tempo de funcionamento desde a última vez que se iniciou
- Estado e uso da memória ram
- Depuração do estado de funcionamento do kernel
- Estado e detalhes de interfaces de rede
- Registos arp ipv4 e ou ipv6
- Clientes servidos via dhcp e seus leases
- Scan de outros nós batman-adv na rede
- Registos arp da rede batman-adv
- Estado e capacidade e detalhes de funcionamento wireless
- Ligações estabelecidas a outros pontos de acesso mesh via batman-adv
- Dados de pesquisa sobre outras redes nas proximidades
- Ligações ou tentativas de ligação via ssh
- Failed TX DMA queues se existentes no interface wireless