Criando um pen drive de instalação do Windows no Linux

Algumas vezes me deparo com computadores que precisam ter o sistema operacional reinstalado, mas a unidade de CD/DVD não funciona. Neste caso, podemos substituir a unidade leitora de CD/DVD, utilizar uma unidade externa ou utilizar um pen drive com o software de instalação do sistema operacional. Quando o sistema operacional é Windows, pode-se utilizar aqueles tutoriais disponíveis na Internet e que, invariavelmente utilizam aplicativos específicos para este trabalh, mas que só funcionam no Windows. Aí isto acaba sendo um problema para as pessoas que, como eu, só tem Linux na sua estação de trabalho.

Os passos seguintes ilustram a criação de um pen drive inicializável com o conteúdo do instalador do Windows utilizando ferramentas do Linux.

ATENÇÃO: como o procedimento a seguir envolve alteração de partições, preste muita atenção no que está fazendo e, principalmente, entenda ANTES de fazê-lo, porque um comando errado pode DESTRUIR todos os dados do seu computador. A responsabilidade pela execução dos comandos apresentados neste artigo é totalmente sua. Este não é o tipo de artigo/tutorial que deva ser executado sem o devido conhecimento de suas consequências.

Identifique o Pen drive

Conecte o pen drive ao computador e assegure-se de identificá-lo corretamente (exemplo: /dev/sdb)

Depois de identificado, desmonte o volume do pen drive:

sudo umount /dev/sdX

Atenção: os passos seguintes podem destruir todos os dados do seu computador se você não utilizar o dispositivo correto identificado pelo sistema operacional para o pen drive. É sua responsabilidade entender o que está fazendo e fazê-lo corretamente. Nos exemplos a seguir, será utilizado o nome genérico sdX para identificar o dispositivo identificado pelo sistema operacional. Cabe a você substituir sdX pelo dispositivo identificado pelo seu sistema operacional Linux para o pen drive.

Particionando o Pen Drive

Acesse o USB através do parted:

sudo parted /dev/sdX

Assegure-se de que você está usando o parted no dispositivo USB correto, caso contrário você poderá destruir os dados do seu computador. Você não será mais avisado sobre este risco, porque os próximos comandos já são suficientes para destruir TODOS os dados do seu computador.

Os seguintes comandos irão criar a partição no pen drive:

(parted) mklabel msdos
(parted) mkpart primary ntfs 1 -1
(parted) set 1 boot on
(parted) quit

Formate a partição com NTFS (instale o pacote ntfs-3g se seu sistema não o tiver disponível):

sudo mkfs.ntfs -f /dev/sdX1

Instale o utilitário ms-sys

O utilitário ms-sys será necessário para gravar o MBR do dispositivo. Muitas distribuições não disponibilizam esta ferramenta em seus repositórios, mas sua instalação é bem simples. Baixe-o de http://ms-sys.sourceforge.net/#Download. Depois é só descompactar, compilar e instalar:

tar xzvf ms-sys-2.5.3.tar.gz
cd ms-sys-2.5.3
make
sudo make install

Grave o MBR do Pen Drive

Para gravar o MBR no pen drive:

sudo ms-sys -7 /dev/sdX

Onde -7 indica que desejamos gravar o MBR no formato do Windows 7. Basicamente, o MBR contém um código (programa) básico que possibilita a inicialização do sistema operacional cotido no disco (pen drive, em nosso caso).

Cópia dos Arquivos

Monte o pen drive no sistema:

sudo mkdir -p /mnt/usb
sudo mount /dev/sdX1 /mnt/usb

Monte a imagem ISO do Windows:

sudo mkdir -p /mnt/iso
sudo mount -o loop /tmp/en_windows_7_professional.iso /mnt/iso

Copie o conteúdo da imagem ISO para o pen drive:

