19 квітня 2018 р.

FreeNAS, ZFS, User Quota, Samba

Task: Apply ZFS user quota to Smaba

Source:

zpool with samba user home folders: poolz2/smbhome

Allow request about quota for everyone:
zfs allow everyone userquota,userused poolz2/smbhome 

Set usrer quota 120G for domain user : DOMAIN\username
zfs set userquota@"DOMAIN\username"=120G poolz2/smbhome

Tune SAMBA,  /usr/local/etc/smb4.conf:
get quota command = /root/script/quota_get.sh %U

Reload SAMBA:
killall -HUP smbd 

Soulution:

Script for get quota data: /root/scripts/quota_get.sh
#!/bin/sh
rtype=$3
if [ "${rtype}" == -1 ]; then
 exit
fi
poolname="poolz2/smbhome"
username=$1
if [ ! -z  "$username" ]; then
 info=`zfs userspace -Hp ${poolname}  | grep -i ${username} `;
 usedbytes=`echo ${info}| awk '{ printf "%.f", $4/1024 };'`;
 quotabytes=`echo ${info}| awk '{ if ( $5 == "none" ) { print "0"} else { printf "%.f", $5/1024 }  };'`;
 if [ "$quotabytes" != 0 ]; then.
  echo 2 $usedbytes $quotabytes $quotabytes $usedbytes $quotabytes $quotabytes
 fi
fi
exit



15 березня 2018 р.

Нотатка для себе. FreeBSD, UPS, NUT.

Є сервер FreeBSD 11.1, ДБЖ (UPS) Cyber Power Systems CP1500AVRLCD.
Програма NUT  має підтримку даного пристою.

Підтримка програмою NUT ДБЖ  "Cyber Power Systems CP1500AVRLCD"
Пошук підключеного пристрою через USB.
#dmesg | grep usbus
ugen0.2: <CPS CP 1500C> at usbus0

13 березня 2018 р.

FreeBSD шифрування файлової системи ZFS з використанням віддалених ключів



Нотатка для себе.
Необхідно створити систему котра використовує шифрування дисків, zfs кореневу файлову систему, і для шифрування використовуються ключі що зберігаються на віддаленому сервері.

Моя система має 3 диски, один диск (Flash/SSD) завантажувальний з файловою системою ZFS (ZROOT). Та 2 диски для шифрованого zfs пулу котрі  повинні замінити собою перший диск для запису

На перший диск встановлено  було операційну систему FreeBSD 11.1 майстром встановлення з вибором ZFS Boot.

18 січня 2018 р.

pfSense install FreeBSD packages

Re: 2.3 - How to install other FreeBSD packages / repositories?
« Reply #7 on: August 01, 2016, 07:20:04 am »
This does work in pfSense 2.3.2:
1. Make sure "enabled" key is set to "yes" in /etc/pkg/FreeBSD.conf
2. Change "enabled: no" to "enabled: yes" in /usr/local/etc/pkg/repos/FreeBSD.conf
3. Change "enabled: no" to "enabled: yes" in /usr/local/etc/pkg/repos/pfSense.conf for FreeBSD repo
4. Now you're able to install packages from FreeBSD official repo

https://forum.pfsense.org/index.php?topic=109827.msg644067#msg644067

21 грудня 2017 р.

Нотатка. FreeNAS. Jails та VLAN

Використовуючи у FreeNAS ізольовані Jails для ізольованих служб, на-кшталт ownCloud, з'ясував що потрібно обов'язково визначати інтерфейс у налаштуванні відповідного jail  якщо мережевий інтерфейс є з VLAN і використовується VIMAGE .
файлі iface
Робити це треба не через графічний інтерфейс, а у файлі конфігурації відповідного jail, у файлі iface у теці /mnt/{ZFSPOOL}/jails/.{NAME_JAIL}.meta.
Після цього в графічному інтерфейсі можна побачити зміну значення NIC.
Advanced GUI jail
Після перезавантаження у мене почали іти пакети з jail через VLAN інтерфейс.

26 листопада 2017 р.

Нотатка. Віддалене керування живленням сервера через IPMI.

Стався випадок коли локальний сервер шлюз маршрутизатор вимкнувся. І що робити?
Віддалений доступ при цьому заблокований.
Тому на всяк такий випадок, до з'ясування причини вимкнення, налаштував віддалений моніторинг стану живлення через  IPMI, і у випадку якщо він вимкнутий запускаю команду ввімкнення.
Для керування використовую  внутрішній сервер з freebsd, встановлюю пакунок ipmitool, і створюю запит:
ipmitool -H 192.168.1.1 -U admin -P admin chassis power status
Chassis Power is on

Тепер формую скрип котрий за розкладом cron кожні 15 хв. буде перевіряти чи ввімкнений сервер.
#!/bin/sh
>state=$(/usr/local/bin/ipmitool -H 192.168.1.1 -U admin -P admin chassis power status| grep 'is off')
if [ ! -z "$state" ]
then
 /usr/local/bin/ipmitool -H 192.168.1.1 -U admin -P admin chassis power on | /usr/bin/logger -p user.notice -t "Power control [GW was off]".
fi

Якщо потрібне керування з операційної системи Windwos то потрібен пакунок з проекту http://ipmiutil.sourceforge.net, завантажую ipmiutil-3.0.7-win64.zip.

Статус:
ipmiutil.exe reset -n  -N 192.168.1.1 -U admin -P admin
Ввімкнення:
ipmiutil.exe reset -u  -N 192.168.1.1 -U admin -P admin
Для безпеки рекомендую на сторінці керуванням BMC сервера додати спеціального користувача:

Користувачі iKVM
Спеціальний користувач для керування живленням
І використовувати цього користувача у запитах замість admin.

Якщо після оновлленя Java у Вас не має поступу до ip-KVM

Час іде,  світ розвивається, і захищається. Тому Java принципово і глобально вирішило заборонити використання не надійні методи з'єднання та шифрування.
Так  як більшість IP-KVM використовують для підключення Java клієнти, а програмне забезпечення у IP-KVM не своєчасно оновлене, то у підключенні до сервера IP-KVM буде відмовлено за причини використання застарілого методу MDwithRSA.
Про відмовлення у з'єднанні
 Але якщо сильно треба, то за матеріалами Zhaojun's Blog,  то тимчасово можна відмінити це обмеження, відредагувавши файл "C:\Program Files (x86)\Java\jre1.8.0_151\lib\security\java.security" для версії Java 8 update 151.
Знайшовши файл рядок: jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024

Значення у файлі конфігурації
 І змінити можна закоментувати цей рядок, або придбати MD5.
Змінення файлу конфігурації

Інші посилання : Если после обновления Java не работает ip-KVM

25 листопада 2017 р.

Нотатка. 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

22 листопада 2017 р.

Нотатка. 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:" на початку, без нього видавало помилку конфігураційного файлу.

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

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

ipv6 ready