MYCSS

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

2021-05-16

Нотатка для себе. Hosting, Multple ISP, pf routing

Нотатка є віртуальна машина з FreeBSD v13, та двома інтерфейсами для vtnet0 (ISP1) так vtnet1 (ISP2).

Роль сервера - хостинг. Але ISP2 має швидкість 10Gbit/s, тому треба певні сайти віддавати через ISP1, інші через ISP2 з метою оптимізації.

rc.conf

#ISP1

ifconfig_vtnet0="inet 10.110.6.6  netmask 255.255.255.0"
defaultrouter="10.110.6.1"

ifconfig_vtnet0_ipv6="inet6 2105:1c00:7:1::6 prefixlen 64"
ipv6_defaultrouter="2105:1c00:7:1::1" #ISP2 ifconfig_vtnet1="inet 10.220.6.97 netmask 255.255.255.0"
ifconfig_vtnet1_ipv6="inet6 2001:10:10:10::97 prefixlen 64"

За замовчуванням трафік іде через vtnet0 (ISP1).
Для організації відповіді для запиту з інтерфейсу vtnet1 не через шлюз vtnet0, а через шлюз vtnet1 створено  правило для firewall pf.

pf.conf

ext_if1 = vtnet0
ext_gw1 = 10.110.6.1

ext_if2 = "vtnet1"
ext_gw2 = "10.220.6.1"
ext_gw2v6 = "2001:10:10:10::1"

#ipv4 reply-to
pass in on $ext_if2 reply-to ($ext_if2 $ext_gw2) inet from any to $ext_if2

#ipv6 reply-to pass in reply-to ($ext_if2 $ext_gw2v6) inet6 from !$ext_if2:network to $ext_if2. pass out route-to ($ext_if2 $ext_gw2v6) inet6 from $ext_if2 to !$ext_if2:network

2021-03-17

Нотатка. GIT пошук зміненіх файлів та переніс змінених файлів через архів

Задача створити архів з файлами що були зміненні.
Для введення проекту використовувався git тому всі зміни запротокольовані.

git log --oneline
633d17514 (tag: v3.3.0) Bump version to 3.3.0 (#15433)
e43532c9c Normalize locale files (#15434)
f1f96ebf0 Fix being able to import more than allowed number of follows (#15384)
4580129c9 New Crowdin updates (#15413)
ba748a83f Fix logo button style (#15428)
e89648574 Fix error when changing ACL on missing objects during suspension (#15420)
ba0b79fc5 Fix undefined method error when batch-removing statuses with ElasticSearch on (#15421)
7e6d3a7d9 Fix unfollow action button style (#15418)
b08d2d4f7 Fix media modal buttons not showing up on mobile (#15417)
4950e59cd Use existing FeaturedTag serializer and delete AccountFeaturedTag serializer (#15415)
de57efd05 Fix mentions not being deleted efficiently (#15416)
473abc35a Fix trying to privatize empty media attachments (#15414)
git diff --name-only 633d17514 4580129c9 > filelist.txt

2021-03-03

Нотатка. sociallogin of nextcloud use authentication via oauth2 from mastodon

Нотатка.
Задача - авторизуватися в nextcloud з використанням бази даних користувачів mastodon.
 

mastodon

Server mastodon - https://mastodon.lexxai.pp.ua
 
New Applications - https://mastodon.lexxai.pp.ua/settings/applications/new
Name: nextcloud
Application website: https://cloud.lexxai.pp.ua
Redirect URI: https://cloud.lexxai.pp.ua/apps/sociallogin/custom_oauth2/mastodon
Scopes: read:accounts


mastodon - new application oauth2

2021-02-09

Нотатка: Забезпечити безпечне мережеве з'єднання між двома офісами і віддаленим користувачем через OpenVPN

Задача

Забезпечити безпечне мережеве з'єднання між двома офісами і віддаленим користувачем.

Умови

  • Головний офіс (Office 1) має білій IPv4 до якого можуть підключатися клієнти, локальна мережа 10.0.1.0/24.
  • Віддалений офіс (Office 2) має підключення за NAT маршрутизатором, тому до нього підключитися не можливо за IPv4, але він може підключатися будь куди, локальна мережа 10.1.2.0/24.
  • Віддалений користувач за звичай за домашнім WiFi маршрутизатором з IPv4 та NAT, до нього підключитися не можливо за IPv4, але він може підключатися будь куди.
  • Офіси мають в локальний мережі програмний сервер маршрутизатор pfSense.

Вирішення

  • Підключити віддалений офіс (Office 2) до головного офісу (Office 1), за допомогою технології VPN.
  • Підключити віддаленого користувача до головного офісу (Office 1) та забезпечити доступ до локальної мережі обох офісів Office 1 та Office 2.

За даних умов вибирається VPN підключення на базі сервера OpenVPN, через підключення UDP IPv4.

Схематично план підключення зображено на малюку.

OpenVPN client - OpenVPN client

2021-01-31

Нотатки : Простий скрипт для wifi device tracker в OpenWRT : відсилання повідомлень до MQTT

Скрипт для ash сценарію в OpenWRT.
Пошук активних WiFi пристроїв за їх MAC адресою, і якщо такий є то надсилання повідомлення до MQTT брокера зі станом пристрою при зміні стану. А інший скрипт надсилає стан вже до Телеграм каналу..


#!/bin/sh

uUser1='00:13:33:44:11:77'
uUser2='00:3D:33:5D:11:39'
users="User1 User2"

next=

function publish()
{
 mosquitto_pub -t "$1" -m "$2" -r
}

#MAIN
sleep 120

for m in $users; do
  eval p${m}=0
done

while true; do
 for m in $users; do
  um=$(eval "echo \${u${m}}")
  us=$(iwinfo wlan0 assoclist | grep -m 1 -c $um )
  ps=$(eval "echo \${p${m}}")
  if [ "$us" -ne $ps ];then
   eval p${m}=$us
   if [ -n "$next" ];then
     publish "tele/wifi_$m/LWT" "$us"
   fi
  fi
 done
 next=1
 sleep 90
done

Так як масивів в ash не має, то приходиться використовувати eval для  симуляції віртуального масиву.

Створив версію для LUA: Перший код в LUA. Скрипт для роутера з OpenWRT. MQTT та Telegram статус підключених WiFi clients.


2021-01-23

Proxmox ACME DNS NSUPDATE letsencrypt.org


Завдання отримання letsencrypt.org сертифікату в Proxmox за перевіркою  динамічного оновлення запису в DNS за допомогою ключа tsig і власно контрольованого BIND сервера.
Це потрібно в тих ситуаціях коли доступ до web сервера обмежений для зовнішньої перевірки серверами letsencrypt.org при застосуванні стандартного методу: http-01 challenge.

tsig

tsig-keygen -a HMAC-SHA512 ns240 > ns240.key

ns240.key:

key "ns240" 
{ algorithm hmac-sha512;
  secret "VLv54K+dqSSk9lF75GKREQI8BT0ZYBs9BraQY3D/6f5b1Aw41NN86BwxRNATu7iDoEAiqTCUOk7B6SfxG7Q30A==";
};

BIND

named.conf:

key "ns240.key" {
 algorithm hmac-sha512;
secret "VLv54K+dqSSk9lF75GKREQI8BT0ZYBs9BraQY3D/6f5b1Aw41NN86BwxRNATu7iDoEAiqTCUOk7B6SfxG7Q30A==";
};
        
zone "lexxai.pp.ua"
{
type master;
file "/usr/local/etc/namedb/master/db.lexxai.pp.ua";
allow-query { any; };
update-policy {
grant ns240.key. name _acme-challenge.ns240.lexxai.pp.ua. TXT;
grant ns241.key. name _acme-challenge.ns241.lexxai.pp.ua. TXT;
};
};

PROXMOX

Proxmox ACME DNS plugin
NSUPDATE_SERVER=ns1.lexxai.pp.ua
NSUPDATE_KEY=/home/nskey/ns240.key
NSUPDATE_ZONE=lexxai.pp.ua
key path: /home/nskey/ns240.key
chown nobody:nogroup /home/nskey/ns240.key

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

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

ipv6 ready