VNC для многочисленных пользователей на одной машине

Это немного противоположно, но мудро безопасностью, я не дифференцируюсь между внутренним сервером и внешним сервером. Рано или поздно кто-то сделает ошибку в брандмауэре, управление настоит, чтобы сервер был выставлен из-за важного клиента, Betty в учете так или иначе получит клиента VPN на своей зараженной домашней машине и т.д.

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

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

Другим аспектом разделения на уровни является "homeycombing", который является по существу несколькими DMZs. В какой-то момент у Вас должен быть некоторый уровень доверия между Вашими машинами и людей, получающих доступ к Вашим учетным записям. Если можно сузить те точки взаимодействия, можно строго контролировать вид трафика, которому Вы доверяете в любой точке. Например, при разделении Вас интерфейс/серверы приложений от Ваших серверов баз данных Вы сужаете уровень доверия. Если Ваши серверы приложений становятся поставленными под угрозу, те взломщики получают минимальную точку опоры к Вашей инфраструктуре (то есть, для продолжения их нападения и попытки использовать другие серверы, они только имеют, установленные доверяют точки для использования).

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

0
задан 17 June 2009 в 05:00
5 ответов

Встроенный в операционную систему - нет.

Вы захотите посмотреть на Терминальный сервер Подключения Воды и вопрос 8966 здесь на Отказе сервера.

1
ответ дан 4 December 2019 в 15:33

Я слонялся без дела с этим некоторое время назад (на Tiger?), и никогда не предлагал хорошее решение. Я нашел, что необходимо было зарегистрировать пользователя в графически, затем запустите сервер VNC, и впоследствии, Вы могли использовать быстрое переключение между пользователями, чтобы переключиться на другого пользователя и зарегистрировать их в. Так, это действительно означало, что никто не мог использовать сам Mac [редактирование: поскольку диалоговое окно быстрого переключения между пользователями подошло бы] - они должны будут все быть соединены по VNC, но было хорошо видеть, что Mac счастливо выполнит несколько сессий. [редактирование: Кроме того, в то время как несколько человек могли использовать компьютер сразу, только один мог быть в процессе входа в систему за один раз, который занял 30 секунд к минуте.]

Одна вещь отметить: в руководстве netbooting я полагаю, что это указывает о необходимости в лицензии на ОС для каждой машины, которая будет netboot; я предполагаю, что то же относится к установке VNC как это.

Я не помню это, но здесь являюсь некоторыми примечаниями и некоторым кодом для Вас для проигрывания с (на Ваш собственный риск).

Mac Thin-Client Plan
---------
Client:
Uses paramiko script.  User is asked for name and password.  Tries to connect.  Alerts user on failure.
If it connects, it CDs to a certain directory on the server, and calls a function, using the name and password.

Server:
Script is run.  Server checks if it is able to log the user in at that moment.
When permitted, the console comes up, and then a VNC server is started.
Server tells client which port VNC server is started on.

Client then exits paramiko application, and launches a VNC application.
When VNC application is exited, client goes back to the log-on screen.

StartVNCLogin.sh (чтобы быть выполненным на Mac, действующем как сервер):

#!/bin/bash

# This script should be runnable by any user.  It takes two parameters -- the user's name and password.
# This script should be owned by root, and should let the owner read/write/execute, but no other user.
#   sudo chmod 700 /sbin/StartVNCLogin.sh
# In /etc/sudoers, the script needs to be set up so all users can run it.
# See http://mandrivausers.org/lofiversion/index.php/t33702.html.
#   use visudo to add "ALL ALL=NOPASSWD: /sbin/StartVNCLogin.sh" to the end of the file

# With the parameters -- the user name and password -- the script will switch to the login screen,
# and will then use applescript to log the user in
# Afterwards, it will start a VNC session for that user, and return the port number.
# At this point, the client can connect via VNC.

say "Log on called"

# Do we have root access?
if [ ! $( id -u ) -eq 0 ]; then
    echo "Error: Script must be run with administrator priviledges"
    exit -1
fi


# Get the user name and password
if [ "$#" = "2" ]; then
    export USERNAME="$1"
    export PASSWORD="$2"
else
    echo "Error: Please supply a username and password."
    exit -2
fi

# This step should not be necessary, as the user had to use ssh to run this script
# Verify that the user exists on the system
USERID=`id -u $USERNAME`;
if [[ -z $USERID ]]; then
    echo "Error: The user $USERNAME does not exist on this machine"
    exit -3;
fi;


# Now, switch to the login screen
echo "Info: bringing up login screen" 
# Ask the logon screen to come up and allow us to log-in as the desired user
#/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -switchToUserID $USERID &
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend

sleep 15

# Then, use applescript to enter the user's password
echo "Info: logging user in"

# And enter in the password
osascript <<END
set pword to system attribute "PASSWORD"
set username to system attribute "USERNAME"
tell application "System Events" 
    keystroke username
    keystroke return
    delay 1
    keystroke pword
    delay 1
    keystroke return
    keystroke return
end tell
END

echo "Info: Waiting for user to be logged in"


echo "Info: Starting VNC server."

# Now, we start the VNC server
if [ -x /Applications/Vine\ Server.app/Contents/Resources/OSXvnc-server ]; then
    /Applications/Vine\ Server.app/Contents/Resources/OSXvnc-server -rfbport 0 -desktop "New Desktop" -rfbnoauth -restartonuserswitch N -unicodekeyboard 0 -keyboardloading n -pressmodsforkeys n -eventtap 3 -swapbuttons -rendezvous y &
