Differences between revisions 2 and 3
Revision 2 as of 2008-08-02 02:51:01
Size: 7497
Comment:
Revision 3 as of 2008-08-02 04:34:16
Size: 7967
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Протокол X11 не считается надежным сетевым протоколом. Алгоритм шифрования там следующий: вырабатывается некий ключик для
сеанса, этим ключиком сервер и терминал обмениваются и для обеспечения связи используется именно этот ключик. Гарантии,
что этот ключ нельзя вычислить\пере
хватить нет. Соответственно, мы знаем, что в переменнй display хранится адрес сервера,
и вы можете запустить приложение на удаленной машине - грубо говоря на на сервере приложений, а X-сервер на вашей
локальной машиен будет отрисовывать. Вы всегда можете это сделать, за исключением ПСПО, где X-сервер запускается с
ключом --no-listen-tcp(за исключением АлтЛинукс Терминал). Кроме того, совершенно необязательно проводить подключение на
порты протокола x11, а можно воспользоваться ssh, тем более что между вами и удаленной машиной находиться фаерволл,
который не допускает таких подключений А так, если к машине вы можете подключиться по ssh, то вы можете запустить
удаленное приложение, с тем чтобы вывести результаты на ван X-сервер. Делается это с помощью ключа команды ssh '-Y'. Есть
также похожий по действию ключ '-X' но он не позваляет делать многие вещи, которые считаются не безопасными.
Протокол X11 не считается надежным сетевым протоколом. Алгоритм шифрования там следующий: вырабатывается некий ключик для сеанса, этим ключиком сервер и терминал обмениваются и для обеспечения связи используется именно этот ключик. Гарантии,
что этот ключ нельзя вычислить\перехватить нет.  Соответственно, мы знаем, что в переменной DISPLAY хранится адрес сервера, и вы можете запустить приложение на удаленной машине - грубо говоря на на сервере приложений, а X-сервер на вашей локальной машине будет отрисовывать. Вы всегда можете это сделать, за исключением ПСПО, где X-сервер запускается с ключом --no-listen-tcp(за исключением АлтЛинукс Терминал). Кроме того, совершенно необязательно проводить подключение на порты протокола x11, а можно воспользоваться ssh, тем более что между вами и удаленной машиной находиться фаерволл,
который не допускает таких подключений А так, если к машине вы можете подключиться по ssh, то вы можете запустить удаленное приложение, с тем чтобы вывести результаты на ван X-сервер. Делается это с помощью ключа команды ssh '-Y'. Есть также похожий по действию ключ '-X' но он не позволяет делать многие вещи, которые считаются не безопасными.
Line 15: Line 8:
##2:10:21
Как это устроено: посмотрим содержимое $DISPLAY на локальной машине.
{{{
$ echo $DISPLAY
:0.0
}}}
Эта надписи буквально означает следующие: часть до двоеточия означает адрес машины. Если там ничего не указанно то
используется значение по умолчанию --- unix domain socket, часть до точки --- номер X-сервера, после точки --- номер
экрана, например, в случае многоголовой видеокарты. Если вписать адрес хоста и на этом хосте не запрещены подобные
соединения(как в большинстве АльтЛинуксов), то можно попробовать получить доступ к этому хосту, хотя на нем его надо
дополнительно разрешить. Совершим ssh -Y на другую машину и посмотрим содержимое переменной DISPLAY.
{{{
}}}
Обратите внимание, что в графе адрес стоит адрес - т.е. соединение будет происходить через сеть, однако адрес -
localhost , то есть слушается он локально. Далее указан 10 сервер и экран 0. 10 сервер всего лишь ретранслятор, все
программы запущенные на этой удаленной машине которые присоединяются к этому X-серверу по протоколу X11 , на самом деле
это ssh-демон, который все эти запросы по защищенному протоколу оттаскивает на ту машину, с которой вы зашли - локальную и
отдаёт их , как если бы эта программа была запущенна с этой локальной машины машины.
2:14:25
Line 16: Line 28:
Как это устроено: посмотрим сдержимое $DISPLAY на локальной машине.
{{{:0.0 озн. следующие: часть до двоеточия озн. адр. машине. Её отсутствие --- по умолч., по умлч --- unix domain socket,
часть до точки --- номер сервера, после точки --- нмер экрана, напримере, в случае многоголовой видеокарты. В этой штуке
можно написать вмест ничего адрес хоста, то можно попр. получить доступ к лок. машине, хотя на той стороне его надо
разрешить. Совершим ssh -Y и пм. display. бр. внимание, чт в графе адрес стоит адрес (соед. будет происх. через tcp),
однако там локалхст, то есть слушается н локально. Далее указан 10 сервер, н он всего лишь ретранслятор, на самом деле это
ssh-демон, который все эти запрсы по защищ. протоколу оттаскивает на лок. машину и отдаёт их , как если бы она запущена с
лок. машины.
=== Проброс портов ===
Раз уж можно прокидывать иксы, то можно прокидывать любой порт. Фактически, для проброса X11 организовали на удаленной
машине демон так, что пакеты которые приходили на порт 6010 (6000+номер X-сервера) передавались на локальную машину.
Точно также мы можем прокинуть подключение к локальному порту на удаленную машину или наоборот - подключение к порту на
удаленной машине - к локальной.
Line 25: Line 34:
Собсмтвенно, ничего особенного тут и нету.
Line 27: Line 35:
Прокидывание портов сквозь ssh. Это такая штука: раз уж можно пркидывать иксы, то можено прокидывать любй прт. Фактически,
мы прокинули ... орг. на уд. машине демон 6010-порт, и сделали так, чтобы лок. подклю с лок. машины к 6010 порту приводили
к ому, чтобы в рез-те прходил прбрн на лок. машину и чтобы там было подкл. к юних домен сокет.
Пара ssh/sshd позволяет проделать обе эти операции. Сейчас мы попробуем отдать наш локальный 80 порт на удаленную машину
на порт 8089.
{{{
[saj@class305 ~]$ ssh -R 8089:localhost:80 10.30.5.197
}}}
//screenshot
{{attachment:ssh_port_forwarding_succeeded.png}}
Теперь если в браузере на удаленной машине 10.30.4.197 посмотреть localhost:8089 то мы увидим что нас пробрасывает на
локальную машину на порт 80, где находится вебсервер. Однако из-за настроек sshd на удаленной машине она позволяет зайти
на 8089 порт только самой себе. Отвечающая за это опция
{{{
GatewayPorts no //(значение по умолчанию)
}}}
Line 31: Line 49:
Вот у нас есть ... . Пара ssh/sshd пзв. прделать бе операции: сделать так, чтбы подклю к уд. хосту привдил к подкл. к лок,
и наборот. ... Понятно, что нельзя этго делать. Зато есть такая штука, как smtp_auth, которая позв. это сделать.
Во-первых, ндао настр. smtp-auth, кроме тго, ндао делать действия на сервере, в-третьих известно, что некторые спамботы
умеют его исп. Поэтому smtp есть, н не афиширванный и врде им никто не польз. Есть способ лучше, он недоступен спамботу, и
вы его можете орг, если у польз есть ссх. Вы пробрасываете порт, сервер будет думать, что он разг. с лок. машинй, при этм
аутентификация п ссх, и так далее. Сейчас мы попр. отдать лок. порт на уд. машину с пртом 8089.

(неткат и фуррифокс)

Чего нам не удалось сделать --- чтобы уд. машина давала куому-то, кроме как локалхсту. Эт настраивается в конфиге sshd.
GatewayPorts no (значение по умолчанию).

Логин рутом. Запрещён по ссх по паролю. Было бы очень неправильно давать говорить польз. логиниться, а потом говорить su
(пск. пять пляски с парлем), поэтому считается нормальной практикой давать логин руту по ключам, и в логе оно
откладывается, и ситуации, что неизвестно кто заходил под рутом, мы избегаем, поск. знаем, какой ключ исп. Это безпаснее,
чем другие схемы.
=== Логин суперпользователем ===
Запрещён по ssh по паролю. Было бы очень неправильно давать человеку сначала логиниться обычным пользователем, а затем
говорить например su, поскольку опять будет передаваться пароль по сети. Поэтому о считается нормальной практикой давать
логин руту по сети по ключу, беспарольно и с хорошей пассфразой. Поскольку в этом случае в логах откладывается чей ключ
был использован. Это безопаснее, чем другие схемы.
##2:39:57
Line 54: Line 62:
|| 0 || 1 || 1 || 1 || || 1 || ArtemSerebriyskiy, VladimirLysikov, MaximByshevskiKonopko || || || || 18 || 1 || 1 || 1 || || 1 || ArtemSerebriyskiy, VladimirLysikov, MaximByshevskiKonopko || || ||

SSH: forwarding трафика

Протокол X11 не считается надежным сетевым протоколом. Алгоритм шифрования там следующий: вырабатывается некий ключик для сеанса, этим ключиком сервер и терминал обмениваются и для обеспечения связи используется именно этот ключик. Гарантии, что этот ключ нельзя вычислить\перехватить нет. Соответственно, мы знаем, что в переменной DISPLAY хранится адрес сервера, и вы можете запустить приложение на удаленной машине - грубо говоря на на сервере приложений, а X-сервер на вашей локальной машине будет отрисовывать. Вы всегда можете это сделать, за исключением ПСПО, где X-сервер запускается с ключом --no-listen-tcp(за исключением АлтЛинукс Терминал). Кроме того, совершенно необязательно проводить подключение на порты протокола x11, а можно воспользоваться ssh, тем более что между вами и удаленной машиной находиться фаерволл, который не допускает таких подключений А так, если к машине вы можете подключиться по ssh, то вы можете запустить удаленное приложение, с тем чтобы вывести результаты на ван X-сервер. Делается это с помощью ключа команды ssh '-Y'. Есть также похожий по действию ключ '-X' но он не позволяет делать многие вещи, которые считаются не безопасными.

ssh -Y 10.30.5.197

Как это устроено: посмотрим содержимое $DISPLAY на локальной машине.

$ echo $DISPLAY
:0.0 

Эта надписи буквально означает следующие: часть до двоеточия означает адрес машины. Если там ничего не указанно то используется значение по умолчанию --- unix domain socket, часть до точки --- номер X-сервера, после точки --- номер экрана, например, в случае многоголовой видеокарты. Если вписать адрес хоста и на этом хосте не запрещены подобные соединения(как в большинстве АльтЛинуксов), то можно попробовать получить доступ к этому хосту, хотя на нем его надо дополнительно разрешить. Совершим ssh -Y на другую машину и посмотрим содержимое переменной DISPLAY.

Обратите внимание, что в графе адрес стоит адрес - т.е. соединение будет происходить через сеть, однако адрес - localhost , то есть слушается он локально. Далее указан 10 сервер и экран 0. 10 сервер всего лишь ретранслятор, все программы запущенные на этой удаленной машине которые присоединяются к этому X-серверу по протоколу X11 , на самом деле это ssh-демон, который все эти запросы по защищенному протоколу оттаскивает на ту машину, с которой вы зашли - локальную и отдаёт их , как если бы эта программа была запущенна с этой локальной машины машины. 2:14:25

Проброс портов

Раз уж можно прокидывать иксы, то можно прокидывать любой порт. Фактически, для проброса X11 организовали на удаленной машине демон так, что пакеты которые приходили на порт 6010 (6000+номер X-сервера) передавались на локальную машину. Точно также мы можем прокинуть подключение к локальному порту на удаленную машину или наоборот - подключение к порту на удаленной машине - к локальной.

Пара ssh/sshd позволяет проделать обе эти операции. Сейчас мы попробуем отдать наш локальный 80 порт на удаленную машину на порт 8089.

[saj@class305 ~]$ ssh -R 8089:localhost:80 10.30.5.197

//screenshot [ATTACH] Теперь если в браузере на удаленной машине 10.30.4.197 посмотреть localhost:8089 то мы увидим что нас пробрасывает на локальную машину на порт 80, где находится вебсервер. Однако из-за настроек sshd на удаленной машине она позволяет зайти на 8089 порт только самой себе. Отвечающая за это опция

GatewayPorts no //(значение по умолчанию)

Логин суперпользователем

Запрещён по ssh по паролю. Было бы очень неправильно давать человеку сначала логиниться обычным пользователем, а затем говорить например su, поскольку опять будет передаваться пароль по сети. Поэтому о считается нормальной практикой давать логин руту по сети по ключу, беспарольно и с хорошей пассфразой. Поскольку в этом случае в логах откладывается чей ключ был использован. Это безопаснее, чем другие схемы.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

18

1

1

1

1

ArtemSerebriyskiy, VladimirLysikov, MaximByshevskiKonopko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080730/04SshForwarding (last edited 2008-10-09 22:10:45 by MaximByshevskiKonopko)