Найти в Дзене
Гусев Александр

Добавляем в Fail2ban сопоставление стран и ip для Issabel PBX

Помечаем заблокированные IP-адреса fail2ban страной к которой он принадлежит, в параметре fail2ban Banned IP Issabel PBX

Сегодня я хочу поделиться с вами тем, что мне показалось очень полезным.

Помечаем заблокированные IP-адреса fail2ban страной к которой он принадлежит, в параметре fail2ban Banned IP Issabel PBX

GEO IP Fail2ban
GEO IP Fail2ban

Сначала мы загрузим сам файл

geoiploc.php

в консоле вводим и переходим в папку

cd /var/www/html/modules/sec_fb_banned/

скачиваем сам файл

wget www.chir.ag/projects/geoiploc/autogen/geoiploc.tar.gz

затем распаковываем его

tar xvf geoiploc.tar.gz

Теперь мы изменяем файл, который находится в той же папке index.php

mcedit index.php

Ищем строку:

$oGrid->setURL($url);

под этой строкой вставляем (подключаем только что распакованную папку)

include("geoiploc.php");

Затем ищем

$arrColumns = array($button_eliminar,tr("Jail"),tr("IP"));

И меняем его на:

$arrColumns = array($button_eliminar,tr("IP"),tr("Jail"),_tr("Country"));

Здесь мы добавляем Country колонку на и слегка меняем их порядок (IP, цепочка, страна),

Ищем следующее:

if( is_array($arrResult) && $total>0 ){
foreach($arrResult as $key => $value){
$arrTmp[0] = "<input type='checkbox' name='".$value['id']."' id='".$value['id']."'>";
$arrTmp[1] = $value['jail'];
$arrTmp[2] = $value['ip'];
$arrData[] = $arrTmp;
}
}

И меняем его на:

if( is_array($arrResult) && $total>0 ){
foreach($arrResult as $key => $value){
$ip = $value['ip'];
$region = (getCountryFromIP($ip, " NamE"));
$arrTmp[0] = "<input type='checkbox' name='".$value['id']."' id='".$value['id']."'>";
$arrTmp[2] = $value['jail'];
$arrTmp[1] = $value['ip'];
$arrTmp[3] = $region;
$arrData[] = $arrTmp;
}
}

Количество записей отображающихся на текущей странице можно так же поправить тут $limit = 20; где выставляем нужное нам количество записей на одной странице.

Сохраняем и выходим.

Тут описан лишь один из методов отображения страны блокировки.