MYCSS

Показ дописів із міткою pfsence. Показати всі дописи
Показ дописів із міткою pfsence. Показати всі дописи

2025-12-24

pfSense + HAProxy + ACME: HTTP-01 validation without using port 80

Вступ

У багатьох інсталяціях pfSense використовується не лише як firewall, а і як точка термінації HTTPS для внутрішніх вебсервісів. Типовий стек виглядає так:
  • pfSense - firewall та reverse-proxy
  • HAProxy - маршрутизація HTTP/HTTPS трафіку
  • ACME (Let’s Encrypt) - автоматична генерація HTTPS сертифікатів
  • Внутрішні вебсервери - працюють по HTTP у локальній мережі

У цій публікації як розгляну як коректно пройти ACME HTTP-01 валідацію, коли порт 80 вже зайнятий HAProxy, без зупинки сервісів і без DNS-01.


2021-05-24

Нотатка для себе. CARP monitoring script pfsense.

Маю два сервери pfsense (2.5.1-RELEASE ) у різних віртуальних машинах з налаштованими Proxy сервер - Squid, та Virtual IP type CARP.

Virtual IP type CARP.

Задача мати на напоготові резервний Proxy сервер у випадку коли ведуться роботи на одному з гіпервізорів. 

Для цього існує пункт налаштування "Squid General Settings/


pfSense Proxy Server - CARP Status VIP

2019-05-03

pfSense email update notification about packages

Є задача отримувати на пошту результати періодичної перевірки застарілих застосунків що встановлені додатково до pfSense на кшталт squid, pfBlockerNG ...

Рішення:

1. Створюємо Email Report, додаємо опис, налаштовуємо періодичність, зберігаємо.
2. Повертаємося до редагування щойно створеного  Email Report, і додаємо команду: '/usr/local/sbin/pfSense-upgrade -c', зберігаємо.


Email Report pfSense-upgrade -c



За матеріалами:

2019-02-28

pfSense remove empty password from certificates pkcs12

Коли у pfSense експортуєш сертифікат користувача у форматі pkcs12, наприклад для використання авторизації WiFi EAP то у він експортується захищеним паролем котрий є пустим.

Але деякі мобільні пристрої не можуть імпортувати сертифікати з таким пустим паролем, він мусить бути.
Пароль мусить бути

Тому можна перекодувати .p12 такими командами

openssl pkcs12 -in userz.p12 -nodes -out temp.pem
openssl pkcs12 -export  -in temp.pem  -out userz-p.p12
rm temp.pem

Де:  userz.p12 - вхідний файл, userz-p.p12 - вихідний файл з паролем
На перший запит пароля вводимо Enter, на інші необхідний новий відомий Вам пароль.

Запити паролів

2017-11-25

Нотатка. pfsense, перевірка таблиці pf коли пакунок pfBlockerNG не оновився

Використовуючи pfsense, я налаштував пакунок pfBlockerNG, для обмеження підключень до певних сервісів тільки з відомих країн.
Одного разу виявив що підключення стали заблоковані. Після аналізу з'ясував, що сервер перезавантажився і доступ не було надано так як таблиці доступу (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

2017-11-22

Нотатка. pfsense. DNS views для різних локальних мереж

Так сталося що потрібно було для різних мереж видавати різну адресу для одного і того запису у DNS сервері.
Знаючи що у BIND це можливо робити за допомогою видів, почав шукати таку можливість у pfsense.
pfsense використовує один з варіантів як DNS resolver що є програмою unbound. Читаючи документацію до unbound, знайшов розділ  View Options.
В інтерфейсі GUI pfsense DNS resolver, такої функції не має, але є можливість додати свої значення до unbound.conf (Show Custom Options).
Так додавши такі налаштування:
server:
access-control-view: 192.168.9.100/32 testview
view:
name: "testview"
local-zone: "local.lan" static
local-data: "test.local.lan. 90 IN A 10.10.10.10"
local-zone: "100.9.168.192.in-addr.arpa" typetransparent 
Ми для клієнта локальної мережі 192.168.9.100 створили testview, і значенню імені "test.local.lan" перевизначили адресу на 10.10.10.10.
додавання View Options у DNS resolver pfsense
 Подяка за форуму за те що вказали необхідність додати рядок "server:" на початку, без нього видавало помилку конфігураційного файлу.

2017-09-14

pfSence з зовнішнім ДБЖ APC, APCUPSD, SNMP, PowerChute Business Edition


Використовується спільне ДБЖ фірми APC by Schneider Electric, модель Smart-UPS 750, між двома серверами.
APC Smart-UPS 750VA LCD RM 2U (SMT750RMI2U)
Головний сервер це гіпервізор Microsoft  HV-Server 2016, підлеглий це сервер маршрутизатор з системою pfSence.
Для керуванням ДБЖ встановлено програму PowerChute Business Edition (9.2.0.604), для керування підлеглим сервером використовується протокол SNMP.

2017-09-13

pfSence, Squid proxy, deny acces to DMZ networks

Якщо використовувати разом з pfSence модуль Squid proxy server то існує можливість потрапляти користувачам до деяких DMZ локальних мереж.
Використовуючи локальні адреси роутера але через процес squid.
Як вихід додав до дозвіл до DMZ мережі тільки спеціальному користувачу  який пройде автентифікацію на у проксі сервері, якщо така (proxy_auth) використовується.
Для цього у Package/Proxy Server: General Settings/General , натиснути "Show Advanced Features" і у розділі
Custom Options (After Auth) додаю:
acl BlockedHost dst 10.0.0.0/8
acl SysopUser proxy_auth sysopuser
http_access allow BlockedHost SysopUser
http_access deny BlockedHost  

Де "10.0.0.0/8" - локальна мережа з DMZ, а "sysopuser" ім'я користувача котрому дозволено доступ після автентифікації до цієїї мережі.

Proxy Server, Advanced Features


Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready