LINUX.ORG.RU

Избранные сообщения mord0d

Уведомление о подключении по sftp/scp

 , , ,

Господа, всем доброго настроения.
Не пойму как решить задачу. Гугление, к сожалению, не поспособствовало, за сим прошу помощи у коллективного сознательного.

Имеется скрипт-уведомлялка, который говорит Telegram-боту отправить сообщение определённому абоненту при авторизации на сервере по SSH.
Лежит скрипт по пути /etc/profile.d/script.sh, выглядит следующим образом:

#!/bin/bash
BOT_TOKEN=token
CHAT_ID=id
USER_IP=$(echo $SSH_CLIENT | awk '{ print $1}')
BOT_MESSAGE="🔐 $(hostname): $(whoami) is authorized from $USER_IP"
curl -X POST -d "text=$BOT_MESSAGE" 'https://api.telegram.org/bot'$BOT_TOKEN'/sendMessage?chat_id='$CHAT_ID'' &>/dev/null

Проблема заключается в том, что работает он только при подключении по, непосредственно, интерактивному SSH. Если подключиться через условный WinSCP - уведомления не будет, как и если просто скопировать файл на сервер через scp.

Интуиция подсказывает, что заковыка связана с понятиями «интерактивности/неинтерактивности» устанавливаемой сессии, и, соответственно, в местоположении скрипта, но вот знаний, чтобы понять, как описанную проблему исправить – не хватает.

Подскажите, пожалуйста, что именно нужно сделать, чтобы получать желаемое уведомление при любого типа подключении на условный «22 порт», вне зависимости от того, было ли это SSH или SFTP?

takamushi
()

обработка запросов с одного IP, даже если один в ожидание ответа

 , , , ,

Не могу сделать балансировку если запрос приходить в одного IP-адреса. Проблема такая: заходить первый запрос, но отработка этого запроса занимает 30 секунд, из-за API. nginx не должен закрыть этот запрос, он должен ждать пока сервер не ответить. в это время заходить еще по очереди 10 запросов с того же IP-адреса, но их обработка не занимает больше 0,5 секунды. но из-за того что там один запрос все еще обрабатывается, остальные 10 запросов ждет этого.

Я подняла nginx с двумя серверами. Хочу сделать так, если первый сервер все еще обрабатывает запрос, остальные запросы были всегда направлены на второй. Когда первый сервер закончить обработку и вернет ответ, этот сервер станет доступным и можно будет туда отправлять запросы. Вроде сделала, когда с двух IP-адрес приходить запросы, тогда вроде все срабатывает. Но когда с одного IP-адреса приходить, тогда застывает, пока не обработает запрос с задержкой. Прошу помочь!

Это конфиг с nginx:

events {
    worker_connections 1024;
}
http {    
    client_max_body_size 100M;
    client_body_buffer_size 100M;
    # limit_conn_zone $binary_remote_addr zone=halyk_bank_identification:10m;

    include       mime.types;
    default_type  application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" '
		              ' $request_length $upstream_addr $upstream_response_time';

    access_log /etc/nginx/access.log main;
    error_log /etc/nginx/error.log debug;

    upstream identification {
        least_conn;
        
        server identification_actions-1:5017 max_fails=1 fail_timeout=10s;
        server identification_actions-2:5017 max_fails=1 fail_timeout=10s;
    }

    server {
        listen 80;
        server_name localhost;

        access_log /etc/nginx/access.log main;

        location /webhook {

            proxy_connect_timeout 3s;
            proxy_read_timeout 10s;

            proxy_pass http://identification;
            
            proxy_set_header Content-Type application/json;

            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Content-Length $content_length;
            proxy_set_header X-Server-Name $host;

            proxy_pass_request_body on;
            access_log /etc/nginx/webhook_access.log main;
        }

        location / {
            return 404;
        }
    }
}

Zhako2506
()

Визуальные метки на полях

 ,

Привет. Пользуюсь консольным nvim, на полях показывается номер строк. Есть такая хотелка: неким сочетанием подкрашивать background цифры на полях в цвет, который отличается от нормального, например в красный. Тем самым создавать визуальную метку подчеркивая некоторое важное место во время штудирования исходников. Я знаю про метки, на которые можно прыгать, но мне нужна именно визуальная метка, а не такая.

Можно ли вкрутить какой-то плагин?

Перемещено hobbit из general

kvpfs_2
()

