quarta-feira, 3 de abril de 2019

Recurso pouco conhecido do Ghost

Local → Partition → From Image

É possível especificar a mesma partição onde está a imagem como a de destino. Todos os arquivos existentes no volume serão apagados, com exceção da imagem se escolhermos preservá-la.


Interessante. Parece que o sistema de arquivos é recriado, pois podemos restaurar imagem contendo NTFS sobre um volume FAT32 (provavelmente o contrário também funcione).

quarta-feira, 27 de março de 2019

Lembrando que Office tem vida útil

O Microsoft Office tem ciclo de vida. Recebe atualizações enquanto houver suporte — necessário habilitar "Fornecer atualizações para outros produtos Microsoft quando eu atualizar o Windows" nas opções avançadas do Windows Update. Para quem não trabalha com arquivos de terceiros, não é crítico. Do contrário, é importante manter o programa atualizado, pois falhas de segurança volta e meia são corrigidas na suíte.

Ultimamente tenho lidado com algumas tabelas do Excel que passam por diferentes mãos. Andava preocupado usando o Office 2007, descontinuado em 2017.

Decidi abrir o bolso e investir no Office 2019 Home & Student, a versão vitalícia. R$ 249,00 na loja física da Kalunga. Você compra a chave de ativação, loga na sua conta da Microsoft, digita a chave lá e baixa.

Este cartão não tem valor; o que importa é chave presente no cupom fiscal

Está de bom tamanho para um software que durará pelo menos sete anos (costumava ser dez 🤦‍♂️).

Procuro usar quando possível o LibreOffice, mas é inviável arrumar tabelas gigantes com dezenas de fórmulas bagunçadas. Provavelmente daria para recriar o documento no Calc. Não serei eu a fazer isso, no entanto. Sou consumidor desses arquivos apenas.

segunda-feira, 18 de fevereiro de 2019

Cuidado com o Notepad++ 7.6

Pela primeira vez em muitos anos usando o Notepad++ precisei fazer downgrade, da versão 7.6.3 para 7.5.9.

Todas as versões 7.6.x até o momento possuem este bug:

https://github.com/notepad-plus-plus/notepad-plus-plus/issues/5202

A detecção do conjunto de caracteres falha quase sempre e o risco de bagunçar arquivos contendo sinais diacríticos e símbolos é alto. Fique na 7.5.9 até o problema ser resolvido.

limpadsk

Não valia mais o trabalho de mantê-lo

Tudo que me interessava nos shells scripts do Zero Linux implementei em C neste programinha:

https://github.com/marcosfrm/limpadsk

Na guia releases há binários estáticos que rodarão em qualquer Linux.

terça-feira, 23 de outubro de 2018

Como está o suporte ao Linux do Ghost

Creating ext4 filesystem

A partir da suíte Ghost Solution Suite 3.0, suporte ao Linux foi melhorado. Binários ELF x86-32 passaram ser distribuídos e suporte ao EXT4 foi adicionado. Contudo, há limitações.

- Apenas EXT2/3/4 são suportados sem recorrer à opção -ia, que faz ineficiente cópia bit-a-bit.

- Versão 12.0.0.10517+ é requerida para sistemas EXT4 com recurso 64bit ativo.

- EXT4 com recurso metadata_csum não é suportado até a versão 12.0.0.10618 (última enquanto escrevo). Passou a ser usado por padrão a partir da versão 1.44 da suíte e2fsprogs (Debian e derivados adotaram a mudança na 1.43). É possível editar o arquivo /etc/mke2fs.conf antes de iniciar o instalador para reverter:

--- /etc/mke2fs.conf 2018-03-24 19:13:28.000000000 +0000
+++ /etc/mke2fs.conf 2018-10-14 11:20:19.918861668 +0000
@@ -11,7 +11,7 @@
   features = has_journal
  }
  ext4 = {
-  features = has_journal,extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize
+  features = has_journal,extent,huge_file,flex_bg,uninit_bg,64bit,dir_nlink,extra_isize
   inode_size = 256
  }
  small = {

- Em instalações BIOS/CSM, o modo de clonagem de disco não está preservando o código de boot do GRUB corretamente (mesmo com a opção -ib) — funcionava no tempo do GRUB Legacy. Em instalações UEFI, falha com erro misterioso ao tentar acessar a partição ESP.

Funciona bem o modo de clonagem de partição (pcreate, prestore). Esse modo requer que o particionamento esteja previamente presente e que o bootloader seja reinstalado após a restauração. Ou seja, nada diferente do FSArchiver, que é muito mais completo. O Ghost seria vantajoso caso o modo de clonagem de disco funcionasse, pois particionaria automaticamente e entregaria o sistema inicializável no final sem passos adicionais.

sábado, 6 de outubro de 2018

Estou Zen

Para constar nos registros do blog, agora estou Zen:

Dell Inspiron 5675

Manual: inspiron-5675-gaming-desktop_owners-manual_en-us.pdf

Configuração simples com AMD Ryzen 5 1400, Radeon RX 560.

quarta-feira, 25 de julho de 2018

Particionamento MBR no openSUSE Leap 15.0

openSUSE Leap 15.0+ cria por padrão particionamento GPT mesmo ao inicializar via BIOS. Para usar MBR, recorra ao particionador avançado, clique em "Avançado..." e depois em "Criar nova tabela de partição". Selecione então "MS-DOS (estilo clássico)". Daí para frente, crie as partições a gosto.


quarta-feira, 11 de julho de 2018

FSArchiver 0.8.5 suporta melhor sistemas EXT

Fiz algumas melhorias no suporte aos sistemas de arquivos EXT nesta versão.

- UUID é definido pelo mke2fs no momento da formatação se o programa não for pré-histórico (1.41.4+).

- Quando uma imagem contendo outro sistema de arquivos é convertida para EXT2/3/4, ext_attr é habilitado e inodes de 256 bytes são usados[1] e, para EXT4, além de extent, que é mandatório, huge_file, flex_bg, uninit_bg, dir_nlink e extra_isize são habilitados. É o conjunto de recursos base da suíte e2fsprogs 1.41, que manteve-se na série 1.42 em dispositivos menores que 16 TiB. 64bit não é habilitado incondicionalmente[2] como na versão 1.43, nem metadata_csum como na 1.44.

- No upgrade de EXT2 para EXT3, tamanho original do inode é mantido. Assim, imagens de distribuições muito velhas, que usem EXT2 com inodes de 128 bytes, têm mais chance de serem transplantadas com sucesso para EXT3.

- Upgrade de EXT2 revisão 0 para EXT3/4 funciona. Apenas para exatidão do código mesmo, pois tais sistemas têm mais de vinte anos.

Com essas mudanças, a opção mkfs=ext4 do argumento restfs é usável. O sistema EXT4 terá as características mínimas necessárias.


[1] Padrão desde o mke2fs 1.40.5 (27 de janeiro de 2008).
[2] O programa habilitará, contudo, caso detecte dispositivo ≥ 16 TiB.

domingo, 24 de junho de 2018

Squid + ssl-bump e as hierarquias tupiniquins

Antes de assinar páginas com seu certificado, quando bump é feito (não aplica-se a splice[1]), o Squid validará o certificado do servidor web. Em caso de falha, retornará uma página de erro ao cliente — a menos que liberemos com sslproxy_cert_error, que é perigoso.


Precisamos instalar as autoridades certificadoras raiz brasileiras na máquina onde o Squid roda.

Fedora/RHEL e derivados[2]:

# wget http://acraiz.icpbrasil.gov.br/credenciadas/RAIZ/ICP-Brasilv2.crt -O /etc/pki/ca-trust/source/anchors/ICP-Brasilv2.pem
# wget http://acraiz.icpbrasil.gov.br/credenciadas/RAIZ/ICP-Brasilv5.crt -O /etc/pki/ca-trust/source/anchors/ICP-Brasilv5.pem
# update-ca-trust
# systemctl reload squid.service

(enquanto escrevo, V2 e V5 estão em uso)

Ao servirem páginas assinadas por certificados intermediários (a maioria), servidores web bem configurados entregam a cadeia necessária, que é usada pelo Squid 4+. Para os raros casos de servidores que não o façam, dá para especificar manualmente com:

sslproxy_foreign_intermediate_certs /caminho/cadeia.pem

Relacionado:
Modos de funcionamento do Squid


[1] Tráfego passa sem modificações pelo proxy. As CAs devem ser instaladas nos clientes.
[2] Features/SharedSystemCertificates.

quinta-feira, 21 de junho de 2018

Modos de funcionamento do Squid

Considerando forward proxies, temos:

Não transparente

http_port 3128

Modo tradicional. Os clientes precisam ser configurados para usarem o proxy. NAT não é requerida no servidor — é desaconselhável inclusive[1]. Tráfego HTTP é filtrado e cacheado. Tráfego HTTPS é tunelado sem modificações; portanto, não é cacheado. Domínios HTTPS podem ser filtrados; URLs HTTPS (que incluem a parte interna dos endereços) não são visíveis, pois, após a conexão TLS[2] ser estabelecida, o proxy nada mais sabe a respeito.

Transparente HTTP

# sysctl -w net.ipv4.ip_forward=1
# iptables -t mangle -A PREROUTING -i int_interna -p tcp -m tcp --dport 3129 -j DROP
# iptables -t nat -A PREROUTING -i int_interna -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3129
# iptables -t nat -A POSTROUTING -o int_externa -j MASQUERADE

http_port 3128
http_port 3129 intercept

Dispensa configuração nos clientes. NAT é requerida. Tráfego da porta 80, proveniente da rede interna, é redirecionado para o próprio servidor, sendo interceptado pelo Squid. Tráfego HTTP é filtrado e cacheado. Tráfego HTTPS é tunelado e domínios e URLs HTTPS não podem ser filtrados — mesmo que o usuário tente acessar sem https://, HSTS[3], cada vez mais popular, efetivamente impede qualquer tipo de controle.

Transparente HTTP + HTTPS

# sysctl -w net.ipv4.ip_forward=1
# iptables -t mangle -A PREROUTING -i int_interna -p tcp -m tcp --dport 3129:3130 -j DROP
# iptables -t nat -A PREROUTING -i int_interna -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3129
# iptables -t nat -A PREROUTING -i int_interna -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3130
# iptables -t nat -A POSTROUTING -o int_externa -j MASQUERADE

http_port 3128 ssl-bump tls-cert=/caminho/ca.pem tls-key=/caminho/ca.key
http_port 3129 intercept
https_port 3130 intercept ssl-bump tls-cert=/caminho/ca.pem tls-key=/caminho/ca.key
acl etapa1 at_step SslBump1
ssl_bump peek etapa1
ssl_bump bump all

Mais problemático de todos. Dispensa configuração nos clientes. NAT é requerida. Squid 4+ altamente recomendável[4]. A parte HTTP continua como antes. Contudo, com ssl-bump, o Squid torna-se MITM[5]: estabelece a conexão com o servidor HTTPS (via TLS como de costume), inspeciona o que está sendo acessado e por fim assina o site novamente com um certificado próprio[6], gerado sob medida para aquele domínio e entrega-o ao cliente. Pelo fato de decriptar a conexão TLS, é possível filtrar URLs, bem como armazenar os dados transferidos no cache.

Tais vantagens não vêm sem contraindicações: não funciona em todos os sites, requer a autoridade certificadora (CA) instalada nos clientes e levanta uma grande questão de privacidade. Afinal, você está xeretando dentro de conexões que eram para ser privativas. E a segurança da chave privada passa a ser sua responsabilidade!

Para tentar lidar com a quebradeira, dá para recorrer a listas de domínios que devem (ou não) sofrer bump[7]. Algo a destacar é que as ACLs ssl::server_name e ssl::server_name_regex devem ser usadas nesse processo.

Lista negra:

http_port 3128 ssl-bump tls-cert=/caminho/ca.pem tls-key=/caminho/ca.key
http_port 3129 intercept
https_port 3130 intercept ssl-bump tls-cert=/caminho/ca.pem tls-key=/caminho/ca.key
acl sem_bump ssl::server_name_regex -i bradesco
acl etapa1 at_step SslBump1
ssl_bump peek etapa1
ssl_bump splice sem_bump
ssl_bump bump all

Configuração menos encrenqueira:

http_port 3128 ssl-bump tls-cert=/caminho/ca.pem tls-key=/caminho/ca.key
http_port 3129 intercept
https_port 3130 intercept ssl-bump tls-cert=/caminho/ca.pem tls-key=/caminho/ca.key
acl etapa1 at_step SslBump1
ssl_bump peek etapa1
ssl_bump splice all

splice all não faz bump (nada de cache). peek etapa1 dá acesso a SNI[8], que torna as ACLs dstdomain e dstdom_regex funcionais. Nos clientes, a CA serve apenas para exibir a página de erro do Squid. Ou seja, não é estritamente requerida.

Note que é possível manter o proxy normal, sem ssl-bump, na porta 3128:

http_port 3128
http_port 3129 intercept
https_port 3130 intercept ssl-bump tls-cert=/caminho/ca.pem tls-key=/caminho/ca.key
...

É uma saída para situações em que ssl-bump é problemático: configure manualmente no navegador para evitá-lo.

Fique de olho na lista de discussão squid-users e pendure uma ferradura na parede se for usar o recurso.

No modo transparente, é importante bloquear[9] acessos vindos da rede interna às portas 3129 e 3130, caso o usuário invente de configurar manualmente. Se chegarem ao Squid, serão bloqueados e cache.log será inundado com avisos Host header forgery detected.

Na minha opinião, o modo tradicional, não transparente, sem ssl-bump, é a melhor escolha, pois permite filtrar domínios e não abre a Caixa de Pandora que é mexer com TLS. Além de possibilitar uso de autenticação, recurso do contrário perdido. Dependendo do ambiente, autoconfiguração ajuda, principalmente com clientes Windows.

Com a indústria descontinuando HTTP, cada vez menos coisa é cacheada com HTTPS, mas pelo menos controle sobre o que é acessado continua viável.

Relacionado:
Squid + ssl-bump e as hierarquias tupiniquins


[1] Servidor DNS local é necessário nesse caso.
[2] Transport Layer Security.
[3] HTTP Strict Transport Security.
[4] Precisa ser compilado com --with-openssl. A partir da versão 4.0.24, GnuTLS é suportado também (--with-gnutls), porém é considerado experimental.
[5] Man-in-the-middle attack.
[6] Intercept HTTPS CONNECT messages with SSL-Bump.
[7] Feature: SslBump Peek and Splice.
[8] Server Name Indication.
[9] Os comandos iptables deste post são mínimos, apenas para fazer o Squid funcionar. Em produção, proteção de um firewall é recomendada.

segunda-feira, 2 de abril de 2018

Usando o MemTest86 em UEFI

Um dos primeiros posts deste blog foi sobre como usar o Memtest86+.

Desde lá, a PassMark comprou o projeto original (sem o +) e voltou a desenvolvê-lo exclusivamente para UEFI (atual versão 7.x). A antiga versão 4.x (BIOS-only) foi descontinuada. O fork Memtest86+ também parece ter sido abandonado.

É disponibilizado um programa para criar pendrive booteável, mas, para quem apenas quer a versão UEFI, é exagero. Visto que o firmware sabe ler FAT e FAT32, basta copiarmos a pasta EFI da imagem ISO. Funciona com Secure Boot.

Changelog aqui.


terça-feira, 27 de fevereiro de 2018

Windows 10 1709 e compartilhamentos sem autenticação

Foram notícia, quando a versão 1709 saiu, as mudanças feitas pela Microsoft no servidor e cliente SMB:

SMBv1 is not installed by default in Windows 10 Fall Creators Update and Windows Server, version 1709

SMBv1 (Windows XP/Server 2003 e anteriores) foi aposentado. Com exceção de certos NAS rodando versões caducas do Samba, SMBv1 não faz mais falta.

Outra mudança mais sutil deu as caras nas versões Server, Enterprise e Education:

Guest access in SMB2 disabled by default in Windows 10 Fall Creators Update and Windows Server 2016 version 1709

Acesso a compartilhamentos sem autenticação, através da conta Convidado, são bloqueados. Tais compartilhamentos são habilitados, no Windows, selecionando "Desativar compartilhamento protegido por senha" em "Central de Rede e Compartilhamento → Alterar as configurações de compartilhamento avançadas", ou ao usar map to guest = Bad User no Samba.


Mesmo não sendo boa prática, é algo comum em pequenas redes.

Para voltar a acessá-los:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]
"AllowInsecureGuestAuth"=dword:00000001

