LINUX.ORG.RU

Сообщения nickdsl

 

RemoteApp Gajim блокирует GUI на Mint

Доброго времени суток. В заголовке указано прямо к-к-к-комбо (RemoteApp+Gajim+Mint).

Запускаю с Windows Server на различных клиентах (в т.ч. Mint 19 Cinnamon, Ubuntu).

Запускал вот так:

#!/bin/bash
xfreerdp /u:USER_NAME /p:USER_PASS /app:"||Gajim" /v:SERVER_IP_ADDR +clipboard

Программа странно себя вела при нажатии на иконку окна «свернуть» и «закрыть» (крест). Странность заключалась в исчезновении окна и невозможности отрисовать его заново т.к. даже убийство процесса с перезапуском не давало результата. + на Mint пока программа работала блокировался GUI (нижняя панель со всем ее содержимым становилась просто графическим элементом безо всякого поведения в ответ на клики и наведение).

В ходе экспериментов обнаружил причину: проблема с треем. При закрытии Gajim согласно своего стандартного поведения уходил в трей, только Mint 19 Cinnamon видимо не понимал что такое трей и что с этим делать. Если программу открыть на Windows, то видно что Gajim в трее. Если это окно снова развернуть и переподключиться из Linux снова, то окошко программы появлялось.

Проводил эксперименты на десктопной виртуалке с Centos 8 (Gnome 3). Там аналогичная проблема с треем, но панель активна.

На Linux Mint 19 (Cinnamon) все плохо если:

  • свернуть окно
  • закрыть на крестик
  • блокировка GUI системы частичная которую я описывал выше.

Закрытие на крестик костылится частично настройкой Gajim. Там можно активировать флажок «закрыть программу при закрытии списка контактов». Т.е. работать без трея вообще. Но проблема с заблокированной панелью так и остается.

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

Насколько реально фиксануть поведение программы запускаемой как Remote App? По поводу Cinnamon написал на соотв. форум минта. Пока тишина.

 , , ,

nickdsl
()

SSHD. Отключение 2FA для Ansible

Доброго времени суток, коллеги. Бьюсь над задачей:

  • сделать везде злой 2FA (допустим, я параноик)
  • иметь возможность пользоваться ansible

Проблематика в том, что для ansible (насколько мне удалось выяснить) нужна работа по ssh-ключу (по паролю тоже можно, но это такое себе).

ansible (насколько мне известно) не умеет 2FA, да и глупо это пытаться автоматизировать такие подключения.

Настраивал 2FA вот по такой статейке

Допустим в системе есть спец пользователь ans_user для ansible. Допустим хост с которого нужно запускать плейбуки находится строго в приватной сети и имеет адрес 10.10.10.10/24

Пробовал на узлах играться с Match конструкциями, но как показывает практика либо спустя часы раскуренных статей я так ничего и не понял как оно рабтает, либо оно реально работает не так как описано в статьях.

Параметры sshd согласно статье по ссылке выше + PermitRootLogin no

Пробовал задать вот такое:

Match User ans_user Address 10.10.10.10
     AuthenticationMethods publickey
     PasswordAuthentication no
     PubkeyAuthentication yes

Но ничего не работает. Если выкосить 2FA настройки и, например, задать по-умолчанию авторизацию по ключу, а в Match прописать авторизацию по паролю, то работать будет только по паролю и только для указанной комбинации пользователя и хоста (согласно доке), но как только в дело вступает 2FA, то все это превращается в кашу и я начинаю сходить с ума.

Собственно вопрос: можно ли сделать как то адекватно так, чтобы с определенного узла или списка узлов была выключена 2FA для конкретного пользователя и работал строго ключ?

Если да, то ткните носом пожалуйста. Спасибо!

=== UPD. 20200204 16:51 Перепробовав всякое и отчаявшись решил попробовать вариант с 2мя ssh демонами, где основной настроен по классике: ssh-key + google-authenticator где указание обоих атрибутов является обязательным и второй демон огороженный фаерволом разрешенный только в частной сети с конфигурацией:

PasswordAuthentication no
PublickeyAuthentication yes
ChallengeResponseAuthentication no
AuthenticationMethods publickey
AllowUsers ans_user@10.10.10.10

Протестировал. Работает так как я хотел. Теперь получается нужно на все узлы подобное разложить и запустить.

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

=== UPD. 20200206 18:37

Помог режим дебага (а могло помочь элементарное, но внимательное чтение манов).

В мануале на Step 3 было сказано добавить параметры в конец файла (bottom).

Match директивы я объявлял выше + в примерах после match все ниже переопределяемые параметры шли с отступами. Я ОШИБОЧНО подумал, что строки ниже где отступов нет не являются частью MATCH конструкции. В итоге не выполняющийся match не выставлял 2FA и я рвал волосы на голове от того, что не могу понять логику работы.

В итоге для меня правильным решением стало такое:

/etc/pam.d/sshd

#%PAM-1.0
#auth       substack     password-auth
auth       include      postlogin
account    required     pam_sepermit.so
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    optional     pam_motd.so
session    include      password-auth
session    include      postlogin
-session   optional     pam_reauthorize.so prepare
auth       required     pam_google_authenticator.so
/etc/ssh/sshd_config

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

SyslogFacility AUTHPRIV

PermitRootLogin no

AuthorizedKeysFile      .ssh/authorized_keys

PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication yes

GSSAPIAuthentication no
GSSAPICleanupCredentials no

UsePAM yes

X11Forwarding yes

PrintMotd no

UseDNS no

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem       sftp    /usr/libexec/openssh/sftp-server

ClientAliveInterval 120
ClientAliveCountMax 2
AuthenticationMethods publickey,keyboard-interactive

Match User ans_user Address 10.10.10.10
        AuthenticationMethods publickey

Match User ans_user Address 127.0.0.1
        AuthenticationMethods publickey

Match Address *,!10.10.10.10,!127.0.0.1
        DenyUsers ans_user
        AuthenticationMethods publickey,keyboard-interactive

Всем спасибо за помощь.

 , ,

nickdsl
()

VRRP недоступен виртуальный адрес.

Доброго времени суток.

Решил попробовать vrrp. Делал по мануалу.

Два узла Centos7/8 (пробовал на 2х -7ках и 2х -8ках). selinux: off firewalld: off

host1: 10.20.28.13/24 host2: 10.20.28.14/24 virtual ip: 10.20.28.2/24

Конфиг host1:

! Configuration File for keepalived

global_defs {
   router_id host01
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 15
    priority 160
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass infra_ip
    }
    virtual_ipaddress {
        10.113.80.166 dev ens33 label ens33:ha
    }
}

Хотя даже не суть. Даже когда узел в сети один (вариант с упавшей нодой), то ip 10.113.80.166 не пингуется извне (arp есть и корректный). Более того этот же ip не пингуется изнутри!

Вносил в sysctl.conf: net.ipv4.ip_nonlocal_bind=1

и делал sysctl -p

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

Можете ли подсказать куда копать далее? Спасибо.

 , ,

nickdsl
()

XenServer/XCP-ng и numa-split

Доброго всем времени суток! Начитался я всяких статей наподобие: http://hutpu4.net/puplication/chto-xenserver-znaet-pro-numa.html

и встала задача подробнее изучить данный вопрос.

На тестовом железном серваке есть 2 проца по 8 виртуальных ядер на каждом. До разделения было:

[root@xen ~]# xl cpupool-list
Name               CPUs   Sched     Active   Domain count
Pool-node0          16    credit       y          1

После разделения стало:

[root@xen ~]# xl cpupool-list
Name               CPUs   Sched     Active   Domain count
Pool-node0           8    credit       y          1
Pool-node1           8    credit       y          0

Теперь стоит задача: как сделать так, чтобы виртуалка при старте использовала Pool-node1 ?

В указанной мною выше статье автор пишет, что делается это руками. Сам же он это не указал где и как. Я пока не смог найти инфу как это делается для XenServer/XCP-ng.

Может тут кто знает? Помогите, пожалуйста.

 , , ,

nickdsl
()

Контрольные суммы блочного устройства

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

Загружаюсь в Ubuntu 16 с usb в режиме live. Ничего не смонтировано и ничего по идее никуда не пишется.

Когда резервировал сервак без raid контроллера, то при проверке md5sum /dev/sda (условно) она совпадала и на нее можно было опираться.

Дошло дело до серверов с raid контроллерами. И вот какие странности: Первое зеркало