Как в x11 забиндить Delete на Shift + BackSpace (или на Ctrl+H) глобально

 , ,

Кнопка Delete расположена в стороне от основных клавиш - приходится отрывать руки «фыва олдж», что бы её нажать. Хочется её перебиндить Delete на что-нибудь более доступное, например на Shift+Backspace или на Ctrl+H.

В man 7 xkeyboard-config решения не нашёл. Клавиатура не программируемая (не QMK/VIA).

Есть идеи?

Harliff
()

reverse_proxy to nextcloud

 , ,

Хочу перед клаудом поставить реверс прокси nginx. Соответственно прикрутить let’s encrypts на проксю, а трафик с прокси, так как nginx и клауд в одной LAN-сети, отправлять как proxy_pass http://192.168.0.21, но исходя из доки клауда, я понял что клауд не станет работать у себя на хосте по http, а будет толькоо по https. Получается придётся геморройничить с сертификатами и на проксе для клауда и на самом клауде? Подскажите, был ли у кого-нибудь подобный кейс или как упростить вариант с сертификатами…

Shprot
()

Подскажите п-ста бесплатный графический редактор уровня ErWin для Linux.

 ,

Нужно вот стало бесплатный редактор уровня ErWin для Linux. То есть чтобы можно было набросать большую ( 25-30 таблиц ) базу данных в графическом формате и с лёгкостью сконвертировать её в SQL-код или структуры БД.

Для меньших баз данных я руками рисовал диаграммки в DIA. Но такую большую БД хочется сделать в автоматическом режиме.

adm-academic
()

Маршрутизация в ipsec strongswan

 , , , ,

Доброго времени суток. Пытаюсь разобраться с strongswan. Есть виртуальный сервер с поднятым туннелем WireGuard до маршрутизатора за которым находится сеть 10.0.0.0/24. Из виртуального сервера я сеть 10.0.0.0/24 вижу, однако у меня есть устройства которые поднимают с виртуальным сервером ikev2 туннель получают виртуальные адреса 10.97.1.0/24 и попасть в сеть 10.0.0.0/24 не могут. tcpdump показывает что все пакеты касательно сети 10.0.0.0/24 от устройств ikev2 уходят по маршруту по умолчанию в интерфейс с интернетом. Покапался немного в мануалах, узнал что ipsec использует таблицу 220, добавил маршрут в эту таблицу, поведение осталось прежнее. Вроде ничего сложного здесь нет, но я где-то туплю и не могу разобраться как работает маршрутизация в ipsec, я читал про политики, но для клиентов у меня разрешено на 0.0.0.0/0. Подскажите, где я думаю не так, и где можно более развернуто найти материал на тему работы ipsec кроме wiki strongswan. Пинать можно, но не сильно, я слаб в этой теме, только учусь. Есть мысли сделать интерфейс VTI или XFRM но хотелось бы без них.

Накидал схемку для наглядности: https://imageup.ru/img20/4836245/diagramma-bez-nazvaniia.jpg

Конфигурация strongswan на виртуальном сервере

( читать дальше... )

Маршруты на виртуальном сервере:

( читать дальше... )

tcpdump при обращении к этой сети:

( читать дальше... )

P.S. AlmaLinux 9.4 с firewalld, могу выложить его конфиг, но там все примитивно.

Shiroe
()

Newsraft 0.23

 , , , ,

Группа Open Source

Состоялся выпуск Newsraft 0.23, консольной программы для просмотра RSS-лент. Проект во многом вдохновлён Newsboat и пытается быть его облегчённым аналогом.

( читать дальше... )

>>> Подробности (codeberg.org)

txgk
()

сбор общей схемы использования хранилищ на freebsd

 , ,

Время от времени хотелось чтоб был некий дамп схемы использования физических накопителей разными файловыми системами, чтобы не лазить отдельно по camcontrol devlist, gmirror/gmultipath/gpart, спискам монтирования и иногда sysctl. И чтобы этот дамп был пригоден для обычного diff между «было» и «теперь». Написал в итоге такую прогу, может кому пригодится или кто даст совет как поудобнее сделать её вывод чтобы было нагляднее кто за что отвечает. (только не так как geom -t который дублирует на каждого члена mirror/multipath всю вышележащую топологию)

исходник

Компилировать с -lgeom -lfcl (m1089.ru)

update 2023-12-05

как скомпилировать с нуля с черновой поддержкой zfs:

cd /tmp/
fetch https://dev.m1089.ru/fcl/files/fcl-20231205.tar.gz
tar xf fcl-20231205.tar.gz
cd fcl-20231205/DEV/src
./build.sh fcl
fetch https://dev.m1089.ru/freebsd-misc/files/storage-summary/storage-summary.c
cc storage-summary.c -DWITH_LIBZFS -DLIBZFS_HACK -I../include -L../lib -lgeom -lfcl -lzfs -lnvpair -o storage-summary

firkax
()

Выбрать последний месяц состоящий из слов?

 

Записи в таблице где месяцы написаны текстом: «январь» и т.д. Как выбрать из нескольких записей с одинаковыми другими столбцами ту которая будет самой поздней?

bad_master
()

NFS и SMB и права доступа?

 , , , ,

Нужен совет как правильно настроить права доступа для каталога, который нужно расшарить в сеть по NFS и SMB протоколу, подключить его к Windows и Linux, так чтобы права на чтение и запись были и там и там... 

Допустим у меня есть база данных программы для заметок obsidian мне нужно расположить ее в каталоге на NAS и иметь к ней доступ из Windows и Linux. На сервере установлен truenas scale в нем расшариваю каталог /data

по протоколу SMB с дополнительными параметрами

force user=apps

force group=apps

На Linux машине примонтировал шару протоколом NFS прописав в файл /etc/fstab

192.168.1.226:/mnt/torrent/torrent/data       /tank/torrent/         nfs     rw,user,noauto      0       0

Создал группу apps с guid 568

sudo groupadd -g 568 apps

Добавил пользователя в группу apps

sudo usermod -aG apps user

В итоге

И при создании каталога из Windows он создается с правами

drwxrwxr-x 3 568 apps 3 окт 21 21:58 windows

А при создании каталога из Linux он создается с правами

drwxr-xr-x 3 user apps 3 окт 21 21:58 linux

При этом из Windows, я не имею прав на запись к каталогам которые созданы на Linux

А из Linux права на запись есть ко всем каталогам…

MULT
()

intel VirtualHeads автонастройка

 , , ,

Добавил себе Option "VirtualHeads" "2", перелогинился, выполнил

$ xrandr --addmode VIRTUAL1 1920x1080
$ xrandr --addmode VIRTUAL2 1920x1080
$ xrandr --output VIRTUAL1 --right-of eDP1
$ xrandr --output VIRTUAL2 --left-of eDP1

Ок, дисплеи появились, пользоваться можно, но на каждый addmode выскакивал вопрос что делать с новым монитором.

Что мне теперь в Xorg.conf накрутить чтобы не надо было каждый раз выполнять команды руками?

Я пробовал «наугад около навскидку нагугленного» вот так

Section "Monitor"
    Identifier "VIRTUAL1"
    Option "LeftOf" "eDP1"
#    Modeline "1920x1080_60.0"  148.35  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync
#     UseModes "1920x1080"
#    Modeline "1920x1080" +hsync -vsync
EndSection

И вот так

Section "Screen"
#    Monitor "VIRTUAL1"
    Identifier "VIRTUAL1"
    SubSection "Display"
        Modes "1920x1080"
    EndSubSection
EndSection

В том числе комбинации параметров из заремаренного. Увы вообще ничего не происходит(не считая syntax error, которые пояснять не надо)

Flotsky
()

Подскажите метод определения DoH

 , , , ,

Привет. В качестве задачки для лучшего понимания iptables, route я сделал вот такое

https://github.com/3DRaven/pi-hole2vpn

Но хочется даже тех кто шибко умный победить. Сейчас все кто пытается пойти куда-то на 53 порт попадают на резак даже если отправляют запрос прямой к 8.8.8.8, но есть DoH и особо хитрые могут напрямую сходить на сервис и резолвить все через него. Хочется как-то либо DoH зарезать целиком, либо определять и редиректить на себя, реализуя DoH. Может у кого есть толковые идеи как это сделать?

Кстати, в итоге время автономной работы телефона выросло более чем в три раза :)

i3draven
()

Thinkpad X230 перепись живых

 , ,

Панки хой, дамы и господа!

Вопрос по сабжу пользователям Thinkpad X230: В каком состоянии ваш лептоп, когда последний раз его ремонтировали и что именно вышло из строя?


Моему экземпляру 10 лет (3 из которых он у меня), вот не так давно вышла из строя система охлаждения - кулер Toshiba заревел как трактор и помер. Ему на замену с Алика пришел Delta Fan (за десяток баксов), но я нашел новый AVC на Ebay. Как придёт буду ставить вместе с новомодной фишкой, термопрокладками с фазовым переходом Honeywell PTM 7950.

Короче говоря, с какими проблемами в процессе эксплуатации X230 вы столкнулись за последнее время и как их решили?

Twissell
()

Используете ли вы раздельные клавиатуры?

 ,

Если да, то какие? На форуме как будто о таких не знают — мало упоминаний.

temak
()

endlessh

 

Здравствуйте всем. Если Вы пользуете тарпит endlessh. Боты давно его игнорируют. Ждут 10-20 сек и отваливают. Но, я усмотрел интересную вещь. Боты нападают сразу 20-30 конектов. Тупые писатели этих ботов проперлись. Если сделать так:

iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 1 -j REJECT
То скрипт бота отрабатывает все 30 конектов. 20 Х 30 тормозим бота. Извините за корявость.

Boatmen
()

Аккумулятор 12В в комп?

 ,

Хой всем! Есть мысль вместо ИБП поставить аккумулятор 12В в корпус компа. Это удобно, нет лишнего железа и преобразования, красиво и лаконично. Но как бы смущает надо ли современной материнке -12В (-5 не надо), как это узнать. И больше хотелось бы поставить литий-ион. Понятно, контроллер заряда, все дела. Ардуинка скажет компу, что свет пропал/появился.

Мощность 300 Вт, но как свет упадет, прожорливый софт резко поставится на паузу, sync, flush cache, гибернация. Монитор питается от БП компа.

Может есть у форумчан примеры, как это выглядит?)

NotWin
()

ipsec ikev2 - подключается без корневого

 , ,

Добрый день, лор. Установил и настроил ikev2 впн, Debian 11, strongSwan U5.9.1/K5.10.0-21-amd64, сертификаты сгенерировал самоподписанные так, адрес сервер впн - 100.100.100.1 ( там публичный ip, это для примера )

 pki --gen --type rsa --size 4096 --outform pem > ca-key.pem
 pki --self --ca --lifetime 3650 --in ~/pki/private/ca-key.pem \
    --type rsa --dn "CN=VPN root CA" --outform pem > ca-cert.pem
 pki --gen --type rsa --size 4096 --outform pem > server-key.pem
 pki --pub --in server-key.pem --type rsa | pki --issue --lifetime 1825 --cacert ~/pki/cacerts/ca-cert.pem         --cakey ca-key.pem --dn "CN=100.100.100.1" --san @100.100.100.1 --san 100.100.100.1 --flag serverAuth --flag ikeIntermediate --outform pem     > server-cert.pem

Конфиг выглядит так

config setup
	charondebug="ike 1, knl 1, cfg 1"
	uniqueids=no

conn ikev2-vpn
	auto=add
	compress=no
	type=tunnel
	keyexchange=ikev2
	fragmentation=yes
	forceencaps=yes

conn ikev2-vpn
	dpdaction=clear
	dpddelay=300s
	rekey=no
	left=%any
	leftid=100.100.100.1
	leftcert=server-cert.pem
	leftsendcert=always
	leftsubnet=0.0.0.0/0
	right=%any
	rightid=%any
	rightauth=eap-mschapv2
	rightsourceip=10.10.10.0/24
	rightdns=8.8.8.8,8.8.4.4
	rightsendcert=never
	eap_identity=%identity
	ike=aes256-sha256-modp2048,aes128-sha256-modp2048,aes256-sha1-modp2048,aes128-sha1-modp2048!
	esp=aes256-sha256-modp2048,aes128-sha256-modp2048,aes256-sha1-modp2048,aes128-sha1-modp2048!

Юзеры положены в ipsec.secrets. Тут-то и начинается интересное, я ожидаю, что при попытке подключения macOs ventura пошлет меня, не сумев проверить самоподписанный сертификат, а во факту успешно подключается, мне не пришлось добавлять корневой к себе на машину. Вопрос - почему так, может я что-то не так настроил? На что обратить внимание в логах?