else
    "Error: Can not find the VNC server application!  The server is not properly configured for VNC login."
    exit -4;
fi;

Важные части из клиентского сценария (чтобы быть выполненным на Linux):

# note that I am redirecting stderr to stdout for simplicity
chan.exec_command("sudo /sbin/StartVNCLogin.sh " + username + " " + pw + " 2>&1")
stdout = chan.makefile('rb') 

vnc_port = -1

for line in stdout:
    print '... ' + line.strip('\n')
    # look for a line where a port is stated
    if line.find("Started Listener Thread on port") > -1:
        vnc_port = int(line.rsplit(' ', 1)[1])
        print "--- The VNC Port is %d" % vnc_port
        chan.close()    # sever the connection; we know what we need to know

print "Done"

#chan.close()
t.close()

os.system("vncviewer %s:%d -Shared -Fullscreen" % (hostname, vnc_port))
1
ответ дан 4 December 2019 в 15:33

Создайте Xvnc с XDMCP, и затем они могут vnc и входить в сервер. Существуют многие руководства в Интернете о том, как настроить его, вот тот.

0
ответ дан 4 December 2019 в 15:33
  • 1
    Я думаю, что это могло бы быть только для Linux... Я надеялся на что-то, что работало над Mac также –   17 June 2009 в 06:36

OS X 10.5 уже содержит сервер VNC, который может быть настроен на учетной записи основанием учетной записи.

Я думаю (не имейте Mac передо мной), что можно найти настройки в System Preferences->Sharing. Что-то как этот.

0
ответ дан 4 December 2019 в 15:33
  • 1
    Я думаю that' s только для совместного использования текущей сессии that' s вошел в систему на консоли. Я думаю, что OP хотел иметь несколько человек, входящих в систему при их собственных логинах. –  Joe 17 June 2009 в 06:11

Мы счастливо используем комбинацию Виноградного Сервера для OSX и JollyFastVNC для клиентов.

Виноградный Сервер предусматривает "персональный" экземпляр сервера VNC на уникальном номере порта для каждого, вошел в систему пользователь. Единственный прием - то, что пользователь должен быть уже зарегистрирован в Mac с VineServer, работающим в соответствии с их учетной записью для сможения к VNC в. Решением для проблемы начальной загрузки, которую это представляет, является Виноградный Системный Сервер "Сервера", который обеспечивает сессию VNC для консоли Mac - и таким образом, позвольте нам любой пользователь с доступом консольный журнал сеанса самостоятельно в Mac (и таким образом, запустите их собственный частный Виноградный экземпляр Сервера),

Конфигурация относительно легка:

1/Включают Быстрое переключение между пользователями так, чтобы многочисленные пользователи могли совместно использовать Mac.

2/Входят в систему на фактической консоли Mac как администраторский пользователь, к которому Вы также хотите предоставить удаленный доступ. Виноградный Сервер запуска как тот пользователь и проверка "Открытый при Входе в систему" предпочтение.

3/Открывают Vine Server Preferences и отмечают номер порта, присвоенный этому экземпляру сервера VNC. Вручную повторно введите то число для "прикрепления" этого экземпляра к тому порту для последующих запусков. Также рекомендуйте установить пароль здесь для этого уникального сеанса пользователя.

4/Переходят к вкладке Sharing и удостоверяются, что Вы проверяете, "Позволяют многопользовательские сессии"

5/Переходят к вкладке Startup и проверяют кнопку "System Server...". Запустите системный экземпляр сервера на порте по умолчанию (5900). Это будет Вашим сервером консоли VNC для использования. (Я рекомендую установить пароль на этом),

6/Закрывают предпочтительное окно и нажимают кнопку Restart Server.

Необходимо теперь смочь войти в два сеанса пользователя VNC: один как Консоль на порте 5900 и один как администраторский пользователь Вы просто вошли в систему как.

Теперь, для каждого пользователя, сделайте, чтобы они вошли в систему и добавили Виноградный Сервер к своему прикреплению и повторным шагам 2, 3 и 4 выше.

Только две проблемы, которые мы отметили с этим, - то, что, если Mac подвергается циклу включения и выключения питания, Системный Сервер не запустится автоматически. Исходный пользователь должен войти в систему и запустить его через UI.

Второй выпуск - то, что, если пользователь регистрирует на пути удаленную Консольную сессию VNC, их последующее использование Mac будет видимо и на консольной сессии и на их "персональной" сессии VNC. т.е. консольная сессия остается связанной последнему зарегистрированному пользователю, пока кто-то еще не входит в систему или удаленно или локально. Мы работаем вокруг этого путем открытия сессии удаленного терминала снова после входа в систему и использования быстрого переключения между пользователями для "показа окна входа в систему", которое, кажется, вынуждает консольную сессию отделить снова.

JollyFastVNC вводят изображение как добрый день осведомленный клиент VNC с хорошие "доступные серверы" браузер. Это предлагает удаленный Mac "hostname:port" для каждого рабочего Виноградного экземпляра Сервера и консольного экземпляра, позволяя простую навигацию, если Вы не можете вспомнить свои номера портов.

Надеюсь, это поможет.

0
ответ дан 4 December 2019 в 15:33

Теги

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