Arquivar janeiro 2019

Teste a velocidade da internet do servidor via linha de comando com speedtest-cli

O speedtest-cli é uma ferramenta de linha de comando útil para administradores em servidores Linux testarem rapidamente a largura de banda, ping e outras informações. Este utilitário mantido pela Speedtest.net nos permite obter informações valiosas sobre o que está sendo oferecido pelo provedor de seu servidor linux.

Abaixo vamos abordar a instalação no CentOS/RedHat , Ubuntu/Debian e a forma manual que servirá para qualquer outra Distribuição Linux.

CentOS/RedHat

Instale o repositório Epel release

yum install epel-release -y

Instale python e python-pip

yum install python python-pip -y
pip install --upgrade pip

Instale o Speedtest-cli via pip

pip install speedtest-cli

Ubuntu

Primeiro atualize os packages do servidor

apt-get update

Instale python e python-pip

apt-get install python python-pip
pip install --upgrade pip

Instale o Speedtest-cli via pip

pip install speedtest-cli

Todas as outras Distribuições Linux/UNIX

Certifique-se que o pacote do python esteja instalado em sua distribuição linux

Faça o download do speedtest-cli

wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py

Corrija as permissões para execução

chmod +x speedtest-cli

./speedtest-cli
OU
python speedtest-cli

Exemplo de comandos para speedtest-cli

Execute o comando abaixo para o iniciar o teste de velocidade

speedtest-cli

Exemplo do teste

[root@gerenciandosrv ~]# speedtest-cli
Retrieving speedtest.net configuration...
Testing from OVH Hosting (xxx.xx.xx.xxx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by TELUS (Montreal, QC) [1.07 km]: 7.488 ms
Testing download speed................................................................................
Download: 681.31 Mbit/s
Testing upload speed................................................................................................
Upload: 239.13 Mbit/s

Para executar o teste e gerar o link do Speedtest com o resultado utlize

speedtest-cli --share

[root@gerenciandosrv ~]#  speedtest-cli --share
Retrieving speedtest.net configuration...
Testing from OVH Hosting (xxx.xx.xx.xxx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Openface Internet (Montreal, QC) [1.07 km]: 2.286 ms
Testing download speed................................................................................
Download: 732.54 Mbit/s
Testing upload speed................................................................................................
Upload: 224.14 Mbit/s
Share results: http://www.speedtest.net/result/8441139361.png

Abaixo segue a imagem do meu teste de velocidade

Please follow and like us:

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 usar o comando tar para compactar/descompactar com Gzip e Bzip2

O comando tar (tape archive) é usado frequentemente no Linux para adicionar vários arquivos e pastas a um único arquivo. Os Arquivos tar são frequentemente compactados após serem criados, dando-lhes a extensão tar.gz(Gzip) ou tar.bz2(bzip2) principalmente. O comando tar possui um grande número de opções, mas precisamos lembrar apenas de algumas letras para criar ou extrair arquivos.

Abaixo, segue uma lista com os parâmetros mais importantes para o uso diário do tar ao compactar e descompactar arquivos:

  • -x (eXtract) Extrai os dados do arquivo .tar.gz
  • -c (Create) Cria um arquivo tar
  • -z (gZip) Utilizado para manipular o arquivo .tar.gz ou .tgz.
  • -j (Bzip2) Utilizado para manipular o arquivo .tar.bz2, .tar.bz ou .tbz.
  • -v (Verbose) Mostra na tela os arquivos que estão sendo comprimidos ou manipulados, um a um. Se não deseja ver os arquivos que estão sendo manipulados, você pode ignorar este parâmetro.
  • -f (File) Define que estamos trabalhando com arquivos.

Compactando um arquivo tar.gz

Por exemplo, se você possui um diretório /home/pedro e deseja compactar com tar.gz e nome backup-do-pedro.tar.gz utilize:

tar -czvf backup-do-pedro.tar.gz /home/pedro

Para compactar múltiplos diretórios utilize:

tar -czvf backup-geral.tar.gz /home/pedro /home/maria /home/jose

Descompactando um arquivo tar.gz

Para descompactar um arquivo tar.gz , utilize :

tar -xzvf nomedoarquivo.tar.gz

Embora a compactação gzip seja utilizada com mais frequência para criar arquivos .tar.gz ou .tgz o tar também suporta compactação bzip2. Isso nos permite criar arquivos compactados com bzip2, denominados arquivos .tar.bz2, .tar.bz ou .tbz.

O Gzip é mais rápido, mas geralmente comprime um pouco menos, criando o arquivo um pouco maior. O Bzip2 é mais lento, mas comprime um pouco mais, criando o arquivo um pouco menor.

Para utilizar a compactação com bzip2, basta substituir o -z para gzip nos comandos por um -j para bzip2.

Compactando um arquivo tar.bz2

tar -cjvf backup-do-pedro.tar.bz2 /home/pedro

Descompactando um arquivo tar.bz2

tar -xjvf nomedoarquivo.tar.bz2
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: