16.03.2011 19:37

immortaldayУдалённое отключение сервера под управлением ОС QNX

Недавно встал вопрос о том как потушить сервер на QNX из под Solaris, может кому пригодится, поэтому я просто оставлю это здесь.



Для удалённого отключения сервера под управлением ОС QNX необходимо настроить доверительное отношение по протоколу SSH данного сервера к серверу под управлением ОС Solaris. Доверительные отношения позволят удаленно запускать на сервере под управлением ОС QNX выполнение команд с сервера под управлением ОС Solaris под служебной учетной записью без ввода пароля.

В рамках данного решения на сервере QNX должен быть установлен OpenSSH, реализация проходила под управлением ОС QNX 6.4.1 ( но с другими версиями последовательность такая же)

На сервере под управлениeм ОС QNX необходимо выполнить следующее:
1) Создать учётную запись пользователя (например, powermanager) , от имени которого будет происходить отключение сервера.
2) Настроить SSH:

Выполнить скрипт:

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh
KEYGEN=/usr/bin/ssh-keygen
RSA1_KEY=/etc/ssh/ssh_host_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key

if < ! -s $RSA1_KEY >; then
$KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N ''
chmod 600 $RSA1_KEY
chmod 644 $RSA1_KEY.pub
fi

if < ! -s $RSA_KEY >; then
$KEYGEN -q -t rsa -f $RSA_KEY -C '' -N ''
chmod 600 $RSA_KEY
chmod 644 $RSA_KEY.pub
fi

if < ! -s $DSA_KEY >; then
$KEYGEN -q -t dsa -f $DSA_KEY -C '' -N ''
chmod 600 $DSA_KEY
chmod 644 $DSA_KEY.pub
fi

chmod 755 /var/chroot/sshd/



Для автоматического запуска sshd при загрузке системы добавить в /etc/rc.d/rc.local:

#!/bin/sh
/usr/sbin/sshd &


В /etc/ssh/sshd_config раскомментировать строки:


#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys


3) Установить suid бит на /bin/shutdown

От имени пользователя root выполнить:

# chmod u+s /bin/shutdown


На сервере под управлением Solaris необходимо выполнить следующее:

1) Создать служебную учётную запись пользователя (например, powermanager) , от имени которого будет происходить запуск команд.
2) Зарегистрироваться под учетной записью служебного пользователя. И перейти в его домашнюю директорию (например, /export/home/powermanager /).
3) В домашней директории пользователя создать, если не существует, директорию .ssh:

# mkdir /export/home/powermanager/.ssh

4) Cгенерировать пару ключей секретный/открытый с помощью утилиты ssh-keygen, выполнив следующую команду:

# /usr/bin/ssh-keygen -t rsa -b 2048 -f $HOME/.ssh/id_rsa

Примечание – В ответ на приглашение «ввести секретный пароль», вводить пароль не требуется, необходимо нажать «Enter», оставив значение пароля пустым. В случае если секретный пароль будет введен, каждый раз при удаленном подключении по протоколу SSH под учетной записью служебного пользователя помимо пароля ОС, будет дополнительно проверяться секретный пароль.
После выполнения команды в директории $HOME/.ssh/id_rsa появится два файла, id_rsa – секретный ключ, id_rsa.pub – открытый ключ.
5) С сервера под управлением ОС Solaris добавить полученный сгенерированный открытый ключ, в перечень доверенных на сервере под управлением ОС QNX. Для этого необходимо добавить его в файл /home/powermanager/.ssh/authorized_keys пользователя powermanager, выполнив команду:

# cat ~/.ssh/id_dsa.pub | ssh powermanager@qnxhost 'umask 0022 && mkdir -p ~/.ssh && cat - >> ~/.ssh/authorized_keys'


Ввести значение «yes» в случае появления сообщения следующего вида:
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
DSA key fingerprint is 1a:4b:e0:6f:83:4e:82:c3:9b:83:63:33:c0:f2:29:ce.
Are you sure you want to continue connecting (yes/no)?

В ответ на приглашение ввести пароль ввести пароль учетной записи.

6) Создать в домашнем каталоге пользователя (/export/home/powermanager/) скрипт с именем shutdown-kas.sh следующего содержания:


1
2
#!/bin/sh
ssh -qn powermanager@qnxhost shutdown -b > /dev/null 2>&1




7) Сделать созданный скрипт исполняемым, выполнив следующую команду:

# chmod +x /export/home/powermanager/shutdown-kas.sh



Тэги: bash QNX Solaris
+ 3 -
Похожие Поделиться

Craftuser 16.03.2011 20:19 #
Спасибо, пригодилось.
cyrus 16.03.2011 23:36 #
Solaris, QNZ, AIX - может устроить неделю Unix?)
Интересно почему выбирают именно эти ОС. В каких областях они превосходят Linux? ведь многие из них даже не бесплатны.
immortalday 17.03.2011 11:27 #
Выбор ОС зависит от многих факторов, както то привязка производителя и железа, как пример это IBM c AIX или HP c HP-UX или просто хотелка заказчика. То как и сертификация ОС или приклада ФСТЭК'ом, и т.п. В основном встречается RedHat\Solaris\AIX\FreeBSD.

А вот по теме чем они(UNIX\etc) превосходят Linux сказать сразу сложно, так как в чемто они действительно очень гибки а в чем-то до Linux им еще далеко.

В качестве примера могу привести AIX который умеет штатно делать свои резервные копии(тобишь всей ОС) как на ленту(файл) так и в виде Install CD и имеет очень гибкий механизм LVM. Если смотреть на Solaris то одна установленная "соляра" может содержать в себе несколько других "солярок" стоящих в неглобальной зоне и они будут изолированны от основной системы в которой они работают, что в случае компрометации одной из осей в зоне никак не отобразится в целом на системе. Да и одним комментом не расскажешь всего, а если и рассказывать то это будет достаточно большая серия постов)
antoney 17.03.2011 11:50 #
Один из самых интересных комментариев, что я читал на вилунуксе.
Специально залогинился, чтобы поставить + :)
Было бы очень интересно почитать что-либо про юниксы от человека, который сталкивался с этим.
bmw 17.03.2011 15:38 #
Ынтырпрайз же! Иногда в хорошем смысле, иногда в плохом. Соляра вообще интересная сборная солянка из чего-то древнего, пришедшего еще от System V и супер-технологий вроде зон и zfs. QNX - ос реального времени, сертифицированная по самое не могу. AIX -- без вариантов на POWER архитектуре {я знаю что линукс тоже умеет, но если вы покупаете у IBM два-три шкафа набитых чем-нибудь вроде p570 для того чтоб крутить там SAP то предпочтение линуксу отдать можно только если есть какие-то очень веские аргументы)
demon1981 17.03.2011 09:04 #
объясните - не понимаю. В чем тут фишка именно QNX+solaris? К чему статья?
Настройка ssh на QNX? Авторизация по ключам?

заходишь по ssh и от рута делаешь shutdown - вот вся суть статьи. Или там сервер такой неубиваемый, что его надо по крону раз в минуту гасить, а то сам себе питание включит?
immortalday 17.03.2011 11:33 #
В самом начале есть такое "...может кому пригодится...". Связка QNX + Solaris обусловлена тем что на них нужно было такое сделать.

Вам данная информация может и не пригодится никогда, а для кого-то это готовое решение.
demon1981 18.03.2011 09:14 #
имею ввиду что в статье нит ничего специфичноособенного именно для связки QNX и Solaris. Все на тему "ssh+ключи"
И второе: огород городить стоит скажем для получения какого-то частоизменяемого и постоянно нужного в работе серверного файла себе на машину по scp. Это та задача которая нужна бывает по нескольку раз на дню. Выполнил скриптик и вот он файл у тебя на машине безо всяких паролей и прочих лишних телодвижений. Но по нескольку раз на дню удобно в одно действие гасить сервер... не могу представить зачем
immortalday 18.03.2011 15:02 #
Уважаемый,

Но по нескольку раз на дню удобно в одно действие гасить сервер... не могу представить зачем


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

demon1981 19.03.2011 12:35 #
согласен. хороший сценарий, если демона упса нет
demon1981 19.03.2011 12:35 #
не пришел сразу в голову
bmw 17.03.2011 16:13 #
а может кавычки для надежности поставить:
ssh -qn powermanager@qnxhost 'shutdown -b > /dev/null 2>&1'
?