LINUX.ORG.RU

Построить нехилую сетевую структуру

 ,


1

1

Доброе время суток.

Такая вот у меня задачка (дипломный проект):
Создать нечто, что объединяло бы в себе сервер для тонких клиентов, файловое хранилище с доступом из внешней сети и чтобы для тонких клиентов это хранилище было доступно напрямую, а для других - через веб-морду, причем, на каждого курсанта должно быть своё небольшое место на диске, на котором бы хранились все его документы.
То есть, он пришел в любой компьютерный класс, включил комп, загрузилась по сети ось, он вводит уникальный логин/пасс, загружается рабочий стол с уже подмонтированной личной сетевой папкой. А из дома, зайдя на спец. адрес и введя тот же логин и пароль, он попадает на веб-версию этого своего личного файлового хранилища.
В общем, по сути, надо создать единую систему авторизации + тонкий клиент.

Это возможно или мне сразу вешаться?


Ответ на: комментарий от Dantix

Можно подробнее, что использовать? Для сервака хочу использовать дебиан, для загружаемой ОС - либо дебиан, либо модифицированную elementary OS luna.

CLU ()

тонкий клиент будет грузится со своего диска или с pxe сервера??? у меня на работе такая штука действует, грузятся через pxe, а потом докачивают образ файловой системы, правда у меня нет никаких хранилищь для пользователей, так как нет пользователей))), но это тоже не сложно.

Для удаленных пользователей сделать отдельный сервер с openvpn например и веб морду на нем же запускать, доступную только из нутри vpn (для секьюрности), а файлы он будет с твоего сетевого хранилища дергать как-нибудь, вот тут придется поработать.

в общем осилить можно за пару недель, максимум месяц.

IvanR ★★★ ()
Ответ на: комментарий от Deathstalker

Ладно, деб так деб, только для клиентской оси тему покрасивше влеплю. Как в клиенте организовать выход к этой сетевой папке (или диску) по системному логину и паролю?

CLU ()
Ответ на: комментарий от IvanR

тонкий клиент будет грузится со своего диска или с pxe сервера???

PXE

Для удаленных пользователей сделать отдельный сервер с openvpn например и веб морду на нем же запускать, доступную только из нутри vpn (для секьюрности), а файлы он будет с твоего сетевого хранилища дергать как-нибудь, вот тут придется поработать.

Подробности, подробности!

CLU ()
Ответ на: комментарий от IvanR

Ой, стоп. Openthincleint это PXE? Я подробно не изучал, но именно эта хреновина будет поставлена на серваке и будет раздавать дистры по сети.

CLU ()
Последнее исправление: CLU (всего исправлений: 1)
Ответ на: комментарий от CLU

Конфигурируйте GDM

/etc/gdm/gdm.conf

           [xdmcp]
           Enable=true #Enable - Включение XDMCP. True - включает, False - выключает. 
           HonorIndirect=0
           MaxPending=4 
           MaxPendingIndirect=4 
           MaxSessions=16 
           MaxWait=30
           MaxWaitIndirect=30 
           Port=177 #Port - порт, который слушает GDM
           ....
Deathstalker ★★★★★ ()
Ответ на: Конфигурируйте GDM от Deathstalker

И как это подключает доступ к сетевой папке по логину и паролю системы? То есть, вводишь логин и пароль, входишь, тот же логин и пароль потом шлется к серверу и открывается доступ к личному сетевому хранилищу. XDMCP это делает?

CLU ()
Ответ на: комментарий от CLU

нрваке вообще ничего не надо хитрить с прогрммными пакетами, все своими руками делай, устианови isc-dhcp-server в нем нужна одна опция, filename в качестве filename будет файлик, лежащий на tftp по умолчанию это /srv/tftp/pxelinux.0 этот файл возьмешь в пакете syslinux.

в общем устанавливаешь atftpd или попроще tftpd первый использует xinetd, второй просто inetd, с помощью tftp расшариваешь папку /srv/tftp туда в корень кладешь pxelinux.0 можно использовать более совершенные вещи, позволяющие использовать вместо tftp http или ftp, называется ipxe, скачать на сайте ipxe.org, там найдешь подробные описания, как он работает.

в общем суть pxe это связка tftp || ftp || http + dhcpd + nfs || squashfs

будем считать, что с pxe разобрались, ядро и initrd у тебя будут качаться на твой тонкий клиент, далее надо определиться с загрузкой корневой файловой системы, если программного обеспечения планируется использовать не много или совсем мало, то можно обойтись образом squashfs, если будут всякие офисы и крутые десктоп енвиронмент, то все это не влезет в оперативную память клиента, тогдакорневую фс надо хранить на nfs и монтировать в режиме ro, а дальше с помощью aufs делать ее rw, при перезагрузке изменения будут терятся, но это не важно, так как основные изменения пользователи будут делать в домашних каталогах, а они на каждого будут свои.

