Como instalar o Linux Malware Detect com ClamAV

Linux Malware Detect com ClamAV

O Linux Malware Detect (LMD) é um scanner de malware para Linux, desenvolvido a volta das ameaças enfrentadas em ambientes linux utilizados para hospedagem de sites compartilhada.
O Scanner do LMD percorre, os arquivos e diretórios em busca de aplicações, scripts e praticamente todo tipo de arquivo a procura de shells maliciosas, worms, virus e outros malwares. O LMD permite que estes arquivos sejam inseridos em quarentena, excluídos ou gere apenas uma notificação ao administrador do servidor linux. Podemos executar o scanner do LMD como monitoramento ativo, programado através da cron ou manualmente.

As assinaturas que o LMD utiliza, hashes de arquivo MD5 e correspondências de padrão HEX, são facilmente exportados ou mesmo incorporadas ao ClamAV e suas assinaturas.

Vamos abordar a instalação do Linux Malware Detect integrado ao ClamAV, comandos para o monitoramento , scan manual e outras opções…

Nota: Para instalação e configuração do ClamAV com assinaturas adicionais, sugiro o post : Como instalar assinaturas AntiVirus e Malware adicionais para o Clamav no CentOS e CloudLinux

Instale o inotify-tools. Este pacote é necessário para habilitarmos o monitoramento do LMD em tempo real

yum install -y inotify-tools

Instalando o Linux Malware Detect

wget http://www.rfxn.com/downloads/maldetect-current.tar.gz  
tar xvf maldetect-current.tar.gz
cd maldetect-1*
./install.sh  

Edite o arquivo de configuração do LMD:

nano /usr/local/maldetect/conf.maldet

Localize e altere se necessário as seguintes opções:

email_alert="1"
email_addr="[email protected]minio.com"
autoupdate_signatures="1"
autoupdate_version="1"
scan_clamscan="1"

salve o arquivo e saia do nano ( ctrl +x , y)

As definições de vírus para Maldet(Linux Malware Detect) são atualizadas diariamente e integrada as assinaturas anti vírus, malware, conforme abordamos em outro post . Como instalar assinaturas AntiVirus e Malware adicionais para o Clamav no CentOS e CloudLinux . Se desejar atualizar manualmente utilize o comando abaixo:

maldet -d

Durante a instalação do Linux Malware Detect foi criado um job na cron /etc/cron.daily/maldet que será executado diariamente . Este job é responsável por executar atualizações , executar verificação diária nos arquivos do sistema com alterações recentes, apagar os dados de sessão , temporários e arquivos em quarentena com mais de 14 dias

Exemplos de utilização dos comandos:

Para verificar uma pasta, por exemplo / home, você deve inserir:

maldet -a /home

Para verificar uma pasta com um caractere curinga, por exemplo, todas as pastas em / home que começam com um “a” :

maldet -a /home/a?

Para executar uma verificação curinga apenas para uma extensão do arquivo específica:

