Удаленный доступ к ubuntu server. Очумелые ручки: устанавливаем Linux и BSD удаленно

Данная статья посвящена настройкам удаленного доступа к Ubuntu Server. Принцип подключения очень прост: на стороне клиента мы используем программу для удаленного доступа (например, Putty), на стороне сервера устанавливаем и настраиваем пакет OpenSSH. При подключении клиент проходит процедуру авторизации у сервера и между ними устанавливается зашифрованное соединение. Более подробно принцип работы протокола SSH рассматривался в статье по .

Схема сети представлена ниже. Удаленное подключение к серверу будет производиться с компьютера client.

В мы установили Ubuntu Server на чистый жесткий диск. После установки необходимо настроить сетевой интерфейс сервера для выхода в сеть. А, именно, задать Ip-адрес, маску сети, шлюз по-умолчанию. Если у вас интерфейс уже настроен – можете этот шаг пропустить. Настройки сетевых интерфейсов задаются в файле /etc/network/interfaces . Для редактирования воспользуемся текстовым редактором nano .

Попадаем в режим редактирования файла interfaces. Нас тут интересует все, что ниже # The primary network interface. В данный момент сервер получает IP-адрес по DHCP, что не совсем правильно. Сервер должен иметь статический IP, чтобы все узлы в сети точно знали его адрес. Пропишем сетевые настройки вручную.

Мой сервер находится в локальной подсети 192.168.1.0/24. Серверу назначен IP 192.168.1.2, маска 255.255.255.0, шлюз по-умолчанию 192.168.1.1, адрес DNS-сервера 192.168.0.1

Для сохранения файла нажимаем клавиши Ctrl + X –> Y —> Enter. Чтобы применить настройки необходимо перезапустить процесс network. Также можно просто перезагрузить сервер командой sudo reboot.

Проверяем (команда ifconfig -a ) – настройки применились

Все готово для OpesnSS, который можно установить из терминала командами

$ sudo apt-get install openssh-client

$ sudo apt-get install openssh-server

Управлять запуском, остановкой и перезапуском SSH-сервера можно с помощью команд

$ sudo service ssh stop | start | restart

По сути доступ по SSH на сервер уже есть. Но для более тонкой настройки существует конфигурационный файл по адресу /etc/ssh/sshd_config. Доступ к конфигам осуществляется только из под рута.

На стороне клиента скачиваем любую программу для подключения по SSH, я рекомендую Putty . В программе останется лишь ввести Ip-адрес сервера и подключиться к нему. При подключении вводим имя и пароль пользователя.


Подписывайтесь на нашу

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

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

В этой статье мы предлагаем рассмотреть несколько вариантов, как организовать подключение к удалённому рабочему столу в Ubuntu. Мы познакомимся с несколькими возможными протоколами, через которые можно совершать сеанс связи, а также проведём небольшой обзор стороннего программного обеспечения.

Протокол VNC

Самым популярным вариантом является использование протокола VNC. Несмотря на то что он является устаревшим, небезопасным, нестабильным и медленным, он поддерживается практически любым оборудованием и операционной системой, так что, проблем с совместимостью быть практически не должно. Примечательно, что все необходимые утилиты, чтобы создать удалённый доступ к рабочему столу, уже вшиты в дистрибутив Ubuntu . Вам остаётся лишь активировать их и правильно настроить. Итак, рассмотрим ваши действия шаг за шагом.

Теперь, когда вы настроили удалённый рабочий стол Ubuntu, можно попробовать подсоединиться к нему с любого другого компьютера. Но из-за того, что по умолчанию активировано шифрование соединения, могут возникнуть проблемы при использовании других операционных систем. Чтобы избежать этого, принудительно отключите его. Для этого:


Мы разобрали ситуацию, когда оба компьютера работают под управлением Ubuntu. По такому же принципу можно пользоваться любой другой программой для удалённого управления компьютером на любой операционной системе, включая Windows, Mac OS или даже Android . Всё что нужно - знать адрес и пароль подключения.

Клиент TeamViewer

Большинство пользователей найдёт для себя наиболее удобным вариантом использовать клиент TeamViewer. По большому счёту, разработчики программного продукта задали чуть ли не стандарт удалённого управления компьютерами. Примечательно, что для некоммерческих целей утилита является совершенно бесплатной. Всё что вам нужно - это скачать и установить программу на оба компьютера, а все настройки будут подобраны автоматически. В этом материале мы расскажем лишь о самых основных возможностях и о том, как быстро установить и запустить программу. Более детально о её возможностях рассказывает вот это статья. Итак, приступим.

  1. Перейдите на официальный сайт разработчика программного обеспечения по ссылке и выберите первый файл из списка, предназначенный для Ubuntu и Debian.
  2. Перейдите в папку, куда был загружен установочный файл, кликните правой кнопкой мыши и выберите «Открыть через Центр программного обеспечения Ubuntu». В таком случае процесс установки будет автоматизирован и все компоненты, необходимые для работы, будут установлены также автоматически.
  3. Если же вы предпочитаете использовать командную строку, запустите терминал и выполните следующие команды:

Cd ~/Загрузки/

Sudodpkg —add-architecture i386

Sudodpkg -iteamviewer*

Apt-get -f install

СОВЕТ. Если вы загрузили файл в другую папку, стоит указать именно её.


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

  1. После создания учётной записи и входа в систему под электронным адресом и паролем, введите идентификатор другого компьютера так же само, как и при соединении с ним. Только вместо кнопки подключения нажмите жёлтую звёздочку прямо в строке ввода номера.
  2. В открывшемся окне вы сможете прописать пароль, а также дать название компьютеру и нажать кнопку OK для подтверждения.
  3. После этого в окошке «Компьютеры и контакты» будут отображаться все авторизованные ПК. Всё,что вам нужно будет сделать - дважды кликнуть на название и начать управление.
  4. В свою очередь, на управляемом компьютере можно настроить неконтролируемый доступ. Для этого нужно выбрать соответствующие вкладку в меню «Подключение», придумать наименование компьютера, задать пароль и подтвердить его.
  5. Теперь можно будет подключаться в автоматическом режиме.

Заключение

Как видите, удалённое подключение к Ubuntu не является чем-то очень сложным. На самом деле, всё довольно просто. Если вы не хотите пользоваться дополнительным программным обеспечением, воспользуйтесь встроенным функционалом и организовывайте управление по протоколу VNC. Из сторонних разработок наверняка лучшим вариантом будет использовать TeamViewer. Кстати, об этой программе у нас есть отдельная статья. В комментариях просим вас рассказать, какой вариант удалённого управления Ubuntu вы выбрали.

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

Традиционно, для установки операционной системы на комп принято использовать
специальные установочные диски или другие носители, которые умеют самостоятельно
загружаться и передавать управление записанному на них установщику. Это простой,
удобный и эффективный способ водрузить ОС на машину, однако он применим далеко
не всегда. Иногда мы оказываемся в такой ситуации, когда физический доступ к
машине просто невозможен. Это может быть удаленный сервер, машина друга,
живущего в другом городе, или что угодно еще. Главное в такой ситуации то, что
подопытный комп доступен только по сети, и на нем обычно уже установлена
какая-то операционка (например, Windows). А вопрос заключается в том, как
заменить ее на нечто другое (например, Linux), причем сделать это без участия
третьих лиц.

Хитрые трюки

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

Более предпочтительный сценарий - использовать инструменты быстрой установки
Linux, которые предоставляют возможность инсталлировать пингвина прямо из
Windows без какого-либо вмешательства со стороны пользователя. Наиболее
известный из таких инструментов носит имя
и
первоначально разработан для создания
с пингвином на
борту, но позднее научился устанавливать полноценные дистрибутивы прямо на
жесткий диск. Подобные утилиты есть в арсенале таких дистрибутивов, как

Ubuntu и OpenSUSE ,
но до возможностей UNetbootin им далеко (последний умеет ставить несколько
вариантов Linux, BSD, легко поддается настройке и может работать в Linux). Те,
кто любят все делать руками, могут воспользоваться grub4dos и ISO-образами
соответствующих дистрибутивов. Этот вариант мы тоже рассмотрим.

Еще проще все это проделать в том случае, когда на машине уже установлена
UNIX-подобная ОСь, а задача состоит в том, чтобы заменить ее другим
представителем семейства UNIX (например, установить BSD или другой
Linux-дистрибутив). Для этого подойдет все тот же UNetbootin, либо вариант с
загрузкой ISO-образа или минимального образа initrd-средствами Grub (его можно
установить из портов BSD).

От Windows к Linux. Виртуальная машина

Как я уже упоминал, самый простой и очевидный способ удаленной установки ОС
заключается в использовании виртуальной машины. Он сработает в любой ОС, где
может быть запущена ВМ, поэтому даже если на удаленной стороне стоит Solaris или
еще большая экзотика, выход есть. В своей работе мы будем использовать
VirtualBox ,
которую можно абсолютно бесплатно скачать из Сети. Нас интересует версия для
Windows, поэтому файлом для скачивания будет VirtualBox-3.2.10-66523-Win.exe.

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

> cd c:\Program Files\Oracle\VirtualBox
> VBoxManage internalcommands createrawvmdk -filename c:\realhd.vmdk -rawdisk
\\.\PhysicalDrive0 -register