Ou via GPO:

Configuração do Computador → Modelos Administrativos → Rede → Estação de trabalho do LANMAN
    Habilitar logons de convidados não seguros (Habilitado)

sexta-feira, 9 de fevereiro de 2018

VLC 3.0.0

Depois que o MPC-HC foi descontinuado, precisava substituí-lo. Usar software abandonado traz riscos, pois falhas de segurança não são corrigidas.

VLC é o candidato ao posto. Infelizmente, a versão 2.2.8 não está em bom estado no Windows. Decodificação via GPU não funciona e, mesmo ao usar a CPU, o desempenho é ruim. Alguns vídeos que tocam perfeitamente no MPC-HC engasgam no VLC.

Partes importantes do programa foram reescritas na recém lançada versão 3.0.0, resolvendo vários bugs. Passou a ser meu novo tocador de vídeos no Windows (no Linux o é faz tempo).

Lista de mudanças: NEWS.

quarta-feira, 31 de janeiro de 2018

Como evitar que o Windows 10 apague o cache de miniaturas

Depois que o Windows 10 atualizou para a versão 1709, codinome Redstone 3, vulgo Fall Creators Update, o cache de miniaturas do Windows Explorer passou a ser apagado automaticamente no mínimo uma vez por dia. Horrível, pois, ao acessar pastas com muitas imagens e vídeos, as miniaturas são recriadas, tornando a navegação lenta e a busca difícil.

Não tenho ideia da motivação por trás desse comportamento. Ou se é apenas bug. No Microsoft Community, achei esta dica:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache]
"Autorun"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache]
"Autorun"=dword:00000000

Até agora resolveu!