13.07.10 12:08 main

Есть вопрос![Решено] Как разрешить доступ по freenx без shell по ssh

Вот он и вопрос...

Есть freenx сервер, необходимо сделать так, что бы пользователь имел доступ к графике(freenx) и при этом не мог зайти по ssh(shell(bash)) и sftp.

P.S> если я в passwd пропишу /sbin/nologin или /bin/false то работать не будет, я вообще не смогу зайти ни по ssh ни по freenx.

Решение под катом>

UPD:
Решение:
В процессе анализа работы всей этой лабуды - было сделано несколько выводов:
1. /sbin/nologin и /bin/false прописывать пользователю нельзя. Потому что под пользователем осуществляется ssh login - это можно наблюдать в логах. Так-же в логах видно что пользователь логинится с IP 127.0.0.1

2. В /etc/ssh/sshd_config
AllowUsers nx username@127.0.0.1

Таким образом пользователю nx разрешается доступ с любого IP а username только со 127.0.0.1

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



cppmm 13.07.10 12:17 # +1
1. Написать скрипт, поднимающий freenx окружение и воткнуть его в /etc/passwd вместо шелла.
2. Запретить по ssh исполнение каких-либо команд помимо запуска freenx-сессии.
main 13.07.10 12:40 # +0
Можно поподробнее?
Какой-нибудь мини пример...
cppmm 13.07.10 13:33 # +0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@linux bacula]$ grep ftpadmin /etc/passwd
ftpadmin:x:1001:1001:,,,:/home/cppmm/disk2/ftp:/bin/test.sh
[root@linux bacula]$ cat /bin/test.sh
#!/bin/bash
#

echo "Hello, World!"
[root@linux bacula]$ ssh -l ftpadmin 127.0.0.1
ftpadmin@127.0.0.1's password:
Linux linux 2.6.26-2-686 #1 SMP Wed May 12 21:56:10 UTC 2010 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Jul 13 16:32:42 2010 from 127.0.0.1
Hello, World!
Connection to 127.0.0.1 closed.
[root@linux bacula]
cppmm 13.07.10 13:35 # +0
Вместо хелловорда надо прописать команду запуска freenx-сессии.
main 13.07.10 13:55 # +0
спасибо - попробую.
space 13.07.10 12:57 # +0
Боюсь это не верный способ т.к. вместо своего шела пользователь будут запускать freenx скрипт.
cppmm 13.07.10 13:26 # +0
А разве не это надо ТС?
space 13.07.10 12:59 # +0
Не понятно только зачем? если он и так в окружении будет иметь теже права что и по ssh. Или запускается только одно приложение?
main 13.07.10 13:15 # +0
эээ... вы не поверите.
main 13.07.10 13:24 # +0
Основная идея этого заключается в следующем:

Заказчик хочет чтобы программист, который будет писать сайт, не мог украсть исходники. Было придумано приб. следующее - программист сидит через "удалённый раб. стол", буфер обмена отключён, инет отключён(програмёр - фрилансер, сидит через инет, в общем файрвол блочит).

Короче, по freenx он прекрасно сидит на рабочем столе без буфера, но есть ssh который надо отключить, а freenx работает через ssh.
krig 13.07.10 13:40 # +9
Самое правильное и технически-грамотное решение в данной ситуации - послать заказчика нахуй открытым текстом.
xT 13.07.10 13:46 # +2
видимо нахуй будет послан программист, после того как всё сделает : )
main 13.07.10 13:48 # +0
Ну моё дело маленькое - мне сказали, я делаю и $ получаю.
Мне интересно, как программист не отказывается от такой работы... Но это уже его дело.
krig 13.07.10 13:54 # +6
Расскажи своему заказчику, что кроме технической йобли существует еще простенький юридический документ, называем в буржуйсках NDA, или просто "Соглашение о неразглашении".
nvbn 13.07.10 13:43 # +7
буфер обмена отключён

А там программиста плёткой не бьют, чтоб не отвлекался?
xT 13.07.10 13:43 # +6
наскриншотит ваш сайт и продаст конкурентам!
main 13.07.10 13:50 # +0
Да, заказчик и это предусмотрел, и хотел, что бы это было отключено.
Я согласился это сделать, после того как он предоставит решение :)
xT 13.07.10 13:52 # +2
заказчик - россия\украина\снг?
main 13.07.10 14:03 # +0
:-)
xT 13.07.10 14:05 # +2
чтд : )
razum2um 13.07.10 23:29 # +0
завязать глаза программисту!
выломать принтскрин на клаве (срезать лобзиком)!!
уничтожить программера после выполнения задания!!!
cppmm 13.07.10 14:22 # +0
А что мешает программеру вставить в код маленький рутикитик, через который можно будет стянуть всё, что нужно с уже работающей системы? ;)
xT 13.07.10 14:25 # +0
заказчик сделает code review по скриншотам : )
liksys 13.07.10 13:42 # +0
Никак.
nvbn 13.07.10 13:48 # +0
Кстати, даже если можно, программист всё-равно сможет сделать вызов консоли из кода =)
main 13.07.10 13:53 # +2
Это не выполнимая задача тчк.

Заказчик этого не понимает.

Я никому ничего не доказываю. Говорят - делаю - получаю $.
razum2um 13.07.10 23:32 # +0
скопировать нельзя взломать
K-9 13.07.10 23:38 # +0
спрятать нельзя слить
albibek 13.07.10 15:15 # +0
Клиент от NoMachine логинится на хост под общим юзером nx, у которого шеллом прописан /usr/bin/nxserver. После авторизации они общаются по протоколу nxserver и сервер уже сам проверяет авторизацию клиента. Видимо, сейчас он настроен так, что проверяет и наличие у клиента шелла. Как он это делает - через pam или ещё как-то, зависит от сервера и его конфигурации.
В любом случае, разрешение на логин клиента по ssh не требуется, поэтому можете смело запрещать его любым доступным методом.

Оффтопик(не удержался): Идея действительно бредовая, т.к. раз уж программер видит код, то код по-любому утекает. Его даже не надо скриншотить - все интересные идеи остаются у пргограммера в памяти :).
albibek 13.07.10 15:19 # +0
А, забыл сказать:
Для слиента от NoMachine, всё это безобразие, можно самостоятельно посмотреть в ~/.nx/temp/<циферка-с-номером-сессии>/runlog
другие файлы из этой директории тоже могут помочь.
K-9 13.07.10 23:33 # +0
Какая бредь... main, а про NDA заказчику рассказывал?
Или вон в качестве наглядной демонстрации слив кода устроить (пример для пхп)
1
2
3
4
5
6
7
<?php
echo "
?>
...
<?php
"
;
?>
main 14.07.10 01:12 # +0
Я всё понимаю, я знаю, что это бред.
Не могу :(

Даже не зная php я смогу передать, что угодно по любому доступному мне протоколу(ICMP, DNS etc.), это не выполнимая задача тчк.
albibek 14.07.10 09:06 # +0
Позвольте поправить:
Это трудно-, очень трудновыполнимая задача :).
main 14.07.10 10:34 # +0
Невыполнимых задач не бывает ...

Подходит в обоих случаях.
Лучшие блоги (все 133)
Элита (все 2554 из 201 города)
welinux.ru