[sisyphus] В установочном скрипте пакета freenx-server захардкожен ключ SSH

Stas stas.grumbler на gmail.com
Вс Мар 27 20:14:18 MSK 2016


Приветствую!

Устанавливаю сервер freenx и обнаружил весёлую "дыру".

После установки мануал рекомендует выполнить /etc/init.d/freenx-server 
install.
В результате выполняется скрипт /usr/bin/nxsetup с параметром --install.

Внутри /usr/bin/nxsetup в функции parse_cmdline(), начиная со строки 126 
есть код:
============================================================
         if [ "$INSTALL" = "yes" -a "$AUTOMATIC" = "no" -a 
"$SETUP_NOMACHINE_KEY" = "no" ]
         then
                 echo "------> It is recommended that you use the 
NoMachine key for"
                 echo "        easier setup. If you answer \"y\", FreeNX 
creates a custom"
                 echo "        KeyPair and expects you to setup your 
clients manually. "
                 echo "        \"N\" is default and uses the NoMachine 
key for installation."
                 echo ""
                 echo -n " Do you want to use your own custom KeyPair? 
[y/N] "
                 read -n 1 CHOICE
                 [ "$CHOICE" = "y" ] || SETUP_NOMACHINE_KEY="yes"
         fi
============================================================

То есть скрипт рекомендует использовать некий "NoMachine key".
Смотрим, что это за ключ такой и видим его в функции install_nx() 
(цитирую, начиная со строки 196):
============================================================
         mkdir -p $NX_HOME_DIR/.ssh
         chmod 700 $NX_HOME_DIR/ $NX_HOME_DIR/.ssh

         if [ ! -f $NX_HOME_DIR/.ssh/$SSH_AUTHORIZED_KEYS -o 
"$SETUP_NOMACHINE_KEY" = "yes" ]
         then
                 SETUP_NX_KEY="yes"
                 if [ "$SETUP_NOMACHINE_KEY" = "yes" ]
                 then
                         cat << EOF >$NX_HOME_DIR/.ssh/$SSH_AUTHORIZED_KEYS
no-port-forwarding,no-agent-forwarding,command="$PATH_BIN/nxserver" 
ssh-dss 
AAAAB3NzaC1kc3MAAACBAJe/0DNBePG9dYLWq7cJ0SqyRf1iiZN/IbzrmBvgPTZnBa5FT/0Lcj39sRYt1paAlhchwUmwwIiSZaON5JnJOZ6jKkjWIuJ9MdTGfdvtY1aLwDMpxUVoGwEaKWOyin02IPWYSkDQb6cceuG9NfPulS9iuytdx0zIzqvGqfvudtufAAAAFQCwosRXR2QA8OSgFWSO6+kGrRJKiwAAAIEAjgvVNAYWSrnFD+cghyJbyx60AAjKtxZ0r/Pn9k94Qt2rvQoMnGgt/zU0v/y4hzg+g3JNEmO1PdHh/wDPVOxlZ6Hb5F4IQnENaAZ9uTZiFGqhBO1c8Wwjiq/MFZy3jZaidarLJvVs8EeT4mZcWxwm7nIVD4lRU2wQ2lj4aTPcepMAAACANlgcCuA4wrC+3Cic9CFkqiwO/Rn1vk8dvGuEQqFJ6f6LVfPfRTfaQU7TGVLk2CzY4dasrwxJ1f6FsT8DHTNGnxELPKRuLstGrFY/PR7KeafeFZDf+fJ3mbX5nxrld3wi5titTnX+8s4IKv29HJguPvOK/SI7cjzA+SqNfD7qEo8= 
root на nettuno
EOF
                         chmod 600 $NX_HOME_DIR/.ssh/$SSH_AUTHORIZED_KEYS
                         cat << EOF >$NX_HOME_DIR/.ssh/client.id_dsa.key
-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKBgQCXv9AzQXjxvXWC1qu3CdEqskX9YomTfyG865gb4D02ZwWuRU/9
C3I9/bEWLdaWgJYXIcFJsMCIkmWjjeSZyTmeoypI1iLifTHUxn3b7WNWi8AzKcVF
aBsBGiljsop9NiD1mEpA0G+nHHrhvTXz7pUvYrsrXcdMyM6rxqn77nbbnwIVALCi
xFdHZADw5KAVZI7r6QatEkqLAoGBAI4L1TQGFkq5xQ/nIIciW8setAAIyrcWdK/z
5/ZPeELdq70KDJxoLf81NL/8uIc4PoNyTRJjtT3R4f8Az1TsZWeh2+ReCEJxDWgG
fbk2YhRqoQTtXPFsI4qvzBWct42WonWqyyb1bPBHk+JmXFscJu5yFQ+JUVNsENpY
+Gkz3HqTAoGANlgcCuA4wrC+3Cic9CFkqiwO/Rn1vk8dvGuEQqFJ6f6LVfPfRTfa
QU7TGVLk2CzY4dasrwxJ1f6FsT8DHTNGnxELPKRuLstGrFY/PR7KeafeFZDf+fJ3
mbX5nxrld3wi5titTnX+8s4IKv29HJguPvOK/SI7cjzA+SqNfD7qEo8CFDIm1xRf
8xAPsSKs6yZ6j1FNklfu
-----END DSA PRIVATE KEY-----
EOF
                         chmod 600 $NX_HOME_DIR/.ssh/client.id_dsa.key
                 else
                         # generate a new key, backup the old and copy 
it to $SSH_AUTHORIZED_KEYS
                         $PATH_BIN/nxkeygen
                 fi
         fi
============================================================


IMHO это серьёзный баг и нужно исключить использование такого ключа.


-- 
Станислав Дёгтев
Служба "Ваш админ"
  Мои контакты:
  - jabber: grumbler на grumbler.org
  - email: stas.grumbler на gmail.com и stas на vashadmin.su
  - телефоны в Е-бурге +79045430461 и +79222112259



Подробная информация о списке рассылки Sisyphus