Como habilitar HTTP/2 com nginx

Nginx com http/2

O HTTP/2 torna nossas aplicações web mais rápidas, simples e robustas. O http2 abre uma série de novas oportunidades para otimizar nossas aplicações e melhorar o desempenho.

O principal objetivo do http/2 é reduzir a latência permitindo a multiplexação total de solicitações e respostas, minimizando a sobrecarga de protocolos por meio de compactação eficiente do http header, além de adicionar suporte para a priorização de solicitações e envio de dados aos servidores. Existem ainda um grande suporte de outros aprimoramentos de protocolo, como novos mecanismos de controle de fluxo, tratamento de erros e atualização, mas os recursos descritos acima são os mais importantes .

 

Mãos a obra

Notas – Antes de começar:

  • Certifique-se que você tenha instalado em seu domínio um certificado ssl válido. http/2 somente funciona com HTTPS
  • Este passo a passo foi escrito utilizando um servidor com Painel CWP Pro (CentOS Web Panel) e CentOS 6, porém, já foi testado no CentOS 7, com ou sem Painel de controle   (foram necessárias apenas algumas adaptações lógicas).

– Acesse o SSH de seu servidor como root

Atualizando os packs do OS para a última versão


yum clean all
yum -y update

Atualizando Autoconf:


cd /usr/local/src
rm -rf autoconf-*
wget https://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar zxvf autoconf-latest.tar.gz
cd autoconf-*
./configure --prefix=/usr
make && make install

Atualizando Openssl:


cd /usr/local/src
rm -rf openssl-*
wget https://www.openssl.org/source/openssl-1.0.2q.tar.gz
tar zxvf openssl-1.0.2q.tar.gz
cd openssl-*
./config --prefix=/usr --openssldir=/usr/lib64 shared
make && make install

Instalando Nghttp2:


cd /usr/local/src
rm -rf nghttp2-* yum install libtool -y wget https://github.com/nghttp2/nghttp2/releases/download/v1.35.1/nghttp2-1.35.1.tar.gz tar zxvf nghttp2-1.35.1.tar.gz cd nghttp2-* ./configure --prefix=/usr make && make install

Acesse o diretório de configuração do nginx


cd /etc/nginx/conf.d/vhosts/

Edite o arquivo “seudodominio_ssl.conf”


nano seudodominio_ssl.conf

Localize:


server {
listen xxx.xx.xxx.xx:443;

xxx é apenas um exemplo. não altere o ip

Adicione após “:443” ssl http2


server {
listen xxx.xx.xxx.xx:443 ssl http2;

Salve e saia do editor nano ( “ctrl+x “ e “y” )

Reiniciei o nginx


service nginx restart

Agora, vamos verificar se está tudo certo, acesse https://tools.keycdn.com/http2-test
digite a url de seu site para verificar se o HTTP/2 está ativo

 

 

 

 

 

Please follow and like us:

Como desabilitar funções perigosas do PHP

O PHP é uma linguagem de script rica em recursos, mas quando utilizada de forma incorreta , intencionalmente ou não, pode comprometer grande parte do servidor web ou seus dados.

Através do arquivo php.ini em disable_functions, vamos criar uma lista de funções que devem ser desabilitadas por motivos de segurança.

Localizando o arquivo php.ini correto no servidor.

O primeiro passo é encontrar o arquivo php.ini correto no servidor. Existem vários cenários em um servidor web em que são criados vários arquivos php.ini . Por exemplo, se utilizamos o php-fpm com múltiplas versões do php instaladas em nosso servidor, haverá um php.ini para cada versão… Neste caso você deverá procurar o php.ini responsável por cada versão. O local correto irá variar dependendo de sua Distribuição Linux, se utiliza algum Painel de controle ou não , etc.

A forma mais simples de localizar o php.ini correto em nosso servidor é executando um arquivo php que nos traga através de “phpinfo()” todas as configurações de nosso php.

Crie um arquivo info.php em alguma url ativa em seu servidor web e insira

<?php
phpinfo();
?>

Acesse através de seu navegador web o arquivo info.php. Serão exibidas várias informações úteis sobre o php ativo nessa URL.

Localize: “Loaded Configuration File” . Este é o caminho correto para o php.ini que desejamos . Copie o caminho para php.ini , nós vamos utilizá-lo a seguir para informar em disable_functions as funções que desejamos desabilitar.

PHP Info Loaded Configuration

Acesse seu servidor linux utilizado o ssh e edite o arquivo php.ini

nano /caminhodeseuphp.ini/php.ini

Localize “disable_functions =” e modifique para :

disable_functions =  exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

Em tempo, recomendo que por motivos de segurança desabilite allow_url_fopen e allow_url_include:

allow_url_fopen=Off
allow_url_include=Off

Salve (Ctrl+o) e saia do nano (Ctrl+x)

Reinicie o httpd server

  • Se utiliza o Apache e não possui o php-fpm:

Para CentOS/RedHat:

systemctl restart httpd 

ou

service httpd restart

Para Debian/Ubuntu:

service apache2 restart
  • Se utiliza o PHP-FPM

O PHP-FPM (FastCGI Process Manager ), é um manipulador do PHP que funciona a parte, como um serviço e não um módulo. A forma correta de reiniciar irá variar dependendo de como foi instalado em seu servidor .

Para simplificar, acesse seu arquivo info.php criado anteriormente e note que em ” Loaded Configuration File” haverá um nome parecido com “php-fpmxxx” esse será o nome do processo que você deverá reiniciar .

phpinfo php-fpm
Nome do processo php-fpm .Exemplo php-fpm72

Com as informações acima reinicie o serviço substituindo “php-fpmxxx” pelo nome encontrado em seu servidor. :

Para CentOS/RedHat:

systemctl restart php-fpmxxx 

ou

service php-fpmxxx restart

Para Debian/Ubuntu:

service php-fpmxxx restart

Para se certificar que as configurações foram atualizadas, acesse novamente seu arquivo info.php e verifique em disable_functions se a lista de funções estão sendo exibidas.

Nota Final: Para informação, utilizando o php-fpm existem ainda outras formas de desabilitar as funções que não foram abordadas neste post.

Please follow and like us:

Como alterar a porta do SSH

SSH Secure Shell

Uma das primeiras tentativas de um cracker é identificar as portas em que os serviços como SSH, FTP, etc, estão utilizando. Identificado a porta, um cracker poderia iniciar alguns tipos de ataques como por exemplo,  força bruta, a fim de descobrir o usuário e senha para posterior invasão.

Como medida de segurança, o melhor a fazer é modificar a porta de conexão ao SSH.

1 – edite o arquivo de configuração do ssh

nano /etc/ssh/sshd_config

2 – Localize “Port 22” e modifique para a nova porta que deseja se conectar.
Procure não utilizar portas semelhantes as que já estão sendo utilizadas em seu servidor ( exemplo: 22, , 81, etc…) .

Port 36509

Salve e saia do editor nano ( “ctrl+x “ e “y” )
4 – Reinicie o sshd .

service sshd restart

ou (se utiliza CentOS 7 )

systemctl restart ssh

Na próxima vez que se conectar ao SSH , será preciso que informe a nova porta. Lembre-se de atualizar a porta de conexão em seu firewall.

Please follow and like us:

Como listar o tamanho de todos os arquivos e subdiretórios do diretório atual

Para listar o tamanho de todos os arquivos e subdiretórios do diretório atual basta utilizar o comando abaixo:


 du -sch ./*

se desejar ordenar por tamanho:


du -sk ./* | sort -n | awk 'BEGIN{ pref[1]="K"; pref[2]="M"; pref[3]="G";} { total = total + $1; x = $1; y = 1; while( x > 1024 ) { x = (x + 1023)/1024; y++; } printf("%g%s\t%s\n",int(x*10)/10,pref[y],$2); } END { y = 1; while( total > 1024 ) { total = (total + 1023)/1024; y++; } printf("Total: %g%s\n",int(total*10)/10,pref[y]); }'
Please follow and like us: