7662
Комментарий:
|
7757
Mithgolization, fixes.
|
Удаления помечены так. | Добавления помечены так. |
Строка 5: | Строка 5: |
Соответственно, мы знаем, что в переменной 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' но он не позволяет делать многие вещи, которые считаются небезопасными. |
Строка 21: | Строка 21: |
Обратите внимание, что в графе адрес стоит адрес, т.е. соединение будет происходить через сеть, однако этот адрес --- localhost, то есть слушается он локально. Далее указан 10 сервер и экран 0. 10 сервер --- это ретранслятор, все программы, которые присоединяются к этому X-серверу по протоколу X11, на самом деле обрабатываются ssh-демоном, который все эти запросы по защищенному протоколу передает на ту машину, с которой было инициировано соединение по ssh, и на ней выводятся результаты программы. | Обратите внимание, что в графе адрес стоит адрес, т.е. соединение будет происходить через сеть, однако этот адрес --- localhost, то есть слушается он локально. Далее указан 10 сервер и экран 0. 10 сервер --- это ретранслятор, все программы, которые присоединяются к этому X-серверу по протоколу X11, на самом деле обрабатываются ssh-демоном, который все эти запросы по защищённому протоколу передает на ту машину, с которой было инициировано соединение по ssh, и на ней выводятся результаты программы. |
Строка 25: | Строка 25: |
По протоколу ssh можно осуществлять не только X-сессии, но и вообще пробрасывать любой порт. Фактически, для проброса X11 организовали на удаленной машине демон так, что пакеты которые приходили на порт 6010 (6000+номер X-сервера), передавались на локальную машину и обратно. Точно так же мы можем прокинуть подключение к локальному порту на удаленную машину или наоборот. | |
Строка 27: | Строка 26: |
Пара ssh/sshd позволяет проделать эти операции. Сейчас мы попробуем отдать наш локальный 80 порт на удаленную машину на порт 8089. | По протоколу ssh можно осуществлять не только соединение для X-сессии, но и вообще пробрасывать любой порт. Фактически, для проброса X11 организовали на удалённой машине демон так, что пакеты которые приходили на порт 6010 (6000+номер X-сервера), передавались на локальную машину и обратно. Точно так же мы можем прокинуть подключение к локальному порту на удаленную машину или наоборот. Пара ssh/sshd позволяет проделать эти операции. Сейчас мы попробуем отдать наш локальный 80 порт на удалённую машину на порт 8089. |
Строка 34: | Строка 35: |
Строка 35: | Строка 37: |
Однако из-за настроек sshd на удаленной машине она позволяет зайти на 8089 порт только самой себе. Отвечающая за это опция в файле ssh_config | Однако из-за настроек sshd на удаленной машине она позволяет зайти на 8089 порт только самой себе. Отвечающая за это опция в файле ssh_config по умолчанию выключена: |
Строка 37: | Строка 40: |
GatewayPorts no //(значение по умолчанию) | GatewayPorts no |
Строка 41: | Строка 44: |
По умолчанию запрещено входить суперпользователю по ssh по паролю. Было бы очень неправильно давать человеку сначала логиниться обычным пользователем, а затем использовать su, поскольку при этом передается пароль по сети. Поэтому считается нормальной практикой давать логин суперпользователя по сети только по ключу, беспарольно и с хорошей пассфразой. В этом случае в логах остается запись о том, чей ключ был использован. Это безопаснее, чем другие схемы. | По умолчанию запрещено входить суперпользователю по ssh по паролю. Было бы очень неправильно давать человеку сначала логиниться обычным пользователем, а затем использовать su, поскольку при пароль суперпользователя будет передан по сети. Поэтому считается нормальной практикой давать возможность логина суперпользователя по сети только по ключу, без пароля и с криптостойкой пассфразой. В этом случае в логах остается запись о том, чей ключ был использован. Это безопаснее, чем другие схемы. |
Строка 49: | Строка 53: |
|| 20 || 1 || 1 || 1 || || 1 || ArtemSerebriyskiy, VladimirLysikov, MaximByshevskiKonopko || || || | || 65 || 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-сервера, после точки --- номер экрана. Если вписать адрес удаленного компьютера и на нем не запрещены соединения по X11, то можно попробовать получить доступ к этому хосту. Совершим ssh -Y на другую машину и посмотрим содержимое переменной:
[saj@localhost ~]$ echo $DISPLAY localhost:10.0
Обратите внимание, что в графе адрес стоит адрес, т.е. соединение будет происходить через сеть, однако этот адрес --- localhost, то есть слушается он локально. Далее указан 10 сервер и экран 0. 10 сервер --- это ретранслятор, все программы, которые присоединяются к этому X-серверу по протоколу X11, на самом деле обрабатываются ssh-демоном, который все эти запросы по защищённому протоколу передает на ту машину, с которой было инициировано соединение по ssh, и на ней выводятся результаты программы.
Проброс портов
По протоколу ssh можно осуществлять не только соединение для X-сессии, но и вообще пробрасывать любой порт. Фактически, для проброса X11 организовали на удалённой машине демон так, что пакеты которые приходили на порт 6010 (6000+номер X-сервера), передавались на локальную машину и обратно. Точно так же мы можем прокинуть подключение к локальному порту на удаленную машину или наоборот.
Пара ssh/sshd позволяет проделать эти операции. Сейчас мы попробуем отдать наш локальный 80 порт на удалённую машину на порт 8089.
[saj@class305 ~]$ ssh -R 8089:localhost:80 10.30.5.197
Теперь если в браузере на удаленной машине 10.30.4.197 посмотреть localhost:8089 то мы увидим что нас пробрасывает на локальную машину на порт 80, где находится вебсервер.
Однако из-за настроек sshd на удаленной машине она позволяет зайти на 8089 порт только самой себе. Отвечающая за это опция в файле ssh_config по умолчанию выключена:
GatewayPorts no
Логин суперпользователем
По умолчанию запрещено входить суперпользователю по ssh по паролю. Было бы очень неправильно давать человеку сначала логиниться обычным пользователем, а затем использовать su, поскольку при пароль суперпользователя будет передан по сети. Поэтому считается нормальной практикой давать возможность логина суперпользователя по сети только по ключу, без пароля и с криптостойкой пассфразой. В этом случае в логах остается запись о том, чей ключ был использован. Это безопаснее, чем другие схемы.
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
End date |
65 |
1 |
1 |
1 |
|
1 |
|
|