segunda-feira, 15 de outubro de 2018

Mudando o horário de verão nos computadores versão 'old school' em 2018



Governo vai, governo vem e sempre uma coisa que não muda desde de 2008 é o horário de verão.

Isso se tornou um alívio para muitos profissionais de TI que utilizavam algumas ferramentas ou gambiarras para evitar que os servidores mostrassem o horário errado.

Mas, neste ano, as coisas mudaram um pouco.

1º tivemos as eleições e, com alguns meses de antecedência, mudaram o horário de verão para o dia 04 de novembro. Porém, quase no início do mês, notaram que o horário de verão começaria na mesma data do Enem. Daí existia o risco disso:

O maior evento de toda fase pré-universitária: Os Atrasados do ENEM 2018

Em vez de mover a data da prova, moveram o horário de verão para o dia 18. Já tem empresa aérea reclamando, os profissionais de TI já estão arrancando os cabelos. E ainda não tem data para atualizar o timezone como mostrado aqui nesta thread.

Atualização de última hora: E o Temer resolveu voltar atrás e volta tudo como era antes.

Então a solução, se isso continuasse, é voltar a usar os antigos métodos. Consegui relembrar através deste link: https://wiki.hackstore.com.br/Corrigindo_manualmente_o_hor%C3%A1rio_de_ver%C3%A3o_brasileiro_no_Linux

Fiz uma pequena adaptação, que funcionou na Debian. Mas pode funcionar no Ubuntu e outras distribuições.

Antes roda o comando  "zdump -v /etc/localtime | egrep '2018|2019'" e confere se o inicio está para 18 de novembro ou antes. Se for antes, então segue as instruções abaixo:

Primeiro, copia e cola o texto a seguir e salva com o nome timezone.zic


Rule Brazil 2017 only - Feb 19 00:00 0 3
Rule Brazil 2017 only - Oct 15 00:00 1 2
Rule Brazil 2018 only - Feb 18 00:00 0 3
Rule Brazil 2018 only - Nov 18 00:00 1 2
Rule Brazil 2019 only - Feb 17 00:00 0 3
Rule Brazil 2019 only - Oct 20 00:00 1 2
Rule Brazil 2020 only - Feb 16 00:00 0 3
Rule Brazil 2020 only - Oct 18 00:00 0 3
Rule Brazil 2021 only - Feb 21 00:00 0 3
Rule Brazil 2021 only - Oct 17 00:00 1 2
Rule Brazil 2022 only - Feb 20 00:00 0 3
Rule Brazil 2022 only - Oct 16 00:00 1 2
Rule Brazil 2023 only - Feb 26 00:00 0 3
Rule Brazil 2023 only - Oct 15 00:00 1 2
Rule Brazil 2024 only - Feb 18 00:00 0 3
Rule Brazil 2024 only - Oct 20 00:00 1 2
Rule Brazil 2025 only - Feb 16 00:00 0 3
Rule Brazil 2025 only - Oct 19 00:00 1 2
Rule Brazil 2026 only - Feb 22 00:00 0 3
Rule Brazil 2026 only - Oct 18 00:00 1 2
Rule Brazil 2027 only - Feb 21 00:00 0 3
Rule Brazil 2027 only - Oct 17 00:00 1 2
Rule Brazil 2028 only - Feb 20 00:00 0 3
Rule Brazil 2028 only - Oct 15 00:00 1 2
Rule Brazil 2029 only - Feb 18 00:00 0 3
Rule Brazil 2029 only - Oct 21 00:00 1 2
Rule Brazil 2030 only - Feb 17 00:00 0 3
Rule Brazil 2030 only - Oct 20 00:00 0 3
Rule Brazil 2031 only - Feb 16 00:00 0 3
Rule Brazil 2031 only - Oct 19 00:00 1 2
Rule Brazil 2032 only - Feb 15 00:00 0 3
Rule Brazil 2032 only - Oct 17 00:00 1 2
Rule Brazil 2033 only - Feb 20 00:00 0 3
Rule Brazil 2033 only - Oct 16 00:00 1 2
Rule Brazil 2034 only - Feb 26 00:00 0 3
Rule Brazil 2034 only - Oct 15 00:00 1 2
Rule Brazil 2035 only - Feb 18 00:00 0 3
Rule Brazil 2035 only - Oct 21 00:00 1 2
Rule Brazil 2036 only - Feb 17 00:00 0 3
Rule Brazil 2036 only - Oct 19 00:00 1 2
Rule Brazil 2037 only - Feb 22 00:00 0 3
Rule Brazil 2037 only - Oct 18 00:00 1 2
Rule Brazil 2038 only - Feb 21 00:00 0 3
Rule Brazil 2038 only - Oct 17 00:00 1 2
Zone America/Sao_Paulo -3:00 Brazil -0%s
Zone Brazil/East -3:00 Brazil -0%s

