Використовуючи pfsense, я налаштував пакунок pfBlockerNG, для обмеження підключень до певних сервісів тільки з відомих країн.
Одного разу виявив що підключення стали заблоковані. Після аналізу з'ясував, що сервер перезавантажився і доступ не було надано так як таблиці доступу (IP_COUNTRY_ALLOWED_NG) були пусті, а оновлення у мене налаштовано один раз на добу.
Тому щоб подібне не повторювалося додав скрипт (check_ng_tables.sh) котрий перевіряє кількість записів у таблиці, в випадку коли їх кількість менше чи критичне значення я форсую оновлення таблиць pfBlockerNG, і сповіщаю про це електронною поштою адміністратора.
/root/scripts/check_ng_tables.sh
Потім додав перевірку за розкладом кожні 5 хвилин.
Одного разу виявив що підключення стали заблоковані. Після аналізу з'ясував, що сервер перезавантажився і доступ не було надано так як таблиці доступу (IP_COUNTRY_ALLOWED_NG) були пусті, а оновлення у мене налаштовано один раз на добу.
Використання таблиці IP_COUNTRY_ALLOWED_NG у правилах |
Тому щоб подібне не повторювалося додав скрипт (check_ng_tables.sh) котрий перевіряє кількість записів у таблиці, в випадку коли їх кількість менше чи критичне значення я форсую оновлення таблиць pfBlockerNG, і сповіщаю про це електронною поштою адміністратора.
/root/scripts/check_ng_tables.sh
#!/bin/sh
cntlines=$(/sbin/pfctl -t IP_COUNTRY_ALLOWED_NG -T show | wc -l)
if [ $cntlines -le 100 ]
then
echo "count of pf table IP_COUNTRY_ALLOWED_NG is ($cntlines) less than 100, try reload pfblockerng.php"|/usr/local/bin/php /usr/local/bin/mail.php -s'[gw] IP_COUNTRY_ALLOWED_NG' postmaster@yourdomain.com
/usr/local/bin/php /usr/local/www/pfblockerng/pfblockerng.php cron >> /var/log/pfblockerng/pfblockerng.log 2>&1
fi
Потім додав перевірку за розкладом кожні 5 хвилин.
Додав перевірку таблиці за розкладом cron |
Немає коментарів:
Дописати коментар