Differences between revisions 3 and 4
Revision 3 as of 2008-08-02 01:34:16
Size: 7967
Comment:
Revision 4 as of 2008-08-02 01:38:36
Size: 7926
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
что этот ключ нельзя вычислить\перехватить нет. Соответственно, мы знаем, что в переменной DISPLAY хранится адрес сервера, и вы можете запустить приложение на удаленной машине - грубо говоря на на сервере приложений, а X-сервер на вашей локальной машине будет отрисовывать. Вы всегда можете это сделать, за исключением ПСПО, где X-сервер запускается с ключом --no-listen-tcp(за исключением АлтЛинукс Терминал). Кроме того, совершенно необязательно проводить подключение на порты протокола x11, а можно воспользоваться ssh, тем более что между вами и удаленной машиной находиться фаерволл,
который не допускает таких подключений А так, если к машине вы можете подключиться по ssh, то вы можете запустить удаленное приложение, с тем чтобы вывести результаты на ван X-сервер. Делается это с помощью ключа команды ssh '-Y'. Есть также похожий по действию ключ '-X' но он не позволяет делать многие вещи, которые считаются не безопасными.
что этот ключ нельзя вычислить\перехватить нет. Соответственно, мы знаем, что в переменной DISPLAY хранится адрес сервера, и вы можете запустить приложение на удаленной машине - грубо говоря на на сервере приложений, а X-сервер на вашей локальной машине будет отрисовывать. Вы всегда можете это сделать, за исключением ПСПО, где X-сервер запускается с ключом --no-listen-tcp(за исключением АлтЛинукс Терминал). Кроме того, совершенно необязательно проводить подключение на порты протокола x11, а можно воспользоваться ssh, тем более что между вами и удаленной машиной находиться фаерволл, который не допускает таких подключений А так, если к машине вы можете подключиться по ssh, то вы можете запустить удаленное приложение, с тем чтобы вывести результаты на ван X-сервер. Делается это с помощью ключа команды ssh '-Y'. Есть также похожий по действию ключ '-X' но он не позволяет делать многие вещи, которые считаются не безопасными.
Line 14: Line 13:
Эта надписи буквально означает следующие: часть до двоеточия означает адрес машины. Если там ничего не указанно то
используется значение по умолчанию --- unix domain socket, часть до точки --- номер X-сервера, после точки --- номер
экрана, например, в случае многоголовой видеокарты. Если вписать адрес хоста и на этом хосте не запрещены подобные
соединения(как в большинстве АльтЛинуксов), то можно попробовать получить доступ к этому хосту, хотя на нем его надо
дополнительно разрешить. Совершим ssh -Y на другую машину и посмотрим содержимое переменной DISPLAY.
Эта надписи буквально означает следующие: часть до двоеточия означает адрес машины. Если там ничего не указанно то используется значение по умолчанию --- unix domain socket, часть до точки --- номер X-сервера, после точки --- номер экрана, например, в случае многоголовой видеокарты. Если вписать адрес хоста и на этом хосте не запрещены подобные соединения(как в большинстве АльтЛинуксов), то можно попробовать получить доступ к этому хосту, хотя на нем его надо дополнительно разрешить. Совершим ssh -Y на другую машину и посмотрим содержимое переменной DISPLAY.
Line 21: Line 16:
Обратите внимание, что в графе адрес стоит адрес - т.е. соединение будет происходить через сеть, однако адрес -
localhost , то есть слушается он локально. Далее указан 10 сервер и экран 0. 10 сервер всего лишь ретранслятор, все
программы запущенные на этой удаленной машине которые присоединяются к этому X-серверу по протоколу X11 , на самом деле
это ssh-демон, который все эти запросы по защищенному протоколу оттаскивает на ту машину, с которой вы зашли - локальную и
отдаёт их , как если бы эта программа была запущенна с этой локальной машины машины.
2:14:25
Обратите внимание, что в графе адрес стоит адрес - т.е. соединение будет происходить через сеть, однако адрес - localhost , то есть слушается он локально. Далее указан 10 сервер и экран 0. 10 сервер всего лишь ретранслятор, все программы запущенные на этой удаленной машине которые присоединяются к этому X-серверу по протоколу X11 , на самом деле это ssh-демон, который все эти запросы по защищенному протоколу оттаскивает на ту машину, с которой вы зашли - локальную и отдаёт их , как если бы эта программа была запущенна с этой локальной машины машины.
##2:14:25
Line 29: Line 20:
Раз уж можно прокидывать иксы, то можно прокидывать любой порт. Фактически, для проброса X11 организовали на удаленной
машине демон так, что пакеты которые приходили на порт 6010 (6000+номер X-сервера) передавались на локальную машину.
Точно также мы можем прокинуть подключение к локальному порту на удаленную машину или наоборот - подключение к порту на
удаленной машине - к локальной.
Раз уж можно прокидывать иксы, то можно прокидывать любой порт. Фактически, для проброса X11 организовали на удаленной машине демон так, что пакеты которые приходили на порт 6010 (6000+номер X-сервера) передавались на локальную машину. Точно также мы можем прокинуть подключение к локальному порту на удаленную машину или наоборот - подключение к порту на удаленной машине - к локальной.
Line 35: Line 23:
Пара ssh/sshd позволяет проделать обе эти операции. Сейчас мы попробуем отдать наш локальный 80 порт на удаленную машину
на порт 8089.
Пара ssh/sshd позволяет проделать обе эти операции. Сейчас мы попробуем отдать наш локальный 80 порт на удаленную машину на порт 8089.
Line 40: Line 27:
//screenshot
{{attachment:ssh_port_forwarding_succeeded.png}}
Теперь если в браузере на удаленной машине 10.30.4.197 посмотреть localhost:8089 то мы увидим что нас пробрасывает на
локальную машину на порт 80, где находится вебсервер. Однако из-за настроек sshd на удаленной машине она позволяет зайти
на 8089 порт только самой себе. Отвечающая за это опция
{{attachment:../ssh_port_forwarding_succeeded.png}}
Теперь если в браузере на удаленной машине 10.30.4.197 посмотреть localhost:8089 то мы увидим что нас пробрасывает на локальную машину на порт 80, где находится вебсервер. Однако из-за настроек sshd на удаленной машине она позволяет зайти на 8089 порт только самой себе. Отвечающая за это опция 
Line 50: Line 34:
Запрещён по ssh по паролю. Было бы очень неправильно давать человеку сначала логиниться обычным пользователем, а затем
говорить например su, поскольку опять будет передаваться пароль по сети. Поэтому о считается нормальной практикой давать
логин руту по сети по ключу, беспарольно и с хорошей пассфразой. Поскольку в этом случае в логах откладывается чей ключ
был использован. Это безопаснее, чем другие схемы.
Запрещён по ssh по паролю. Было бы очень неправильно давать человеку сначала логиниться обычным пользователем, а затем говорить например su, поскольку опять будет передаваться пароль по сети. Поэтому о считается нормальной практикой давать логин руту по сети по ключу, беспарольно и с хорошей пассфразой. Поскольку в этом случае в логах откладывается чей ключ был использован. Это безопаснее, чем другие схемы.

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-демон, который все эти запросы по защищенному протоколу оттаскивает на ту машину, с которой вы зашли - локальную и отдаёт их , как если бы эта программа была запущенна с этой локальной машины машины.

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

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

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

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

../ssh_port_forwarding_succeeded.png Теперь если в браузере на удаленной машине 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 19:10:45 by MaximByshevskiKonopko)