Agora rode o comando 'zic timezone.zic', como root.

Depois disso rode o mesmo zdump acima e confere se a data mudou para 18 de novembro.

Estando tudo certo, agora é descansar tranquilamente sabendo que não terá problemas, mais ou menos o que aconteceu com alguns iPhones hoje.

E, no Windows, como fica??

A partir daí, tem outro procedimento. Antigamente tinha um site da Microsoft que disponibilizava um aplicativo. Como não encontrei mais, então teremos que partir para um aplicativo de terceiros. No site da CNET tem uma versão do Tzedit https://download.cnet.com/Tzedit/3000-2094_4-76358086.html

Normalmente vem dois arquivos dentro do zip. Um para 32 bits e outro para 64 bits. Veja qual é o melhor para o seu sistema.

Rode o aplicativo e vai para o horário correspondente a Brasília.

Daí muda o Start Day de First para Third Sartuday que é 1 segundo antes da virada, igual na figura abaixo:

A alteração é simples.

Dá ok e é só dormir tranquilo.

Isso foi apenas de uma máquina. Para vários computadores e servidores de uma vez, existem várias técnicas como usar algum aplicativo tipo Puppet ou GPO de Windows e muitos outros. Mas aí o Google pode te ajudar nisso.

Mas, como informado na última atualização. O horário de verão volta a ser no dia 4 de novembro. Então, fatalmente, será: PREPARA...
Que agora terá o Show dos Atrasados..

Que acordaram 1 hora mais tarde e não regularam os relógios
chegando 1 segundo depois de fechar o portão...
Material é que não vai faltar este ano..

Tenham uma boa semana.

sábado, 14 de julho de 2018

Como resetar o thumbnail dos sites do Chrome sem apagar o site da lista?

Vamos mexer com as imagens do Chrome

Essa é uma ótima dica que pode ser usada na seguinte situação:

Você usa o Whatsapp Web e recebe uma figura que não quer que receba (Tipo aquela do negão). Daí fecha e deleta a figura.

Nisto você abre uma nova aba e lá está a figura no thumbnail. Em um Desktop, numa sala isolada, é tranquilo e some em alguns dias. Mas imagina que está em um notebook que fica de cima para baixo e com um monte de olhos sufrando no seu ombro durante o dia.

A solução mais simples é remover o thumbnail clicando em remover. Mas você não quer remover o site, só quer apagar a imagem e mudar para uma situação mais inocente. Mas como se faz isso????

Existem várias soluções na rede. Mas são para versões antigas. Como o código do Google Chrome mudou nos últimos anos(Estamos na versão 67), então existe uma outra solução mais localizada. Vamos ver?

Primeiro vamos ver o thumbnail alvo. Vamos utilizar o thumbnail que está literalmente trollando, como exemplo.

Vamos apagar o Troll que a seta está apontando.

Primeiro vamos descobrir onde o perfil da conta é guardado. Digite about: no campo de endereços.


A última linha mostra o caminho do perfil que deve acessar. Nesta é em uma máquina Linux. No Windows o caminho é outro:




Normalmente o caminho termina com a pasta Default. Mas tem casos, se usar multiplos perfis que pode ir para Profile 1, Profile 2. Então o final do caminho pode ser totalmente diferente.

Agora vamos dentro da pasta e precisamos procurar por um arquivo chamado Top Sites. Pode não ter extensão nenhuma, mas é nele que fica os dados dos sites mais visitados e que aparece na tela inicial do Chrome. Instale um software como o sqlitebrowser, fecha o Chrome e abre o arquivo.