Образ realhd.vmdk, расположенный в корне диска C:, будет ссылаться на
физический диск (\\.\PhysicalDrive0 в нотации Windows), опция ‘-register’
позволяет сразу добавить его в "Менеджер виртуальных носителей" VirtualBox.
Забегая вперед, скажу, что то же самое в Linux можно проделать с помощью похожей
команды:

$ sudo VBoxManage internalcommands createrawvmdk -filename ~/realhd.vmdk
-rawdisk /dev/sda -register

Теперь можно скачать ISO-образ устанавливаемого Linux-дистрибутива и выделить
для него место на диске. Сделать это можно, уменьшив размер NTFS-раздела с
помощью Partition Magic в WinXP/Win2k3 или оснастки diskmgmt.msc в Vista/Seven.
После этого запускаем VirtualBox и создаем новую виртуальную машину, указав
подготовленный ранее образ в качестве первого жесткого диска. Далее открываем
свойства виртуальной машины, вкладку "Носители", и указываем в качестве CD-ROM
реальный привод компа. Запускаем ВМ и благополучно устанавливаем Linux в
свободную область диска. Предупрежу, что сразу перезагружать реальную машину не
стоит, иначе мы потеряем к ней сетевой доступ (сеть будет либо вообще не
настроена, либо настроена на подключение к виртуальной сети VirtualBox). Сначала
необходимо загрузить дистрибутив в виртуальной машине и настроить сеть так,
чтобы она была работоспособна после загрузки ОС на реальном железе (то есть
скопировать сетевые настройки из работающей в данный момент ОС). Делать это
нужно с предельной осторожностью, потому как одна ошибка навсегда отрежет машину
от интернета.

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

От Windows к Linux. UNetbootin

UNetbootin (Universal Netboot Installer) - это графическая программа,
предназначенная для создания загружаемых USB-носителей с UNIX-подобными ОС на
борту или же установки UNIX на жесткий диск без использования физических
носителей. Она может работать как в Windows, так и в Linux, поддерживает
несколько десятков различных ОС (дистрибутивы Linux и ОС семейства BSD) и
невероятно проста в использовании. Далее мы рассмотрим, как с ее помощью
установить Ubuntu.

Для начала необходимо получить саму утилиту. Заходим на страницу
unetbootin.sf.net и
нажимаем большую синюю кнопку с надписью "Download" ("for Windows" или "for
Linux"). Запускаем полученный файл (в случае с Linux-версией его сначала
необходимо сделать исполняемым). Появится окно UNetbootin, в котором можно
выбрать дистрибутив, его версию, тип установки (NetInstall для сетевой установки
или HdMedia для установки с заранее подготовленного образа), в самом нижнем поле
можно выбрать тип установки, в нашем случае - "Жесткий диск", нажать кнопку ОК и
перезагрузить комп.

В обычной ситуации всего этого достаточно для того, чтобы UNetbootin смог
установить на диск загрузчик и минимальный Linux-образ, который скачает
установочные файлы ОС на диск и запустит инсталлятор. Однако мы имеем дело с
удаленной машиной и поэтому не сможем получить доступ к ОС до того момента, пока
она не будет полностью установлена (не сможем отвечать на вопросы инсталлятора).
Все это приведет к тому, что после перезагрузки машина окажется застопоренной на
первом же вопросе. Чтобы побороть проблему, нам придется создать собственный
установочный ISO-образ Ubuntu, который сможет произвести инсталляцию ОС в
полностью автоматическом режиме. Для этого нам потребуется образ серверной
версии Ubuntu-10.10 (десктопный вариант не поддерживает автоматизацию
установки), немного смекалки и файл дефолтовых ответов на вопросы инсталлятора
(так называемый preseed-файл).

Инструкция:

1. Скачиваем установочный образ Ubuntu 10.10 и распаковываем его в отдельный
каталог:

$ sudo mount -o loop ubuntu-10.10-server-i386.iso /cdrom
$ mkdir mycd
$ rsync -a /cdrom/ mycd

2. Добавляем в образ preseed-файл:

$ vi auto.seed
# Говорим по-русски
d-i debian-installer/locale string ru_RU
# Английскую раскладку, пожалуйста
# Можно сразу указать ru, чтобы потом не мучиться
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
# Пусть сам выберет дефолтовый сетевой интерфейс
d-i netcfg/choose_interface select auto
# Качаем пакеты по FTP
d-i mirror/protocol string ftp
# Ставим в самую большую неразмеченную область диска
d-i partman-auto/init_automatically_partition select biggest_free
# Все файлы в один раздел
d-i partman-auto/choose_recipe select atomic
# Ставим на Ext4
d-i partman/default_filesystem string ext4
# Соглашаемся со всем, что говорит программа разметки
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
# В системе один пользователь - user (пароль resu)
d-i passwd/user-fullname string Ubuntu User
d-i passwd/username string user
d-i passwd/user-password-crypted password
d-i user-setup/allow-password-weak boolean true
# Ставим десктопную редакцию дистрибутива
# Можно заменить на kubuntu-desktop или ubuntu-server, например
tasksel tasksel/first multiselect ubuntu-desktop
# Ставим SSH-сервер
d-i pkgsel/include string openssh-server
# Разрешаем загрузчику найти другие установленные ОС и добавить их в меню
d-i grub-installer/with_other_os boolean true
# Автодетект монитора (Ubuntu, как-никак)
xserver-xorg xserver-xorg/autodetect_monitor boolean true
$ sudo cp auto.seed mycd/preseed

В файле прописаны ответы на вопросы инсталлятора, по умолчанию будет выбран
русский язык и раскладка us, в качестве места дислокации новой ОС на диске будет
выбрана максимальная неразмеченная область, дополнительно будет установлен пакет
openssh-server и добавлен пользователь user с паролем resu, так что после
загрузки на машину можно будет войти по SSH. Если для подключения машины к сети
используется ручная настройка (а не DHCP), то строку "d-i netcfg/choose_interface
select auto" следует заменить на пять следующих строк, подставив реальные
адреса:

# DNS-сервер
d-i netcfg/get_nameservers string 8.8.8.8
# IP-адрес
d-i netcfg/get_ipaddress string 192.168.0.1
# Маска сети
d-i netcfg/get_netmask string 255.255.255.0
# Адрес шлюза
d-i netcfg/get_gateway string 192.168.0.2
# Подтверждение конфигурации
d-i netcfg/confirm_static boolean true

3. Редактируем конфиг загрузчика так, чтобы он узнал о существовании нашего
preseed-файла:

$ sed -e "s#file=/cdrom/preseed/ubuntu.seed#auto=true\ priority=critical\
file=/cdrom/preseed/auto.seed#" mycd/isolinux/txt.cfg > txt.cfg
$ sudo mv txt.cfg mycd/isolinux/

4. Удаляем старый файл контрольных сумм и создаем новый:

$ cd mycd
$ sudo rm md5sum.txt
$ find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo
tee md5sum.txt

5. Генерируем новый ISO-образ:

$ sudo mkisofs -D -r -V "Ubuntu 10.10 AutoInstall" -cache-inodes -J -l
-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table
-o ../ubuntu-10.10-server-i386-auto.iso

Закачиваем получившийся ISO-образ на удаленную машину, запускаем UNetbootin,
выбираем пункт "Образ диска", далее - "ISO-образ", находим образ на диске и
нажимаем кнопку ОК.

После завершения работы UNetbootin заходим в свойства "Моего компьютера",
открываем вкладку "Дополнительно", нажимаем кнопку "Параметры" в разделе
"Загрузка и восстановление" и выбираем "UNetbootin" в поле "Операционная
система, загружаемая по умолчанию". Это позволит машине автоматически загрузить
ISO-образ, установленный с помощью UNetbootin. Перезагружаем машину. Через 30
минут пробуем подключиться к серверу, молясь всем богам автоматизации. Примерно
также можно установить Debian, но с другими дистрибутивами все будет иначе.
Многие из них вообще не поддерживают автоматизацию процесса установки, другие
используют совсем другой ее вариант (например, Kickstart в RedHat).

От Windows к Linux. Grub4dos

Людей с пытливым умом наверняка интересует механизм работы UNetbootin. В этом
разделе речь пойдет о том, как вручную сделать то же, о чем мы говорили выше. В
качестве основного инструмента будет выступать Grub4dos - вариант Grub,
способный грузиться с FAT32 и NTFS-разделов, все тот же переработанный образ
Ubuntu и гвоздь программы - WinXP.

Главная задача - установить Grub4dos на системный диск Windows и сделать так,
чтобы мы смогли получить к нему доступ. Для этого идем по ссылке
, скачиваем последнюю версию
Grub4dos и распаковываем файлы grldr и menu.lst в корень диска C:. Далее снимаем
с файла c:/boot.ini атрибут "Только для чтения" и добавляем в конец секции следующую строку:

И эту строку последней:

c:\grldr="Grub4Dos"

Сохраняем файл. Открываем c:/menu.lst и пишем в него следующее:

title Ubuntu 10.10 AutoInstall
find --set-root /ubuntu-10.10-serveri386-auto.iso
map /ubuntu-10.10-server-i386-auto.iso(hd32)
map --hook
chainloader (hd32)

Сохраняем. Помещаем ISO-образ в корень диска C:, перезагружаем ОСь, ждем 30
минут, подключаемся по SSH с именем пользователя "user" и паролем "resu".

Установка Grub4dos в Vista/Seven

1. В корень диска C: помещаем файлы grldr, grldr.mbr и menu.lst;
2. Добавляем запись в загрузчик Windows:

> bcdedit /create /d "Grub4Dos" /application
bootsector

3. Редактируем запись (ID берем из вывода предыдущей команды):

> bcdedit /set ID device partition=C:
> bcdedit /set ID path \grldr.mbr
> bcdedit /displayorder ID /addlast

От Linux к FreeBSD. Путь джедая

Последний из вариантов удаленной установки ОС не так тривиален, как
предыдущие. Мы будем устанавливать FreeBSD на машину, работающую под управлением
Linux, причем сделаем это так, что свежеустановленная ОС полностью затрет
существующую. Для тех, кого интересует, зачем это нужно, отвечу: многие хостинги
сдают в аренду серверы только под управлением Linux, не предоставляя доступа к
удаленной консоли и таким образом лишая пользователей выбора. Описанная в статье
методика позволит поставить на сервер FreeBSD, имея доступ только по SSH.
Проделать это можно с помощью инструмента под названием
mfsBSD , который позволяет
создать минимальный дисковый образ FreeBSD, полностью загружаемый в память.
Записав этот образ в начало жесткого диска и перезагрузив машину, мы получим
сетевой доступ к полностью рабочей минимальной копии FreeBSD, которую сможем
использовать для последующей установки полноценной ОС с помощью стандартного
инсталлятора sysinstall. Порядок действий следующий:

1. Скачиваем архив mfsBSD на локальную машину и распаковываем его:

$ wget mfsbsd.vx.sk/release/mfsbsd-1.0.tar.gz
$ tar xzf mfsbsd-1.0.tar.gz
$ cd mfsbsd-1.0

2. Создаем конфигурационный файл rc.conf, который будет использоваться в
образе:

$ cp conf/rc.conf.sample conf/rc.conf

Добавляем в конец файла следующие строки:

$ vi conf/rc.conf
# IP-адрес маршрутизатора
defaultrouter="192.168.0.1"
# Настройки сетевого интерфейса
ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"

Здесь re0 используется в качестве примера. В реальной ситуации ты должен
узнать, какая сетевая карта установлена на машине (dmesg в помощь), и подобрать
к ней соответствующее имя сетевого интерфейса (которое по совместительству
является именем драйвера, например, re0 - это сетевая карта RealTek 8139C,
драйвер для которой носит имя "re"). Также следует отметить, что если машина
получает сетевые настройки по DHCP, то последняя строка должна иметь следующий
вид:

ifconfig_re0="DHCP"

3. Создаем мини-образ из установочного ISO-образа FreeBSD (можно скачать с
ftp://ftp.freebsd.org , либо
ближайшего зеркала):

$ sudo mount -o loop FreeBSD-8.1-RELEASE-i386-disc1.iso /cdrom

4. Перекидываем полученный образ на удаленную машину:

$ scp disk.img [email protected]:.

5. Заходим на удаленную машину с правами root’а, записываем образ на диск и
идем на перезагрузку:

# dd if=/root/disk.img of=/dev/sda bs=1m
# reboot

Через пять минут вновь подключаемся к удаленной машине в качестве root’а,
вводим пароль mfsroot, запускаем sysinstall и приступаем к обычной установке
FreeBSD. В качестве источника установки выбираем FTP или HTTP.

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

От FreeBSD к Linux.
Путь наименьшего сопротивления.

Чтобы установить Linux на FreeBSD-машину, достаточно
создать автоустанавливаемый образ Ubuntu, как это было
описано в разделе про UNetbootin, затем установить grub, как
показано ниже:

# cd /usr/ports/sysutils/grub
# sudo make install clean
# mkdir /boot/grub
# cp /usr/local/share/grub/i386-freebsd/* /boot/grub/
# touch /boot/grub/menu.lst
# sysctl kern.geom.debugflags=16
# grub-install /dev/ad0

И записать следующие строки в menu.lst:

# vi /boot/grub/menu.lst
title Ubuntu 10.10 AutoInstall
# Заменяем X, Y, Z на номер диска, раздела и букву
слайса, далее пишем полный путь до ISO-образа на
этом слайсе
map (hdX,Y,Z)/ubuntu-10.10-server-i386-auto.iso(hd32)
map --hook
chainloader (hd32)