Jun 11 05:36:00  charon: 09[IKE] EAP method EAP_MSCHAPV2 succeeded, MSK established
Jun 11 05:36:00  ipsec[9332]: 09[IKE] EAP method EAP_MSCHAPV2 succeeded, MSK established
Jun 11 05:36:00  charon: 09[ENC] generating IKE_AUTH response 4 [ EAP/SUCC ]
Jun 11 05:36:00  charon: 09[NET] sending packet: from 100.100.100.1[4500] to 212.124.28.17[16992] (80 bytes)
Jun 11 05:36:00  charon: 12[NET] received packet: from 212.124.28.17[16992] to 100.100.100.1[4500] (112 bytes)
Jun 11 05:36:00  charon: 12[ENC] parsed IKE_AUTH request 5 [ AUTH ]
Jun 11 05:36:00  charon: 12[IKE] authentication of '192.168.0.104' with EAP successful
Jun 11 05:36:00  charon: 12[IKE] authentication of '100.100.100.1' (myself) with EAP
Jun 11 05:36:00  charon: 12[IKE] IKE_SA ikev2-vpn[17] established between 100.100.100.1[100.100.100.1]...212.124.28.17[192.168.0.104]
Jun 11 05:36:00  charon: 12[IKE] peer requested virtual IP %any
Jun 11 05:36:00  charon: 12[CFG] reassigning offline lease to 'vpnusernnn'
Jun 11 05:36:00  charon: 12[IKE] assigning virtual IP 10.10.10.1 to peer 'vpnusernnn'
Jun 11 05:36:00  charon: 12[IKE] peer requested virtual IP %any6
Jun 11 05:36:00  charon: 12[IKE] no virtual IP found for %any6 requested by 'vpnusernnn'
Jun 11 05:36:00  charon: 12[CFG] selected proposal: ESP:AES_CBC_256/HMAC_SHA2_256_128/NO_EXT_SEQ
Jun 11 05:36:00  charon: 12[IKE] CHILD_SA ikev2-vpn{2} established with SPIs c315596a_i 05a05f74_o and TS 0.0.0.0/0 === 10.10.10.1/32
Jun 11 05:36:00  charon: 12[ENC] generating IKE_AUTH response 5 [ AUTH CPRP(ADDR DNS DNS) SA TSi TSr N(MOBIKE_SUP) N(ADD_6_ADDR) ]
Jun 11 05:36:00  charon: 12[NET] sending packet: from 100.100.100.1[4500] to 212.124.28.17[16992] (272 bytes)
sysmerge_
()

hyperfine 1.17.0

 , , , ,

Группа Open Source

После более двух месяцев разработки состоялся выпуск 1.17.0 кроссплатформенной (Linux, MacOS, Windows) консольной утилиты hyperfine, написанной на языке Rust и распространяемой по лицензиям Apache-2.0 и MIT.
Утилита предназначена для сравнения производительности других консольных утилит.

Список изменений:

  • добавлен параметр --sort, используемый для сортировки результатов сравнения относительной скорости и экспорте;
  • неиспользуемые параметры теперь отображаются в круглых скобках;
  • в скрипт scripts/plot_histogram.py вывода результатов в виде гистограмм добавлена опция --log-count;
  • обновлена документация (man);
  • исправлена ошибка вывода промежуточных результатов в stdout при использовании - в качестве имени файла;
  • исправлено падение при экспорте, если время бенчмарка равнялось нулю.

>>> Подробности (github.com)

dataman
()

Вычисляемый item в Zabbix

 ,

Хочу сделать Calculated Item prototypes. Теги и препроцессинг не задан. Задаю тип: Calculated. Использую в роли ключа такой же ключ, как и в прототипе элемента RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages ready, а именно rabbitmq.queue.messages_ready[«{#VHOST}/{#QUEUE}»].

Далее Type of information: Numeric (unsigned) и формулу:

trendavg(rabbitmq.queue.messages_ready[«{#VHOST}/{#QUEUE}»],1h:now/h).

Это пока упрощение. Но полное выражение состоит только из этой функции и этих данных. Пробую Test, где задаю #VHOST и #QUEUE - не работает. Пишет: Cannot parse formula: invalid token starting with «rabbitmq.queue.messages_ready[«{#VHOST}/{#QUEUE}»])»

Пробовал уже по-разному и так: trendavg(/RabbitMQ node by HTTP/rabbitmq.queue.messages_ready[«{#VHOST}/{#QUEUE}»],1h:now/h) и кавычки брал выражение и как только не пробовал - не работает. В Тесте выдает ошибку. Как можно решить вопрос?

sivsoft
()