Ниже — руководство + полный установочный скрипт для Debian 12, собирающий Asterisk 22.5.1 из исходников, включающий TLS + SRTP, 3 абонента (1001–1003), блокировку анонимов, короткие сообщения (SIP MESSAGE) для Linphone, и видеозвонки по H.264.
Скрипт автоматически учитывает NAT: если задать локальную сеть — пропишет external_* и local_net; если не задавать — считает, что сервер не за NAT.
Задача простая: организовать для вендера канал до оборудования внутри сети, ssh -J вполне годится но есть 2 момента: 1. Ограничить вход на сам jump сервер через ssh (решил установкой оболочки /bin/false) 2. Ограничить число хостов на которые может «прагать» оперделенный пользователь (и чтобы других пользователей не затронуло) Такое реально реализовать средствами ssh?
tird - инструмент для шифрования файлов, сфокусированный на минимизации метаданных и сокрытии зашифрованных данных. Предназначен для использования на современных персональных компьютерах. Написан на Python. Код открыт под 0BSD.
Для шифрования используется ChaCha20-IETF.
Для key stretching и выведения ключей используется Argon2id с 1 GiB памяти и с 4 проходами.
Для аутентификации используется keyed BLAKE2b-512.
Входными ключевыми материалами могут быть:
Пароли;
Ключевые файлы (в тоом числе блочные устройства и целые директории).
Зашифрованные данные имеют формат PURB (padded uniform random blob) - неотличимы от случайных, имеют рандомизировавнный размер.
Минимизация метаданных:
PURB формат - невозможно доказать наличие зашифрованных данных без ключей, неизвестны параметры и структура файла, скрыт настоящий размер полезной нагрузки.
Путь к выходному файлу не зависит от пути к входному, не имеет стандартного расширения, определяется пользователем.
Интерфейс в виде диалога с юзером, основанный на подсказках. CLI параметры не протекают в shell history.
Опционально: данные можно встроить в другой файл и устройство, сделав их недетектируемыми, а их наличие недоказуемым.
Построение скрытой ФС, управляемой пользователем:
Зашифрованные данные можно записывать в контейнеры, указав начальную позицию (отступ в байтах от начала контейнера). В качестве контейнеров могут выступать специально сгенерированные файлы, съемные устройства (пустые или полупустые диски), разделы с LUKS.
Дело в том, что загловок FAT32/exFAT ФС расположен в начале раздела, а контент записываемых файлов пишется от начала в конец последовательно. Таким образом, на свежеотформатированной ФС можно сделать отступ от начала и записывать наши данные, запомним их расположение для последующего извлечения.
Есть nginx.x86_64 1:1.14.1-9.0.1.module+el8.0.0+5347+9282027e
Основной конфиг по умолчанию.
Для веб сервера заведен отдельный файл с конфигом в /etc/nginx/conf.d/ со следующим содержимым:
upstream websrv{
ip_hash;
server 127.0.0.1:8002;
}
server {.
listen 80; server_name wserv.domain;
# Перенаправление на HTTPS
location / { return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl; server_name wserv.domain;
# Путь к сертификату и ключу
ssl_certificate /etc/nginx/ssl/wserv.crt;
ssl_certificate_key /etc/nginx/ssl/wserv.key;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log main;
...
}
С одного IP адреса идет большое количество запросов и хотелось бы access_log с него выделить в отдельный файл.
В этом случае основной файл access_log был бы существенно меньше и было бы намного проще его анализировать.
В интернете находил варианты с geo и map, но при одном варианте лог файлы вообще не создаются, в других паралельно записываются в два файла все логи.
Прошу подсказать как решить такую задачу.
Прмеры которые пробовал(ip адреса здесь только для примера):
В файле /etc/nginx/nginx.conf в блок http
map $remote_addr $log_file {
default "main"; # Для всех остальных IP
10.10.10.17 "group1"; # 10.10.10.17 → access_group1.log
10.10.10.18 "group1"; # 10.10.10.18 → access_group1.log
10.10.10.19 "group2"; # 10.10.10.19 → access_group2.log
}
В файле /etc/nginx/conf.d/wsrv.conf в блок server
# Лог для остальных IP
access_log /var/log/nginx/access.log combined if=$log_file=main;
# Лог для 10.10.10.17 и 10.10.10.18
access_log /var/log/nginx/access_group1.log combined if=$log_file=group1;
# Лог для 10.10.10.19
access_log /var/log/nginx/access_group2.log combined if=$log_file=group2;
24 февраля, после более года разработки, состоялся выпуск 0.11.22 кроссплатформенной библиотеки захвата и воспроизведения звука miniaudio, написанной на языке C и распространяемой, как общественное достояние. miniaudio работает на всех основных настольных и мобильных платформах без сторонних зависимостей.
Довольно давно меня подзадолбала мусорка в домашней директории, постепенно получилось заставить почти весь софт гадить в строго определенное место, а именно в .config, .cache и .local
Для особо одаренных (Skype, Dropbox) пришлось слегка поизвращаться, если для Skype достаточно было изменить параметр запуска на
skype --dbpath=$HOME/.local/share/skype
, то для Dropbox уже пришлось городить костыль в виде
Остальной софт относительно разумен, где через alias, где через export, удалось обяснить, куда складировать свое добро. Ниже листинг .bashrc и .profile, авось кому пригодится.
Господа, всем доброго настроения.
Не пойму как решить задачу. Гугление, к сожалению, не поспособствовало, за сим прошу помощи у коллективного сознательного.
Имеется скрипт-уведомлялка, который говорит 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?
Не могу сделать балансировку если запрос приходить в одного IP-адреса. Проблема такая: заходить первый запрос, но отработка этого запроса занимает 30 секунд, из-за API. nginx не должен закрыть этот запрос, он должен ждать пока сервер не ответить. в это время заходить еще по очереди 10 запросов с того же IP-адреса, но их обработка не занимает больше 0,5 секунды. но из-за того что там один запрос все еще обрабатывается, остальные 10 запросов ждет этого.
Я подняла nginx с двумя серверами. Хочу сделать так, если первый сервер все еще обрабатывает запрос, остальные запросы были всегда направлены на второй. Когда первый сервер закончить обработку и вернет ответ, этот сервер станет доступным и можно будет туда отправлять запросы. Вроде сделала, когда с двух IP-адрес приходить запросы, тогда вроде все срабатывает. Но когда с одного IP-адреса приходить, тогда застывает, пока не обработает запрос с задержкой. Прошу помочь!
Привет. Пользуюсь консольным nvim, на полях показывается номер строк. Есть такая хотелка: неким сочетанием подкрашивать background цифры на полях в цвет, который отличается от нормального, например в красный. Тем самым создавать визуальную метку подчеркивая некоторое важное место во время штудирования исходников. Я знаю про метки, на которые можно прыгать, но мне нужна именно визуальная метка, а не такая.
Кнопка Delete расположена в стороне от основных клавиш - приходится отрывать руки «фыва олдж», что бы её нажать. Хочется её перебиндить Delete на что-нибудь более доступное, например на Shift+Backspace или на Ctrl+H.
В man 7 xkeyboard-config решения не нашёл. Клавиатура не программируемая (не QMK/VIA).
Хочу перед клаудом поставить реверс прокси nginx. Соответственно прикрутить let’s encrypts на проксю, а трафик с прокси, так как nginx и клауд в одной LAN-сети, отправлять как proxy_pass http://192.168.0.21, но исходя из доки клауда, я понял что клауд не станет работать у себя на хосте по http, а будет толькоо по https. Получается придётся геморройничить с сертификатами и на проксе для клауда и на самом клауде? Подскажите, был ли у кого-нибудь подобный кейс или как упростить вариант с сертификатами…
Нужно вот стало бесплатный редактор уровня ErWin для Linux.
То есть чтобы можно было набросать большую ( 25-30 таблиц ) базу данных в графическом формате и с лёгкостью сконвертировать её в SQL-код или структуры БД.
Для меньших баз данных я руками рисовал диаграммки в DIA. Но такую большую БД хочется сделать в автоматическом режиме.
Доброго времени суток. Пытаюсь разобраться с 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 но хотелось бы без них.
Состоялся выпуск Newsraft0.23, консольной программы для просмотра RSS-лент. Проект во многом вдохновлён Newsboat и пытается быть его облегчённым аналогом.
Время от времени хотелось чтоб был некий дамп схемы использования физических накопителей разными файловыми системами, чтобы не лазить отдельно по camcontrol devlist, gmirror/gmultipath/gpart, спискам монтирования и иногда sysctl. И чтобы этот дамп был пригоден для обычного diff между «было» и «теперь». Написал в итоге такую прогу, может кому пригодится или кто даст совет как поудобнее сделать её вывод чтобы было нагляднее кто за что отвечает. (только не так как geom -t который дублирует на каждого члена mirror/multipath всю вышележащую топологию)
Записи в таблице где месяцы написаны текстом: «январь» и т.д. Как выбрать из нескольких записей с одинаковыми другими столбцами ту которая будет самой поздней?
Нужен совет как правильно настроить права доступа для каталога, который нужно расшарить в сеть по NFS и SMB протоколу, подключить его к Windows и Linux, так чтобы права на чтение и запись были и там и там...
Допустим у меня есть база данных программы для заметок obsidian
мне нужно расположить ее в каталоге на NAS и иметь к ней доступ из
Windows и Linux.
На сервере установлен truenas scale в нем расшариваю каталог /data
по протоколу SMB с дополнительными параметрами
force user=apps
force group=apps
На Linux машине примонтировал шару протоколом NFS прописав в файл /etc/fstab