Size: 7124
Comment:
|
Size: 7089
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 24: | Line 24: |
tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 4667/stunnel | tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 4667/stunnel |
Line 43: | Line 42: |
|| 0 || 1 || 1 || 1 || || 1 || SergeyKorobkov, DmitryChistikov, MaximByshevskiKonopko || || || | || 20 || 1 || 1 || 1 || || 1 || SergeyKorobkov, DmitryChistikov, MaximByshevskiKonopko || || || |
Практика использования stunnel
Сегодня всякая сеть. Во-первых продолжение про безопасность, причём практическая. Хотели попробовать stunnel, ssh.
Вспомним про stunnel и попробуем его настроить, чтобы показать, каким образом и почему SSL очень похож на протокол 6 уровня, уровня представления, ISO/OSI. В любом случае, реализация его полностью оторвана от прикладного уровня, в отличие от TLS, реализация которого встраивается в протокол прикладного уровня.
Для начала установим этот пакет. Он не входит в состав ALT Linux Lite, но есть в школьном бранче. Stunnel это программа, которая может служить и клиентом, и сервером для организации туннеля, защищённого с помощью SSL, между клиентской и серверной машиной. При этом, с клиентской машины она организует доступ до сервера принимающего подключения https/imaps/ и шифрующего эти соединения по SSL, а со стороны клиента stunnel открывает порт, к которому можно подключаться уже без SSL. Использование stunnel состоит в том, чтобы подключение по закрытому каналу осуществлялось stunnel, а после того, как это подключение произошло, расшифрованный траффик представляется в виде ещё одного сокета на локальной машине, к которому можно подключится, не зная про SSL.
В качестве примера рассмотрим https://webmail.cs.msu.su/, где можно видеть "отпечатки пальцев", которые есть хеш-код публичного ключа. Также можно посмотреть свойства сайта и увидеть там тот же хеш-код что и есть подтверждение подлинности сайта.
Конечно, если есть злоумышленник между вами и сайтом доверенным, то он может осуществить и такую операцию: не только подменить сертификаты, но и проанализировать и поменять хеш-код но самой странице, но вероятность подобного сильно уменьшается, поскольку злоумышленнику надо найти место на сайте, где ключ опубликован и подменять его в этом месте.
Почитаем man по stunnel. Там внизу нарисован второй способ использования stunnel --- в случае, если сервер не умеет организовывать нормальный SSL, а вам хочется шифровать соединение. Причём это серверы-фильтры, как в xinetd. И для организации SSL они просто вместо xinetd используют stunnel.
На stunnel.org есть примеры.
Два параметра: -d, чтобы он работал в качестве демона, -r --- к какому порту присоединяться, потом двоеточие, номер порта. Обратите внимание на то, что можно использовать как числовые номера, так и символьные. Есть организация IANA, которая среди прочего регистрирует номера портов (например 443 это hhtps и тд.), и они хранятся в файле /etc/services. Вот например мы не используем 80 порт, так как там может стоять обычный web-сервер, и не используем 8080, так как он здесь тоже занят, и поэтому возьмем 8088.
$ /usr/sbin/stunnel -P ~ -c -d 8088 -r webmail.cs.msu.su:https $ netstat -ltnp | grep stunnel tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 4667/stunnel
Теперь мы можем зайти на localhost:8088 и увидеть то же самое. Зачем вообще такое нужно? Когда вы заходите на localhost, считается, что подсмотреть трафик очень сложно, а те, кто могут, имеют рута на машине и тогда уже всё равно. Если такого нету, то есть, подсоединение осуществляется по сети в защищенном режиме, и никто ничего не увидит.
Есть скрипт, который генерирует сертификаты, у него есть разные опции, в том числе есть опция отвечающая за подписывание. И может быть можно будет запустить stunnel со стороны сервера, чтобы он преобразовывал 80-й порт в какой ещё, но уже защищенный.
На чём часть про stunnel заканчивается.
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
End date |
20 |
1 |
1 |
1 |
|
1 |
|
|