root@ubuntu:~# echo "starting $(date)" ; md5sum /dev/sda ; echo "finished $(date)";
starting Fri Oct 19 04:50:08 UTC 2018
fb9f6c5845f73f2ab1e799c4542293f8  /dev/sda
finished Fri Oct 19 05:14:44 UTC 2018
root@ubuntu:~# echo "starting $(date)" ; md5sum /dev/sda ; echo "finished $(date)";
starting Fri Oct 19 05:37:35 UTC 2018
6e68c76acd7acd112a83d0968a41477e  /dev/sda
finished Fri Oct 19 06:02:10 UTC 2018
root@ubuntu:~# echo "starting $(date)" ; md5sum /dev/sda ; echo "finished $(date)";
starting Fri Oct 19 06:05:34 UTC 2018
11be5f4e9a448495831ccd8051827d33  /dev/sda
finished Fri Oct 19 06:30:08 UTC 2018

И второе зеркало:

root@ubuntu:~# echo "starting $(date)" ; md5sum /dev/sdb ; echo "finished $(date)";
starting Fri Oct 19 04:50:21 UTC 2018
10a8ae7b02fab862fcdfeeae674a475f  /dev/sdb
finished Fri Oct 19 05:15:00 UTC 2018
root@ubuntu:~# echo "starting $(date)" ; md5sum /dev/sdb ; echo "finished $(date)";
starting Fri Oct 19 05:37:39 UTC 2018
10a8ae7b02fab862fcdfeeae674a475f  /dev/sdb
finished Fri Oct 19 06:02:19 UTC 2018
root@ubuntu:~# echo "starting $(date)" ; md5sum /dev/sdb ; echo "finished $(date)";
starting Fri Oct 19 06:05:39 UTC 2018
10a8ae7b02fab862fcdfeeae674a475f  /dev/sdb
finished Fri Oct 19 06:30:19 UTC 2018

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

Raid controller из разряда старого хлама: Adaptec 5405

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

У меня было уже такое на одном серваке с raid-ом. Там правда еще старее контроллер: Adaptec 3405. Там я проигнорил разность контрольных сумм. Конвертировал dd образ под vmware и запустил ос в vmware workstation скормив ему этот образ диска. Все завелось вроде бы. Там роль обычного vpn сервера была. За это не так страшно. А вот сервак по поводу которого пишу посерьезнее. Там Oracle вертится. Как бы не сковырнуть чего. А потом когда надо будет оно еще не взведется и приплыли.

 ,

nickdsl
()

«хитрое» резервирование. как сделать?

Добрый день, комрады.

Подскажите пожалуйста мне за резервирование.

Нужно производить резервирование n-серверов на сервер резервирования. Все сугубо linux. Хостинг провайдер дал в распоряжение n-количество NFS шар. Узел резервирования монтирует эти nfs шары.

Проблематика: nfs шары от провайдера даются as-is и менять что то он по моей просьбе не станет. Все файлы которые попадают на эти шары меняют uid на 100. Получается, что n-серверов для того чтобы сложить туда свои бэкапы не могут пользоваться различными учетными данными дабы как то разграничить между собой права. Samba на сервере резервирования с шарами внутри смотированных nfs директорий выдают ошибку доступа (оно так и ожидалось, решил просто попробовать «ну а вдруг» как говорится). NFS over NFS - т.е. поднять на сервере резервирования свой NFS и в exports прописать каталоги внутри провайдерских nfs шар как свои локальные nfs шары дабы разграничить доступы - permission denied при попытке монтирования. Т.е. либо это невозможно, либо я что то неправильно готовлю.

sshfs через ключ пользователя который имеет право туда писать - done. НО! этот пользователь на всех серверах будет один. Получается, если один из узлов будет скомпрометирован, то через него можно поиметь все бэкапы весьма нехитро.

Пробовал обратный sshfs - активная схема: сам бэкапер монтирует свой определенный каталог в нужный каталог клиента и кладет условный файлик являющийся неким trigger-file наличие которого позволяет клиенту начать писать данные в этот каталог.

Оно работает, НО клиент в такой схеме даже не подозревает что у него что то там смонтировано и пишет данные в этот каталог переполняя свою собственную локальную FS. Для резервирования объемов данных > чем свободное место в локальной FS даже при наличии сжатия бэкап зафэйлится. А у меня 90% таких случаев.

Собственно вопрос: не подскажете ли, что мне использовать для активной схемы резервирования чтобы избежать вышеуказанной проблемы переполнения локальной FS?

Заранее спасибо.

 , , ,

nickdsl
()

RSS подписка на новые темы