Постоянный том OpenShift Origin и Ceph

Я установил OpenShift Origin из последней доступной установки. (CentOS 7 - 3 мастера и 7 узлов)

[root@master-1 ~]# openshift version
openshift v1.1.0.1-1-g2c6ff4b
kubernetes v1.1.0-origin-1107-g4c8e6f4
etcd 2.1.2

Я пытаюсь создать постоянное хранилище CEPH с помощью плагина rbd . У меня рабочий кластер Ceph и я следовал официальному руководству по ceph из документации:

https://docs.openshift.org/latest/install_config/persistent_storage/persistent_storage_ceph_rbd.html

Я могу без проблем создать persistentVolume и persistentVolumeClaim, но когда кубернеты попытаются смонтируйте том, он сообщает об ошибке:

FailedMount  {kubelet node-4} Unable to mount volumes for pod "php55-rzat2_xyz": unsupported volume type
Pod  FailedSync   {kubelet node-4}   Error syncing pod, skipping: unsupported volume type

Я установил пакеты ceph , ceph-common и ceph-fuse на всех узлах (и будет конечно, на мастерах тоже устанавливал).

persistentVolume заявлен persistentVolumeClaim, как и ожидалось.

Файл конфигурации pv:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: "ceph-ssd-0000-11"
spec:
  capacity:
    storage: "1Gi"
  accessModes:
    - "ReadWriteOnce"
  rbd:
    monitors:
      - "10.0.0.5:6789"
      - "10.0.0.6:6789"
      - "10.0.0.7:6789"
    pool: ssdvolumes
    image: ssd-shift-pv-0001
    user: ssdvolumes
    secretRef:          
       name: "QVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="
    fsType: ext4
    readOnly: false
  persistentVolumeReclaimPolicy: "Recycle"

Я также могу без проблем подключиться через rbd в cli.

Кто-нибудь может мне с этим помочь? Я думал, что плагин rbd автоматически устанавливается в кубернетах с установкой openshift. Этот пакет указывает точные версии своих зависимостей (без архитектуры ...

Я создал мета-пакет RPM (скажем, metapkg ), который извлекает все зависимости, которые мне нужны в моей системе (CentOS 7). На стороне сервера я уже отключил аутентификацию по паролю и только ...

Итак, у меня есть этот симпатичный юбикей, и я хочу добавить дополнительный уровень безопасности при аутентификации сессий ssh. На стороне сервера я уже отключил аутентификацию по паролю и разрешил использование ключей ssh ​​только при входе в систему.

Проблема в том, что после настройки sshd и PAM для yubikey auth sshd по-прежнему требует только ssh-ключ, я никогда не просил предоставить ответ от юбикея.

Как мне потребовать и , и ключ ssh и юбикей?

(ubuntu 14.04 - надежный)

/ etc / pam.d / common-auth :

auth    required    pam_yubico.so mode=client try_first_pass id=<id> key=<secret>
auth    [success=1 default=ignore]  pam_unix.so nullok_secure try_first_pass
# here's the fallback if no module succeeds
auth    requisite           pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth    required            pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth    optional            pam_cap.so
# end of pam-auth-update config

/ etc / ssh / sshd_config :

...

PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes
12
задан 10 December 2015 в 05:51
2 ответа

Хорошо, я продолжал и думаю, что придумал разумное решение. Главное, чего мне не хватало раньше, это sshd's AuthenticationMethods publickey, password. Это приводит в исполнение требование как для публичного ключа , так и для пароля -- "пароль" теперь обрабатывается PAM->auth-yubi. Дополнительные изменения также были необходимы, см. ниже:

(ubuntu 14.04 - trusty):

/etc/pam.d/yubi-auth

auth    required pam_yubico.so mode=client try_first_pass id=<id> key=<key>

Примечание: вы можете получить ваш идентификатор доступа и секретный ключ здесь

/etc/pam. d/sshd

# Standard Un*x authentication.
#@include common-auth

# Yubikey auth
@include yubi-auth

/etc/ssh/sshd_config

UsePAM yes
ChallengeResponseAuthentication no
AuthenticationMethods publickey,password
PasswordAuthentication yes

service ssh restart

Verification

SSH с удаленного хоста без публичного ключа

root@0a6442bcb21c:/# ssh ben@192.168.1.20
The authenticity of host '192.168.1.20 (192.168.1.20)' can't be established.
ECDSA key fingerprint is ea:2a:e3:98:35:72:66:b1:e0:65:6b:3f:60:8a:af:ab.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.20' (ECDSA) to the list of known hosts.
Permission denied (publickey).

SSH с удаленного хоста с помощью публичного ключа

$ ssh ben@192.168.1.20
Authenticated with partial success.
ben@192.168.1.20's password:
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-33-generic x86_64)

Improvement

Было бы неплохо увидеть "Yubikey Auth:" вместо "password:" с удаленного сервера ssh при аутентификации.

Что происходит, когда ssh-сервер не может связаться с системой автопроверки Yubikey Auth:? Идеальным решением было бы полностью автономное решение.

Комментарии и предложения оценены.

4
ответ дан 2 December 2019 в 21:40

Настройка 2FA с Yubikey может быть хитрой (думаю, есть openssh патч для U2F), но самый простой способ, вероятно, описан на официальном сайте Yubiico.

В основном, это способ хранения вашего личного ключа на Yubikey и его защиты с помощью PIN-кода. Это не совсем та 2FA, которую вы описали (но это то, что вы имеете и что вы знаете ), но это еще больше увеличивает безопасность (Yubikey блокируется после некоторых неудачных попыток).

TL:DR;

OPENSC_LIBS=`locate opensc-pkcs11.so`
yubico-piv-tool -s 9a -a generate -o public.pem
yubico-piv-tool -a verify-pin -P 123456 -a selfsign-certificate -s 9a \
  -S "/CN=SSH key/" -i public.pem -o cert.pem
yubico-piv-tool -a import-certificate -s 9a -i cert.pem
ssh-keygen -D $OPENSC_LIBS/opensc-pkcs11.so -e
ssh -I $OPENSC_LIBS/opensc-pkcs11.so user@remote.example.com
2
ответ дан 2 December 2019 в 21:40

Теги

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