в общем в дебиане есть пакет live-boot, который сам приготовит тебе initerd, способный работать через pxe и докачивать тебе squashfs, но live-boot не умеет работать с корнем на nfs, для этого достаточно обычного initrd, но я не помню щас опцию, с которой надо пересобирать initrd, опять же ты можеш вообще все сделать своими руками просто разобрав дистрибутивный initrd и исправив в нем (к4ак тебе того хочется) файлик /init, находящийся в корне initrd.

в общем я бы мог статью на эту тему написать, но не охота, тем более, что на хабре есть такая статья, искать щас не охото.

почитай материалы в интернете, если появятся конкретные вопросы, то справшивай.

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

IvanR ★★★ ()
Ответ на: комментарий от CLU

в кратце, как работает pxe:

клиент загружает биос, из биоса он грузит какую-то прогу, вшитую в сетевую карту, эта прога получает с dhcp свой ip и опцию filename, берет эту опцию и грузит по tftp этот filename, передает управдение этому файлу это может быть как pxelinux.0 так и ipxe, в общем это аналог загрузочного сектора на hdd

далее этот файл pxelinux.0 или ipxe снова обращается к dhcp и снова берет там ip и опционально filaname (в случае ipxe)

pxelinux.0 читает файл конфигурации /srv/tftp/pxelinux.cfg/default, где сказано название ядра и initrd и откуда их качать, также в pxelinux.cfg/default лежат опции для загрузки ядра, которые потом будут доступны в /proc/cmdline

ipxe работает иначе, он снова берет с dhcp опцию файлнейм (но теперь это будет ссылка на php скрипт, лежащий на web сервере (такая подмена filename делается силами isc-dhcp, на сайте ipxe написано, как это делается, в общем советую использовать именно ipxe, можно так как он гораздо гибче в настройке, чем pxelinux.0

теперь считаем, что ядро и инитрд у нас скачались и компьютер уже работает как загруженный с локального диска, однако нужна корневая фс, ее-то и качает скрипт /init, находящийся в корне инитрд, в случае использования squashfs он просто качается, потом монтируется как ro, потом с помощью aufs монтируется как rw

если сипльзуешь образы, лежащие на nfs, то примерно тоже самое происходит, в скрипте /init монтируется nfs шара как корневая смистема, а потом aufs перемонтирует твою корневую фс как rw, все, тонкий клиент загружен.

вопрос кстати не имеет отношения к development,а к администрированию имеет

IvanR ★★★ ()

Создать нечто, что объединяло бы в себе сервер для тонких клиентов, файловое хранилище с доступом из внешней сети и чтобы для тонких клиентов это хранилище было доступно напрямую, а для других - через веб-морду, причем, на каждого курсанта должно быть своё небольшое место на диске, на котором бы хранились все его документы.

Звучит страшно. :D

Заведи на сервере каждому
/home/kursant001
/home/kursant002
/home/kursant003
..
/home/kursant099

Можешь монтировать их по NFS с большой железяки-хранилища, можешь настроить лимиты дискового пространства

То есть, он пришел в любой компьютерный класс, включил комп, загрузилась по сети ось,

PXE? А оно тебе точно надо?

А, может, сервер один и сетевых возможностей X-сервера тебе с головой хватит для удалённого запуска графических приложений?

он вводит уникальный логин/пасс,

ssh -X (Enables X11 forwarding)

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

+ локальный X-сервер или Xming (под Windows) для отрисовки графических приложений
или, вообще, запуска какого-нибудь KDE/Gnome/XFCE/FVWM/Fluxbox/Openbox/DWM/...
пофигу что, но желательно маленькое - Fluxbox, например
+ запуск любого графического приложения с сервера и разграничить доступ каждому в свой в личный $HOME /home/kursantXXX

А из дома, зайдя на спец. адрес и введя тот же логин и пароль, он попадает на веб-версию этого своего личного файлового хранилища.

+ ftp с авторизацией и настройкой на личные каталоги
+ (можно) samba с настройкой на личные каталоги

В общем, по сути, надо создать единую систему авторизации

в пределах одного сервера? Вот если с доменом из десятка серверов мутить, то делать samba-домен и авторизацию через него.

+ тонкий клиент.

ssh with enables X11 forwarding + удалённый запуск любого графического приложения с этого сервера

Это возможно или мне сразу вешаться?

Чего тут вешаться? Работы на один вечер. :D

Только помни, что все приложения каждого курсанта будут работать в памяти сервера и только отрисовываться удалённо. Памяти на сервер понадобится посчитать. Или завести по серверу на группу.

anonymous ()

через веб-морду

можешь поднять web-сервер Apache или nginx, прикрутить авторизацию и, либо натравить прямо на $HOME, либо нарисовать сайт, работающий с $HOME. Но ftp с авторизацией проще и удобнее.

anonymous ()
Ответ на: комментарий от anonymous

Вот этот анонимус дело говорит.
А еще для любителей гламура есть ownCloud.

pekmop1024 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.