Encontrando e excluindo arquivos error_log
Bom dia a todos.
Quem trabalha com cPanel,DirectAdmin e/ou quaisquer outros tipos de servidores webs (bem configurados) sabem que quando um erro é gerado um log é automaticamente gerado.
Na maioria das vezes esse log é armazenado em um arquivo chamado error_log, quando não monitorado esse arquivo pode chegar a tamanhos astronômicos (+1GB).
Se você tiver muitas contas no servidor fazer isso manualmente é inviável, por isso utilizaremos o “FIND” para que faça o trabalho duro para nós.
Primeiramente vamos listar os arquivos (e testar o comando por precaução rs..)
1 |
find /home/*/public_html/ -type f -iname error_log -exec du -sh {} \; |
Após a execução do comando acima você deve ter um output semelhante ao abaixo
Tendo nosso comando validado é hora de executar a limpeza, para isso também utilizaremos o find para com um argumento final de exclusão.
1 |
find /home/*/public_html/ -type f -iname error_log -delete |
E prontinho, todos os arquivos error_log serão excluídos de forma automatizada poupando tempo.
Caso queira, também é possível que você faça isso através de uma Cron.
Nos servidores que administro eu configuro para que uma cron seja executada 1x a semana (Domingos).
Para isso basta você adicionar a seguinte linha a sua cron
1 |
* 21 * * 0 /bin/find /home/*/public_html/ -type f -iname error_log -delete > /dev/null 2>&1 |
Obs: Na cron acima ele realizará o processo de busca e exclusão todos os Domingos as 21:00.
Lembrando que você pode ajustá-la conforme sua necessidade.
Após adicionar a cron lembre-se de reiniciar o crond.
Como listar contas de e-mail no cPanel
A um tempo atrás eu precisava exportar os e-mails de um determinado domínio para que então pudesse importar em um sistema de AntiSpam (SpamExperts).
Dando uma pesquisada na internet encontrei um script bem simples e fácil de ser utilizado onde ele listará de maneira organizada todas as contas existentes no servidor (para todos os domínios).
Para utilizar o script basta criar um arquivo (ex: listar-contas.sh) e colar o conteúdo abaixo.
Após isso basta executar um bash listar-contas.sh , vale lembrar que é necessária permissão para executar o script.
Se quiser salvar o resultado em um arquivo de texto por exemplo basta executar bash listar-contas.sh >> arquivo.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#!/bin/bash OWNER=$@ KONTA=`ls -1A /var/cpanel/users/` count=1 for x in `echo -n "$KONTA"`;do wiersz=`grep -i ^dns /var/cpanel/users/"$x" |cut -d= -f2` DOMAIN[$count]=$wiersz count=$[$count+1] echo "Login: `echo "$x"`" for i in `echo "${DOMAIN[@]}" | sed 's/ /\n/g'`;do for n in ` ls -A /home/"$x"/mail/"$i"/ 2>/dev/null`;do if [ "$n" == "cur" ];then echo "$n" > /dev/null elif [ "$n" == "new" ];then echo "$n" > /dev/null elif [ "$n" == "tmp" ];then echo "$n" > /dev/null elif [ "$n" == "" ];then echo "$n" > /dev/null else echo "$n"@"$i" fi done done echo;echo; done |
Como alterar a porta de FTP no WHM/cPanel?
Ultimamente alguns servidores que administramos vem sofrendo com ataques de Botnets fazendo bruteforce na porta 21 (padrão ftp), como os ataques são automatizados e sempre na porta 21 uma das soluções que decidimos tomar é alterar a porta de comunicação do servidor FTP e bloquear a porta padrão em nosso firewall.
Se você está sofrendo com o mesmo tipo de problema e precisa alterar a porta padrão, basta seguir as informações abaixo onde explicaremos como alterar a porta padrão dos 2 servidores de FTP comuns nos servidores que rodam WHM/cPanel.
PURE-FTPD
Se você está utilizando o Pure-ftpd como servidor de FTP você precisará editar a configuração do Bind contidas em /etc/pure-ftpd.conf
1 2 |
# IP address/port to listen to (default=all IP and port 21). Bind 21 |
para qualquer valor desejado como no exemplo (233) abaixo
1 2 |
# IP address/port to listen to (default=all IP and port 21). Bind 233 |
PRO-FTPD
Se você está utilizando o ProFTPD então precisará editar a configuração Port contida no arquivo /etc/proftpd.conf
1 |
Port 21 |
para qualquer valor desejado como no exemplo (233) abaixo
1 |
Port 233 |
Feita as alterações basta você reiniciar o serviço do FTP para que as mesmas sejam aplicadas
1 |
/scripts/restartsrv_ftpserver |
Obs: Vale lembrar que é necessária a liberação da porta escolhida no seu firewall.
Como bloquear emails no exim/cpanel?
Se igual a mim você tem um sério e recorrente problema com SPAM por empresas enviando besteiras perguntando se você leu seu email anterior e que a “grande proposta” que eles fizeram antes ainda está disponível e bla bla bla..
Este tipo de SPAM é tão chato porque eles são tão insistente em obter resposta mas você simplesmente quer que eles desapareçam!!
Bem, agora você pode forçá-los a ir sumir para sempre, isto obviamente só funciona para empresas que estão enviando e-mails de seus próprios domínio em vez de contas do Gmail ou Hotmail genéricos, mas é muito eficaz já que nenhum e-mail desses domínios bloqueados não serão entregues a qualquer conta no seu servidor.
Eu pesquisei e encontrei alguns guias on-line mas foi realmente confuso, então eu pensei que eu iria criar o meu próprio guia detalhando como bloquear e-mails através de regras do Exim dentro do cPanel/WHM.
Siga o passo a passo abaixo:
Criando o arquivo de bloqueio
1.1- Crie o arquivo da blacklist (onde ficarão os domínios a serem bloqueados)
Obs: Você precisará de acesso ssh com permissões de root.
1 |
nano /etc/exim_blacklist |
Adicione os domínios que deseja bloquear, sempre um por linha.
1 2 3 |
dominio1.com.br dominio2.com dominio3.ru |
Obs: Sempre que adicionar um novo domínio na lista não se esqueça de reiniciar o Exim.
Configurando o Exim
Aqui é onde a mágica acontece, configuraremos o exim para capturar os domínios da lista criada acima e então ignorar todo e qualquer e-mail vindo dos domínios listados.
2.1 – Faça login em seu WHM , acesse Service Configuration >> Exim Configuration Manager e clique na aba Advanced Editor como mostra a imagem abaixo
Primeiro campo: domainlist exim_blacklist
Segundo campo: lsearch;/etc/exim_blacklist
2.2 – Desça a página e procure por um botão grande e Azul que diz + Add additional configuration setting
2.3 – Ao clicar no botão 2 campos aparecerão, no primeiro campo você deverá inserir a lista criada e na segunda o local onde o Exim deverá pesquisar os domínios a serem bloqueados.
2.4 – Desça um pouco a página e procure por um campo (grande) que diz “Section: PREROUTERS”, na caixa de texto que há abaixo insira as seguintes linhas:
1 2 3 4 5 6 |
reject_domains: driver = redirect # RBL Blacklist incoming hosts domains = +exim_blacklist allow_fail data = :fail: Connection rejected: SPAM source $domain is manually blacklisted |
3.- Desça a página até o final e clique no botão “Save” para salvar as configurações do item 2 e reiniciar o Exim.
Você pode adicionar quantos domínios desejar no arquivo /etc/exim_blacklist desde que se respeite a condição de um domínio por linha.
Sempre que realizar alteração no arquivo lembre-se de reiniciar o Exim (como precaução).
——————————————————————————–
Nos logs do Exim (/var/log/exim_mainlog) sempre que um e-mail de determinado domínio (da blacklist) for bloqueado gerará um log semelhante ao abaixo:
1 2 3 4 5 |
2017-05-28 09:58:01 H=xxxxxxxxxxx.com.br [yyy.yyy.yyy.yyy]:56567 sender verify fail for <nome@dominio.com.br>: Connection rejected: SPAM source xxxxxxxxxxx.com.br is manually blacklisted 2017-05-28 09:58:01 H=xxxxxxxxxxx.com.br [yyy.yyy.yyy.yyy]:56567 X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F=<nome@dominio.com.br> rejected RCPT <destinatario@dominio.com.br>: Sender verify failed 2017-05-28 09:58:02 H=xxxxxxxxxxx.com.br [yyy.yyy.yyy.yyy]:56567 Warning: "Detected session with all messages failed" 2017-05-28 09:58:02 H=xxxxxxxxxxx.com.br [yyy.yyy.yyy.yyy]:56567 Warning: "Increment slow_fail_block Ratelimit - xxxxxxxxxxx.com.br [yyy.yyy.yyy.yyy]:56567 because of all messages failed" 2017-05-28 09:58:02 SMTP connection from xxxxxxxxxxx.com.br [yyy.yyy.yyy.yyy]:56567 closed by QUIT |
Obs: Obviamente ocultei as informações de IPv4 e domínios.
CONCLUSÃO
Com a configuração acima todos os e-mails que correspondem aos domínios na lista serão ignorados, o remetente não vai saber, você não vai saber e você pode continuar o seu trabalho em total paz.
Instalando Graylog 2 no Debian 8
Nesse post veremos a instalação do Graylog 2. Mas o que é isso?! De forma resumida ele centraliza e armazena os logs da sua infraestrutura, possibilitando uma análise aprofundada, alarmes, notificações, histórico, gráficos e etc… isso tudo facilitando a sua vida ;)
Vamos começar a instalação, o ambiente utilizado foi:
1 2 3 4 5 |
SO: Debian GNU/Linux 8 Kernel: Linux debian 3.16.0-4-amd64 Graylog 2.2 MongoDB Elasticsearh 2.x |
Começamos adicionado repositório Backports do Debian, atualizando e fazendo upgrade em seguida reinicie o sistema.:
1 2 3 |
santos@graylog-BTI:~$ sudo echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list santos@graylog-BTI:~$ sudo apt-get update && sudo apt-get upgrade santos@graylog-BTI:~$ sudo reboot |
E instalamos alguns pré-requisitos adicionais:
1 |
santos@graylog-BTI:~$ sudo apt-get install apt-transport-https uuid-runtime pwgen curl |
O Graylog também faz uso do Java Headless, usamos o Backport:
1 |
santos@graylog-BTI:~$ sudo apt install -t jessie-backports openjdk-8-jre-headless ca-certificates-java |
Para o Graylog armazenar os logs, iremos instalar o MongoDB, para isso faça:
1 |
santos@graylog-BTI:~$ sudo apt-get install mongodb-server |
Instalaremos agora o Elastisearch, o Graylog na versão 2.x requer o Elastichsearch na versão 2.x para funcionar. Veja:
1 2 3 4 |
santos@graylog-BTI:/opt$ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - santos@graylog-BTI:/opt$ echo "deb https://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list deb santos@graylog-BTI:/opt$ sudo apt-get update && sudo apt-get install elasticsearch |
Finalizado a instalação do Elastisearch, vamos configura-lo:
1 |
root@graylog-BTI:/opt# nano /etc/elasticsearch/elasticsearch.yml |
Altere o seguinte parâmetro:
1 |
cluster.name: graylog |
Após a instalação, vamos recarregar as configurações, habilitar o serviço e iniciar o Elasticsearch:
1 2 3 |
santos@graylog-BTI:/opt# sudo systemctl daemon-reload santos@graylog-BTI:/opt# sudo systemctl enable elasticsearch.service santos@graylog-BTI:/opt# sudo systemctl restart elasticsearch.service |
Agora faremos a instalação, configuração do Graylog 2:
1 2 3 |
santos@graylog-BTI:/opt$ sudo wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb santos@graylog-BTI:/opt$ sudo dpkg -i graylog-2.2-repository_latest.deb santos@graylog-BTI:/opt$ sudo apt-get update && sudo apt-get install graylog-server |
Antes de iniciar o Graylog precisamos gerar duas senhas: Uma para o password_secret e outra para root_password_sha2, então rodaremos o seguinte comando
1 |
echo -n yourpassword | sha256sum |
Como exemplo usaremos a senha boteco para password_secret e admin para root_password_sha2, que fica dessa forma:
1 2 3 4 |
root@graylog-BTI:/opt# echo -n boteco | sha256sum f014ac9276709828f0265a799a7642b4399a9d4686ad65fcd8b10741cce97827 root@graylog-BTI:/opt# echo -n admin | sha256sum 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 |
Agora iremos copiar o hash gerado e iremos editar o arquivo de configuração /etc/graylog/server/server.conf. Vou reforçar aqui que essas senhas mostradas NÃO devem ser usadas em ambiente de produção, escolham senhas mais robustas!
Altere agora os seguintes parâmetros:
1 2 3 4 5 |
password_secret =f014ac9276709828f0265a799a7642b4399a9d4686ad65fcd8b10741cce97827 root_password_sha2 =8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 rest_listen_uri = http://192.168.0.11.:9000/api/ web_listen_uri = http://192.168.0.11:9000/ rest_transport_uri = http://192.168.0.11:9000/api/ |
Observação: O IP informado acima é da minha VM, portanto rode o comando ifconfig para verificar qual seu IP e não deixe com endereço localhost 127.0.0.1.
Recarregue as configurações, habilite e inicie o serviço:
1 2 3 |
santos@graylog-BTI:~$ sudo systemctl daemon-reload santos@graylog-BTI:~$ sudo systemctl enable graylog-server.service santos@graylog-BTI:~$ sudo systemctl start graylog-server.service |
Pronto! Agora basta acessar em seu navegador http:<IP-Graylog:9000> e terá essa tela:
Acesse usando o usuário padrão admin e a senha que criamos anteriormente admin e verá a tela de boas vindas:
Com isso finalizamos a instalação do Graylog 2, nos próximos post faremos algumas configurações no próprio servidor e também em hosts linux e windows para enviarem seus logs ao Graylog 2. Até mais ;)
Referências:
http://docs.graylog.org/en/2.2/pages/installation/os/debian.html#
https://packages.debian.org/jessie/java-runtime-headless
Como configurar VLAN no Ubuntu
Para você que possui apenas 1 uplink para seu servidor e precisa adicionar diversas redes eis como fazê-lo utilizando o Ubuntu Server.
Os passos são simples mas devem ser realizados com atenção para que nada saia errado, vale lembrar que a interface de seu switch deve estar configurada em Trunk para que a configuração possa funcionar corretamente.
Chega de bla bla bla e vamos ao que realmente interessa.
Em nossa configuração utilizaremos as VLAN’S ID’s: 120 (172.16.0.0/24) e 200 (192.168.1.0/24).
O que é um ataque DDoS?
Quem já teve problemas com seu website ou aplicação na web certamente já ouviu falar do termo “DdoS” de uma maneira nada agradável. Esses ataques são mais comuns do que se possa imaginar e, longe de afetarem apenas grandes empresas, podem tirar do ar websites e serviços de empresas menores e até usuários individuais.
O DdoS é um ataque de “negação de serviços distribuída”, ou seja, diversos computadores anteriormente infectados por hackers são acionados de modo remoto contra um alvo determinado pelo criminoso virtual, e a partir daí passam a gerar milhares ou milhões de requisições, até que tirem o serviço ou site do ar por sobrecarga ou excesso de tráfego.
Esses ataques obrigam as vítimas a reiniciar seus sistemas, suspendendo serviços temporariamente, ou obstruem a comunicação entre usuários e a vítima, gerando muita confusão e até desespero em alguns casos (ataques a sistemas bancários, por exemplo).
(mais…)