Como instalar o WordPress em 5 minutos

O WordPress é um dos aplicativos web mais usados para criar sites e (principalmente) blogs.
Como CMS (Content Management System ou sistema de gestão de conteúdo), ele permite iniciar um site instantaneamente, pronto para receber conteúdo em imagens, textos, vídeos etc.
Neste texto, vamos tratar de um dos vários métodos de instalação do aplicativo — baseado nas instruções oficiais.
Não se esqueça de clicar nos links, no decorrer do texto e na seção de referências (no final), para obter informações mais específicas sobre algum assunto.

Pré-requisitos para instalar o WordPress

O famoso passo a passo de instalação do WordPress em 5 minutos funciona e é verídico.
Só que há alguns poréns…
O procedimento, em si — caso você já tenha alguma experiência de instalação de aplicativos web PHP/MySQL/MariaDB anterior — pode ser realizado em poucos minutos.
Entretanto, se esta for a sua primeira vez a instalar um aplicativo deste tipo, não se preocupe com o tempo.
Na minha primeira vez, tive que apagar todos os arquivos instalados e começar de novo, para que ficasse exatamente do jeito que eu queria.
Se preferir, muitos provedores oferecem o método de instalação “com um clique” (One-Click install) — é o ideal para novatos.
Neste sentido, eu recomendo o DreamHost.

DreamHost panel - one-click installs
DreamHost: Seleção de aplicativos para instalar no site.

Veja quais itens você precisa providenciar para agilizar o procedimento de instalação:

  • Além do servidor LAMP pronto para receber o CMS, é necessário ter uma conta no MySQL/MariaDB.
  • É necessário fazer o download do aplicativo, aqui: https://wordpress.org/download/
    Se preferir a última versão, clique aqui, para baixá-la.
    Outra opção, bastante cômoda, é baixar diretamente no local em que vai instalar, através do comando wget, como veremos adiante.

Procedimento de instalação do WordPress

