Как -Подключить контроллер Xbox по Bluetooth

В вашем случае, я думаю, вы также могли бы максимально придерживаться стандартных процедур.

Начиная с нетронутой CentOS 6.10 минимальной установки ISO, я бы действовал следующим образом:

Во-первых, включить неограниченный OpenVPN :CentoOS 6 поставляется со стандартной политикой SELinux, которая по умолчанию запускает /usr/sbin/openvpnдвоичный файл в ограниченном режиме, который в основном разрешает только сетевые настройки, тем самым предотвращая любой вспомогательный скрипт. чтобы можно было сделать что-нибудь полезное. Однако CentOS 6 также предоставляет один простой параметр для включения неограниченного OpenVPN. Как суперпользователь запустите:

setsebool -P openvpn_run_unconfined on

Подождите несколько секунд, так как это может занять некоторое время.

Вы можете вернуть его в ограниченный режим, как только все заработает. Есть несколько жизнеспособных подходов, к которым я вернусь позже.

Затем, чтобы продолжить базовую настройку, установите репозиторий EPEL в yum вашей системы:

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

Это дает yum вашей системы репозиторий, который предоставляет пакеты RPM для openvpn и передачи, упакованные для CentOS 6.

После этого вы можете сделать:

yum install openvpn transmission-daemon

Затем установите бота transmission-telegram, как вы уже сделали. Просто не забудьте поместить его в каталог, указанный в $PATH. Принимая во внимание политику CentOS 6 SELinux, /usr/local/binможет быть хорошим выбором.

(Пожалуйста, обратите внимание , что я не могу подробно рассказать о ботах Telegram, потому что я ничего о нем не знаю и даже не могу его протестировать, потому что вообще не пользуюсь Telegram.)

Затем создайте скрипт openvpn-transmission-up.shнаподобие:

#!/bin/bash

PATH+=":/sbin:/usr/sbin"
service transmission-daemon start
service transmission-daemon status && telegram-bot-start.sh

telegram-bot-start.sh— это просто гипотетическая оболочка для запуска фактической команды, которая запускает бота Telegram, и выполняется только в случае успешного запуска демона передачи -. Вы также можете использовать прямую команду вместо сценария-оболочки, если прямую команду можно сделать одной строкой -, которая будет помещена после &&.

Затем также сделайте скрипт openvpn-transmission-down.shнаподобие:

#!/bin/bash

PATH+=":/sbin:/usr/sbin"
telegram-bot-stop.sh
service transmission-daemon stop || true

Здесь вы также можете использовать прямые команды для остановки бота Telegram вместо обёртки telegram-bot-stop.sh, даже если они на самом деле представляют собой последовательность команд.

Затем сделайте два вышеуказанных сценария работоспособными:

chmod +x openvpn-transmission-up.sh openvpn-transmission-down.sh

и снова поместите их в каталог /etc/openvpn/scripts(, чтобы соответствовать политике CentoOS SELinux ). Создайте этот каталог, если у вас его еще нет.

Затем поместите свой собственный конфиг для OpenVPN в /etc/openvpn. Такой файл можно назвать как угодно, но он должен иметь суффикс .conf.

Убедитесь, что в этом файле .confесть следующие строки:

script-security 2
route-up scripts/openvpn-transmission-up.sh
route-pre-down scripts/openvpn-transmission-down.sh

Если у вас уже есть скрипты route-upили route-pre-down, просто объедините существующие скрипты до -с указанными выше соответственно, но обязательно поместите их в /etc/openvpn/scripts.

Приведенная выше настройка гарантирует, что ваш бот Transmission и Telegram всегда будут следовать судьбе VPN-туннеля.

Наконец, установите openvpn для запуска при загрузке:

chkconfig openvpn on

Этот последний параметр зависит от установки, поставляемой с пакетом RPM для OpenVPN, что позволяет запускать его только после успешного запуска общей сети.

Обратите внимание: я думаю, вам не нужно настраивать Transmission, потому что конфигурации по умолчанию, поставляемой с пакетом RPM, должно быть достаточно. Однако, если вы хотите повторно использовать команду sedдля установки IP-АДРЕСА _, поместите эту команду sedв сценарий openvpn-transmission-up.shперед запуском демона передачи -. В любом случае, обычно лучше использовать $ifconfig_localвместо $4.

К этому моменту все должно быть готово. Вы можете проверить это с помощью простого service openvpn, за которым следует start, или stop, или restart и т. д. Или просто перезагрузив безголовый сервер.

ПРИМЕЧАНИЕ : если ваш провайдер VPN требует аутентификации с помощью имени пользователя и пароля, вам нужно будет поместить их в файл в две отдельные строки. Этот файл должен находиться в папке /etc/openvpnв соответствии с политикой SELinux. Затем включите auth-user-pass /etc/openvpn/credentials-fileв ваш файл openvpn .conf. Если вы этого не сделаете, CentOS остановится во время загрузки, ожидая интерактивного ввода учетных данных, или просто OpenVPN может просто отказаться запускаться.


Что касается (повторного -)усиления вышеуказанной настройки, в зависимости от ваших предпочтений вы можете быть довольны тем, как есть :установка на данный момент использует допустимые настройки, предварительно -установленные CentOS, в том числе тот, который позволяет OpenVPN работать с меньшими ограничениями, что в основном позволяет вспомогательным сценариям свободно выполнять двоичные файлы, доступные в системе. Как бы расплывчато это ни звучало, он по-прежнему более ограничен, чем полное отсутствие SELinux, и, оставив все таким образом, и Transmission, и Telegram-бот работают с немного большими ограничениями, чем их стандартная (или ручная )установка. разрешать.

