Posts Tagged ‘Linux’

Как из Linux подсоединиться к удаленному Windows7?

Friday, March 5th, 2010

Все чаще и чаще администраторы используют в качестве своего рабочего места Linux, удаленно управляя Windows серверами и рабочими станциями пользователей. И как обойтись без удаленного рабочего стола?
Всем известно про стандартные решения RDP для подключения с рабочей станции Windows, а вот подключение из Linux - совсем другая история. Давайте разберемся..

Что очень приятно, сегодня разработано много средств подключения к удалённому рабочему столу из системы Linux, и они позволяют подключаться к любой Windows платформе. Сейчас я покажу как подключиться к Windows7 из Ubuntu 9.10.
Чтобы было еще интереснее несколько усложним задачу. Например попробуем организовать “Linux - Windows” соединение к виртуальной машине VirtualBox на сервере Ubuntu.

Чтобы схема подключения была более понятной я изобразил ее на этом рисунке:
<картинка 1>
Мне кажется так более понятнее =)

Ну и для начала предположим, что:
1) у вас есть работающий Ubuntu Server
2) ваш VirtualBox работает на этом сервере
3) вы установили Windows7 на  VirtualBox
4) у вас есть работающий Ubuntu desktop

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

Настройка вашей сети.

Если вы настроите вашу виртуальную машину с Windows7 по умолчанию, вы не сможете получить к ней доступ, потому как IP-адрес будет обрабатываться через NAT и она просто не будет видна для linux.

Чтобы этого не произошло нужно использовать соединение мост, тогда ваша виртуальная машина будет в вашей локальной сети. Чтобы сделать это, необходимо закрыть VirtualBox.
Не просто нажать на паузу виртуальной машине, а вы должны именно закрыть сессию (как если бы вы выключили настоящий ПК с Windows), чтобы получить доступ к настройкам виртуальной машины. После того как выключите виртуальную машину, идите в консоль VirtualBox, выберите Windows7 VM, нажмите кнопку “Настройки”. Кликните секцию “Network” и затем, в добавочном выпадающем меню выберите “Bridged Adapter”.
Нажмите “Применить” для сохранения настроек и идем дальше.
<картинка 2>
Теперь идите обратно в VirtualBox и стартуйте VM. После того как система загрузится, она появится в вашем сетевом окружении.

Включение RDP.
Прежде, чем вы попытаетесь подключиться к вашей Windows7 по RDP, вам необходимо включить эту службу. Проделайте следующие шаги на Windows7:
Пуск -> Мой Компьютер -> правой кнопкой на нём -> свойства -> настройки удалённого подключения. Убедитесь, что обе     галочки нажаты
(”позволить подключение удалённого помощника” и “позволить подключение компьютерам с любой версией с удалённого рабочего стола”).
После этого нажмите кнопку ОК.

Linux RDP client.
Один из наиболее надежных и удобных в Linux клиентов RDP является Terminal Server Client (tsclient)
По умолчанию, он должен быть установлен на вашем Ubuntu.
Если это не так, вы можете его установить с помощью Ubuntu Software Center, для этого надо задать поиск “terminal server” (без кавычек), выбрать Terminal Server Client, кликнуть стрелочку справа, и установить его.
Как программа будет установлена, вы сможете найти её в подменю “Интернет” меню программ. Запустите программу, и вы увидите окно приглашения tsclient
<картинка 3>

Для того чтобы настроить подключение из Linux всё что вам нужно ввести это:
- IP адрес Windows7, к которой будете подключаться
- имя пользователя, под которым будете подключаться
- пароль данного пользователя

После того, как  вы введёте  эту информацию, нажните на “подключиться” - на вашем рабочем столе откроется новое окно с запущенным экземпляром Windows7.
<картинка 4>

В заключение:
Выше описанное это еще один шаг с сторону выбора Linux в качестве рабочей станции администратора.

Создание контейнера OpenVZ

Friday, March 5th, 2010

