Arquivo da categoria: Uncategorized
Associar protocolo ssh no Windows 10 com Tera Term (e outros)
Até o Windows 7 era relativamente simples fazer associações de aplicativos e protocolos com o programa desejado, era só dar dois cliques no arquivo com extensão desejada ou abrir um protocolo novo e fazer a associação à partir da lista de programas instalados.
No Windows 10 os protocolos não podem mais ser associados livremente, ou o programa que você utiliza tem um instalador que consiga fazer as associações corretamente ou você recebe uma tela de diálogo levando você para a loja de apps da Microsoft onde você, provavelmente, não vai encontrar seu programa favorito para associação.
Meu programa de terminal favorito é o Tera Term, já está bastante customizado, fazendo logs automaticamente e outras facilidades.
No Windows 10 eu não conseguia fazer a associação so protocolo ssh, então não era possível utilizá-lo com links, sempre precisava abrir manualmente.
Encontrei muita documentação de como criar chaves no registry para fazer a associação e nenhuma funcionou. Depois de muita busca encontrei essa página que mostrava como fazer a associação com o MobaXterm (que não uso), mas a lógica era a mesma.
Para associar com Windows 10 de 64 bits utilize o texto abaixo e salve como ssh64bits.reg, dê dois clicks, dê OK nos avisos de alerta e comece a usar o Tera Term associado ao ssh.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ssh]
@="URL: ssh Protocol"
"URL Protocol"=""
;Change this to your actual path of the previous generated Batch File
[HKEY_CLASSES_ROOT\ssh_custom_handler\shell\open\command]
@="\"C:\Program Files (x86)\teraterm\ttermpro.exe\" %1"
[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
"SSH Custom handler"="Software\Classes\ssh_custom_handler\Capabilities"
[HKEY_CLASSES_ROOT\ssh_custom_handler\Capabilities\UrlAssociations]
"ssh"="ssh_custom_handler"
;You can use any ICO File or just using mobaxterms Icon
[HKEY_CLASSES_ROOT\ssh_custom_handler\Application]
"ApplicationIcon"="\"C:\Program Files (x86)\teraterm\ttermpro.exe\""
"ApplicationName"="Tera Term"
"ApplicationDescription"="Custom SSH Handler"
"ApplicationCompany"="Custom SSH Handler"
Para Windows 10 32 bits utilize o texto abaixo e salve como ssh32bits.reg e siga o procedimento já descrito.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ssh]
@="URL: ssh Protocol"
"URL Protocol"=""
;Change this to your actual path of the previous generated Batch File
[HKEY_CLASSES_ROOT\ssh_custom_handler\shell\open\command]
@="\"C:\Program Files\teraterm\ttermpro.exe\" %1"
[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
"SSH Custom handler"="Software\Classes\ssh_custom_handler\Capabilities"
[HKEY_CLASSES_ROOT\ssh_custom_handler\Capabilities\UrlAssociations]
"ssh"="ssh_custom_handler"
;You can use any ICO File or just using mobaxterms Icon
[HKEY_CLASSES_ROOT\ssh_custom_handler\Application]
"ApplicationIcon"="\"C:\Program Files\teraterm\ttermpro.exe\""
"ApplicationName"="Tera Term"
"ApplicationDescription"="Custom SSH Handler"
"ApplicationCompany"="Custom SSH Handler"
Erros no app Bradesco

Você está tentando usar o aplicativo Bradesco de home banking e, ao tentar acessar sua conta, recebe uma mensagem de erro. Pode ser um código numérico (4859…) que o componente webview está desatualizado ou, nas últimas versões, uma tela dizendo que você está com problemas de acesso à internet.
Há dicas diversas, desde se atualizar manualmente o webview até a mais simples, que é desligar o WiFi e forçar a utilização de dados móveis.
Eu tinha muito esse problema e sempre acabava utilizando os dados móveis, que não é a melhor solução, já que vocêpode precisar fazer uma consulta numa área sem sinal de sua operadora mas com internet disponível.
Como com os dados móveis funcionavam eu sabia que era alguma restrição na rede local que eu utilizava, então comecei a fazer uma captura de pacotes enquanto tentava o acesso e verificava os dados quando ocorria o erro.
Em alguns minutos, achei a resposta: o app do Bradesco utiliza o googletagmanager.com e o adservice.google.com de maneira ativa. Se não tiver resposta desses domínios, o app dá erro.
Liberei esses domínios de anúncios no meu firewall e agora o app funciona corretamente.
Acredito que os desenvolvedores devriam ter previsto um tratamento de erros melhor, afinal o google não é o Bradesco e problemas em sites externos ao banco não deveriam causar problemas aos usuários. No meu caso foram regras estritas no firewall, mas o mesmo problema irá ocorrer se qualquer um desses sites apresentar problemas.
Fazendo o adb reconhecer seu dispositivo android
This post has been translated to english.
o adb (android debug bridge) é uma ferramenta desenvolvimento para android.
Geralmente para ativar basta conectar seu dispositivo android, ativar a depuração USB (USB debugging) e verificar com o comando “adb devices”, que deve retornar uma lista com o número serial dos dispositivos que estejam conectados.
Essa é a teoria. A prática é que só são reconhecidos de maneira automática dispositivos de fabricantes como HTC, Motorola, Samsung… se seu dispositivo é de algum fabricante obscuro ou um legítimo xing-ling, o resultado é parecido com esse:
adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
Para que seu dispositivo seja reconhecido é necessário colocar o identificador de seu dispositivo no arquivo adb_usb.ini.
Como identificar o fabricante:
Conecte seu dispositivo na porta USB do seu micro (ative a depuração USB).
Ver o post original 612 mais palavras
Alcatel NM 5620 e XDMCP no Linux
Por questões de trabalho eu utilizava um estação Sun Ultra 5, já obsoleta, mas era uma das poucas opções para acesso a uma plataforma de gerência Alcatel NM 5620 (também obsoleta, veja só!).
A Sun tomava espaço na mesa, tinha uma fonte com um cooler de barulho particularmente irritante. Detestava ter que usá-la.
Olhando os scripts que iniciavam o programa de gerenciamento eu vi que utilizava protocolo XDMCP para a parte gráfica (o servidor em si estava em outra localidade). Pensei de imediato: vou configurar isso no Linux e posso usar uma estação mais moderna ou uma máquina virtual, para liberar espaço.
O primeiro sinal que não ia ser tão simples era a janela de login, o texto estava com fontes maiores. Mas se fosse só estético, sem problemas.

Depois a tela de abertura, onde o texto estava cortado. Mas era só estética…

E o tiro de misericórdia: a tela de busca de nós de gerência perdia o botão Make List, que iniciava a busca e a coluna de Admin Status não aparecia. A janela tinha tamanho fixo, não permitia o reposicionamento.

Sem isso era inútil prosseguir. Quando tinha um tempo livre experimentava usar diferentes gerenciadores Gnome, LXDE, LightDM, distribuições (Ubuntu, Arch, Mint). Sem sucesso.
Depois de meses vi que tinha máquinas virtuais do Sun Solaris 10, bem mais modernos que a versão que eu usava (tão antiga que até esqueci). Baixei as VMs de 32bits e 64 bits para poder usar nas versões de Windows disponíveis que aparecessem.
Comecei com a VM de 32 bits, configurei, criei os scripts e os testes foram perfeitos, já poderia aposentar a estação. Não do jeito que eu queria, mas estava valendo.
Como já tinha acertado a versão de 32 bits rapidamente coloquei os scripts na de 64 bits. Resultado? As mesmas telas com distorções de fontes que havia encontrado no Linux…
Não fazia sentido. As duas versões possuem exatamente o mesmo conjuntos de fontes.
Usei o comando xset -q, retorna alguns parâmetros, como as fontes em uso:

Além de informar as fontes que o servidor X11 está utilizando ele mostra a ordem em que elas são buscadas!
Mudei a ordem das fontes com o comando xset +fp, fiz uma nova conexão com a VM de 64 bits e a gerência apresentava todas as janelas corretamente, com todos os botões e campos.
Eu não esperava que as fontes pudessem ter uma ordem correta, mas acabei encontrado uma discussão na Internet onde alguém explicava que o SunX (servidor X11 do Solaris) ao encontrar uma referência à uma fonte varre todos os diretórios de fontes até encontrar a fonte de nome exato, apenas quando a fonte é inexistente substitui por uma compatível. O Xorg (servidor X11 do Linux e das versões mais moderanas do Solaris também) utiliza a primeira fonte compatível que encontrar, caso a fonte compatível esteja disponível antes da fonte desejada será utilizada. Isso explicava todos os problemas de apresentação, apesar das fontes adequadas estarem disponíveis.
Resolvido na VM de 64 bits, foi sor seguir o mesmo raciocínio nas máquinas Linux (e Free BSD que alguém usava).
Assim após acertar a ordem das fontes a janela de login apresentava as fontes menores que estávamos acostumados:

A tela de abertura não cortava o texto:

E, o mais importante, a janela de gerência tinha o botão Make List e todos os campos presentes, incluindo o Admin Status:

Para não ter que acertar manualmente a ordem das fontes, no Linux basta criar o seguinte arquivo com a ordem desejada das fontes /usr/share/X11/xorg.conf.d/10-fonts.conf com o seguinte conteúdo:
# Fontes extras para acesso a estacao X11 remota
Section "Files"
FontPath "/usr/share/fonts/X11/misc:unscaled"
FontPath "/usr/share/fonts/X11/75dpi:unscaled"
FontPath "/usr/share/fonts/X11/100dpi:unscaled"
FontPath "/usr/share/fonts/X11/TrueType"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/Type1/sun/"
FontPath "/usr/share/fonts/X11/F3bitmaps:scaled"
FontPath "/usr/share/fonts/X11/misc:scaled"
FontPath "/usr/share/fonts/X11/75dpi:scaled"
FontPath "/usr/share/fonts/X11/100dpi:scaled"
EndSection
Problemas com VPN IPsec com cliente strongSwan – MODp_2048 e Windows
A utilização de acesso remoto por VPNs é cada vez mais comum (e agora em tempos de COVID19, praticamente inevitável).
Há algum tempo atrás instalei um firewall que utilizava pfsense (ótimo firewall para quem precisa de uma proteção mais sofisticada para sua rede) e comecei a utilizar seus recursos e foi quando configurei uma VPN com IPsec, pela facilidade de configuração e já existir um cliente nativo desde o Windows 7.
Como utilizo um celular android procurei um cliente IPsec e utilizei o strongSwan, que também a passei a utilizar no Linux. Tudo funcionava bem até o strongSwan chegar na versão 4.4, quando passou a forçar a utilização de chaves de 2048 bits (DH group 14).
Não conseguia mais acesso via android ou Linux. Com Windows estava tudo funcionando.
Observando os logs do pfsense encontrava esse alerta nas tentativas falhas com cliente strongSwan:
[IKE] DH group MODP_2048 inacceptable, requesting MODP_1024
Pesquisei e vi que era por conta da mudança. A primeira coisa foi adequar o pfsense e forçar a utilização do grupo DH-14 (anteriormente estava utilizando DH-2, 1024 bits), nas opções de Fase 1 do algoritmo de encriptação. No menu do pfsense o caminho é VPN / IPsecMobile / Clients / Edit Phase 1.
Pronto, os clientes strongSwan voltaram a funcionar perfeitamente. Os clientes Windows é que deixaram de funcionar. 😦
Mas no próprio site do strongSwan havia a descrição do problema: o cliente IPsec Windows é capaz de trabalhar com o grupo DH-14, porém vem com essa funcionalidade desabilitada.
Para habilitar basta a criar uma chave DWord no registry com o valor 1:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters\NegotiateDH2048_AES256
Após essa alteração voltei a ter conectividade em todos os clientes.
No caso do Windows 7 há um procedimento especial para importar certificados privados que sejam utilizados em conexões IPsec:
- Clicar 2 vezes no seu certificado Meu_certificado.crt
- Clicar no botão Instalar Certificado
- Avançar
- Colocar todos os certificados no repositório a seguir
- Clicar em Procurar
- Marcar “Mostar Repositórios Físicos”
- Selecionar “Autoridades de Certificação Raiz Confiável” e dentro desta chave “Computador Local”
- Selecionar OK
- Avançar
- Concluir
- OK
Windows Server 2003 – Erro 0x80072EFF no Windows Update
Ocasionalmente preciso subir um servidor Windows 2003, por conta de sistemas legados.
Após as configurações iniciais o Windows Update apresenta o erro 0x80072eff e não é possível baixar nenhuma atualização.
Esse erro é por conta da versão do Internet Explorer inicial ser inferior a 8.x.
A solução é simples: instale o Service Pack 2, que permite instalar o IE 8.x e após esse procedimento o Windows Update se normaliza.
Alterando a resolução de uma Sun Ultra 5
Utilizo ocasionalmente uma estação Sun Ultra 5 no trabalho. Tinha um monitor LCD sobrando e resolvi aposentar o monitor CRT que ainda estava em uso.
Se fosse um computador moderno, plug and play, bastava trocar um monitor pelo outro, mas não era o caso.
Antes de fazer a troca verifiquei qual a resolução do LCD, do contrário não teria imagem posteriormente caso o CRT estivesse com uma resolução incompatível. A resolução do LCD era 1280 x 1024 x 60Hz.
Em uma janela de terminal basta digitar o comando:
m64config -depth 8 -res 1280x1024x60 now
-depth é o parâmetro de profundidade de cores.
now ativa a nova resolução.
Basta desligar, trocar os monitores e ligar novamente.
Pokémon GO: Failed to detect location.
Pokémon GO foi oficialmente lançado no Brasil fazendo o mesmo sucesso que o jogo obteve no mundo.
Pude observar um problema, a mensagem de Failed to detect location. Curiosamente o problema é restrito o jogo, qualquer outra aplicação (Google Maps, iGO, GPS Tester) que faça uso do GPS funciona normalmente e em poucos segundos obtém a posição do sensor GPS do aparelho.
É possível observar nos ícones indicadores que o GPS está ativo e a localização também.
O problema ocorre quando o aparelho está com a opção “Permitir localizações fictícias” (“Allow mock locations”) habilitada no menu de configuração “Opções de desenvolvedor” (“Developer options”).
Desmarque essa opção e o jogo poderá utilizar o GPS sem maiores problemas.
Sem a mensagem de erro de localização após a alteração:
iGO no android kitkat 4.x e lollipop 5.x com root
Algumas pessoas gostam de utilizar o programa de GPS iGO nos celulares android, para terem uma opção de navegação completamente offline, em termos de mapas e rotas.
A partir do android kitkat o Google mudou a api que permite o acesso ao cartão SDHC do dispositivo por programas de terceiros, causando alguns problemas relativos a perda de acesso a gravação no cartão de memória.
No caso do iGO algumas pessoas estavam instalando o programa inteiro na memória interna do aparelho, mas isso é só para quem tem dispositivos com muita memória, já que dependendo da configuração de mapas a instalação ocupa facilmente 500M, podendo chegar a 1G.
Fiquei curioso e resolvi fazer uns testes. A instalação ocorria normalmente, mas observei que toda vez que o programa fosse acessado era necessário fazer a configuração inicial (linguagem, escolha de vozes, sistema de medidas, configurações regionais).
Com o adb dei uma olhada no diretório da aplicação (no caso um LG H442f firmware 10f, a localização pode mudar entre diferentes fabricantes e versões de firmware):
C:\adt-bundle-windows-x86-20131030\sdk\platform-tools> .\adb shell shell@c70ds:/ $ su su root@c70ds:/ # cd /data/data/com.navngo.igo.javaclient cd /data/data/com.navngo.igo.javaclient root@c70ds:/data/data/com.navngo.igo.javaclient # ls -l ls -l lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 android_linked_root -> /storage/external_SD/iGO/ lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 branding.gro -> /storage/external_SD/iGO/branding.gro lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 branding.zip -> /storage/external_SD/iGO/branding.zip drwxrwx--x u0_a118 u0_a118 2016-04-21 21:47 cache lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 content -> /storage/external_SD/iGO/content lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 data.gro -> /storage/external_SD/iGO/data.gro lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 data.zip -> /storage/external_SD/iGO/data.zip lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 debug -> /storage/external_SD/iGO/debug lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 gfx -> /storage/external_SD/iGO/gfx -rw------- u0_a118 u0_a118 2 2016-04-21 21:47 kuka_logger.txt lrwxrwxrwx install install 2016-04-22 00:31 lib -> /data/app/com.navngo.igo.javaclient-2/lib/arm lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 license -> /storage/external_SD/iGO/license -rw------- u0_a118 u0_a118 94 2016-04-21 21:47 monkey.txt lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 save -> /storage/external_SD/iGO/save -rw------- u0_a118 u0_a118 656 2016-04-21 21:47 sentinel.txt lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 sys.txt -> /storage/external_SD/iGO/sys.txt lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 ui_android -> /storage/external_SD/iGO/ui_android lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 ui_igo9 -> /storage/external_SD/iGO/ui_igo9 lrwxrwxrwx u0_a118 u0_a118 2016-04-21 21:47 ux -> /storage/external_SD/iGO/ux
Pode-se observar que a maioria dos arquivos estão com link simbólico, isto é, o arquivo está fisicamente no cartão SDHC (/storage/external_SD) e são referenciados na memória interna, para economizar o armazenamento interno do aparelho.
A informação de link está presente tanto no “l“(ink) das permissões vistas no lado esquerdo (ex.: lrwxrwxrwx) como no símbolo -> do lado direito que aponta onde fisicamente está armazenado o arquivo.
No caso de um aparelho com root fica fácil corrigir o problema, basta trazer o mínimo necessário de arquivos para a memória interna, que são os arquivos que sofrem algum tipo de escrita (preferências, locais favoritos, etc): sys.txt e as pastas android_linked_root e save. Para isso remove-se o link com o comando rm e copia-se o arquivo com o comando cp:
root@c70ds:/data/data/com.navngo.igo.javaclient # rm sys.txt root@c70ds:/data/data/com.navngo.igo.javaclient # cp /storage/external_SD/iGO/sys.txt .
As pastas android_linked_root e save são removidas com o rm e criadas internamente com o comando mkdir. Basta recriar a pasta save, a pasta android_linked_root é criada de maneira automática pelo programa com todas as permissões e conteúdos necessários quando o iGO é executado pela primeira vez:
root@c70ds:/data/data/com.navngo.igo.javaclient # rm android_linked_root root@c70ds:/data/data/com.navngo.igo.javaclient # rm save root@c70ds:/data/data/com.navngo.igo.javaclient # mkdir save
Os arquivos criados e copiados são pertencentes ao usuário que os criou (root), então é necessário corrigir a propriedade para que fique igual ao usuário interno do programa (u0_a118, no exemplo):
... drwx------ root root 2016-04-22 01:00 save -rw------- u0_a118 u0_a118 656 2016-04-21 21:47 sentinel.txt -rwx------ root root 13455 2016-04-22 00:58 sys.txt ...
root@c70ds:/data/data/com.navngo.igo.javaclient # chown -R u0_a118.u0_a118 sys.txt save
Após a correção das permissões temos o seguinte:
drwx------ u0_a118 u0_a118 2016-04-22 01:00 save -rw------- u0_a118 u0_a118 656 2016-04-21 21:47 sentinel.txt -rwx------ u0_a118 u0_a118 13455 2016-04-22 00:58 sys.txt
A partir desse momento o iGO passa a funcionar corretamente, não sendo necessário a configuração inicial a cada utilização e a gravação de favoritos e demais personalizações são permanentes.
Windows 2003 travando periodicamente
Um dos servidores em que trabalho travava periodicamente a cada 21 dias. Sem pistas, eu ficava observando e analisando os logs do Eventviewer.
Um dia uma mensagem me chamou a atenção, estava registrada pouco antes primeiros erros no AD, NTFRS e DNS:
Event Type: Error Event Source: NTDS General Event Category: Service Control Event ID: 2103 Date: 11/29/2009 Time: 12:16:22 AM User: NT AUTHORITY\ANONYMOUS LOGON Computer: Server Description: The Active Directory database has been restored using an unsupported restoration procedure. Active Directory will be unable to log on users while this condition persists.
Comecei a fazer buscas para esse problema e achei uma solução interessante nesse post e com uma discussão detalhada do que pode causar esse problema:
https://awinish.wordpress.com/2010/12/24/netlogon-paused-issue-resolved/
A solução correta é fazer o demote e promote do servidor em questão no Active Directory
A solução do problema abaixo não é a mais correta do ponto de vista técnico mas é funcional (e rápida):
-Abra o Regedit no servidor problemático do AD -Abra HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters -Encontre a chave Dsa Not Writable=dword:00000004 -Delete a chave completa -Abra um prompt de comando e desabilite a replicação com o comando: C:\temp> repadmin /options nome_do_servidor -DISABLE_OUTBOUND_REPL -Habilite a replicação com o comando: C:\temp> repadmin /options nome_do_servidor -DISABLE_INBOUND_REPL -Reboot o servidor
A maneira correta é com o demote e promote do servidor em questão, essa informação é um método rápido e não recomendado, apesar de funcional.