Если вы хотите вернуть OpenVPN в режим ограниченной работы, это все равно может быть довольно легко сделать, воспользовавшись тем фактом, что CentOS 6 фактически использует Upstart в качестве своего /sbin/init, даже несмотря на то, что большая часть операций загрузки зависит от устаревшего Скрипты в стиле SysVinit -. Однако вам потребуются дополнительные шаги:

  1. (к счастью, простая )пользовательская политика SELinux, по крайней мере, позволяющая OpenVPN общаться с Upstart, чтобы он запрашивал у последнего запуск Transmission и бота Telegram
  2. пара (простых )заданий Upstart для запуска Transmission через его унаследованные скрипты и для бота Telegram

Для начала переведите OpenVPN обратно в ограниченный режим:

setsebool -P openvpn_run_unconfined off

Теперь, если вы запустите OpenVPN, вспомогательные скрипты не смогут запустить бота Transmission и Telegram.

Итак, пользовательская политика SELinux:

Создайте файл с именемopenvpn-talk-upstart.teточно следующим образом:

module openvpn-talk-upstart.mod 1.0;

require {
        type openvpn_t;
        type init_t;
        class unix_stream_socket connectto;
}

allow openvpn_t init_t:unix_stream_socket connectto;

Затем выполните следующие команды:

checkmodule -m -M -o openvpn-talk-upstart.mod openvpn-talk-upstart.te
semodule_package -o openvpn-talk-upstart.pp -m openvpn-talk-upstart.mod
semodule -i openvpn-talk-upstart.pp

последняя команда может занять некоторое время.

Затем задания Upstart:

Создайте файл /etc/init/transmission-up.confследующим образом:

task

exec service transmission-daemon start

и файл /etc/init/transmission-down.confследующим образом:

task

exec service transmission-daemon stop

Тогда вам нужны задания Upstart для бота Telegram.

Для согласованности с моим примером я придерживаюсь своего гипотетического подхода к сценариям, поэтому файлы заданий, названные, например, /etc/init/telegram-bot-up.confи /etc/init/telegram-bot-down.conf, будут такими же, как файлы Transmission, только с командами execed, преобразованными в (соответственно)/usr/local/bin/telegram-bot-start.shи /usr/local/bin/telegram-bot-stop.sh.

Обратите внимание, что здесь, в зависимости от вашего доверия к Upstart, вы также можете поместить соответствующие команды непосредственно в файлы заданий, в ключевые слова script... end-scriptвместо ключевого слова exec,или вы даже можете создать демона, полностью контролируемого Upstart -, с помощью одного единственного файла задания Upstart (, но не типа task), если вам так хочется.

После этого сделайте вспомогательный сценарий OpenVPN openvpn-transmission-up.shв /etc/openvpn/scriptsследующим:

#!/bin/sh

/sbin/start transmission-up && /sbin/start telegram-bot-up

и сценарий openvpn-transmission-down.sh:

#!/bin/sh

/sbin/start telegram-bot-down
/sbin/start transmission-down || true

Обратите внимание на использование команды /sbin/start, хотя на самом деле это операция «вниз».

Теперь все должно работать с OpenVPN в исходном ограниченном (, т.е. более безопасном )режиме, но и с Transmission, и с ботом Telegram в их стандартном «бесплатном» (, т.е. менее безопасном )режиме.


Если вы хотите еще больше усилить защиту этих двух последних, вам нужно будет запустить их в ограниченном контексте SELinux, например, для OpenVPN, а затем провести тщательный анализ файла /var/log/audit/audit.log, чтобы точно настроить политику SELinux. В этом вам могут помочь инструменты, а именно команда audit2allow, доступная в пакете policycoreutils-python.

Вы можете запустить эту команду поверх audit.log, полученного из SELinux в разрешительном режиме (, см. файл /etc/sysconfig/selinux), но это может привести к слишком большому разрешению. В противном случае вы можете запустить его поверх audit.log, который исходит от обычного принудительного SELinux, выполняя его шаг -за шагом -, пока вы, наконец, не доберетесь до рабочей настройки. В последнем случае вы можете быть уверены, что разрешаете только то, что действительно необходимо.

Вывод из audit2allow -a -m...должен быть передан в checkmodule -m -M -o..., затем вывод этого последнего в semodule_package -o... -m...и, наконец, semodule -iфайла, сгенерированного semodule_package. Эта итерация на каждом шаге анализа.

Это может быть очень долгой задачей, и даже когда вы доберетесь до рабочей установки, это может быть так только вначале :в какой-то момент вы можете столкнуться с неожиданными проблемами "отказ в доступе" позже на, например в первый раз, когда ваша передача или бот Telegram,пытается получить доступ к чему-то, чего раньше не пробовал.

0
21.03.2021, 15:48
1 ответ

Временный

  1. Удалите контроллер из раздела «запомненные устройства» вашего программного обеспечения для управления Blueooth.
  2. Бежать
    echo Y | sudo tee /sys/module/bluetooth/parameters/disable_ertm
    
  3. Подключиться к контроллеру.

This is temporary, rebooting your computer will undo the effect of step 2

There is also a permanent solution in the linked article, but I didn't use that and so I haven't included it in this answer, if anyone does use it, and it works, feel free to add it here.

источник

Постоянно

  1. Править
    /etc/modprobe.d/xbox_bt.conf
    
  2. Добавьте это в файл
    options bluetooth disable_ertm=1
    
  3. Перезагрузите компьютер.
  4. Заметьте, что /sys/module/bluetooth/parameters/disable_ertmравно Y.

источник

Примечания

Возможно, вам потребуется выполнить следующую команду в конце, чтобы все заработало.

sudo systemctl restart bluetooth
0
28.04.2021, 22:58

Теги

Похожие вопросы