sudo cp -av /mnt/iso/* /mnt/usb/

Depois de terminada a cópia, desmonte o pen drive e a imagem ISO do Windows:

sudo umount /mnt/iso
sudo umount /mnt/usb

Observe que o processo de desmontagem da imagem ISO deverá ocorrer de forma quase que instantânea, já a do pen drive pode demorar alguns minutos, dependendo da velocidade da interface USB e do pen drive. Isto acontece porque o sistema operacional usa buffers de gravação que armazenam os dados em RAM antes de serem gravados definitivamente no dispositivo e, quando o dispositivo é desmontado, todos os dados devem ser efetivamente gravados no dispositivo. Então, não desconecte o pen drive do computador até que o comando umount tenha terminado.

Agora é só testar: conecte o pen drive no computador onde o Windows deve ser instalado e ligue o computador. Será necessário selecionar a opção de inicialização do BIOS do computador: em alguns computadores deve-se pressionar a tecla F2, F8 ou F12 assim que o computador for ligado. Consulte o manual da placa mãe do computador para verificar como a opção de escolha de dispositivo de boot pode ser ativada.

QT 5.8 - instalação no Debian Jessie

Eu vou apresentar a minha experiência na instalação do Qt5.8 no Debian Jessie.

Qt5.8 no Debian Jessie

Apesar destas dicas terem sido realizadas no Debian, com certeza elas servirão para outras distribuições, talvez com pequenas alterações.

Para início de conversa, a versão usada nestes testes foi a Qt-5.8.0, disponível em: Qt 5.8

Uma vez obtido o pacote de instalação, atribua permissão de execução e execute o instalador com privilégio de administrador:

chmod +x qt-opensource-linux-x64-5.8.0.run
sudo ./qt-opensource-linux-x64-5.8.0.run

Observe que, se você preferir, pode instalar o pacote sem permissão de administrador, mas aí ele estará disponível apenas para seu usuário, além de trazer alguns inconvenientes para fazer as aplicações funcionarem para outros usuários. A decisão é sua.

O instalador irá sugeriu a instalação em /opt/Qt5.8.0. Eu aceitei a sugestão.

Depois de instalado, é preciso configurar as variáveis de ambiente. Aqui vale uma advertência: se você ajustar as variáveis a seguir, então se você atualizar a biblioteca Qt, também terá que atualizar as variáveis para todos os usuários!

Se você optar por não configurar as variáveis, é possível que tudo funcione apenas criando as configurações das bibliotecas compartilhadas do sistema, porém, você deve se certificar de que não existe nenhuma configuração padrão no sistema.

As variáves de ambiente necessárias podem ser adicionadas ao /etc/bash.bashrc (global) ou ao ~/.bashrc (específico para cada usuário). As configurações são simples:

export QTDIR=/opt/Qt5.8.0/5.8/gcc_64/lib
export LD_LIBRARY_PATH=/opt/Qt5.8.0/5.8/gcc_64/lib

Na minha humilde opinião, a principal configuração é a atualização da configuração de bibliotecas do sistema, ou seja, uma vez instalado o Qt, o que devemos fazer é informar ao sistema operacional onde as novas bibliotecas se encontram. Para fazer isto, é bastante simples: crie o arquivo /etc/ld.so.conf.d/qt5.8.conf com o seguinte conteúdo:

sudo vim /etc/ld.so.conf.d/qt5.8.conf

Adicione neste arquivo o caminho do diretório das bibliotecas compartilhadas do Qt, conforme o exeplo a seguir (você deve ajustar o caminho de acordo com a sua instalação):

/opt/Qt5.8.0/5.8/gcc_64/lib

Grave o arquivo e, finalmente, atualize o cache de bibliotecas do sistema:

sudo ldconfig

Pronto. Agora é só usar! Você pode, inclusive, adicionar o caminho do diretório das ferramentas de compilação na variável PATH do usuário ou do sistema (se o uso for global, isto é, para todos os usuários do computador). Exemplo:

export PATH=/opt/Qt5.8.0/5.8/gcc_64/bin/:$PATH

Este comando adiciona o caminho para as ferramentas de compilação no início da variável PATH. Para tornar isto permanente, altere o .bashrc do usuário.

É isso. Boa sorte!

Segurança: 10 maiores hacks, vazamentos e bugs de cibersegurança de 2016

Bem, não é bem o que eu gosto de fazer, mas enfim, segue um artigo que saiu no IDGNow sobre as maiores falhas de segurança da informação no ano de 2016. Eu prefiro escrever meus próprios artigos, mas achei que este valeria a pena, já que mantém no meu site um registro sobre o evento. Lembre-se, no entanto, que o artigo é do IDGNow, e pode não refletir exatamente a minha opinião. Para ler o original, vá diretamente para o site do IDGNow:

IDGNow - Especial: 10 maiores hacks, vazamentos e bugs de cibersegurança de 2016, acesso em 24.dez.2016.

Segue o conteúdo do artigo, na íntegra, conforme disponível na data de publicação deste artigo:

O ano que está chegando ao fim foi cheio de notícias negativas no universo de cibersegurança.

O Yahoo revelou dois hacks gigantescos, incluindo o maior vazamento da história. Milhões de DVRs e webcams “zumbificadas” derrubaram a Internet nos EUA. A Rússia foi acusada de tentar influenciar as eleições dos EUA por meio de hacks, e um novo tipo de malware conseguiu ganhar muito dinheiro roubando usuários de Bitcoin.

Yahoo em apuros

Em setembro, o Yahoo chocou o mundo ao revelar que pelo menos 500 milhões de contas dos seus usuários foram invadidas em 2014. Na época, acreditava-se que esse era o maior vazamento de dados pessoais da história da Internet. Mas o Yahoo conseguiu superar o próprio recorde negativo ao revelar em dezembro que um outro hack, ocorrido lá em 2013, vazou os dados de 1 bilhão dos seus usuários.

Ransomware em alta

A ameaça online que definiu 2016 mais do que qualquer outra tem de ser o chamado ransomware. Esse malware criptografa seus arquivos e os toma como reféns, exigindo um pagamento do usuário para liberar os arquivos de volta. Muitas e muitas variações de ransomware tomaram as manchetes em 2016, incluindo ameaças como Locky, DMA Locker, Surprise e uma versão amadora (mas eficaz) chamada Ranscam, que rouba seu dinheiro e ainda assim apaga seus arquivos. Houve até ransomware mobile, e em julho os pesquisadores de segurança descobriram uma versão do Locky que conseguia operar offline para ser ainda mais efetiva. Um estudo publicado em agosto pela Malwarebytes apontava que o ransomware era tão comum que estava atingindo quase metade de todas as empresas dos EUA.

DDoS contra Dyn

Em outubro, uma botnet impulsionou um grande ataque de negação de serviço (DDoS) contra o Dyn, um importante provedor de sistema nomes de domínio (DNS). O DNS é o sistema de direcionamento que transforma um nome de um site como google.com em um endereço de IP (Protocolo de Internet) como 172.217.21.110 para os computadores lerem. Sem DNS, um navegador web não consegue encontrar o site que você quer acessar - e foi exatamente isso que aconteceu com milhões de usuários dos EUA durante esse ataque DDoS. O acesso a sites como Twitter, GitHub e Netflix ficou indo e voltando durante o dia. Alguns dias depois ficamos sabendo que a botnet que causou todo esse problema consistia em 100 mil aparelhos residenciais (como webcams e DVRs) que tinham sido infectados pelo malware Mirai. Sim, um exército de aparelhos inteligentes “burros e inseguros” atacaram a web.

Apple pára de liberar patches para o QuickTime

O QuickTime costumava ser um dos softwares mais onipresentes em um computador. Era algo vital para assistir muitos vídeos antigos, especialmente no iTunes. Com o tempo, no entanto, o QuickTime tornou-se menos e menos importante, e agora é quase desnecessários. Há alguns meses, após serem descobertas duas vulnerabilidades críticas para o software, a Apple aparentemente decidiu “jogar contra” o QuickTime para Windows em vez de corrigir os problemas. Em outras palavras, se você ainda está rodando o QuickTime no Windows já passou da hora de desinstalá-lo.

Cartões de crédito

As medidas de segurança do seu cartão de crédito não são tão seguras quanto você pensa. Pesquisadores de Universidade de Newcastle, no Reino Unido, demonstraram que descobrir a data de expiração e o código CVV de um cartão pode ser algo relativamente simples. Os especialistas mostraram uma maneira de descobrir esses números usando uma técnica chamada distributed guessing. Basicamente, um laptop carrega centenas de conjecturas simultaneamente em vários sites de pagamento, usando detalhes de expiração e código CVV do cartão levemente diferentes. Em cerca de seis segundos, você vai encontrar a sequência numérica correta para desbloquear os códigos secretos de um cartão, segundo os pesquisadores. A fraqueza é uma falha em limitar corretamente o número de tentativas de preencher os detalhes de pagamento, e os sistemas de cartão de crédito que não monitoram ativamente em busca de tentativas simultâneas incorretas de inserção de dados de cartão de crédito.

Hack contra o Partido Democrata

Neste ano, os ataques hackers “subiram na vida”, passando de apenas prejudicar empresas e agências do governo para intervir de maneira direta na eleição presidencial dos EUA. O primeiro exemplo disso foi um vazamento da rede de computadores do Comitê Nacional Democrata (DNC). Em julho, o site Wikileaks publicou um grande número de documentos, que incluíam cerca de 20 mil e-mails e milhares de arquivos anexos de membros do comitê.

Muitos escândalos estouraram depois disso, incluindo implicações de que o Comitê Democrata teria trabalhado contra a campanha do também democrata Bernie Sanders para favorecer a nomeação de Hillary Clinton como a candidata democrata contra Donald Trump. A diretora do comitê, Debbie Wasserman Schultz, acabou tendo de abandonar o cargo por conta das revelações. Um hacker denominado Guccifer 2.0 assumiu a autoria do roubo de dados, mas as agências dos EUA acreditaram que o trabalho tinha sido feito por setores do governo russo.

Rússia e eleições dos EUA

Em setembro, autoridades dos EUA começaram a investigar a possibilidade de a Rússia ter tentado influenciar a eleição presidencial norte-americana. Mais para o final do ano, a CIA, o FBI e outras agências de inteligência dos EUA concluíram com “grande confiança” que a Rússia tentou influenciar de maneira direta as eleições dos EUA com a intenção de beneficiar o vencedor Donald Trump.

Apple x FBI

Em dezembro de 2015, extremistas islâmicos realizaram um ataque terrorista em San Bernardino, na Califórnia, matando 14 pessoas e ferindo seriamente outras 22. Os criminosos depois foram mortos pela polícia em uma troca de tiros.

Em 2016, um iPhone que pertencia a um dos terroristas dominou as manchetes porque o FBI queria que a Apple criasse um software especial para permitir que seus investigadores invadissem o smartphone, que estava bloqueado. A Apple se negou a fazer isso, argumentando que o que o FBI realmente queria que a empresa fizesse era criar um “malware customizado” para burlar os recursos de segurança da própria companhia.

O FBI eventualmente retirou o pedido depois que uma empresa de segurança conseguiu ajudar o órgão a acessar os dados no aparelho. O legado do caso continua vivo à medida que legisladores consideram qual tipo de ajuda as empresas de tecnologia devem fornecer às autoridades.

NSA hackeada

Em agosto, um grupo hacker anônimo chamado Shadow Brokers afirmou que tinha obtido as ferramentas de hacking da Equation Group, uma equipe de ciberespionagem relacionada à Agência Nacional de Segurança dos EUA, a NSA. Durante a invasão, os hackers conseguiram colocar as mãos em exploits sofisticadas que teriam sido usadas pela NSA. Após revelar uma pequena parte desse tesouro, o Shadow Brokers tentou vender as ferramentas na Internet, mas até outubro tinha conseguido gerar pouco interesse com tal oferta.

Fonte: IDGNow

Nautilus: atalho para abrir terminal

Dica rápida: como criar um atalho no Nautilus para abrir um terminal no diretório ativo.

Edite o arquivo ~/.config/nautilus/accels e configure a seguinte linha:

(gtk_accel_path "<Actions>/ExtensionsMenuGroup/TerminalNautilus:OpenFolderLocal" "F12")

Esta configuração funcionou para a versão 3.14 do Nautilus (Debian Jessie / 8.x).

Fui,

Marião

Console-kit: para que serve e como removê-lo

O console-kit-daemon gerencia consoles de login no modo gráfico, como o gdm. Se o servidor não possui o modo gráfico instalado, o console-kit-daemon não é necessário. Além disso, segundo o próprio site do projeto (https://www.freedesktop.org/wiki/Software/ConsoleKit/), o ConsoleKit não está mais sendo ativamente mantido. O foco foi transferido para o systemd.

Para remover o pacote consoleKit:

aptitude remove consolekit

Dependendo da instalação, pode ser necessário remover também o pacote dbus-x11:

aptitude remove dbus-x11

Bind9 desabilitar consulta IPv6

Hoje tive um probleminha em minha rede pessoal doméstica: resolvi habilitar um serviço de DNS no meu computador pessoal. O motivo foi simples: não costumo confiar nos serviços de DNS das operadoras, pois já vi, no passado, muitos DNSs com falhas incríveis de configuração e susceptíveis a ataques de cache poisoning (envenenamento de cache).

No Debian 8.x, instalei o Bind9 que, por padrão, já vem pré-configurado em modo cache, que era bem o que eu precisava. O problema é que ele vem configurado para efetuar consultas AAAA (IPv6), e minha rede doméstica conta apenas com IPv4, assim como meu provedor ainda fornece link em IPv4.

Agora, vamos à saga:

Primeiro, eu não quis desabilitar o IPv6 na minha interface de rede, pelo simples fato de que pretendo efetuar alguns testes futuramente.

Então, comecei por desabilitar o IPv6 no Bind: então editei o arquivo /etc/bind/named.conf.options e alterei o parâmetro:

listen-on-v6 { any; };

Para:

listen-on-v6 { none; };

Aproveitando, adicionei os seguintes parâmetros neste mesmo arquivo:

version "Not available";
filter-aaaa-on-v4 yes;

O primeiro parâmetro, na verdade, não tem nenhuma relação com IPv6, mas é apenas um parâmetro de segurança que impede que a versão do Bind seja consultada pelos seus clientes.

Por padrão, no Debian, parâmetros de inicialização do Bind podem ser adicionados no arquivo /etc/default/bind9. Assim, eu editei este arquivo e adicionei a opção -4 ao parâmetro OPTIONS, que ficou assim:

OPTIONS="-4 -u bind"

Reiniciei o serviço, mas para minha surpresa, não funcionou. continuei a ver as seguintes mensagens de log em /var/log/messages:

2016-08-28T12:40:09.332992-03:00 joshua named[10172]: error (network
   unreachable) resolving 'ns-1878.awsdns-42.co.uk/A/IN':
   2a01:618:400::1#53

O que significa que o Bind ainda está fazendo consultas em IPv6. O efeito colateral disso é que a resolução de nomes fica extremamente lenta e, muitas vezes, ocorrem timeouts.

Depois de algumas pesquisas, acabei encontrando uma solução. Não a considero das melhores, porque acredito que o fato do arquivo /etc/default/bind9 existir ainda na distribuição me faz acreditar que ele deveria ser honrado pelo iniciador do serviço bind. No entanto, o Debian 8.x utiliza o systemd como gerenciador de serviços e, por algum motivo, ele não utiliza os arquivos em /etc/default. Ainda não sei se este comportamento é normal ou é um bug, de qualquer forma, me fez perder bastante tempo na busca por uma solução.

Consegui resolver o problema da seguinte forma:

Primeiro, copiei o arquivo de configuração do serviço bind para o diretório de configuração do systemd:

cp /lib/systemd/system/bind9.service /etc/systemd/system/

Depois, editei o arquivo /systemd/system/bind9.service e alterei o parâmetro ExecStart adicionando a opção -4, conforme a seguir:

ExecStart=/usr/sbin/named -f -u bind -4

Depois, solicitei ao systemd que recarregasse sua configuração e reinicie o bind:

systemctl daemon-reload
systemctl restart bind9.service

Depois disso, o Bind resolveu desistir de tentar resolver registros AAAA.

Ainda não sei se haverá algum efeito colateral quando ocorrer alguma atualização do Bind nas atualizações do sistema. Mas, na teoria, não devem ocorrer, porque os arquivos em /etc contém justamente as configurações que poder ser personalizadas pelo usuário (administardor, na verdade) e o gerenciador de pacotes APT normalmente não altera estes arquivos com novas versões sem a autorização do usuário.

Por enquanto, é isso.

Windows Server 2012R2 e a porta 80

Recentemente me deparei com uma instalação do Windows Server 2012 R2 na qual um colega de trabalho estava tendo dificuldades. A dificuldade foi a seguinte: ele instalou o Apache, mas não conseguia fazê-lo executar o serviço.

Observando o sistema, vi a porta 80 ativa, mesmo com o Apache não estando em execução. A primeira coisa que me veio à mente foi que o IIS poderia estar instalado e em execução, mas não: ele nem estava instalado.

Depois de algumas pesquisas, já que não sou expert em Windows, acabei descobrindo que o Windows habilita um serviço na porta 80.

Para poder utilizar o Apache (ou outro servidor web), é necessário desabilitar o serviço interno do Windows na posta 80, que pode ser feito da seguinte forma:

net stop http
sc config http start= disabled

Muita atenção ao formato do comando.

Sds.

Python3.5.1 e PySide2 no Debian Jessie

Pessoal, atualizei meu artigo sobre a instalação do Python3 no Debian Jessie. Desta vez, cobri a instalação do Python-3.5.1 e PySide2, que agora suporta Python3.5.x e utiliza a biblioteca Qt5 (contra Qt4 da versão anterior).

O artigo está no meu site de dicas de Python: PythonDocs.

Se preferir acessar diretamente o artigo: Python3: Instalação no Debian 8.x (Jessie).

DDOS: Práticas de Mitigação

O CERT.BR publicou um excelente artigo com recomendações para a mitigação de ataques de negação de serviço distribuído (DDoS): Recomendações para Melhorar o Cenário de Ataques Distribuídos de Negação de Serviço (DDoS).

Para saber o básico sobre ataques DDoS, dê uma olhada no excelente artigo publicado pelo Team Cymru: DDoS Basics.

Erro na atualização da lista de pacotes do APT (i386 no amd64)

O Google anunciou já há algum tempo que não suportaria mais a versão 32-bit do seu navegador Google Chrome para Linux, mantendo apenas a versão 64-bit.

Bem, se você ainda usa a versão 32-bit do sistema operacional linux, sugiro que repense sua situação e avalie a possibilidade de instalar uma versão 64-bit.

De qualquer forma, mesmo para aqueles que já utilizam a versão 64-bit do sistema operacional do pinguim, a finalização do suporte à versão 32-bit do Chrome (e de outras aplicações) pode acabar gerando um erro na atualização do sistema. O erro é o seguinte (para o caso do Google Chrome):

sudo aptitude update
[sudo] password for mario:

Get: 1 http://ftp.br.debian.org jessie-updates InRelease [142 kB]
Get: 2 http://ftp.br.debian.org jessie-backports InRelease [166 kB]
...
W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/Release:
Unable to find expected entry 'main/binary-i386/Packages' in Release file
(Wrong sources.list entry or malformed file)
E: Some index files failed to download. They have been ignored, or
old ones used instead.
E: Couldn't rebuild package cache

Este problema ocorrerá se o Linux estiver configurado para suportar aplicações 32-bit também:

sudo dpkg --print-architecture
amd64

mario@vctntb021 ~$ sudo dpkg --print-foreign-architectures
i386

Observe que, apesar da arquitetura principal do sistema ser amd64, também foi adicionado o suporte à arquitetura i386 (32-bit). Normalmente este suporte tem que ser feito manualmente, e se faz necessário quando deseja-se executar aplicações 32-bit no sistema operacional 64-bit.

Para resolver, basta fixar a arquitetura no arquivo de configuração do APT. Por exemplo, no caso do Chrome, editei o arquivo /etc/apt/sources.list.d/google-chrome.list e adicionar o parâmetro [arch=amd64], conforme ilustrado a seguir:

deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

Na próxima atualização da lista de pacotes, o sistema não solicitará apenas a lista de pacotes 64-bit do Google Chrome.

Sds,

Marião