Рубрика: *nix

MacOS QuickLook и всякие файлы

ставим QLColorCode (brew install qlcolorcode), снимаем метку карантина, сраная макось бережет нас, даже когда не нужно:

sudo xattr -d com.apple.quarantine ~/Library/QuickLook/QLColorCode.qlgenerator

получаем MD-ContentType, для чего есть команда mdls (man mdls)

mdls -name kMDItemContentType some.file.ext

которая выдаст что-то вроде:

kMDItemContentType = "dyn.ah62d4rv4ge80s52"

запихиваем в Info.plist QLColorCode, ~/Library/QuickLook/QLColorCode.qlgenerator/Contents/Info.plist в массив открываемых типов, найти просто, куча строк со знакомыми названиями, вроде:

<string>public.ruby-script</string>
<string>public.yaml</string>

Добавляем свой:

<string>dyn.ah62d4rv4ge80s52</string>

перезапускаем Finder, все должно взлететь

P.S.

Еще крутые QL невозбранно подглядываются на:

Quick Look Plugins Awesome

Rocky Linux 8.4 Open vSwitch

Прикручивать к системе буду через network-scripts, хоть и legacy, но просто, быстро и без бубна. А NetworkManager вообще выключу к х.ям. И вообще это заметка для себя, потому что OVSDHCPINTERFACES и OVSBOOTPROTO как-то не сразу обнаружилось, а надо было.

Устанавливаем пакеты, в два этапа

dnf install -y centos-release-nfv-openvswitch
dnf install -y network-scripts openvswitch2.13

Запускаем OpenVSwitch

systemctl enable --now openvswitch

Добавляем OVS свитч ovs-br0, порт в него добавим позже, иначе отвалится сеть

ovs-vsctl add-br ovs-br0

Создаем файлы конфигурации свитча

cat > /etc/sysconfig/network-scripts/ifcfg-ovs-br0 << EOF
DEVICE=ovs-br0
BOOTPROTO=dhcp 
ONBOOT=yes
TYPE=OVSBridge
PEERDNS=yes
IPV6INIT=no
# Static IP
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DNS2=1.1.1.1
#Or DHCP Config, BOOTPROTO должно быть none
OVSBOOTPROTO=dhcp
OVSDHCPINTERFACES=enp0s3
EOF

И его порта,

cat > /etc/sysconfig/network-scripts/ifcfg-enp0s3 << EOF
DEVICE=enp0s3
ONBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=ovs-br0
EOF

Выключаем NetworkManager и заводим sys-v скрипты

systemctl disable NetworkManager
systemctl enable network

Вот тут кончится сеть или перезагружать компьютер через минутку (shutdown -r +1)

ovs-vsctl add-port ovs-br0 enp0s3

или выполнить в скрипте

systemctl stop NetworkManager
systemctl start network

Ну а дальше:
https://habr.com/ru/post/242741/

DHCP client без default GW

Чтобы dhclient получал default route только с одного интерфейса, делаем хук в
/etc/dhcp/dhclient-enter-hooks.d
такого содержания:

#!/bin/sh
INTERFACE_DEFAULT_ROUTE="eth0"
case "$reason" in
    BOUND|RENEW|REBIND|REBOOT|TIMEOUT)
    if [ ${interface} != $INTERFACE_DEFAULT_ROUTE ]; then
        unset new_routers
    fi
      ;;
esac

после чего основной шлюз будет ловиться только у интерфейса INTERFACE_DEFAULT_ROUTE
и не надо костыльно править client.conf как все советуют.

Прячем виртуальный хост в малиновый пирог

МагияПро OpenVPN написано уже довольно дофига. И даже мной. Но вот возникла необходимость сделать ВЖУХ.


Итак:
Сервер на Raspberry-pi, eth0 в мост с tap1
Клиент на libvirt хост, VPN поднимает хост, отдает мостом (br1 tap1) гостю. Гость прозрачно сидит в локальной сети, про VPN не знает.
Можно отключить гостю virbr0, тогда он еще и в интернет ходить будет через впн. Такая вот петрушка.
Имеем — без малинки сервера нет, но малинка сама по себе не знает откуда он берется, изучать её на в другом месте или при выключенном VPN-клиенте бессмыслительно. Еще логи в /dev/null переправить и предусмотреть аварийное выключение VPN клиента.
А еще порт понестандартнее и ваще огонь.
Конфиги чуть внизу.
Читать далее

OpenOCD & OSX & FTDI-CoLink

Если установлены драйвера FTDI VCP (Virtual Com Port) OpenOCD к Colink не подцепится — канал A уже используется.
Или выгрузить кекст или поправить
/System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist
на предмет комментирования секции подключения канала А:

                <key>FT2232C_A</key>
                <dict>
                        <key>CFBundleIdentifier</key>
                        <string>com.FTDI.driver.FTDIUSBSerialDriver</string>
                        <key>IOClass</key>
                        <string>FTDIUSBSerialDriver</string>
                        <key>IOProviderClass</key>
                        <string>IOUSBInterface</string>
                        <key>bConfigurationValue</key>
                        <integer>1</integer>
                        <key>bInterfaceNumber</key>
                        <integer>0</integer>
                        <key>idProduct</key>
                        <integer>24592</integer>
                        <key>idVendor</key>
                        <integer>1027</integer>
                </dict>

ну и перезагрузить кекст.

OpenSSL self-signed cert

Выжимка из http://www.akadia.com/services/ssh_test_certificate.html

Создаем ключ:

openssl genrsa -out server.key 1024

Создаем CSR (Запрос на подпись сертификата)

openssl req -new -key server.key -out server.csr

В Common Name должно быть полное доменное имя, это важно.
Создаем самоподписанный сертификат:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Mikrotik PEAP & FreeRADIUS

Настройка EAP/PEAP у микротика несколько отличается от настроек обычной точки доступа, прежде всего тем, что Mikrotik сам может из сертификата и EAP сделать PEAP
Если же этого не требуется (например FreeRADIUS и сам вполне может справиться), то настройка сводится к:

  • Подключению RADIUS сервера (с service=wireless)
  • Определению Security-profile с
    • Authentication Types: WPA EAP/WPA2 EAP (authentication-types=wpa-eap,wpa2-eap)
    • EAP Accounting (radius-eap-accounting=yes)
    • EAP Methods: passthrough (eap-methods=passthrough)

Остальные шаманства — на RADIUS-сервере, хотя можно и без шаманств, в той же ubuntu-server все настроено из коробки, только clients.conf поправить и пользователей сделать.

Mikrotik hotspot Uptime-Limit

В догонку к предыдущему посту
Счетчик общей длительности сессий пользователя:

sqlcounter uptimecounter {
    counter-name = Uptime-Total
    check-name = Uptime-Limit
    reply-name = Session-Timeout
    sqlmod-inst = sql
    key = User-Name
    reset = never
    query = "SELECT ifnull(sum(time_to_sec(timediff(acctstoptime,acctstarttime))),0) FROM radacct WHERE username like '%{%k}'"
}

Подключить модуль в секции authorize
Аттрибут Uptime-Limit в стандартных справочниках есть, если что — добавить не сложно.
Время сессии в секундах.

Mikrotik hotspot + Radius + счетчики (трафика?)

Собсно ничего сложного в этом нет.
Настройка Radius+MySQL стандартна:

apt-get install freeradius freeradius-mysql mysql-server

добавить базу, залить таблички из /etc/freeradius/sql/mysql/schema.sql
подключаем базу к freeradius правя /etc/freeradius/sql.conf и раскомментируя загрузку модуля sql.conf в radiusd.conf
раскоментируем модуль sql в
/etc/freeradius/sites-enabled/default (или в том, что используется) в секциях authorize authenticate и прочих закомментированных местах (мануалов тысяча, даже чуть больше), все стандартно.

Читать далее