После этого можно перезагружаться.

Заключение

Как видишь, такая, казалось бы, нетривиальная задача, как удаленная установка
ОС, на самом деле достаточно проста и может быть выполнена множеством разных
способов, начиная с использования виртуальной машины и заканчивая созданием
загружаемых в память дисковых образов. Более того, автор совсем не удивится,
узнав, что кто-то придумал еще десяток других способов.

Info

В Linux вместо VirtualBox гораздо удобнее использовать qemu:

$ sudo qemu -hda/dev/sda -cdrom ubuntu-10.10-desktop-i386.iso -boot
d

Warning

SSH – один из важнейших инструментов системного администрирования.

SSH, или Secure Shell (безопасная оболочка) – это протокол, который используется для безопасного подключения к удаленным системам. Это самый распространенный способ подключения к удаленным Linux- и Unix-подобным серверам (например, к VPS).

В данном руководстве речь пойдет об использовании SSH для подключения к удаленной системе.

Базовый синтаксис

Для подключения к удаленной системе с помощью SSH в Linux существует одноименный инструмент – ssh.

Базовый вид команды:

ssh удаленный_хост

В данном примере фраза «удаленный_хост» заменяет IP-адрес или доменное имя хоста, к которому нужно подключиться.

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

Если же на удаленной системе установлено другое имя пользователя, его нужно указать с помощью следующего синтаксиса:

ssh имя_пользователя@удаленный_хост

После подключения к серверу необходимо указать пароль, чтобы пройти авторизацию.

Процедура создания ключей, которые можно использовать вместо пароля, будет описана позже.

Чтобы вернуться в локальную сессию, просто наберите:

Как работает SSH?

SSH работает путем подключения клиентской программы к серверу ssh.

В приведенных выше командах ssh является клиентской программой. Сервер ssh уже запущен на указанном удаленном хосте.

Если сервер ssh еще не запущен на VPS, нажмите кнопку «Console Access», которая находится на странице сервера. Это выведет экран авторизации. Для входа используйте свои учетные данные.

В целом, процесс запуска сервера ssh зависит от используемого дистрибутива Linux.

В Ubuntu для запуска сервера ssh на VPS нужно ввести:

Sudo service sshd start

Настройка SSH

При изменении настроек SSH изменяются и настройки ssh-сервера.

В Ubuntu главный конфигурационный файл SSH находится в /etc/ssh/sshd_config.

Создайте резервную копию текущей версии этого файла перед его редактированием:

Sudo cp /etc/ssh/sshd_config{,.bak}

Откройте его с помощью текстового редактора:

Sudo nano /etc/ssh/sshd_config

Некоторые настройки требуют особенного внимания, например:

Данная строка определяет, какой порт ssh-сервер будет прослушивать для соединений. По умолчанию это порт 22.

Желательно использовать нестандартный порт, чтобы защитить сервер от случайных сканирований портов. Позже будет показано, как подключиться к новому порту.

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

Строки HostKey указывают, где находятся ключи хоста (подробнее о ключах хоста позже).

SyslogFacility
LogLevel INFO

Данные строки содержат настройки журналирования и определяют уровень журнала.

При возникновении каких-либо проблем с SSH рекомендуется повысить уровень журнала (что увеличивает количество записываемых данных).

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

Данные параметры содержат некоторую регистрационную информацию.

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

Примечание : в данной строке установите немного больше времени, чем обычно необходимо для регистрации.

PermitRootLogin определяет возможность входа в систему как пользователь root.

В большинстве случаев после создания пользователя, имеющего повышенные привилегии (su или sudo) и возможность подключаться через ssh, в данной строке рекомендуется установить «no»

strictModes – это защитное устройство, которое откажет во входе, если файлы аутентификации доступны для чтения всем.

Это предотвращает попытки входа, если файлы конфигурации не защищены.

X11Forwarding yes
X11DisplayOffset 10

Данные параметры настраивают функцию под названием X11 Forwarding, что позволяет просматривать графический пользовательский интерфейс (GUI) удаленной системы на локальной системе.

Этот параметр должен быть активирован и на локальной, и на удаленной машине; для использования функции необходимо передать клиента и опцию –X.

Отредактировав данный файл, не забудьте перезапустить ssh-сервер, чтобы активировать внесенные изменения:

sudo service sshd restart

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

Столкнувшись с проблемами, помните, что войти можно также с помощью кнопки «Console Access».

Вход с помощью ключей SSH

Зачастую аутентификация на основе ключей намного надежнее, чем вход в удаленную систему при помощи пароля.

Как работает аутентификация на основе ключей?

Аутентификация на основе ключей подразумевает создание пары ключей – закрытого и открытого.