Nele tem duas tabelas, a que interessa é a thumbnails e, dentro dela encontramos a linha que queremos mexer:

Achamos a linha que queremos mexer.
A imagem fica justamente codificado na columa thumbnail. Apaga a informação desta coluna, salva e reinicia o Chrome.


O thumbnail pode ter movido para a primeira posição. Mas a figura sumiu.

Ao acessar, a imagem praticamente sumiu. Se fosse o Whatsapp Web, é só acessar que a imagem será outra totalmente diferente e se livrou do enorme constrangimento sem ter que remover o link importante.

Tenham um bom final de semana.

domingo, 1 de abril de 2018

Tiangong-1 quase acerta carro de Luiz Fernando Pezão

Notícia recebida agora a pouco via redes sociais e confirmado, ao olhar pela janela, que a estação espacial chinesa Tiangong-1 acaba de reentrar na atmosfera. Houve muito barulho e os pedaços foram vistos caindo a alguns quilômetros daqui de casa.




Mas o impressionante é que um dos fragmentos da estação acabou caindo na Via Dutra, próximo a Piraí, causando sustos em alguns motoristas. Segundo informações passadas por alguns motoristas via Twitter e Facebook. O fragmento acabou caindo cerca de um metro de um carro oficial do Governo do Estado do Rio de Janeiro. Um dos comentários dizia que o veículo, provavelmente, é do Governador Luiz Fernando Pezão e o usuário ainda reclama que nem para dar um fim no governador a estação espacial prestou.

A queda da estação só serviu para atrapalhar o trânsito

Muitos outros, das mais variadas vertentes politicas, reclamaram que esse fragmento poderia ter caído em cima de uma pessoa com 9 dedos, de um Juiz, em Curitiba, em um vice golpista ou em um possível 'Salvador da Pátria' que vive cercado de minions. Ou poderia cair no Congresso Nacional. Mas, como é Domingo de Páscoa, não tem ninguém no local até terça-feira.

Com isso vaso ruim não quebra e teremos que esperar por um meteoro.

Tenham uma boa Páscoa.

sexta-feira, 9 de março de 2018

Método simples de criar um repositório Debian/Ubuntu sem precisar de servidor web

Hoje esta dica surgiu num momento muito delicado. Eu aqui uso o Debian Sid onde, praticamente todo mundo sabe, as coisas podem quebrar de uma hora para outra. Então, numa das atualizações do systemd e kernel, eu reiniciei a minha máquina e me deparei com este erro:

O boot parou com um ABRT. :o


Tentei voltar para versão anterior do kernel e o erro persistia. Então imaginei que o erro seria no systemd. Depois de dar um boot com o live cd e refazer a conexão, fiz uma pesquisa e encontrei a causa neste bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=892360. No momento em que estiver lendo a falha já foi corrigida mas, na hora precisava fazer alguns testes e tinha um patch que corrigia isso.

Agora era partir para um ambiente chrooted, pelo live cd, para que eu possa compilar os pacotes modificados. Após preparar os pacotes, sabia que não eram todos que precisavam ser instalados.

Como fazer isso já que não tinha condições de instalar um apache e preparar um ambiente seguro de um repositório temporário. Bom, existe uma maneira.

copie os pacotes gerados para uma pasta. Digamos que seria /usr/local/debs, por exemplo.

Feito isso entre na pasta e rode o seguinte comando:

 dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

 Feito isso edite o /etc/apt/sources.list e adicione o seguinte:

deb [trusted=yes] file:/usr/local/debs/ ./

O '[trusted=yes]' é para evitar que o apt reclame de autenticação e da existência de pacotes não assinados.

Daí é apt-get update e apt-get upgrade (ou install pacote) para que os pacotes seja atualizados sem nenhum problema.

Depois foi reiniciar a máquina e o acesso normalizou.

Claro que isso não substitui o repositório oficial. Mas é um bom quebra-galho quando precisa recompilar os pacotes e só precisa atualizar o necessário.

Depois do uso não esqueça de comentar o repositório já que, por enquanto, não será mais necessário.

Tenham um bom final de semana.

segunda-feira, 5 de fevereiro de 2018

Removendo commits indesejáveis do repositório git sem precisar do revert



Hoje vamos ver como deletar aquele commit que você não gostou e quer se livrar dele de uma só vez. Isso tudo sem precisar de utilizar do comando revert, para reverter o estrago que fez.

OBS: Este blog não se responsabiliza por estragos causados por quem seguir as dicas a seguir. Se não quer ter problemas no seu repositório ou no repositório dos outros, FAÇA UM BACKUP PRIMEIRO. Seja dando um clone em outro lugar, copiando a pasta .git para um outro lugar ou dando um tar/zip no seu repositório. Depois não venha chorando dizendo que fez besteira.

Vamos começar pelo mais simples. Você quer, simplesmente, remover o último commit ao invés de utilizar o revert. Esse comando é bem fácil é só fazer.

git reset --hard HEAD~1

Aí o repositório volta ao estado de como era antes do commit.

Agora vamos a situação do commit, bem no meio, que está dando problemas. A situação normal é rodar um revert para corrigir. Mas você quer se livrar do código indesejável. Neste caso existe uma maneira.

Vamos ver um exemplo de git log:

Number Hash     Commit Message               Author

1      2c6a45b  (HEAD) Adicionando novidades Desenv.
2      ae45fab  Melhorando banco de dados    Estagiário 1
3      77b9b82  Corrigindo banco de dados    Estagiário 2
4      3c9093c  Dando merge com master       Desenv.
5      b3d92c5  Adicionando novo evento      Colega
6      7feddbb  Adicionando arquivos         Desenv.
7      a809379  Commit inicial               Desenv.


Mas você vê que os estagiários complicaram na parte do banco de dados e quer se livrar deste código, de uma vez por todas, sem passar por revert. É só seguir a numeração. Escolha o primeiro a deletar e o primeiro a manter, de baixo para cima. Neste caso o primeiro a remover é o 3 e o primeiro para manter é o 1. Assim o comando para rodar é o:

git rebase --onto HEAD~3 HEAD~1 master

Depois disso os commits desaparecem do seu repositório.

Mas e se os códigos para remover estão espalhados? Neste caso, faça um intervalo de cada vez. Se tentar com o primeiro código para remover e o primeiro a manter, depois de várias sequencias, vai remover aquilo que não quer que remova e vai ter que precisar do backup que pedi para fazer no início. Lembra?

Outra opção, neste estilo, é com o cherry-pick. Mas ainda não testei, mas pode dar uma olhada melhor nos links abaixo.

Mais informações sobre isso em:

https://www.clock.co.uk/insight/deleting-a-git-commit
https://www.git-tower.com/learn/git/faq/undo-last-commit

Tenham uma boa semana.

terça-feira, 5 de dezembro de 2017

Migrando de iptables para nftables

O assunto de hoje é sobre firewall

Hoje foi falar sobre o nftables. Um sistema de firewall para Linux que pretende substituir o atual iptables, ip6tables e qualquer outro tables que trabalha com as regras de permissão de acesso e encaminhamento de pacotes. Por ser tudo reunido em um único aplicativo ele tem a vantagem de evitar a duplicação de códigos e qualquer outro problemas em que ocorre em um dos apps em separado.

O pior é que vivi esta parte da pior maneira quando compilei o kernel 4.14 da primeira vez. Na verdade demorou alguns dias já que não notei falhas de rede até que tentei acessar algo, da rede interna, exclusivamente em ipv6. A conexão não ia de maneira alguma, mesmo com todas as regras do ip6tables corretas. Voltando para o kernel 4.13 a conexão ipv6 normalizou.

A regra que deu problema foi essa:

ip6tables -t nat -A POSTROUTING -s fd08:7d11:7db1:1ecb::/64 -j MASQUERADE

Ou seja. Tirando a máquina principal, que é roteadora e o ipv6 funciona de qualquer maneira. Qualquer dispositivo, na rede interna, tem conexão ipv6 normal no kernel 4.13. Mas falha quando utiliza o kernel 4.14. O ipv4 roda normal em todas as situações.

Não entendi nada. Funciona em um e não em outro.


Então foram feitos vários testes com o kernel 4.14 tanto em Debian, quanto em Ubuntu e no CentOS. O resultado foi o mesmo e o ip6tables não encaminhava nenhum pacote para fora.

Então resolvi fazer um teste com um nftables com o kernel 4.14 e ver como se comportava. Fui ver como adiciona uma regra parecida com aquela acima e cheguei no seguinte:

table ip6 nat {
 chain prerouting {
   type nat hook prerouting priority 0;
 }
 chain postrouting {
   type nat hook postrouting priority 0;
   oifname "ens33" masquerade
 }
}
Coloquei a regra em um arquivo do tipo teste.firewall e rodei o seguinte comando.

nft -f teste.firewall

Esse comando carrega as regras contidas nos arquivos. Fui fazer um teste e... funcionou.

Até que enfim deu certo. Então o erro é em algo no ip6tables que ainda não foi identificado. Mas já que a tendência é do iptables se juntar ao antigo ipchans como 'deprecated' nos próximos anos. Então vamos pegar as regras atuais e repassar para o nftables.


Mas como migrar tudo que é feito em iptables/ip6tables para nftables???

Por sorte os desenvolvedores criaram duas maneiras de migrar as regras de um para outro. Um deles é pelo uso do iptables-nftables-compat, aonde não muda as regras atuais e deixa o nftables fazer as coisas, nos bastidores. Mas o melhor é aprender os novos comandos. Por isso foi utilizado ip(6)tables-translate, que pega as antigas regras do iptables e mostra qual o comando equivalente para o nftables.

Depois de rodar o comando em quase todas as regras (depois explico o porquê). Chegou a hora de mudar as regras locais.

A regra do nat é mais fácil já que precisa repetir apenas o a regra, no mesmo arquivo só que muda o ip6 para ip, para uso do ipv4 e colocar para carregar quando rodar o nft -f teste.firewall

As demais regras tem umas pegadinhas:

Antes de rodar qualquer comando é necessário adicionar, no inicio de cada arquivo de firewall, os seguintes comandos:

nft add table ip filter                                                            
nft add chain ip filter INPUT { type filter hook input priority 0\; policy accept\; }                                                                     
nft add chain ip filter FORWARD { type filter hook forward priority 0\; policy accept\; }                                                                 
nft add chain ip filter OUTPUT { type filter hook output priority 0\; policy accept\; }


nft add table ip6 filter                                                         
nft add chain ip6 filter INPUT { type filter hook input priority 0\; policy accept\; }                                                                   
nft add chain ip6 filter FORWARD { type filter hook forward priority 0\; policy accept\; }                                                               
nft add chain ip6 filter OUTPUT { type filter hook output priority 0\; policy accept\; }



Detalhe para o \ antes do ; para evitar problemas na hora de executar via shell script.

Esses comandos criam as tables e chains necessárias para o uso das regras. Sem isso qualquer comando pode acarretar em erro.

Depois de criado, pode conferir através do comando 'nft list tables'

yoda:~# nft list tables
table ip6 filter
table ip6 nat
table ip filter
table ip nat

Agora é adcionar as regras. 

Se, antes, foi utilizado a regra:

iptables -A INPUT -i ppp0 -p tcp --destination-port 700 -j REJECT

ele agora pode ser executado dessa maneira:

nft add rule ip filter INPUT iifname ppp0 tcp dport 700 counter reject

O mesmo vale para o ipv6 já que só precisa alterar uma coisa no comando:

nft add rule ip6 filter INPUT iifname ppp0 tcp dport 700 counter reject

O resto pode ser feito em todos os comandos...   Não exatamente...

Apenas um comando no iptables e um comando em ip6tables não dá para ser migrado, por enquanto.

Esse comando é o:

iptables -t mangle -o ppp0 --insert FORWARD 1 -p tcp --tcp-flags SYN,RST SYN
-m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu

E o seu equivalente no ip6tables.

Justamente o comando que regula o tamanho do mtu para evitar problemas no envio de alguns pacotes um pouco grandes em conexões ppp. Até hoje ele ainda está no TODO do projeto.

nftables frontend
-----------------
- Define lexical distinction between keywords, symbolic constants and
  identifiers
- Define syntax for changing data (connmark, meta etc.)
- payload syntax for matching on IP headers of IPIP/GRE tunnels etc.
- netlink monitor for CLI

Kernel
------
- netlink set API
- kernel set implementation selection
- TC hookup - use dummy classifier or hook "natively" ?
- kill mangle table, make rerouting a configurable table/chain property
- kill nat table? harder because of more special handling
- multi-family tables

- IPv6 ext header matching
- IP style options (IP/TCP/DCCP) matching
- IPsec policy matching
- hashlimit
- quota
- recent(?)
- TCPMSS target - generic packet editor?
- include NLM_F_ ... flags in notifications?

A solução, neste caso, é manter os antigos comandos, sendo os dois últimos remanescentes do antigo ip(6)tables até que os desenvolvedores criem um comando equivalente.

Com isso a rede interna volta a usar tanto o ipv4, quanto o ipv6. Mas, caso precisem saber como anda as regras, pode usar os seguintes comandos:

nft list tables - Exibe os nomes das tabelas criadas

nft list table ip6 nat - Exibe os códigos utilizados na tabela nat do ipv6. Para ipv4 troque ip6 por ip.

nft list ruleset - Exibe o código completo utilizado no nftables tanto no ipv4 quanto no ipv6.

Mais detalhes:





Tenham uma boa semana.

segunda-feira, 16 de outubro de 2017

Corrigindo falha nas fontes no Firefox e Thunderbird no Linux

Numa das atualizações do sistema acabei notando o Thunderbird abriu com as fontes com a aparência bastante horrível. Mais ou menos no que aparece na figura abaixo:

A figura do exemplo é do Firefox. Mas isso aconteceu apenas no Thunderbird aqui


O que é mais estranho é que isso ocorreu apenas no Thunberbird. Já o Firefox estava normal e sem nenhum problema. Então existe a possibilidade que isso seja algum problema em bibliotecas. Então eu recompilei o Thunderbird para ver se a situação melhora. Mas isso não funcionou.

Depois de algumas pesquisas eu achei a solução neste endereço: http://z-issue.com/wp/ugly-fonts-in-mozilla-firefox-and-thunderbird-under-linux-skia-and-cairo/. Nesta página indicava que a falha era mais por conta da mudança da biblioteca de renderização de fontes que mudou, nos aplicativos da Mozilla, do cairo para o skia. Provavelmente o skia usado pela Debian ficou bugado depois da última atualização. Mas ainda não explica o porque do Firefox estar imune a falha (Ele usa o skia e está normal).

De qualquer forma, no endereço acima, ele explica que tem como corrigir. No Firefox(Vale no Thunderbird, mas é outro caminho) tem que ir no about:config sabendo que verá dragões (Hic sunt dracones) e procurar os seguintes parâmetros:

gfx.canvas.azure.backends
gfx.content.azure.backends

Altera os valores de skia para cairo nos dois parâmetros e reinicia o aplicativo. A partir daí a exibição das fontes será normalizada.

No Thunderbird a configuração pode ser acessada em Editar -> Preferências -> Avançado -> Geral -> Editor de config.

Pelo menos aqui o Thunderbird voltou ao normal com essa configuração.

Tenham uma boa semana.

sexta-feira, 6 de outubro de 2017

AOL Instant Messenger será desativado em dezembro

Sabe aquele que achava que morreu? Pois bem, vai morrer no final do ano.

Uma notícia andou circulando no Twitter e sites de tecnologia lá fora nesta sexta. A AOL, que agora pertence a Verizon, anunciou que o serviço de mensagens instantâneas será descontinuado no dia 15 de dezembro, conforme o último tweet enviado pela empresa:


Quem acessava a Internet nos anos 90 e usou os CDs da AOL sabe como é o AOL Instant Messenger.  Um mensageiro instantâneo criado na mesma época do ICQ, no qual a AOL comprou e fez com que os usuários de um serviço se comunicasse com o outro. O mensageiro só deixou de ser utilizado depois da AOL ter saído do Brasil e da acensão do finado MSN Messenger, no início dos anos 2000. Ainda sim mantinha alguns usuários ativos até hoje no mundo.

Com o fim do AOL Instant Messenger, ainda temos, da primeira geração de mensageiros instantâneos, o ICQ, que pertence, atualmente, a uma empresa russa, e o Yahoo Messenger, este último só está limitado a sua interface web.

Mais informações: (por enquanto é em inglês, mas se aparecer em sites brasileiros, se alguém lembrar, vou informar  Já tem notícia no tecmundo).

https://tech.slashdot.org/story/17/10/06/1649204/rip-aim-aol-instant-messenger-dies-in-december

https://www.usatoday.com/story/tech/talkingtech/2017/10/06/rip-aim-aol-instant-messenger-dies-december/739076001/

https://www.tecmundo.com.br/internet/122782-aol-instant-messenger-dar-adeus-15-dezembro.htm

Tenham um bom final de semana.

quarta-feira, 23 de agosto de 2017

Como uma busca no Google ajudou a pegar o maior mercador da Deep Web.



Hoje vou contar a história de uma das maiores mancadas da Deep Web. Muito por conta de algumas falhas deixadas por um dos maiores mercadores no submundo da rede Tor. A prisão de Dread Pirate Roberts, o administrador da controversa Silk Road.



O Silk Road era bastante conhecido pelo comercio de drogas de forma anonima e as transações eram feitas em Bitcoin, o que dava uma dificuldade enorme para o FBI, que tentava, a dois anos, derrubar o site de qualquer forma.

Isso até que um agente fiscal da Receita dos EUA, Gary Alford, resolveu fazer algumas buscas na Internet para encontrar o administrador e criador do Silk Road. Com algumas pesquisas no Google, ele tentou localizar as primeiras menções do Silk Road. Observando alguns forums do https://bitcointalk.org, ele notou que um usuário estava fazendo várias perguntas sobre bitcoin e comércio e, numa das postagens, este usuário simplesmente divulgou um email do gmail.: rossulbricht@gmail.com.

Como assim alguém que quer se esconder divulga um email do gmail e, o pior, sendo um possível nome e sobrenome: Ross Ulbricht?? De início Gary mostrou o email para os colegas do FBI mas não ligaram a mínima pelo fato que tudo foi encontrado por conta de uma busca no Google. Então o Gary resolveu ir mais a fundo na pesquisa. Conseguiu levantar diversos dados sobre o Ross Ulbricht, descobriu-se que ele estava em São Francisco, achou alguns vídeos e, depois, fez várias pesquisas em fóruns especializados em busca de algo que possa ligar ele ao Silk Road até que encontrou algumas perguntas como essa e essa no Stackoverflow com o username frosty.


Agora que vão ligar A com B nessa.
Ligando tudo isso com a localização do servidor da Silk Road por conta de uma falha no sistema de CAPTCHA, o que deu a localização mais precisa de onde o Dread Pirate Roberts se logava. Gary voltou a entrar em contato com o FBI, já com as informações que ligavam o frosty ao Ross Ulbricht e ao Dread Pirate Roberts. Então foi facil obter um mandado e prepararam uma operação para prender-lo.

Com isso, em outubro de 2013, uma equipe do FBI foi até São Francisco e seguiram Ross Ulbricht até uma biblioteca e esperaram que ele se logasse no laptop na Silk Road, como Dread Pirate Roberts, para que possam prender-lo em flagrante. Assim que se logou, fizeram uma pequena distração e tomaram o laptop dele e, em seguida, o prenderam.


O Gary até que queria assistir, já que foi ele que descobriu tudo, mas não conseguiu a autorização a tempo para que ele possa assistir a cena de camarote. Mas ficou feliz ao receber o email dizendo que estava certo e acabaram prendendo ele.

No final de tudo Ross Ulbricht foi condenado pelos crimes de lavagem de dinheiro, hacking e conspiração para tráfico de drogas. Foi sentenciado a prisão perpétua sem possibilidade de progressão ou condicional.

Isso mostra que, por mais que as ferramentas sejam seguras, o maior ponto de falha sempre está localizado entre o teclado e a cadeira. O fato de publicar um email do gmail com nome real e errado em parte da configuração do site ajudou a tirar a máscara do anonimato do Dread Pirate Roberts. Ou seja, se quiser ficar escondido, cuidado com as pistas que deixa no caminho. Uma pergunta no Google pode te achar mais rápido do que possa imaginar…

Mais detalhes no vídeo da BBC logo abaixo. Infelizmente está todo em inglês mas o texto acima já é totalmente baseado nele.






Tenham uma boa semana.

segunda-feira, 7 de agosto de 2017

Resolvendo o problema de compilação de módulos do VMware na Debian com gcc 7.x

Aqui, em casa, utilizo bastante o VMware Workstation para rodar as minhas máquinas virtuais para testes e ajudar em algumas implementações nos programas que uso. Porém, após as últimas atualizações da minha Debian Sid, com o kernel, aconteceu algo estranho:


Como assim não encontrou o gcc???

Então coloquei /usr/bin/gcc no Location e me retornou isso:


Como assim não achou uma versão compatível???

Então tentei usar a linha de comando rodando o "/usr/bin/vmware-modconfig  --console --install-all". Mas, o que consegui foi:

Failed to get gcc information.

Aí as coisas ficam mais estranhas ainda. Como assim não conseguiu encontrar?? Então resolvi procurar várias soluções para este problema e, tudo que encontrei no Google, não resolveu e o erro ainda persiste.

Então tentei seguir o script /usr/bin/vmware-modconfig. Mas, no final, ele chega no /usr/lib/vmware/bin/appLoader, que é um arquivo binário. Sendo a falha acontecendo no binário, fui verificar os logs e me retornou o seguinte:


2017-08-07T18:46:02.429-03:00| modconfig| I125: Trying to find a suitable PBM set for kernel "4.12.5".
2017-08-07T18:46:02.429-03:00| modconfig| I125: No matching PBM set was found for kernel "4.12.5".
2017-08-07T18:46:02.429-03:00| modconfig| I125: Found compiler at "/usr/bin/gcc"
2017-08-07T18:46:02.431-03:00| modconfig| I125: Got gcc version "7".
2017-08-07T18:46:02.431-03:00| modconfig| I125: Unable to parse gcc version
2017-08-07T18:46:02.434-03:00| modconfig| I125: We are now shutdown.  Ready to die!


De alguma forma a parte do VMware, que gera os módulos, só reconhece as versões do gcc até a 6, acima disso ele não conhece e a compilação é abortada. E o problema só ocorreu porque, durante as atualizações do sistema, a versão do gcc padrão utilizada passou da versão 6 para a 7, e foi aí que a incompatibilidade aconteceu.

Como não quero esperar chegar uma versão mais nova para corrigir, o jeito é criar um script que, pode fazer este papel. O script que criei é esse:

#!/bin/bash

#Cria os módulos de forma manual

/etc/init.d/vmware stop

mkdir /tmp/vmware-build

cd /tmp/vmware-build


tar -vxf /usr/lib/vmware/modules/source/vmmon.tar
tar -vxf /usr/lib/vmware/modules/source/vmnet.tar


cd /tmp/vmware-build/vmmon-only/
make

mkdir /lib/modules/`uname -r`/misc
cp vmmon.ko /lib/modules/`uname -r`/misc/vmmon.ko

cd /tmp/vmware-build/vmnet-only
make


cp vmnet.ko /lib/modules/`uname -r`/misc/vmnet.ko

depmod -a

/etc/init.d/vmware start

cd


rm -rf  /tmp/vmware-build

Este script, descompacta compila e instala os módulos. A vantagem dele é que não precisa verificar qual versão do gcc. Ele já utiliza a última versão, instala e deixa o VMware pronto para o uso.

Após o teste, tudo voltou a funcionar como antes.

Espero que isso ajude a resolver este pequeno problema. Caso tenha erros de compilação, por algum outro motivo, recomendo que dê uma olhada em http://rglinuxtech.com/. Normalmente encontro patches que podem servir para corrigir os módulos do VMware, caso haja problemas após a atualização para a versão mais recente. O site também vale para os módulos da NVIDIA para as placas de vídeo. Vale a pena.

Tenham uma boa semana.