antiblock
Elveron
  • Chatbox

    You don't have permission to chat.
    Load More
Sign in to follow this  
Dynamic Things

[How To][Unix Cron+Apache+PHP] IP Blacklist

1 post in this topic

venho deixar aqui mais um tópico, desta vez vai ser como bloquear automaticamente uma lista de ips utilizando o cron e o php.

Para começar vamos podem copiar o seguinte:

<?php
// Lista de Blacklist IP's
$blacklist 	= "https://www.dynamic-things.ga/exemplo/blacklist.txt";

// .htaccess apache file
$htac = rtrim($_SERVER['DOCUMENT_ROOT'], "/ ")."/.htaccess";

// Separator
$line 	= "## BLACKLIST IP UPDATED ##";

$data = @file_get_contents($blacklist);
if ($data === false || !$data) die ("<font color='red'><b>Erro!</b></font> Não foi encontrado nenhum ficheiro com o nome: $blacklist");

$htaccess = @file_get_contents($htac);
if ($htaccess === false) die ("<font color='red'><b>Erro!</b></font> Não foi encontrado nenhum ficheiro com o nome: $htac no diretorio www.");

$htaccess = trim($htaccess);
if (stripos($htaccess, $line) !== false) $htaccess = trim(substr($htaccess, 0, stripos($htaccess, $line)));
if (stripos($data, "# Copyright")) $data = substr($data, 0, strripos($data, "# Copyright")) . substr($data, strripos($data, "##############")+16);
$htaccess .= "\n\n\n" . $line . "\n\n" . $data;

$htaccess = trim($htaccess) . "\n\n";


$res = file_put_contents($htac, $htaccess);

if ($res === false) die ("<font color='red'><b>Error!</b></font> Não foi possivel escrever a blacklist de ips no ficheiro: $htac no diretorio www da tua hospedagem. É necessario mudares as permissões do ficheiro para 0777 (comando: chmod 0777 $htac)");
else die ("<font color='green'><b>Ficheiro .htaccess atualizado com sucesso.</b></font><br>Data de atualização: " . date("r"));
?>

vamos criar um novo arquivo com o nome a vossa escolha exemplo: blacklist.php e colam o código acima copiado, salvam o ficheiro. Pronto.

Agora vamos a parte do cron

para adicionar-mos uma cron para fazer que o nosso ficheiro blacklist.php é corrido uma vez a cada meia hora.

exemplo:

30 * * * * /usr/bin/php /var/www/public_html/blacklist.php

Se não tiveres o ficheiro .htaccess não vai funcionar :Kappa:

Share this post


Link to post
Share on other sites
antiblock
Cyphriun

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this