Закрытый ключ находится на клиентской машине, должен быть защищен и храниться в секрете.

Открытый ключ можно давать кому угодно и разместить на любом сервере, к которому нужно получить доступ.

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

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

После настройки ключей весь этот процесс осуществляется автоматически в фоновом режиме.

Создание SSH-ключей

SSH-ключи нужно создать на компьютере, с которого нужно установить подключение (как правило, это локальный компьютер).

В командной строке наберите:

ssh-keygen -t rsa

Чтобы принять настройки по умолчанию, нажмите Enter. Ключи будут созданы в ~/.ssh/id_rsa.pub и ~/.ssh/id_rsa.

Перейдите в каталог.ssh, набрав:

Обратите внимание на права на файлы:

ls -l
-rw-r--r-- 1 demo demo 807 Sep 9 22:15 authorized_keys
-rw------- 1 demo demo 1679 Sep 9 23:13 id_rsa
-rw-r--r-- 1 demo demo 396 Sep 9 23:13 id_rsa.pub

Как можно видеть, права на чтение и изменение файла id_rsa есть только у владельца. Такие привилегии необходимы, чтобы сохранить ключ в секрете.

В то же время, файл id_rsa.pub можно использовать совместно, потому он имеет соответствующие привилегии.

Передача открытого ключа на сервер

Следующая команда скопирует открытый ключ на удаленный сервер:

ssh-copy-id удаленный_хост

Это откроет сессию SSH, для входа в которую нужно ввести пароль.

После введения пароля открытый ключ будет скопирован на сервер, что позволит в следующий раз войти в систему без пароля.

Клиентские настройки SSH

При подключении по SSH можно использовать ряд флагов.

Некоторые из них нужны для установки соответствующих параметров вфайле ssh удаленного хоста.

Например, если номер порта в конфигурациях ssh на локальном хосте был изменен, нужно установить соответствующий порт на стороне клиента, набрав:

ssh -p номер_порта удаленный_хост

Если на удаленной системе нужно выполнить какую-либо команду, ее можно указать следующим образом:

ssh удаленный_хост нужная_команда

Эта строка установит соединение с удаленной машиной и выполнит указанную команду.

Как уже было сказано, если функция X11 forwarding активирована на обоих компьютерах, ее можно использовать, набрав:

ssh -X удаленный_хост

При наличии на локальной системе всех соответствующих инструментов программы с графическим интерфейсом, используемые на удаленной системе, откроются на локальном компьютере.

Итоги

Научиться работать с SSH очень важно хотя бы потому, что это необходимо для выполнения самых базовых задач.

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

Tags: ,

И Vino . Общий принцип работы: с компьютера под Windows создается защищенный SSH-туннель до Ubuntu и через него создается VNC-подключение (удаленный рабочий стол).

Статья делится на четыре части:

  • Установка и активация SecureShellServer: sudo apt-get install openssh-server service ssh status ssh start/running, process 2006

    Проверка открытости 22 порта (порт, используемый по умолчанию SSH):

    Netstat -tulpan | grep:22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -

    В Linux ля подключения по SSH с использованием локального проброса портов (local port forwarding) используется в общем виде следующая команда

    Ssh -C -p -L <локальный_порт>:<адрес_машины>:<удаленный_порт> -l <пользователь>

    Это означает, что любое соединение, исходящее из локального компьютера (localhost) через порт <локальный_порт> будет перенаправлено по SSH-тунелю на <удаленный_порт> удаленной машины.

    Существует некоторая путаница относительно какие же IP указывать в и <адрес_машины>. Если компьютер находится за роутером (NAT’ом) то <адрес_машины> должен быть внутренним ip-адресом компьютера (например, 10.0.0.5), а в внешним ip-адресом роутера. Если компьютер подключается к Интернету напрямую, то адреса и <адрес_машины> будут одинаковыми.

    Подводя итог про туннелирование рассмотрим пример:

    Ssh -l myuserid -L 7777:work:22 gate ssh -p 7777 localhost

    Данная комманда делает следующее: создается защищенное ssh-подключение к машине gate под пользователем myuserid. Одновременно с этим начинается прослушивание на локальной (с которой осуществлялось подключение) машине на порту 7777. Если организуется подключение на этот порт (опять изнутри самой локальной машины), то это соединение туннелируется в ssh-соедиенние, доходит до машины gate и с нее осуществляется соединение на машину work на 22 порт. После этого мы проверяем работу туннеля — подключаясь по ssh на локальный порт 7777 мы в итоге подключаемся к машине work (при учете что на ней настроен ssh сервер на порту 22).

    Усиленная защита при использовании SSH-туннеля достигается за счет того, что только один порт должен быть открыт наружу (SSH) и зашифрованное подключение будет идти только через этот порт.
    На сервере проверяем присутствует ли папка

    /home/<имя_пользователся>/.ssh

    /home/<имя_пользователся>/.ssh/authorized_keys

    в ней, если нет, то создаем под пользователем <имя_пользователся>(как правило, это первый пользователь в системе или администратор)

    Mkdir ~/.ssh cd ~/.ssh touch authorized_keys

    Настраиваем ssh для большей безопасности. Файл настроек лежит по адресу

    /etc/ssh/sshd_config

    Делаем резервную копию

    Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

    В общем случае следует изменить:

    • TCP-порт прослушивания (по умолчанию 22):
      Port <Порт_на_котором_SSH_будет_ждать_подключения>
    • Отключить ненадежный старый протокол SSH ver.1:
      Protocol 2
    • Разрешить аутентификацию парой открытого/закрытого ключей:
      PubkeyAuthentication yes
    • Указывать, где смотреть на разрешенные публичные ключи:
      AuthorizedKeysFile %h/.ssh/authorized_keys
    • Отключить возможность аутентификации с помощью пароля (можно сделать и позже, после удачного первого соединения):
      PasswordAuthentication no

    Для большей безопасности следует настроить на аутентификацию SSH с помощью открытого ключа.
    Разрешенные к подключению по ssh публичные ключи хранятся в файле

    ~/.ssh/authorized_keys

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

    Особое внимание нужно обратить на форматирование – весь ключ должен быть размещен в одну строку и начинаться с «ssh-rsa » и доступ к файлу (-rw——- (600)).

    Настраиваем правильный доступ к файлу с ключами

    Chmod go-w $HOME $HOME/.ssh chmod 600 $HOME/.ssh/authorized_key chown `whoami` $HOME/.ssh/authorized_keys

    В файле настроек /etc/ssh/sshd_config изменяем

    StrictModes no

    Для применения настроек, внесенных в файл /etc/ssh/sshd_config , необходимо перезапустить демон sshd.

    Sudo /etc/init.d/ssh restart

  • Скачиваем putty.exe.
    Перед тем как погрузиться в настройки Putty необходимо сделать несколько замечаний.
    • Putty сохраняет настройки в профили.
    • Для сохранения всех настроек в профиль нужно перейти в меню Session в графе Saved Session ввести имя профиля и нажать Save. Для того чтобы загрузить определенный профиль в Putty в том же меню нужно выбрать нужный профиль по имени и нажать Load.
    • Для автоматической загрузки определенного профиля при запуске Putty нужно создать ярлык на exe-файл и в строке Рабочая папка дописать после пути к exe файлу добавить
      -load <имя_профиля>

    Для улучшения безопасности будет использоваться:

    • локальный проброс портов
    • система с открытым ключом

    В случае использования SSH-подключения для доступа по VNC (удаленному рабочему столу) необходимо настроить проброс портов, так называемый local port forwarding . Он используется для повышения безопасности, так как при использовании VNC данные передаются в открытом виде.

    Для проброса портов в Putty переходим в меню Connection -> SSH -> Tunnels и добавляем 5900 как "Source port", localhost:5900 в "Destination" и нажимаем Add.

    Для создания пары открытого/закрытого ключей можно использовать программу Puttygen. Скачиваем Puttygen.exe . В параметрах выбираем SSH-2 RSA, количество битов устанавливаем 2048 и нажимаем кнопку Generate.

    Для дополнительной защиты можно дважды прописать "passphrase". Если есть необходимость при SSH-соединении сразу входить в консоль, то поле можно оставить пустым.

    Открытый ключ сохраняется в понятном только Putty форматировании. Поэтому для установки его в Linux нужно сделать следующее:

    1. Пока puttygen еще открыта – скопировать публичный ключ в разделе "Public key for pasting…" И вставить в файл authorized_keys на сервере.
    2. Указать Putty на файл закрытого ключа в меню Connection -> SSH -> Auth в разделе "Private key file for authentication" сгенерированный файл*.ppk.
  • По умолчанию в Ubuntu уже включен VNC-сервер Vino. Для его настройки нужно перейти в Menu -> System -> Preferences -> Remote Desktop и включить удаленный доступ. В настройках можно включить аутентификацию по паролю, но нельзя настроить порт прослушивания (используется 5900).
    Для возможности более детальной настройки рекомендуется установить X11VNC.
  • Скачиваем TightVNC и устанавливаем. Для целей данной статьи достаточно выбрать только роль клиента.

    Запускаем на Windows машине TightVNC и в поле вбиваем

    Localhost:5900



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: