Не ssh, но близко — sftp.
Классная вещь, со своими достоинствами и недостатками. Гораздо круче, чем
ㅤ
По сравнению с
Из минусов - может создавать нагрузку на проц. В openssh включен из коробки. Поэтому если есть доступ по
А вот обратное - не всегда верно. Иногда бывает нужно разрешить пользователям доступ по
Вот, для этого есть решение — mysecureshell.
Для debian можно поставить:
После этого у вас появляется свой собственный
Возможностью ограничить пользователя только своим каталогом. И еще работа с виртуальными серверами. Рекомендую.
Достаточно пользователю прописать в качестве оболочки mysecureshell - и он человек, ограниченный файловой подсистемой. Кстати, список доступных оболочек можно глянуть так:
А изменить, например так:
Конфигурируется данное чудо путем редактирования файла
Кстати, отлично сочетается с
А вот с
Репа Mysecureshell
Документация
tags: #linux #utilites © by Tagd Tagd
—
🔔 ➡️
Классная вещь, со своими достоинствами и недостатками. Гораздо круче, чем
scp
, поскольку кроме копирования позволяет управлять правами доступа.ㅤ
По сравнению с
ftp
- возможность работы через один порт (легко пробрасывается) Протокол защищенный.Из минусов - может создавать нагрузку на проц. В openssh включен из коробки. Поэтому если есть доступ по
ssh
- как правило, есть доступ и по sftp
.А вот обратное - не всегда верно. Иногда бывает нужно разрешить пользователям доступ по
sftp
, например, чтобы заливать архивы, но совсем не хочется давать возможность шариться по серваку и смотреть, что там крутится.Вот, для этого есть решение — mysecureshell.
Для debian можно поставить:
sudo apt install mysecureshell
После этого у вас появляется свой собственный
sftp
сервер с возможностью управления пользователями, группами, управление скоростью закачки и отдачи, можно просматривать текущие сессии и прибивать ненужные.Возможностью ограничить пользователя только своим каталогом. И еще работа с виртуальными серверами. Рекомендую.
Достаточно пользователю прописать в качестве оболочки mysecureshell - и он человек, ограниченный файловой подсистемой. Кстати, список доступных оболочек можно глянуть так:
cat /etc/shells
А изменить, например так:
sudo usermod -s /usr/bin/mysecureshell username
Конфигурируется данное чудо путем редактирования файла
/etc/ssh/sftp_config
Кстати, отлично сочетается с
sshfs
(монтирование через ssh
(по факту через sftp
)).А вот с
rsync
, говорят не дружит, но я лично не проверял. Приводить примеры конфигурирования не стал, потому что там все очень понятно и прозрачно. Документация приличная, сам конфиг очень классно комментирован. Репа Mysecureshell
Документация
tags: #linux #utilites © by Tagd Tagd
—
🔔 ➡️
Bash генератор OTP для 2FA
Я давненько пользуюсь Authy. Это генератор OTP кодов для 2FA. Большим плюсом было — что этот генератор работал на десктопе.
ㅤ
Но в какой-то момент эта игрушка превратилась в тыкву. А использовать телефон для таких целей я не люблю, да и не всегда он есть под рукой.
Короче в мою зону комфорта беспощадно насрали.
Каждое случившиеся гавно это повод изобрестивелосипед что-то своё.
Пошло оно всё нахуй! Будем генерить коды Bash скриптом!
Для начала нам понадобится утилита
Не парься, иксы не нужны, всё работает нативно в терминале.
Далее пиздуем например в gitlab и включаем 2FA, в ответ оно тебе выплюнет QR код. Делаем скриншот QR и сохраняем.
Запускаем сканер:
В ответ получаем нечто подобное:
Замечательно. Из этой кишки нам нужен только
Устанавливаем вторую утилиту:
Накидываем bash скрипт:
Запускаем и получаем желаемый OTP код, вводим его в Gitlab и охуеваем. Мы успешно прошли 2FA. Всё работает!
Базу расковыряли. Теперь нужно какое-то человеческое решение. Накидываем еще один bash скрипт:
Не забываем заполнить массив секретами и названиями сервисов. Если хочется, можешь реализовать чтение secrets из текстового файла. Скрипт закинуть в гит, а данные по секретам хранить у себя или в варсах гитлаба.
Что-то вроде:
Сохраняем получившийся скрипт в
Вводим нужный номер сервиса и получаем актуальный OTP код.
Всю эту хуйню можно легко запилить в телеграм бота и генерить OTP коды прям в там не отходя от кассы. А также сделать автоматическую распознавалку QR с добавлением новых сервисов в список.
Например, кидаешь боту QR картинку, он ее распознает, добавляет в sqlite базу этот сервис и генерит по запросу коды.
В общем тут уже полет фантазии, можно и кнопочки прикрутить и другие украшения. Было бы время и желание.
Мне пока достаточно баш скрипта, а ты можешь из этого сделать пет проект и хвастаться им на собесах. Однозначно будет плюсиком.
Вот такой хуйнёй переодически приходится заниматься.
Ладно, чо. Хорошего тебе дня, увидимся!
tags: #linux #bash #рабочиебудни
—
🔔 ➡️
Я давненько пользуюсь Authy. Это генератор OTP кодов для 2FA. Большим плюсом было — что этот генератор работал на десктопе.
ㅤ
Но в какой-то момент эта игрушка превратилась в тыкву. А использовать телефон для таких целей я не люблю, да и не всегда он есть под рукой.
TOTP (Time-based One-Time Password) — это алгоритм, используемый для генерации одноразовых паролей (OTP), которые действуют в течение ограниченного времени.
Короче в мою зону комфорта беспощадно насрали.
Каждое случившиеся гавно это повод изобрести
Пошло оно всё нахуй! Будем генерить коды Bash скриптом!
Для начала нам понадобится утилита
zbar
, она позволит из терминала распознать qr код, этот код выдают сервисы где включается 2FA. Не парься, иксы не нужны, всё работает нативно в терминале.
sudo apt install zbar-tools
Далее пиздуем например в gitlab и включаем 2FA, в ответ оно тебе выплюнет QR код. Делаем скриншот QR и сохраняем.
Запускаем сканер:
zbarimg gitlab_qr.png
В ответ получаем нечто подобное:
QR-Code:otpauth://totp/gitlab.com:gitlab.com_hello%40devopsina.ru?secret=1234567890ABCDEFG&issuer=gitlab.com
scanned 1 barcode symbols from 1 images in 0.02 seconds
Замечательно. Из этой кишки нам нужен только
secret=1234567890ABCDEFG.
Устанавливаем вторую утилиту:
sudo apt install oathtool
Накидываем bash скрипт:
#!/bin/bash
SECRET="1234567890ABCDEFG"
echo "Gitlab 2FA code: $(oathtool --totp -b "$SECRET")"
Запускаем и получаем желаемый OTP код, вводим его в Gitlab и охуеваем. Мы успешно прошли 2FA. Всё работает!
Базу расковыряли. Теперь нужно какое-то человеческое решение. Накидываем еще один bash скрипт:
#!/bin/bash
secrets=(
"GitLab:1234567890ABCDEFG"
"Google:1234567890ABCDEFG"
"Bashdays:1234567890ABCDEFG"
)
for i in "${!secrets[@]}"; do
IFS=":" read -r service secret <<< "${secrets[i]}"
echo "$((i + 1)). $service"
done
read -p "Введите номер сервиса: " choice
if [[ "$choice" -gt 0 && "$choice" -le "${#secrets[@]}" ]]; then
IFS=":" read -r selected_service selected_secret <<< "${secrets[choice - 1]}"
TOTPCODE=$(oathtool --totp -b "$selected_secret")
echo "TOTP код для $selected_service: $TOTPCODE"
else
echo "Неверный выбор."
fi
read -p ""
Не забываем заполнить массив секретами и названиями сервисов. Если хочется, можешь реализовать чтение secrets из текстового файла. Скрипт закинуть в гит, а данные по секретам хранить у себя или в варсах гитлаба.
Что-то вроде:
secrets_file="secrets.txt"
while IFS= read -r line; do
secrets+=("$line")
done < "$secrets_file"
Сохраняем получившийся скрипт в
qr.sh
, делаем алиас если нужно и запускаем. В ответ получаем нумерованный список сервисов:1. Gitlab
2. Google
3. Bashdays
Введите номер сервиса:
Вводим нужный номер сервиса и получаем актуальный OTP код.
Всю эту хуйню можно легко запилить в телеграм бота и генерить OTP коды прям в там не отходя от кассы. А также сделать автоматическую распознавалку QR с добавлением новых сервисов в список.
Например, кидаешь боту QR картинку, он ее распознает, добавляет в sqlite базу этот сервис и генерит по запросу коды.
В общем тут уже полет фантазии, можно и кнопочки прикрутить и другие украшения. Было бы время и желание.
Мне пока достаточно баш скрипта, а ты можешь из этого сделать пет проект и хвастаться им на собесах. Однозначно будет плюсиком.
Вот такой хуйнёй переодически приходится заниматься.
Ладно, чо. Хорошего тебе дня, увидимся!
tags: #linux #bash #рабочиебудни
—
🔔 ➡️
Интересный вопрос сегодня залетел:
Давай посмотрим что происходит в кишках в это время. Давненько мы с тобой в
ㅤ
Предположим есть bash скрипт с функциями:
functions.sh
И основной скрипт, который сорсит файл с функциями:
test_script.sh
Не забываем сделать:
Запускаем
И видим:
То есть в контексте скрипта
При втором вызове функции всё считалось из памяти.
Если бы файл
Грубо говоря при каждом запуске
Вроде очевидно, но порой заставляет задуматься.
Изучай!
tags: #bash #debug #linux
—
🔔 ➡️
Если функции, вынесены в файл, подключенный через source, bash каждый раз его будет открывать/перечитывать при обращении к функции? Или как-то считает в память и все?
Давай посмотрим что происходит в кишках в это время. Давненько мы с тобой в
strace
не смотрели.ㅤ
Предположим есть bash скрипт с функциями:
functions.sh
#!/bin/bash
bashdays_function() {
echo "Hello from BashDays"
}
И основной скрипт, который сорсит файл с функциями:
test_script.sh
#!/bin/bash
source ./functions.sh
bashdays_function
bashdays_function
Не забываем сделать:
chmod +x test_script.sh
Запускаем
test_script.sh
под контролем strace
:strace -e trace=openat ./test_script.sh
И видим:
openat(AT_FDCWD, "./test_script.sh", O_RDONLY) = 3
openat(AT_FDCWD, "./functions.sh", O_RDONLY) = 3
Hello from BashDays
Hello from BashDays
То есть в контексте скрипта
test_script.sh
, файл с функциями был прочитан один раз.При втором вызове функции всё считалось из памяти.
Если бы файл
functions.sh
читался каждый раз, то мы увидели бы несколько строчек openat(AT_FDCWD).
Грубо говоря при каждом запуске
test_script.sh
, подключенный файл через source будет прочитан один раз.Вроде очевидно, но порой заставляет задуматься.
Изучай!
tags: #bash #debug #linux
—
🔔 ➡️
FALSE!
Ну, еще одна статейка для укрепления нервов.
Все знают, что для блокировки пользователя нужно использовать команду:
Эта команда добавляет знак «!» перед полем пароля, что делает его недопустимым, тем самым блокируя.
Все это дело происходит в файле
Читаем
Ахренеть. Я тут пользователя блокернул, а он войти может.
Проверяем. Точно, по ssh, через ключ, входит и выходит. Замечательно выходит!
Лирическое отступление: В мане
Понимаете для чего нужна опция PermitEmptyPasswords в файле
Напоминаю, что если установить пользователю оболочку
➡️ Что делать для полной блокировки пользователя?
Воспользоваться "оболочкой
Резюмирую:
При блокировке пароля возможен доступ по ключу.
tags: #linux #security © by Tagd Tagd
—
🔔 ➡️
Ну, еще одна статейка для укрепления нервов.
Напоминаю: БЕЗДУМНАЯ ПРАВКА СИСТЕМНЫХ ФАЙЛОВ МОЖЕТ ПРИВЕСТИ НЕРАБОТОСПОСОБНОСТИ СЕРВЕРА.
Все знают, что для блокировки пользователя нужно использовать команду:
sudo usermod -L username
Эта команда добавляет знак «!» перед полем пароля, что делает его недопустимым, тем самым блокируя.
Все это дело происходит в файле
/etc/shadow
, где хранятся зашифрованные пароли пользователей.Читаем
man shadow
:Если поле пароля содержит строку, которая не удовлетворяет требованиям crypt(3), например содержит «!» или, то пользователь не сможет использовать этот пароль unix для входа (но может войти в систему под другими паролями).
Ахренеть. Я тут пользователя блокернул, а он войти может.
Проверяем. Точно, по ssh, через ключ, входит и выходит. Замечательно выходит!
Лирическое отступление: В мане
shadow
также написано, что пароль вообще может быть пустым, но некоторые программы могут запретить его использование.Понимаете для чего нужна опция PermitEmptyPasswords в файле
/etc/ssh/sshd_config
?Напоминаю, что если установить пользователю оболочку
/usr/sbin/nologin
, то иногда этот пользователь может получить доступ к файлам через sftp (при установленной подсистеме internal-sftp).➡️ Что делать для полной блокировки пользователя?
Воспользоваться "оболочкой
/usr/bin/false
" Она просто возвращает код ошибки.Резюмирую:
При блокировке пароля возможен доступ по ключу.
/usr/sbin/nologin
иногда дает доступ к файлам/usr/bin/false
не дает, стерва.man usermod shadow sshd_config
tags: #linux #security © by Tagd Tagd
—
🔔 ➡️
Включаем режим параноика.
Все, и не раз слышали про то, что ходить по ссылкам не хорошо. Особенно, если эти ссылки непонятно откуда.
ㅤ
Но почему-то многие думают, что это касается только ссылок
Тут на недавно проскакивала тема про Консольные онлайн Telnet/SSH игры.
Посмотрим на это глазами параноика: Что происходит, когда вы подключаетесь к ссылке вида
Просто в логах сервера отобразится ваш IP. Ситуация усугубляется, когда вы заходите на ссылку вида
В этом случае в логах отобразится не только адрес, но и логин текущего пользователя.
Прикиньте, есть ip и уже есть логин. Осталось подобрать пароль. Я бы на месте малышей-плохишей специально рыскал бы по github в поисках всякой прикольной фигни и собирал пары ip/login.
Да и логин, не какой-то там test, а реально используемый - сам по себе ценный ресурс.
Поэтому не ходите по ссылкам с рабочих машин, а если видите ссылку
Прошу прощениt за тему, которая и так всех задолбала.
tags: #linux #security © by Tagd Tagd
—
🔔 ➡️
Все, и не раз слышали про то, что ходить по ссылкам не хорошо. Особенно, если эти ссылки непонятно откуда.
ㅤ
Но почему-то многие думают, что это касается только ссылок
http:// https:// ftp://.
Тут на недавно проскакивала тема про Консольные онлайн Telnet/SSH игры.
Посмотрим на это глазами параноика: Что происходит, когда вы подключаетесь к ссылке вида
ssh user.dom.
Ну, ничего страшного.Просто в логах сервера отобразится ваш IP. Ситуация усугубляется, когда вы заходите на ссылку вида
ssh addr.dom.
В этом случае в логах отобразится не только адрес, но и логин текущего пользователя.
Прикиньте, есть ip и уже есть логин. Осталось подобрать пароль. Я бы на месте малышей-плохишей специально рыскал бы по github в поисках всякой прикольной фигни и собирал пары ip/login.
Да и логин, не какой-то там test, а реально используемый - сам по себе ценный ресурс.
Поэтому не ходите по ссылкам с рабочих машин, а если видите ссылку
ssh addr.dom
не поленитесь и добавьте пользователя test.dom
, чтобы не светить свой реальный логин.Прошу прощениt за тему, которая и так всех задолбала.
tags: #linux #security © by Tagd Tagd
—
🔔 ➡️
Хелоу! А какую команду ты запускаешь первой, когда поднял linux сервак/десктоп (vps/vds, виртулка, бареметал и т.п.)?
ㅤ
У меня руки на автомате вбивают:
Но несколько раз видел как люди первым делом отключали selinux и отправляли машину в ребут. А потом уже всё остальное.
А как делаешь ты? Камон в комменты обсудим, интересно на твои паттерны посмотреть.
tags: #linux #рабочиебудни
—
🔔 ➡️
ㅤ
У меня руки на автомате вбивают:
apt update && apt upgrade && apt install mc
.Но несколько раз видел как люди первым делом отключали selinux и отправляли машину в ребут. А потом уже всё остальное.
А как делаешь ты? Камон в комменты обсудим, интересно на твои паттерны посмотреть.
tags: #linux #рабочиебудни
—
🔔 ➡️
Здрасти. Как-то я писал про
Ниже скрипт который автоматически прономерует системные вызовы для последующих инъекций.
Сохраняем это безобразие в файл
Теперь получаем такой выхлоп:
Смотрим второй столбик, включаем логику и видим, что системные вызовы нумеруются.
Например, возьмем системный вызов
ㅤ
Теперь берем нужный номер системного вызова и применяем инъекцию. Как это сделать и для чего, опять же показывал на примерах (ссылки в начале этого поста).
Тема крутая, не нужно ебаться и считать руками.
Весь вывод
А чтобы получить только трассировку, можно сделать так:
Если бесит подсветка, выпили из перловского скрипта управляющий символ «
Такие дела, изучай!
tags: #linux #debug
—
🔔 ➡️
strace
и как применять инъекции. Если пропустил, то читай тут и тут.Ниже скрипт который автоматически прономерует системные вызовы для последующих инъекций.
#!/usr/bin/perl
use strict;
use warnings;
my %numbs;
select STDERR;
while(<STDIN>) {
if( /^[0-9]++\s++([a-z0-9_]++(?=\())/ ) {
my $t = ++$numbs{$1};
s/\s+/ \e[31m$t\e[m /;
die $! if( keys %numbs == 1000 );
}
print;
}
exit(0);
Сохраняем это безобразие в файл
num_syscalls
и делаем chmod +x
, ну а дальше запускаем в связке с strace
:strace -o'|./num_syscalls' -yf sh -c 'ls|cat'
Теперь получаем такой выхлоп:
456107 48 close(3</usr/) = 0
456107 52 rt_sigreturn({mask=[]})
456107 63 openat(AT_FDCWD</usr/local/sbin>)
456107 53 newfstatat(3)
456107 64 openat(AT_FDCWD</usr/local/sbin>)
Смотрим второй столбик, включаем логику и видим, что системные вызовы нумеруются.
Например, возьмем системный вызов
openat
, видим 63, 64. Это значит что openat
был вызван 64 раза. А newfstatat
53.ㅤ
Теперь берем нужный номер системного вызова и применяем инъекцию. Как это сделать и для чего, опять же показывал на примерах (ссылки в начале этого поста).
Тема крутая, не нужно ебаться и считать руками.
Весь вывод
strace
отправляется в stderr
, чтобы иметь возможность разделять вывод трассировки и вывод исследуемой программы.А чтобы получить только трассировку, можно сделать так:
strace -o'|./num_syscalls' -yf ls > /dev/null
Если бесит подсветка, выпили из перловского скрипта управляющий символ «
\e[31m\[em
».Такие дела, изучай!
tags: #linux #debug
—
🔔 ➡️
Мало кто знает что у cloudflare есть фича, которая раньше называлась Argo Tunnel, а сейчас это просто Tunnels. И да, она бесплатная.
⚪ А чо делает?
Смотри, к примеру у тебя локально поднят виртуалбокс (proxmox), а в нем крутятся виртуалки. В какой-то момент тебе понадобилось прокинуть эту виртуалку в интернет. А у тебя дома несколько роутеров, NAT, нет белого айпишника, короче полный набор подводных камней и хуйни.
ㅤ
В теории можно прокинуть на роутере порты, задействовать через API привязку динамического IP адреса к домену. Ну или в крайнем случае воспользоваться ngrok и т.п. решениями.
Грубо говоря можешь свой локальный proxmox на малине посадить на домен и он будет доступен из интернета с автоматическим ssl и всеми плюшками. Аналогично как и свой домашний гитлаб.
Запрятана эта фича знатно и глубоко, поэтому про нее говорят в основном в англоязычном сегменте.
⚪ Как настроить?
Настройку я вынес в отдельную статью. С картинками будет намного понятнее, что происходит и как это работает.
Читаем 👇
➡️ Как настроить Tunnels от Cloudflare.
Репа с демоном на гитхабе, можешь поресерчить если интересно что у них там под капотом и что она может у тебя спиздить.
Такие дела!
tags: #linux #networks #рабочиебудни
—
🔔 ➡️
⚪ А чо делает?
Смотри, к примеру у тебя локально поднят виртуалбокс (proxmox), а в нем крутятся виртуалки. В какой-то момент тебе понадобилось прокинуть эту виртуалку в интернет. А у тебя дома несколько роутеров, NAT, нет белого айпишника, короче полный набор подводных камней и хуйни.
ㅤ
В теории можно прокинуть на роутере порты, задействовать через API привязку динамического IP адреса к домену. Ну или в крайнем случае воспользоваться ngrok и т.п. решениями.
Грубо говоря можешь свой локальный proxmox на малине посадить на домен и он будет доступен из интернета с автоматическим ssl и всеми плюшками. Аналогично как и свой домашний гитлаб.
Tunnels — позволяет поднять туннель до cloudflare и сделать что-то вроде приватной сети, где все нужные сервисы за NAT в домашней сети ты без труда повесишь на домен и выставишь жопой в интернет. Причем вообще не напрягаясь.
Запрятана эта фича знатно и глубоко, поэтому про нее говорят в основном в англоязычном сегменте.
⚪ Как настроить?
Настройку я вынес в отдельную статью. С картинками будет намного понятнее, что происходит и как это работает.
Читаем 👇
➡️ Как настроить Tunnels от Cloudflare.
Репа с демоном на гитхабе, можешь поресерчить если интересно что у них там под капотом и что она может у тебя спиздить.
Такие дела!
tags: #linux #networks #рабочиебудни
—
🔔 ➡️
За пост спасибо нашему коллеге и подписчику - Страйфи Ленджок
В современном мире всё больше задач требуют работы с графическими приложениями на удалённых Linux-серверах, особенно с использованием GPU. Это может быть рендеринг в Blender, обучение нейронных сетей или даже облачный гейминг. Существует несколько способов организации такого доступа, каждый из которых имеет свои особенности.
ㅤ
X11 Forwarding через SSH
Один из самых простых методов — использование X11 Forwarding через SSH. Для этого достаточно базового пакета openssh. Подключение осуществляется командой:
ssh -X -p [порт] [пользователь]@[IP_сервера]
Флаг -X включает проброс X11. После подключения можно запускать графические приложения, например:
firefox &
Однако этот метод имеет значительные недостатки. Интерфейс и ввод отображаются с заметной задержкой, особенно при воспроизведении видео или работе с 3D-графикой. Это связано с тем, что X11 Forwarding передаёт по сети каждое действие с окном без оптимизации и сжатия данных.
RDP в Docker с поддержкой GPU
Более современный и эффективный подход — использование RDP-сервера в контейнере Docker с поддержкой GPU. Протокол RDP изначально разработан для работы с удалённым рабочим столом через сеть и использует алгоритмы сжатия и кэширования элементов интерфейса.
Для настройки поддержки GPU в Docker необходимо установить драйверы и nvidia-container-toolkit, а затем настроить Docker для работы с GPU Nvidia:
sudo apt install nvidia nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
Для AMD
sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)"
sudo usermod -a -G render,video $LOGNAME
wget https://repo.radeon.com/amdgpu-install/6.2.1/ubuntu/noble/amdgpu-install_6.2.60201-1_all.deb
sudo apt install ./amdgpu-install_6.2.60201-1_all.deb
sudo apt update
sudo apt install amdgpu-dkms rocm
sudo reboot
sudo apt install rocminfo
# Добавить в файле `/etc/environment` PATH="/opt/rocm/bin"
docker run --device=/dev/kfd --device=/dev/dri --security-opt seccomp=unconfined <image>
Здесь:
--device=/dev/kfd — предоставляет доступ к основному интерфейсу вычислений.
--device=/dev/dri — предоставляет доступ к интерфейсу прямого рендеринга.
--security-opt seccomp=unconfined — отключает ограничения seccomp для контейнера, что необходимо для корректной работы с GPU.
Далее запускается контейнер с RDP-сервером, например, с использованием образа. После запуска контейнера можно подключиться к нему с помощью RDP-клиента, такого как Remmina, настроив SSH-туннель для безопасности и сжатия трафика.
Этот метод обеспечивает более высокую производительность и комфортную работу с графическими приложениями на удалённом сервере, включая поддержку GPU для задач, требующих аппаратного ускорения.
tags: #linux © by Страйфи Ленджок
—
🔔 ➡️
Недавно прочитал статью Страйфи Ленджок и решил поделиться многолетним опытом использования rdp.
ㅤ
Сразу оговорюсь, что я пытался использовать rdp на linux для замены виндового сервера при работе с 1с.
OC - debian, потому что в debian rdp есть в репозитариях. А, вообще живет он здесь.
Для установки на сервере - пара команд:
Все настройки в
В качестве DE использовал XFCE и LXDE по причине малых ресурсов. LXDE - лучше.
В качестве клиента (и на клиенте) использовал xfreerdp из пакета freerdp2-x11.
Пробовал remmina, но она подглюкивает. Проще всего использовать алиас для подключения. У меня такой:
700x1300 - размеры окна
Подключаюсь так:
Ну, а теперь опыт использования:
1. Окно аутентификации можно настраивать. (
2. Любит забивать папки пользователей логами (
3. В XFCE проблемы с переключением раскладки клавиатуры при переподключениях.
4. В LXDE проблемы с раскладкой при входе под одним пользователем с разных машин (нужно войти в свойства клавиатуры и выбрать "модель клавиатуры".
5. Firefox, Thunderbird, Libreoffice - работают прекрасно при входе пользователя только по RDP.
6. Программы из п.3 не работают, если тот же пользователь вошел "локально" (винда проблему решает "выбрасыванием" одной сессии).
7. 1с работает плохо. На некоторых серверах наблюдались проблемы с печатью форм (некоторые буквы в НЕКОТОРЫХ формах печатаются квадратиками и накладываются друг на друга). Причем под одним пользователем проблемы, под другим пользователем проблем нет.
8. При подключении с винды при работе с 1с, часто наблюдается "зависание интерфейса" на несколько минут. Что делает работу практически невозможной.
9. Пытались связываться с разработчиками 1с - ответ был такой: Не можем синтезировать ваши проблемы. Предложения по передаче логов, помощи в отладке игнорировались.
➡️ man xfreerdp
tags: #linux #networks © by Tagd Tagd
—
🔔 ➡️
ㅤ
Сразу оговорюсь, что я пытался использовать rdp на linux для замены виндового сервера при работе с 1с.
OC - debian, потому что в debian rdp есть в репозитариях. А, вообще живет он здесь.
Для установки на сервере - пара команд:
sudo apt install xrdp
sudo dpkg-reconfigure xserver-xorg-legacy
# выбрать подключения "от кого угодно"
Все настройки в
/etc/xrdp
основной файл xrdp.ini
.)В качестве DE использовал XFCE и LXDE по причине малых ресурсов. LXDE - лучше.
В качестве клиента (и на клиенте) использовал xfreerdp из пакета freerdp2-x11.
sudo apt install freerdp2-x11
Пробовал remmina, но она подглюкивает. Проще всего использовать алиас для подключения. У меня такой:
alias rdp='function _rdp(){ xfreerdp /h:700 /w:1300 /cert-ignore /v:"$@";}; _rdp '
700x1300 - размеры окна
/cert-ignore
- нужно для подключения к виндовым серверам, поскольку они раз в 120? дней меняют сертификаты, и приходится ручками удалять хэш из файла.Подключаюсь так:
rdp 192.168.1.100
# или так
rdp 192.168.1.100 /u:username
Ну, а теперь опыт использования:
1. Окно аутентификации можно настраивать. (
xrdp.ini
Поставить логотип конторы и прописать название сервера в заголовке окна. Удобно.)2. Любит забивать папки пользователей логами (
.xsession-errors .xorgxrdp.log
) Решается отключением логирования в ini или ссылкой этих файлов в /dev/null.
3. В XFCE проблемы с переключением раскладки клавиатуры при переподключениях.
4. В LXDE проблемы с раскладкой при входе под одним пользователем с разных машин (нужно войти в свойства клавиатуры и выбрать "модель клавиатуры".
5. Firefox, Thunderbird, Libreoffice - работают прекрасно при входе пользователя только по RDP.
6. Программы из п.3 не работают, если тот же пользователь вошел "локально" (винда проблему решает "выбрасыванием" одной сессии).
7. 1с работает плохо. На некоторых серверах наблюдались проблемы с печатью форм (некоторые буквы в НЕКОТОРЫХ формах печатаются квадратиками и накладываются друг на друга). Причем под одним пользователем проблемы, под другим пользователем проблем нет.
8. При подключении с винды при работе с 1с, часто наблюдается "зависание интерфейса" на несколько минут. Что делает работу практически невозможной.
9. Пытались связываться с разработчиками 1с - ответ был такой: Не можем синтезировать ваши проблемы. Предложения по передаче логов, помощи в отладке игнорировались.
➡️ man xfreerdp
tags: #linux #networks © by Tagd Tagd
—
🔔 ➡️