maldet -a /var/www/html/*.php

Scan apenas em arquivos criados/modificados nos últimos 7 dias:

maldet -r /var/www/html/ 7

Verificar todos os arquivos em um caminho (padrão: / home, curinga:?)

maldet -a /home/?/public_html

Para executar varreduras em segundo plano, digite o seguinte (ideal para varreduras maiores com muitos arquivos):

maldet -b -r /home/user/

Examine o relatório de verificação do maldet executando o seguinte comando e anexando o ID do relatório de verificação:

maldet --report numero-xxxx.xxxxx

Enviar por email o relatório de verificação:

maldet –report SCANID [email protected]

Para colocar os arquivos infectados em quarentena, execute o seguinte comando, incluindo o “scan report ID”. Os arquivos infectados serão colocados em quarentena para limpeza:

maldet -q SCAN ID

Limpar todos os resultados de malware de uma verificação anterior:

maldet -n SCAN ID

Restaurar um arquivo que você já colocou em quarentena:

maldet -s NOMEDOARQUIVO
maldet -s SCANID
maldet --restore NOMEDOARQUIVO

Obtenha uma lista de todos os relatórios:

maldet -e list

Limpar registros, fila de quarentena, sessão e dados temporários:

maldet -p

Efetuar upload de suspeita de malware para rfxn.com para revisão e hashing em assinaturas:

 maldet -c caminho/do/arquivo

Visualizar os logs de eventos:

maldet -l

Monitoramento em tempo real.

Este recurso foi criado para monitorar os arquivos de usuário em tempo real para criação de arquivos / modificação / arquivos movidos.

Existem três modos com os quais o monitor pode ser executado e se relacionam com o que será monitorado, são USERS | PATHS | FILES.

  • Exemplo: maldet –monitor users
  • Exemplo: maldet –monitor /root/arquivo_com_os_locais_scan
  • Exemplo: maldet –monitor /home/joao,/home/pedro

Monitorando usuários:

maldet --monitor users

Monitorando definindo o caminho :

maldet --monitor /home,/var,/tmp

Monitorando Arquivos:

Se você acredita que há problemas com arquivos específicos, é possível monitorar continuamente estes arquivos, fornecendo uma lista de arquivos separados por vírgulas:

maldet --monitor /home/usuario/arquivo1,/home/usuario/arquivo2

Rastreando eventos no arquivo de registro do monitor:

tail -f /usr/local/maldetect/logs/inotify_log

Parando o monitoramento(kill):

maldet -k

Integração do Linux Malware Detect com o ClamAV

Nota: No post Como instalar assinaturas AntiVirus e Malware adicionais para o Clamav no CentOS e CloudLinux , abordamos a instalação do ClamAV incluindo excelentes assinaturas adicionais.

O ClamAV e Maldet( Linux Malware Detect) são totalmente integrados. Podemos utilizar o ClamAV como mecanismo de varredura para o Maldet. Isso acelera o processo de varredura e inclui as definições de vírus do ClamAV .

O benefício dessa integração é uma verificação de malware mais rápida e eficaz; é mais provável que você identifique ameaças potenciais.

O Setup desta integração já abordamos no princípio ao editar o arquivo /usr/local/maldetect/conf.maldet e alterar scan_clamscan de “0” para “1”

Servidores com cPanel/WHM

Crie dois links simbólicos:

ln -s /usr/local/cpanel/3rdparty/bin/clamscan /usr/local/bin/clamscan
ln -s /usr/local/cpanel/3rdparty/bin/freshclam /usr/local/bin/freshclam

Servidores com DirectAdmin

Não é necessário nenhuma modificação.

Servidores Linux sem painel ou utilizando paineis Open Source

Não é necessário nenhuma modificação.

Como instalar assinaturas AntiVirus e Malware adicionais para o Clamav no CentOS e CloudLinux

O Anti Virus Clamav é bastante utilizado em servidores linux hoje em dia. Possui um mecanismo antivírus eficiente para detectar trojans, vírus, malware e outras ameaças maliciosas. Como padrão o Clamav disponibiliza algumas assinaturas antivirus que são atualizadas através de seu repositório padrão, porém, principalmente em Servidores Web, com PHP, Python … onde são instalados todo tipo de aplicação, incluindo WordPress, Joomla… ou MailServers que recebem phishing , virus, trojans, nos mais diversos arquivos e formatos, se faz necessário assinaturas adicionais para o Clamav.

Na Web existem vários projetos e sites que oferecem assinaturas grátis ou pagar para o Clamav.

A eXtremeSHOK através do GitHub criou um projeto com nome clamav-unofficial-sigs que reúne várias assinaturas confiáveis, disponíveis na Web para o Clamav, mantendo tudo sempre atualizado .

Além das assinaturas disponíveis pelo projeto, vamos adicionar outras assinaturas que sempre utilizo em meu trabalho com Gerenciamento de Servidores Linux.

Abaixo vou abordar o passo a passo para a correta instalação e configuração do clamav-unofficial-sigs em servidores CentOS e CloudLinux.

Instale o repositorio epel-release

yum -y update
yum -y install epel-release
yum -y update

Antes de começar, verifique em seu firewall e abra se necessário as portas:

rsync: TCP porta 873
wget/curl : TCP porta 443

Instale o Clamav e componentes:

yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

Configure o SELinux para permitir o Clamav ( Se Selinux estiver habilitado)

Verifique se o Selinux está habilitado. Se estiver desabilitado pule este passo.

sestatus

Se o resultado for SELinux status: disabled, pule esta etapa.
Se o resultado for enable prossiga:

setsebool -P antivirus_can_scan_system 1
setsebool -P clamd_use_jit 1

Configure o ClamAV

mkdir /var/clamav
chown clamav.clamav /var/clamav
sed -i '/^Example$/d' /etc/clamd.d/scan.conf

Edite o arquivo scan.conf com o nano:

nano /etc/clamd.d/scan.conf

Localize LocalSocket e substitua por:

LocalSocket /var/run/clamd.scan/clamd.sock/g

salve o arquivo e saia do nano (Control + X , digite Y )

A seguir no shell do linux cole o bloco abaixo:

cat << EOF > /etc/tmpfiles.d/clamav.conf
/var/run/clamd.scan 0755 clam clam
EOF
mv /usr/lib/systemd/system/clamd\@scan.service /usr/lib/systemd/system/clamd\@scan.old
cat << EOF > /usr/lib/systemd/system/clamd\@scan.service
# Run the clamd scanner
[Unit]
Description = clamd scanner (%i) daemon
After = syslog.target nss-lookup.target network.target
[Service]
Type = simple
ExecStart = /usr/sbin/clamd --foreground=yes
Restart = on-failure
IOSchedulingPriority = 7
CPUSchedulingPolicy = 5
Nice = 19
PrivateTmp = true
MemoryLimit=500M
CPUQuota=50%
[Install]
WantedBy = multi-user.target
EOF

systemctl daemon-reload

Configurando o FreshClam:

cole o bloco abaixo no shell:

sed -i '/^Example$/d' /etc/freshclam.conf
sed -i '/REMOVE ME/d' /etc/sysconfig/freshclam

cat << EOF > /usr/lib/systemd/system/clam-freshclam.service
# Run the freshclam as daemon
[Unit]
Description = freshclam scanner
After = network.target

[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d
Restart = on-failure
IOSchedulingPriority = 7
CPUSchedulingPolicy = 5
Nice = 19
PrivateTmp = true

[Install]
WantedBy = multi-user.target
EOF

systemctl daemon-reload
freshclam
systemctl enable clam-freshclam.service
systemctl start clam-freshclam.service

Habilitar, Iniciar e verificar se está tudo ok com status:

systemctl enable [email protected]
systemctl start [email protected]
systemctl status [email protected]

Instalando Dependências

yum -y install bind-utils rsync

Instalação do clamav-unofficial-sigs:

mkdir -p /usr/local/sbin/
wget https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/clamav-unofficial-sigs.sh -O /usr/local/sbin/clamav-unofficial-sigs.sh && chmod 755 /usr/local/sbin/clamav-unofficial-sigs.sh
mkdir -p /etc/clamav-unofficial-sigs/
wget https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/config/master.conf -O /etc/clamav-unofficial-sigs/master.conf
wget https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/config/user.conf -O /etc/clamav-unofficial-sigs/user.conf

Se sua distribuição linux é CentOS 7 ou CloudLinux 7 copie e cole as instruções abaixo:

os_conf="centos7-atomic"
wget "https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/config/os/${os_conf}" -O /etc/clamav-unofficial-sigs/os.conf


Nota: para outras distro Linux acesse o link abaixo, e em “Operating System Specific Install” , selecione a melhor opção para seu Linux.
https://github.com/extremeshok/clamav-unofficial-sigs

Antes de seguirmos para o próximo passo, vamos nos cadastrar em dois sites que oferecem excelentes assinaturas para o Clamav.

1 – MalwarePatrol Free
Crie sua conta grátis em : https://www.malwarepatrol.net/free-guard-upgrade-option/
Será exibido em seu browser “Password/Receipt:”
Guarde esta informação, precisaremos dela no próximo passo.

2 – SecuriteInfo Free
Crie sua conta grátis em : https://www.securiteinfo.com/clients/customers/signup
Você receberá um e-mail com um link para ativar sua conta, após a ativação , receberá outro email com seu usuário e senha para login no site.
Faça login e acesse : https://www.securiteinfo.com/clients/customers/account
Clique na aba Setup, verá uma URL a frente de DatabaseCustomURL
Precisamos localizar seu identificador individual que é composto por uma sequencia de 128 caracteres.
Na url a frente de DatabaseCustomURL copie a sequencia após
https://www.securiteinfo.com/get/signatures/
até “/”

Guarde esta informação, vamos utilizá-la no próximo passo.


Os outros repositórios disponíveis utilizados pelo clamav-unofficial-sigs não necessitam de cadastro, apenas para conhecimento, irei citá-los abaixo:

Yara Rules: https://github.com/Yara-Rules/rules
Urlhaus: https://urlhaus.abuse.ch/
Linux Malware Detect Assinaturas: https://www.rfxn.com/projects/linux-malware-detect/
*Veja o artigo: Como instalar e utilizar o Linux Malware Detect

** Existem na web muitas assinaturas grátis para o Clamav, porém muitas geram falso positivos na detecção do Virus/Malware.

Vamos adicionar no arquivo de configuração que iremos abordar a seguir, dois novos repositórios adicionais de assinaturas para o ClamAV.

MailOrder: https://www.mailborder.com/
MalwareExpert: https://malware.expert/


Configuração das assinaturas para o Clamav:

Edite o arquivo user.conf :

nano /etc/clamav-unofficial-sigs/user.conf

Localize e remova o # das seguintes linhas:

malwarepatrol_free="yes"
malwarepatrol_list="clamav_basic" # clamav_basic or clamav_ext
malwarepatrol_product_code="8"
malwarepatrol_receipt_code="YOUR-RECEIPT-NUMBER"

Substitua YOUR-RECEIPT-NUMBER pelo código que guardou ao seguir os passos acima em MalwarePatrol Free .

Localize e remova # da linha:

securiteinfo_authorisation_signature="YOUR-SIGNATURE-NUMBER"

Substitua YOUR-SIGNATURE-NUMBER pelo código com 128 caracteres que guardou ao seguir os passos acima em SecuriteInfo Free

Agora, vamos adicionar as assinaturas adicionais.
localize e remova o # das linhas:

#declare -a additional_dbs=(
#ftp://ftp.example.net/pub/sigs.ndb
#http://www.example.org/sigs.ldb
#)

apague as linhas em negrito acima e cole no lugar :

http://cdn.malware.expert/malware.expert.ndb
http://cdn.malware.expert/malware.expert.hdb
http://cdn.malware.expert/malware.expert.ldb
http://cdn.malware.expert/malware.expert.fp
http://sigs.mailborder.com/sigwhitelist.ign2
http://sigs.mailborder.com/sanesecurity.ftm
http://sigs.mailborder.com/junk.ndb
http://sigs.mailborder.com/jurlbl.ndb
http://sigs.mailborder.com/phish.ndb
http://sigs.mailborder.com/rogue.hdb
http://sigs.mailborder.com/scam.ndb
http://sigs.mailborder.com/spamimg.hdb
http://sigs.mailborder.com/spamattach.hdb
http://sigs.mailborder.com/blurl.ndb
http://sigs.mailborder.com/foxhole_generic.cdb
http://sigs.mailborder.com/foxhole_filename.cdb
http://sigs.mailborder.com/malwarehash.hsb
http://sigs.mailborder.com/hackingteam.hsb
http://sigs.mailborder.com/winnow_malware.hdb
http://sigs.mailborder.com/winnow_malware_links.ndb
http://sigs.mailborder.com/winnow_extended_malware.hdb
http://sigs.mailborder.com/winnow.attachments.hdb
http://sigs.mailborder.com/winnow_bad_cw.hdb
http://sigs.mailborder.com/bofhland_cracked_URL.ndb
http://sigs.mailborder.com/bofhland_malware_URL.ndb
http://sigs.mailborder.com/bofhland_phishing_URL.ndb
http://sigs.mailborder.com/bofhland_malware_attach.hdb
http://sigs.mailborder.com/crdfam.clamav.hdb
http://sigs.mailborder.com/porcupine.ndb
http://sigs.mailborder.com/porcupine.hsb
http://sigs.mailborder.com/spam.ldb
http://sigs.mailborder.com/spear.ndb
http://sigs.mailborder.com/spearl.ndb
http://sigs.mailborder.com/foxhole_js.cdb

Salve o arquivo e saia do nano : Ctrl + x e Y

Execute o Script abaixo para baixar pela primeira vez todas as assinaturas e finalizar algumas configurações. Este processo pode demorar um pouco na primeira vez, aguarde até o final .

/usr/local/sbin/clamav-unofficial-sigs.sh --force

O Script a seguir irá instalar algumas configurações relativas ao clamav-unofficial-sigs para o logrotate:

/usr/local/sbin/clamav-unofficial-sigs.sh --install-logrotate
/usr/local/sbin/clamav-unofficial-sigs.sh --install-man

O Script a seguir irá configurar o cron para atualizar suas assinaturas diariamente:

/usr/local/sbin/clamav-unofficial-sigs.sh --install-cron

Com estas novas assinaturas, a detecção de Virus, Malware, Trojan, Phishing … em seu servidor será muito mais eficiente.

Como instalar o Redis e Redis PHP em servidores com cPanel e EasyApache 4

O Redis , ( Remote Dictionary Server ) é um banco de dados não relacional NoSQL capaz de armazenar dados no formato chave-valor(Key-value).

Seguindo os passos de outros bancos de dados NoSQL, como Cassandra, CouchDB e MongoDB, o Redis permite que o usuário armazene grandes quantidades de dados sem os limites de um banco de dados relacional.
Atualmente quase todas as linguagens, incluindo PHP, têm ligações Redis.

Neste guia, vamos abordar a instalação do servidor Redis e a extensão PHP Redis em servidores baseados em cPanel, para que você possa usar o Redis como um back-end de cache para seu WordPress, Laravel, Drupal ou qualquer outro aplicativo baseado em PHP.

Instalando o Redis:

para CentOS 6/RHEL 6

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum -y install redis --enablerepo=remi --disableplugin=priorities
chkconfig redis on
service redis start

para CentOS 7/RHEL 7

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install redis --enablerepo=remi --disableplugin=priorities
systemctl enable redis
systemctl start redis

Instalando a extensão PHP do Redis PHP em todas as versões PHP disponíveis no servidor.

Importante: Copie e cole todo o bloco abaixo em sua sessão SSH, (não copie e cole linha a linha)

for phpver in $(ls -1 /opt/cpanel/ |grep ea-php | sed 's/ea-php//g') ; do
cd ~
wget -O redis.tgz https://pecl.php.net/get/redis
tar -xvf redis.tgz
cd ~/redis* || exit
/opt/cpanel/ea-php"$phpver"/root/usr/bin/phpize
./configure --with-php-config=/opt/cpanel/ea-php"$phpver"/root/usr/bin/php-config
make clean && make install
echo 'extension=redis.so' > /opt/cpanel/ea-php"$phpver"/root/etc/php.d/redis.ini
rm -rf ~/redis*
done

Restart Apache e PHP Fpm

/scripts/restartsrv_httpd
/scripts/restartsrv_apache_php_fpm

Verifique se a extensão PHP do Redis está instalada em cada versão PHP instalada

Importante: Copie e cole todo o bloco abaixo em sua sessão SSH, (não copie e cole linha a linha)

for phpver in $(ls -1 /opt/cpanel/ |grep php | sed 's/ea-php//g') ; do
echo "PHP $phpver" ; /opt/cpanel/ea-php$phpver/root/usr/bin/php -i |grep "Redis Support"
done

O resultado deverá ser algo como:

PHP 56
Redis Support => enabled
PHP 70
Redis Support => enabled
PHP 71
Redis Support => enabled
PHP 72
Redis Support => enabled

Bom proveito !!

Como habilitar o open_basedir com suPHP no CWP – Centos WebPanel

A proteção open_basedir do PHP impede que os usuários acessem arquivos fora de seu diretório home através de scripts php e acessem arquivos do sistema ou de outros usuários. O mais importante é impedir que scripts maliciosos acessem informações importantes.

O CentOS WebPanel usa o suPHP por padrão, portanto, o open_basedir não pode ser habilitado por meio do apache vhost ou pelo arquivo .htaccess com as opções: php_admin_value open_basedir.

Primeira opção – Habilitar open_basedir de forma global para todos as contas de usuários no CentOS WebPanel.

touch /usr/local/php/php.d/openbasedir.ini
echo "open_basedir = /home:/tmp:/var/tmp:/usr/local/lib/php/" > /usr/local/php/php.d/openbasedir.ini
service httpd restart

Segunda opção – Habilitar open_basedir por usuário

  • Crie o arquivo php.ini em public_html do usuário e insira
open_basedir = /home/username:/tmp:/var/tmp:/usr/local/lib/php/

**Substitua username pelo nome do usuário (Ver em List Accounts em seu Painel).

Como Otimizar o Apache no CentOS 7 com CentOS WebPanel

O Apache é um servidor web de código aberto poderoso, projetado para fornecer um equilíbrio de flexibilidade, portabilidade e desempenho. A otimização do Apache é uma tarefa importante para todo administrador de sistema.

Personalizando algumas configurações do Apache, é possível melhorar o desempenho sem adicionar hardware adicional, como RAM, CPU, etc.

Este post descreve várias opções de configuração do Apache que podem ser usadas para melhorar o desempenho do Apache sem adicionar recursos de hardware adicionais ao seu servidor.

Estas sugestões de configuração podem ser aplicadas a qualquer servidor executando o Apache 2.xx. Para simplificar a explicação, abaixo vamos abordar um servidor CentOS 7 com o Painel CentOS Web Panel .

Se não sabe onde está o httpd.conf de seu servidor web, sugiro utilizar o comando Locate. Veja Como instalar o Locate.

No CentOS 7 com Painel CentOS WebPanel edite o arquivo httpd.conf .

Nota: Caso não encontre as opções abaixo, você pode seguramente adicionar os valores após a ultima linha do seu arquivo httpd.conf

nano /usr/local/apache/conf/httpd.conf

MaxKeepAliveRequests

MaxKeepAliveRequests é o número máximo de solicitações a serem atendidas em uma conexão TCP. Esta função limita o número de solicitações permitidas por conexão. Se estiver definido como 0 (ou não definidas no arquivo), serão permitidas solicitações ilimitadas.

Mantenha essa configuração com um valor alto para o desempenho máximo do servidor.

O valor recomendado de MaxKeepAliveRequests é 500.

MaxKeepAliveRequests 500

KeepAliveTimeout

KeepAliveTimeout define o número de segundos que o Apache irá aguardar pela nova solicitação do cliente conectado, antes de fechar a conexão. (Uma vez que o servidor recebe uma requisição, a diretiva Timeout se aplica.)

O KeepAliveTimeout recomendado pode estar entre 1 a 5.

KeepAliveTimeout 5

KeepAlive

KeepAlive define se o servidor permite mais de uma solicitação por conexão. Ele pode ser usado para impedir que qualquer cliente consuma muitos dos recursos do servidor.

Por padrão, o KeepAlive está desabilitado no CentOS 7.
Uma vez que o servidor Apache está recebendo solicitações de centenas e milhares de IPs de uma só vez, essa configuração deve estar ativada.

KeepAlive On

DNS Lookups

Um grande motivo para a lentidão do servidor web Apache é o tempo necessário para realizar pesquisas de DNS. Se a opção HostnameLookups estiver on, o Apache tentará registrar o nome completo do host de cada conexão do cliente de entrada no arquivo access.log. Resolver cada nome irá demandar um pedaço significativo de tempo.

Por padrão, HostnameLookups está desativado no Apache. De qualquer forma utilize

HostnameLookups Off

Configurando MPM Prefork

O módulo MPM (Módulo de Multi-Processamento) implementa um servidor web sem encadeamento e pré-bifurcado. O Apache trabalha como padrão com o MPM Prefork. Existem ainda outros MPM como ITK , WORKER, EVENT que não iremos abordar neste post. O MPM Prefork é o mais utilizados por SysAdmins por conta de sua compatibilidade com os mais diversos hardwares, sistemas e eslabilidade.

Abaixo vamos abordar como melhorar o desempenho do Apache utilizando o módulo Apache MPM Prefork e explicar cada uma das opções:

Se você utiliza o Apache com o CentOS 7 e CentOS Web Panel, edite o arquivo httpd.conf

nano /usr/local/apache/conf/httpd.conf

localize e descomente a linha abaixo de “Server-pool management (MPM specific)” removendo o # :

Include conf/extra/httpd-mpm.conf

Agora vamos editar o arquivo httpd-mpm.conf. Porém, antes de fazer alterações, recomendo fazer um backup do arquivo:

cp /usr/local/apache/conf/extra/httpd-mpm.conf /usr/local/apache/conf/extra/httpd-mpm.conf.backup

Edite o arquivo httpd-mpm.conf , localize e substitua os valores dentro de “IfModule mpm_prefork_module

    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      150
    MaxConnectionsPerChild 3000

StartServers: define o número de processos do servidor filho, criados na inicialização. É uma boa ideia aumentar esse número em um servidor de alta carga, para que o servidor esteja pronto para lidar com muitas conexões.

MinSpareServers: define o número mínimo de processos do servidor filho ocioso. Esse valor precisará ser ajustado para servidores de alta carga.

MaxSpareServers: define o número máximo de processos do servidor filho ocioso. Quando houver mais processos do servidor filho ociosos do que os definidos pelo MaxSpareServers, o processo ocioso será eliminado.

MaxRequestWorkers: define o número máximo de solicitações simultâneas que o Apache irá tratar. Quando esse limite for atingido, qualquer outra tentativa de conexão será enfileirada.

Nota: Talvez o item de hardware mais crítico a ser levado em consideração seja a quantidade de RAM alocada para cada processo do Apache. Embora não seja possível controlar o uso diretamente, você pode restringir o número de processos filho por meio da diretiva MaxRequestWorkers (anteriormente conhecida como MaxClients no Apache 2.2), o que colocará limites no uso da RAM pelo Apache.

MaxRequestsPerChild: esta diretiva define quantas solicitações um processo filho manipulará antes de finalizar. Quando o limite for atingido, o processo filho morrerá.

Nota: Se este valor for 0, o processo nunca morrerá, obviamente consumindo mais recurso do servidor.

Conclusão

Configurar o Apache para o máximo desempenho é muito fácil. Porém, em servidores com alto tráfego sejrá necessário otimizar as configurações aqui tratadas para um resultado excelente.

Você pode experimentar as várias opções disponíveis e medir o desempenho do servidor da Web com ferramentas como ab e httperf.

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

[[email protected] ~]# 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

[[email protected] ~]#  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

Importante: Alguns firewalls podem bloquear o teste, trazendo resultados de Download e Upload 00 Mbit/s . Neste caso sugiro pausar o firewall ou descobrir a porta utilizada pelo Speedtest para conexão.

Abaixo segue a imagem do meu teste de velocidade

Enable Notifications    Ok No thanks