Ferramentas para Bare Metal Backup and Recovery

Como parte da política de backup do SM Saúde, periodicamente os servidores são desligados e uma imagem de seus HDs é feita através de uma ferramenta de Bare Metal Backup and Recovery. Três ferramentas são utilizadas:

  • Clonezilla (www.clonezilla.org): é um programa de “disk imaging/cloning”, completamente free, que faz cópias/imagens de um HD. É excelente mas possui uma limitação: se o HD de origem for maior do que o de destino, pode não ser possível restaurar a imagem (existem outras saídas para isso, como não copiar o HD inteiro mas somente uma partição).
  • Parted Magic (www.partedmagic.com): é uma distribuição linux live completa, com inúmeros utilitários administrativos e de backup/restore. Excelente e muitas vezes utilizada em conjunto com o Clonezilla, para diminuir uma partição de um HD para que a cópia a ser feita possa caber em um HD menor. Não é grátis mas é quase: somente US$ 9,00!
  • Tuxboot (www.tuxboot.org): é um programinha utilitário free para gerar CDs e USBs inicializáveis. Excelente para criar um pen-drive inicializável com o Clonezilla ou o Parted Magic para fazer o backup/restore de hosts que não têm drive de CD/DVD.

Esses três utilitários são ferramentas indispensáveis na política de backup e restore do SM Saúde, sendo usados rotineiramente.

Configuração de SSL/TLS no Apache do CentOS 7

Se você seguiu as instruções detalhadas em Instalação do Apache, PHP e MySQL (MariaDB) no CentOS 7, sua instalação está pronto e funcionando mas não está segura: conexões SSL/TLS não estão habilitadas.

Por padrão o Apache do CentOS 7 não habilita o SSL. Para isso, siga as instruções abaixo.

Verifique se o sistema está atualizado (como root):

# yum check-update
# yum update

Agora instale o mod_ssl e o OpenSSL:

# yum install mod_ssl openssl

Isso criará o arquivo /etc/httpd/conf.d/ssl.conf com as configurações do SSL/TLS. Um problema nesse arquivo é que ele habilita protocolos SSL antigos que já não são seguros: SSLv2 e SSLv3. Devemos desabilitar esses protocolos não seguros e habilitar somente os protocolos seguros TLSv1.1 e TLSv1.2 (se você tem alguma aplicaçãoantiga que não funciona bem com esses protocolos mais novos, habilite também o TLSv1.0). Siga os passos abaixo.

Edite o arquivo /etc/httpd/conf.d/ssl.conf e procure por todas as ocorrências da variável SSLProtocol e deixe da seguinte maneira (se você configurou essa variável em algum virtual host, também deve alterar essa variável na configuração do virtual host!):

SSLProtocol -all +TLSv1.1 +TLSv1.2

Agora reinicie o Apache:

# systemctl restart httpd.service

Se tudo correu bem, o SSL/TLS está habilitado em seu Apache. Por padrão o CentOS gera um certificado auto-assinado com informações genéricas. Temos que criar um outro certificado auto-assinado com informações mais específicas, ou obter um certificado comercial válido na internet (via Comodo, Geotrust, VeriSign, etc.).

Para criar um certificado auto-assinado temos que instalar o pacote crypto-utils:

# yum install crypto-utils

O pacote crypto-utils contém utilitários para criar, manter e gerenciar certificados e chaves privadas, incluindo o utilitário “genkey” da RedHat, que gera o par de chaves e o certificado (nos diretórios /etc/pki/tls/private  e /etc/pki/tls/certs).

Para gerar o certificado e a chave com o utilitário genkey, faça o seguinte (ATENÇÃO! Não execute esse utilitário via SSH pois ele precisa gerar números aleatórios com o dispositivo /dev/random que precisa de movimentos de teclado, mouse, etc. para gerar entropia suficiente para a geração dos números aleatórios; se você rodar esse comando por SSH, não vai terminar nunca!):

Chame o genkey, como root, passando como parâmetro o nome do servidor que utilizará o certificado:

# genkey www.smsaude.com.br

Inicialmente o genkey informará em quais arquivos salvará o certificado e a chave (figura abaixo). Basta clicar next.

genkey passo 01

Depois o genkey solicitará o tamanho da chave. Aceite o padrão de 2048 bits e clique em next:

genkey passo 02

Agora o genkey gerará alguns bits aleatórios (isso não deverá demorar muito):

genkey passo 03

E agora o genkey gerará números aleatórios através do /dev/random. Digite no teclado, movimente o mouse (se for o caso), utilize o disco, enfim: faça qualquer coisa para gerar entropia suficiente para o gerador de números aleatórios (caso contrário esse processo não terminará nunca):

genkey passo 04

Agora o genkey perguntará se você deseja gerar uma solicitação de assinatura para uma autoridade certificadora válida (Comodo, Geotrust, VeriSign, etc.). Se você digitar YES o genkey não gerará um certificado, somente uma solicitação para ser enviado à autoridade certificadora; Se você ditiar NO o genkey gerará um certificado auto-assinado. No nosso caso, escolha a opção NO:

genkey passo 05

Agora o genkey pergunta se a chave privada deverá ser criptografada. ATENÇÃO: se você criptografar a chave privada e gerar uma senha para ela, toda vez que o servidor ou o Apache for reiniciado, a senha do certificado será solicitada; se você não criar uma senha, o sistema não solicitará a senha da chave do certificado no momento do reboot do sistema, mas se alguém invadir seu servidor, poderá obter a chave. Em nosso caso, continue SEM criptografar a chave (não marque a opção):

genkey passo 06

Agora preencha as informações do certificado (não use acentos ou caracteres especiais!):

genkey passo 07

Agora o genkey irá rodar rapidamente e gerar os arquivos solicitados: a chave (www.smsaude.com.br.key – root:root; 400) será gerada no diretório /etc/pki/tls/private e o certificado (www.smsaude.com.br.crt – root:root 640) será gerado no diretório /etc/pki/tls/certs.

Para fazer o Apache usar o novo certificado e chave, altere o arquivo /etc/httpd/conf.d/ssl.conf e aponte os novos arquivos nas variáveis abaixo (se essas configurações estão em algum virtual host, ajuste de acordo):

SSLCertificateFile /etc/pki/tls/certs/www.smsaude.com.br.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.smsaude.com.br.key

Agora basta reiniciar o Apache:

# systemctl restart httpd.service

Se nenhum erro ocorreu, o Apache já está usando os certificados novos. Obviamente, como o certificado é auto-assinado, os browsers reclamarão dizendo que a conexão não é segura. Basta aceitar o certificado no browser (ou então, pagar um certificado válido).

Instalação do Apache, PHP e MySQL (MariaDB) no CentOS 7

Antes de fazer qualquer coisa, verifique se o sistema está atualizado:

# yum check-update
# yum update

Agora, para instalar o Apache, o PHP e o MySQL (MariaDB) no CentOS 7, siga os passos abaixo.

1) Instalação do MySQL (MariaDB):

Depois que o sistema estiver atualizado, como root, instale o MySQL (MariaDB):

# yum -y install mariadb-server mariadb

O CentOS instalará o MySQL (MariaDB) e quaisquer dependências. Depois disso, inicie o banco de dados e habilite a inicialização automática durante o boot do host:

# systemctl enable mariadb.service
# systemctl start mariadb.service

O próximo passo é rodar a rotina de configuração de segurança do MySQL, que “tranca” a instalação para evitar acessos não autorizados (em vermelho negrito estão os comandos a serem digitados durante a execução do comando):

# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password: (digite a senha aqui)
Re-enter new password: (repita a senha aqui)
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

2) Instalação do Apache:

Como root, instale o Apache:

# yum -y install httpd httpd-manual httpd-tools

O CentOS instalará o Apache e as dependências. Depois disso habilite o Apache para inicialização automática e inicie o daemon:

# systemctl enable httpd.service
# systemctl start httpd.service

Se nenhuma mensagem de erro for exibida, o Apache foi instalado corretamente. Agora é necessário configurar o firewall do CentOS para permitir acesso às portas 80 e 443:

# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload

Nesse momento você pode abrir o endereço http://<ip do servidor> para verificar se a página de teste do Apache é exibida corretamente (lembre-se que o firewall corporativo, além do firewall do próprio host onde o Apache está instalado, também tem que ser configurado para permitir o acesso):

Página de teste do Apache

 3) Instalação do PHP:

A instalação básica do PHP é muito simples:

# yum -y install php

O comando acima instalará o PHP 5.4 no CentOS e as dependências. Precisamos instalar mais alguns módulos importantes para o PHP (dependendo de sua aplicação web, outros módulos não listados aqui também podem ser necessários):

# yum -y install php-gd php-mysql php-odbc php-pear php-recode php-xml

Para fazer com que o Apache utilize PHP, basta reiniciá-lo:

# systemctl restart httpd.service

O teste mais básico para verificar se o PHP está instalado e corretamente configurado com o Apache é criar o arquivo /var/www/html/info.php com o seguinte conteúdo:

<?php
phpinfo();
?>

Abra o endereço http://<ip do servidor>/info.php e verifique se as informações do PHP são exibidas corretamente:

Informações do PHP

Por motivos de segurança o arquivo /var/www/html/info.php deve ser excluído após o teste.

Computer Browser Service não disponível ao procurar por computadores no Avira Management Console (AMC)

Ao utilizar a descoberta de rede no Avira Management Console (AMC) para procurar por computadores, pode aparecer uma mensagem de erro dizendo que o serviço de navegação de computadores (Computer Browser Service) não está disponível.

Este erro ocorre pois o AMC está instalado em um servidor Windows 2008 R2 SP2 que, por padrão, traz o serviço de descoberta de rede e navegação de computadores desabilitado.

Para conrrigir, no servidor toolsserver.smsaude.com.br, vá para ferramentas administrativas e depois para serviços. Procure pelo Computer Browser Service e altere o modo de inicialização para automático; depois clique em start para iniciar o serviço.

Um problema: apesar de colocarmos o serviço para inicializar automaticamente durante o boot, isso não ocorre. Assim, por equanto (até acharmos uma solução), toda vez que o servidor toolsserver.smsaude.com.br for reiniciado, o Computer Borwser Service deverá ser iniciado manualmente conforme o procedimento descrito acima.

Desabilitar hifenação no WordPress

Já que este blog é um Frankenstein entre inglês e português, um problema que surgiu logo após os primeiros posts foi com a hifenização: por padrão o WordPress estava hifenizando as palavras de acordo com o padrão americano. “Desligar” virava “de-sligar”, ligar aparecia como “lig-ar”, e assim por diante.

Para desligar a hifenização para o tema que estou usando, o TwentyFifteen, é necessário editar um arquivo css e, em todos os locais onde a hifenização é definida, devemos desativá-la.

Edite o arquivo “wp-content/themes/twentyfifteen/style.css” (faça um backup antes!) e troque todas as entradas de:

-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;

Para:

-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;

Procure com atenção pois essas entradas se repetem várias e várias vezes dentro do arquivo e could you get herpes from kissing todas devem ser alteradas.