OpenVZ это виртуальная система на уровне ОС которая позволяет виртуализировать Linux-на-Linux, что делает ее более лучшим решением чем chroot. Вы не можете полностью виртуализировать Linux, как в VMWare или KVM, но вы можете запускать другие дистрибутивы Linux ОС которые поддерживаемые OpenVZ на основном Linux сервере, например CentOS. Это позволяет разделять ОС в безопасном режиме, без затрат ресурсов на виртуализацию оборудования. Это отличный способ для изоляции областей пользователей в общеиспользуемых услугах таких как web-хостинг и dns-хостинг, не подвергая опасности основной сервер.

OpenVZ работает по принципу контейнеров а не виртуальных машин. Каждый контейнер представляет собой законченную Linux систему, способной выполнять необходимые задачи, в том числе авторизацию пользователей. Для этого нужно всего лишь запустить контейнер OpenVZ.

Вы можете создать свой контейнер “с нуля” или взять уже готовые шаблоны, которые доступны для скачивания. В разделе скачивания http://download.openvz.org/template/precreated/ , вы найдете шаблоны  CentOS, Debian, Fedora, SuSE и Ubuntu. Так же в этом же разделе в директории Contrib вы найдете дополнительные шаблоны Gentoo, AltLinux и Slackware.

Чтобы начать прямо сейчас загрузите один из этих предварительно созданных шаблонов, которые представляют собой операционную систему сжатую в tar-архив. После того как вы загрузили шаблон, убедитесь что вы запустили ядро OpenVZ и сервис vz запущен. Только после этого вы сможете создать свой первый контейнер. используя следующие команды. В этом примере используется контейнер с CentOS 5.3. Замените имя моего контейнера на контейнер, который скачали вы.После выполнения всех шагов ваш контейнер OpenVZ будет запущен.

# mkdir /vz/template/cache
# cd /vz/template/cache
# mv ~/centos-5-x86_64-minimal-5.3-20090330.tar.gz .
# vzctl create 101 –ostemplate centos-5-x86_64-minimal-5.3-20090330
Creating container private area (centos-5-x86_64-minimal-5.3-20090330)
Performing postcreate actions
Container private area was created
# vzctl set 101 –ipadd 192.168.251.175 –save
Saved parameters for CT 101
# vzctl set 101 –nameserver 192.168.250.12 –save
Saved parameters for CT 101
# vzctl set 101 –hostname vz.example.com –save
Set hostname: vz.example.com
Saved parameters for CT 101
# vzctl start 101
Starting container …
Container is mounted
Adding IP address(es): 192.168.251.175
Setting CPU units: 1000
Configure meminfo: 65536
File resolv.conf was modified
Container start in progress…
# vzctl exec 101 ps ax
PID TTY      STAT   TIME COMMAND
1 ?        Ss     0:00 init [3]
18298 ?        S<s    0:00 /sbin/udevd -d
19556 ?        Ss     0:00 syslogd -m 0
19579 ?        Ss     0:00 /usr/sbin/sshd
19596 ?        Ss     0:00 sendmail: accepting connections
19603 ?        Ss     0:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
19614 ?        Ss     0:00 crond
19706 ?        Rs     0:00 ps ax
# vzctl enter 101
entered into CT 101

В начале я создал контейнер основанный на шаблоне CentOS 5.3 и назначил ID контейнера 101 (по умолчанию OpenVZ ставит 0, но рекомендуется не использовать номера от 0 до 100). Установил IP-адрес контейнеру, указал nameserver и имя хоста.
И наконец запустил его. Когда контейнер был запущен я проверил его запустив с помощью команды exec утилиты vzctl команду ps -ax
Изнутри контейнера процесс init имеет PID 1, а снаружи это выглядит по другому:

# ps ax|grep init|grep -v grep
1 ?        Ss     0:01 init [3]
17152 ?        Ss     0:00 init [3]

Получается что процесс init в контейнере является потомком процесса init основной системы. В результате таблица процессов контейнера и основной системы будут различаться - это надо учитывать. Вы можете войти в контейнер используя ssh или “с черного входа” без использования пароля используя утилиту vzctl enter [ID контейнера]. При этом вы можете выдать административные права в рамках контейнеров их владельцам без опасности нанесения вреда вашему серверу, и одновременно можете управлять контейнерами без необходимости знания пароля root контейнера.

OpenVZ очень удобная и простая в эксплуатации система. С помощью нее можно легко организовать свой хостинг или другие публичные сервисы создавая индивидуальные контейнеры.