Это немного противоположно, но мудро безопасностью, я не дифференцируюсь между внутренним сервером и внешним сервером. Рано или поздно кто-то сделает ошибку в брандмауэре, управление настоит, чтобы сервер был выставлен из-за важного клиента, Betty в учете так или иначе получит клиента VPN на своей зараженной домашней машине и т.д.
Тем не менее слои являются Вашим другом, и необходимо поместить в черный список по умолчанию.
Слои - у Вас должно быть несколько уровней безопасности. Например, аппаратный брандмауэр и программный брандмауэр. Они теоретически служат той же цели, но имеющий несколько слоев защищает от ошибок и смягчает последствия используемого единственного слоя.
Другим аспектом разделения на уровни является "homeycombing", который является по существу несколькими DMZs. В какой-то момент у Вас должен быть некоторый уровень доверия между Вашими машинами и людей, получающих доступ к Вашим учетным записям. Если можно сузить те точки взаимодействия, можно строго контролировать вид трафика, которому Вы доверяете в любой точке. Например, при разделении Вас интерфейс/серверы приложений от Ваших серверов баз данных Вы сужаете уровень доверия. Если Ваши серверы приложений становятся поставленными под угрозу, те взломщики получают минимальную точку опоры к Вашей инфраструктуре (то есть, для продолжения их нападения и попытки использовать другие серверы, они только имеют, установленные доверяют точки для использования).
Относительно помещения в черный список по умолчанию, необходимо в основном завершить работу всего и спроса (даже если это имеет только себя), выравнивание для каждого порта, который Вы открываете, имя пользователя, которое Вы предоставляете доступу, приложение, которое Вы устанавливаете и т.д.
Встроенный в операционную систему - нет.
Вы захотите посмотреть на Терминальный сервер Подключения Воды и вопрос 8966 здесь на Отказе сервера.
Я слонялся без дела с этим некоторое время назад (на 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))
Создайте Xvnc с XDMCP, и затем они могут vnc и входить в сервер. Существуют многие руководства в Интернете о том, как настроить его, вот тот.
OS X 10.5 уже содержит сервер VNC, который может быть настроен на учетной записи основанием учетной записи.
Я думаю (не имейте Mac передо мной), что можно найти настройки в System Preferences->Sharing
. Что-то как этот.
Мы счастливо используем комбинацию Виноградного Сервера для 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" для каждого рабочего Виноградного экземпляра Сервера и консольного экземпляра, позволяя простую навигацию, если Вы не можете вспомнить свои номера портов.
Надеюсь, это поможет.