Acompanhe este passo a passo:

  1. Crie um banco de dados para ser usado pelo WordPress, no seu servidor web, bem como o nome de usuário (MySQL ou MariaDB), com privilégios para alterá-lo.
    Se você não tem acesso ao servidor de banco de dados, obtenha estas informações com o administrador do sistema, informando que pretende usar o WordPress.
    Neste caso, as informações que você precisa são:

    • nome do banco de dados
    • nome do usuário do banco de dados
    • senha do usuário do banco de dados
    • o hostname (nome do servidor) em que se encontra o banco de dados e
    • (opcionalmente) o prefixo que irá acompanhar cada nome de tabela criado para uso do wordpress neste site.
  2. Dentro do local em que você deseja que o seu site WordPress fique, baixe e extraia o pacote do WordPress:
    
    wget https://wordpress.org/latest.zip
    
    tar xvzf latest.zip
    
    mv wordpress/* wordpress/.* .
    
    rmdir wordpress
    
  3. Agora, abra o seu website no navegador — se tiver sido extraído no local certo, o instalador irá aparecer.
    como instalar o WordPress
    Esta tela serve para informar sobre os dados que serão requeridos na sequência.
    As informações serão usadas para preencher o arquivo wp-config.php — que também pode ser editado manualmente.
  4. Na próxima tela, preencha o formulário com os dados que foram mencionadas no passo 1.
    como instalar o WordPress
  5. A esta altura o site já está instalado. Mas você vai precisar de um nome de usuário para poder acessar e administrar o seu site.
    como instalar o WordPress
  6. Esta é a última tela da instalação, onde é dado um feedback da criação do seu novo usuário.
    como instalar wordpress
  7. Este é o painel de administração do seu site WordPress.
    como instalar wordpress
    A partir daqui, já é possível inserir novo conteúdo, instalar novos temas, adicionar usuários ao sistema etc.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

https://codex.wordpress.org/Installing_WordPress.

5 mitos sobre a segurança do seu website.

O site White Hat Security tem divulgado dados preocupantes que demonstram aumentos nos ataques a sites de pequenas e médias empresas em relação ao número de ataques aos das grandes.
Um dos motivos para esta mudança de foco, por parte dos invasores, é que as grandes empresas, agora, têm programas profissionais de segurança na Web — o que já torna mais difícil o cracking de seus sites.

Mudaram as vítimas, mas as técnicas de invasão continuam, basicamente, as mesmas.

O propósito deste artigo é questionar e, quem sabe, ajudar a desconstruir 5 dos maiores mitos sobre a segurança na web.

O SSL deixa o meu site mais seguro?

ssl lock
O TSL, sigla para Transport Layer Securty e o seu predecessor, SSL (Secure Sockets Layer), ambos são comumente referenciados pela mesma sigla: SSL.
Trata-se de protocolos criptográficos que oferecem um ambiente de comunicações seguro sobre uma rede de computadores.
O principal objetivo do protocolo é garantir privacidade e integridade à transferência de dados entre o servidor da empresa e o navegador do cliente.
Em outras palavras, sua função é dar ao seu cliente a certeza de que o site que ele está vendo é um site genuíno — e não uma impostura, com o objetivo de fornecer falsas informações ou de obter dados de forma fraudulenta de seus visitantes.
O SSL também assegura que o conteúdo da conversação entre o cliente e o site não possa ser lido, caso seja interceptada.
Se um website for crackeado e passar a ter um comportamento nocivo em relação aos visitantes, tudo o que SSL fará é lhes assegurar que o site é legítimo, genuíno — cumprindo a sua função.

Desta forma, o SSL não tem absolutamente qualquer impacto na segurança do website ou na forma como os seus dados e os de seus usuários são manipulados e guardados.

Por ser um protocolo de transporte de dados, o SSL procura garantir a segurança das informações, enquanto trafegam entre um ponto e outro, na rede.
Os dados armazenados no cliente ou no servidor, não são protegidos por este protocolo — nem ele foi concebido para protegê-los.
Leia mais sobre o SSL: É hora de encriptar toda a Internet? Isto é possível?

Firewalls protegem de ataques externos?

firewall parede corta-fogo
O firewall é um programa ou um equipamento que controla o fluxo de dados em uma rede, baseado em um conjunto de regras.
Sua função é estabelecer uma barreira entre uma rede segura e confiável e outra não considerada tão segura ou tão confiável (a Internet, por exemplo).
A principal função de um firewall é criar restrições ou filtros de acesso entre redes e evitar propagação de acessos ou comportamentos nocivos.
Os firewalls, ou “paredes corta-fogo”, não tem a função de proteger o site em si, seus dados ou a forma como são manipulados.
Portanto, todos os problemas e falhas de segurança de seus aplicativos Web (comércio eletrônico, fóruns, email etc) continuam intocados pela presença de um firewall.

Enquanto o SSL foi concebido para dar segurança ao transporte dos dados, os firewalls foram criados para dar segurança à sua passagem entre redes. Em todos os outros momentos, as vulnerabilidades permanecem inalteradas.

A ideia do firewall é a de separar o tráfego nocivo do “benigno” — o que é feito através de Listas de Controle de Acesso, ou ACL (Access Control List).
O ACL determina o que pode trafegar entre as redes e o que deve ser bloqueado.
Uma vez dentro da sua rede, através de algum dos serviços permitidos pelo(s) firewall(s), um visitante malicioso estaria livre para agir.
Isto quer dizer que o mundo inteiro entra no seu site, usa seus serviços de email, contatos, chat, navega por onde quiser etc — e é aí que mora o perigo.

Scanners de vulnerabilidade de rede são capazes de protegê-la?

satan
Um scanner de vulnerabilidades, é um programa projetado para acessar computadores, sistemas computacionais, redes ou aplicações em busca de pontos falhos na segurança.
Há vários tipos de vulnerability scanners. O que os distingue, entre eles, é o foco dado a problemas específicos.
O ponto em comum é o objetivo de listar as vulnerabilidades encontradas em um ou mais alvos.
No início dos anos 90, o programa SATAN (descontinuado), escrito em Perl, era muito popular entre administradores de sistemas e profissionais de segurança de rede, como software de teste de vulnerabilidades, entre outros.
A lógica é que, após encontrar e resolver todos os problemas de vulnerabilidade o website estará suficientemente seguro na Internet.
Contudo, os scanners de vulnerabilidades não abrangem os aplicativos Web, rodando nos servidores, que podem conter inúmeras falhas de segurança.
Este tipo de software pode ser usado para conduzir testes de reconhecimento da rede — um comportamento típico de um acesso remoto malicioso, com o objetivo de coletar informações ou obter acessos privilegiados e não autorizados à rede.

Os scanners trabalham com seus próprios bancos de dados ou listas, contendo os tipos e os detalhes das vulnerabilidades que devem ser encontradas.
Estas listas são baseadas em falhas já conhecidas.

As fragilidades e pontos de suscetibilidade dos seus aplicativos Web não são conhecidos pelos scanners e, por isto, não serão detectados.
Mesmo tendo um website profundamente comprometido, inseguro e com seus bancos de dados totalmente desprotegidos, você vai receber um sinal verde, informando que tudo está bem.

Os desenvolvedores são sempre culpados pelas falhas?

desenvolvedor digitando
Infelizmente, não é tão fácil encontrar culpados.
Há muitos fatores, fora do controle dos desenvolvedores, que promovem as fragilidades dos sites.
Parte do código (fechado ou não), escrito por terceiros e inserido nos aplicativos web da sua empresa, pode conter vulnerabilidades.

Com prazos curtos para finalizar projetos, os desenvolvedores raramente têm tempo para checar os meandros das linhas de código que chegam através de atualizações e patches.
Código proprietário e fechado, definitivamente, não pode sequer ser auditado.

Além disto, as falhas de segurança podem surgir da simples combinação entre componentes do sistema — e estamos provavelmente falando de milhares de componentes e quantidades exponenciais de possibilidades de combinação.
É humanamente impossível prever ou prevenir todas as falhas, portanto.

Avaliações anuais das vulnerabilidades são suficientes?

O código dos aplicativos Web estão em constante mudança. Muita coisa sofre alterações no período de um ano.
Cada nova versão do aplicativo ou atualização (mesmo que de segurança), traz novos riscos e potenciais pontos fracos a serem explorados por crackers.
Finalizar projetos estratégicos para os negócios é sempre prioritário e (como já foi dito) os desenvolvedores nunca têm tempo para testar todas as possibilidades de quebra da segurança dos aplicativos.
O ideal é ter práticas sempre em curso para resolver problemas de segurança, à medida em que forem detectados.

Conclusão

Se já sabemos que algumas ações não são eficazes para tornar um website mais seguro.
Há várias outras medidas, contudo, que podem ajudar neste sentido e devem ser consideradas com seriedade:

  1. A segurança do website deve ser reavaliada com maior periodicidade e, principalmente, a cada atualização de cada novo componente — cada nova linha de código é, potencialmente, um novo problema de segurança.
  2. Os scanners de vulnerabilidade podem ser usados em conjunto com um processo manual de testes, personalizado e adaptado aos aplicativos que você tem rodando no site.
  3. Aos desenvolvedores cabe nunca confiar nos dados fornecidos por usuários. Sempre preveja a introdução de códigos maliciosos nos formulários — esta é a principal porta de entrada dos crackers.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

https://www.whitehatsec.com/assets/WP5myths041807.pdf.

Experimente o Debian com o kernel do FreeBSD.

O Debian é uma comunidade aberta a diversos projetos interessantes.
Há, pelo menos, 2 projetos que oferecem o sistema operacional combinado a um kernel alternativo.
Já falei sobre o Debian rodando com o kernel GNU/Hurd, antes.
Desta vez, vou mostrar como baixar uma versão que roda sobre o kernel do FreeBSD.
A melhor maneira de testá-la é rodar uma das imagens prontas para o QEMU/KVM.

O sistema não é pesado e dá para você se divertir e ter uma idéia do seu funcionamento.

Neste post, vou analisar uma destas 3 opções:

  1. debian_squeeze_kfreebsd-amd64_standard.qcow2
    — uma opção mais antiga, sem o ambiente gráfico (imagem c/204 Mb).
  2. debian_wheezy_kfreebsd-amd64_desktop.qcow2
    — uma opção mais atual (Debian 7), com o ambiente gráfico (imagem c/1,7 Gb).
  3. debian_wheezy_kfreebsd-amd64_standard.qcow2
    — Debian 7, sem o ambiente gráfico (imagem c/210 Mb).

As imagens estão comprimidas e se expandem até 25 GiB, na medida do necessário.
Os exemplos, que seguem, são baseados na 3a opção.
Se preferir outra, basta adaptá-los ao seu caso.
Use o comando wget para fazer o download ou baixe direto do site (links no final):


wget https://people.debian.org/~aurel32/qemu/kfreebsd-amd64/debian_wheezy_kfreebsd-amd64_standard.qcow2

Feito o download, rode o sistema a partir do QEMU:


qemu-system-x86_64 -hda debian_wheezy_kfreebsd-amd64_desktop.qcow2

Bem simples, não é?
Para poder usar melhor o sistema, use as seguintes informações:

  • A conta root usa a senha “root” (sem as aspas).
  • A conta user usa a senha “user”.

Para obter um melhor desempenho, ative o KVM:


qemu-system-x86_64 -enable-kvm -hda debian_wheezy_kfreebsd-amd64_desktop.qcow2

Para suprimir o modo gráfico, coloque o display no modo curses:


qemu-system-x86_64 -enable-kvm -display curses -hda debian_wheezy_kfreebsd-amd64_desktop.qcow2

Neste caso, pode ser necessário aumentar um pouco (ou maximizar) a janela do seu terminal, para conseguir ver toda a área de trabalho.
Como padrão, a imagem roda com 128 MiB de memória RAM.
Use a opção ‘-m’ do QEMU para ampliar este valor:


qemu-system-x86_64 -m 512 -enable-kvm -display curses -hda debian_wheezy_kfreebsd-amd64_desktop.qcow2


Se você optou por uma das imagens com ambiente gráfico, acima, vai precisar usar uma quantidade maior de memória RAM, claro.
Neste caso, as imagens usam lightDM com o XFCE e 1GiB de memória RAM deve ser mais do que o suficiente.
Se quiser trocar este ambiente, pelo original do Debian (GDM e GNOME), dê os seguintes comandos, dentro da máquina virtual (como superusuário):


update-alternatives --auto x-session-manager

echo /usr/sbin/gdm3 > /etc/X11/default-display-manager

Vale a pena instalar e usar o Debian com o kernel FreeBSD?

Diferente do Hurd, o kernel do FreeBSD é um kernel maduro e bem testado.
Aqui é possível usar todo o ambiente gráfico e usufruir do universo dos repositórios de softwares do Debian.
No lado do servidor, a opção é uma alternativa para quem deseja ficar longe do systemd e/ou evitar as eventuais vulnerabilidades do kernel Linux.
Há, ainda, o glamour de estar mais próximo de executar um kernel semelhante ao usado pela Apple em seus dispositivos.
Do ponto de vista de quem vem do FreeBSD, esta opção “mantém um pé” lá e outro nos vastos repositórios de softwares Debian.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

De onde baixei a versão analisada neste texto: https://people.debian.org/~aurel32/qemu/kfreebsd-amd64/.
Outras versões do Debian kfreebsd: http://jenkins.kfreebsd.eu/jenkins/view/cd/job/debian-cd_jessie-kfreebsd_kfreebsd-amd64/ws/build/.
Debian Mini .ISO (para instalar): http://cdn-fastly.deb.debian.org/debian/dists/jessie-kfreebsd-proposed-updates/main/installer-kfreebsd-amd64/current/images/netboot-10/.
Conheça o Debian GNU/Hurd: https://elias.praciano.com/2017/07/experimente-o-debian-com-o-kernel-gnuhurd-em-uma-maquina-virtual/.

Como resolver o erro 1698 de acesso negado no MySQL e MariaDB

Se você obteve a mensagem ERROR 1698 ACCESS DENIED FOR USER ao tentar acessar o seu banco de dados MySQL ou MariaDB, este passo a passo pode ajudar a resolver o problema.
Abra um terminal e autentique-se no sistema como superusuário.
Agora, siga o procedimento:

  1. Autentique-se como administrador no servidor de banco de dados:
    
    mysql -u root
    

    e acesse o ‘mysql’:

    
    use mysql
    
  2. Faça a seguinte edição:
    
    update user set plugin='' where User='root';
    
  3. Por fim, “refresque” o cache e saia do servidor:
    
    flush privileges
    exit
    

Estes 3 passos devem resolver o problema.

ERROR 1698 (28000): Access denied for user 'root'@'localhost'
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

https://superuser.com/questions/957708/mysql-mariadb-error-1698-28000-access-denied-for-user-rootlocalhost.
https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html#error_er_access_denied_no_password_error.

Teste o seu servidor para saber se ele suporta as últimas versões do WordPress

O sistema de gestão de conteúdo WordPress não é dos mais exigentes, em termos de recursos de hardware e software, mas para ter um desempenho melhor há algumas recomendações mínimas que o seu host precisa satisfazer.
Embora o hardware e a largura de banda disponível para o tráfego sejam fundamentais para o desempenho do WordPress, como CMS (Content Management System ou sistema de gestão de conteúdo), neste post vou me ater aos requisitos de software no servidor.
Se tiver dúvidas, em algum ponto, clique nos links ou nas tags no texto para obter maiores especificidades sobre algum tema.

O que você precisa ter para poder testar o seu servidor

Servidores podem ser testados à distância, online ou através de sites especializados neste tipo de tarefa.
Por questões de segurança, contudo, muitos administradores procuram esconder informações sobre as versões dos softwares instalados nos seus sistemas.
Entretanto, um dos requisitos para instalar o WordPress é ter acesso SSH ao servidor — a menos que você vá realizar todos os procedimentos em uma máquina local.
Portanto, neste texto, partimos do pressuposto de que você tem acesso SSH (Secure SHell) ao seu servidor, que é o suficiente para obter as informações de que necessita.

O sistema operacional

Você pode instalar tudo o que precisa, para dar suporte ao WordPress em uma máquina Windows, MacOS, UNIX (FreeBSD) etc.
O sistema operacional Linux, contudo é o mais usado — pelo baixo custo e pela confiabilidade.
Há alguns testes propostos neste artigo, que levam em conta uma instalação Linux.
Estes testes pode ser realizados em outros sistemas operacionais, com pouca ou nenhuma edição.

Em outras palavras, para o fim deste artigo, o sistema operacional que você tem aí, não é tão relevante.

Os requisitos de sistema

Localmente, você pode instalar, por conta própria, um servidor LAMP (acrônimo que corresponde a Linux, Apache, MySQL/MariaDB e PHP).
Se tiver interesse em montar um servidor deste tipo, veja alguns artigos que podem te ajudar:

De maneira resumida, Para rodar a versão mais atual do WordPress, com segurança e máximo desempenho, você precisa ter suporte aos seguintes softwares (e versões):

  • Servidor web Apache ou Nginx.
  • PHP na versão 7 ou superior.
  • Um destes 2 bancos de dados:
    • MySQL 5.6 ou superior
    • MariaDB 10.0 ou superior
  • suporte a HTTPS (não é obrigatório, mas é bom ter).

É possível usar outros servidores web (com suporte a PHP e MySQL/MariaDB), tal como o Lighttpd. Além disto, versões atuais do WordPress (na data deste post) ainda funcionam em versões anteriores do PHP.
Contudo, a melhor relação entre alta performance e segurança, só serão obtidos sob aqueles requisitos listados acima.
Vale ressaltar que as versões mais antigas do PHP e do MySQL já atingiram seus tempos de vida e já não recebem atualizações de segurança — o que pode expôr o seu site a vulnerabilidades e a ataques de crackers.
Por último – e não menos importante – este site usa e recomenda o DreamHost, como provedor de hospedagem.
O DreamHost faz uso das versões mais atuais dos softwares requeridos, tem suporte a HTTPS e dispõe de instalação automática do WordPress (one-click install), o que pode te poupar muito tempo.

Como verificar se as versões dos softwares requeridos estão presentes

Acesse o servidor localmente (com um terminal) ou remotamente (via SSH) e siga os procedimentos abaixo.
Para verificar o PHP e sua versão:


php --version

PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.19-1, Copyright (c) 1999-2017, by Zend Technologies

Para verificar se o MySQL está presente e sua versão:


mysql --version

mysql  Ver 15.1 Distrib 10.1.23-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Acima, note que o comando ‘mysql’ exibe a versão do MariaDB.
Isto ocorre, por que é este último que se encontra instalado e não o MySQL.
Ainda assim, pelo motivo de facilitar a transição, o comando mysql ainda funciona em instalações de bancos de dados (exclusivamente) MariaDB.
Para conferir o MariaDB:


mariadb --version

mariadb  Ver 15.1 Distrib 10.1.23-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Por fim, em sistemas Linux atuais (com o systemd) é possível conferir o status do Apache, como este comando:


systemctl status apache2

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: 
   Active: active (running) since Mon 2017-07-24 09:58:25 -03; 3 days ago
  Process: 16914 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/
 Main PID: 597 (apache2)
    Tasks: 7 (limit: 4915)
   CGroup: /system.slice/apache2.service
           ├─  597 /usr/sbin/apache2 -k start
           ├─16930 /usr/sbin/apache2 -k start
           ├─16931 /usr/sbin/apache2 -k start
           ├─16932 /usr/sbin/apache2 -k start
           ├─16933 /usr/sbin/apache2 -k start
           ├─16934 /usr/sbin/apache2 -k start
           └─17106 /usr/sbin/apache2 -k start

Outra forma de verificar a versão do Apache, está descrita neste post.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências