Программа stunnel шифрует - при помощи SSL - трафик демонов, не обладающих способностями к шифрованию, stunnel делает преимущества шифрования с открытым ключом доступными широкому спектру сетевых приложений. stunnel входит в состав пакета OpenSSL и устанавливается вместе с OpenSSL.
Подобно прочим приложениям, работающим с SSL, stunnel для нормальной работы требует наличия сертификата. Простейший способ создать сертификат stunnel: перейти в каталог сертификатов SSL и выполнить команду make, как показано в следующем примере:
» cd /usr/share/ssl/certs B make stunnel.pem umask 77 ; \ PEM1=7bin/mktemp /tmp/openssl.XXXXXX' ; \ PEM2='/bin/mktemp /tmp/openssl.XXXXXX1 ; \ /usr/bin/openssl req -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 ; \ cat $PEM1 > stunnel.pem ; \ echo "" » stunnel.pem ; \ cat $PEM2 » stunnel.pem ; \ rm -f $PEM1 SPEM2 Using configuration from /usr/share/ssl/openssl.cnf Generating a 1024 bit RSA private key .....++++++ l........++++++ writing new private key to '/tmp/openssl.3Wjex' You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank. If you enter the field will be left blank. For some fields there will be a default value. Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:Maryland Locality Name (eg. city) [] Gaithersburg Organization Name (eg, company) [Internet Widgits LtdJ.WroteTheBook.com Organizational Unit Name (eg, section) []:Books Common Name (eg. your name or your server's hostname) []:Craig Hunt Email Address []:craig.huntewrotethebook.com
По умолчанию при установке openssl создается каталог /usr/share/ssl/certs, предназначенный для хранения сертификатов, и stunnel по умолчанию ищет в этом каталоге сертификат с именем stunnel.pem.1 Как и для всех других новых сертификатов, openssl необходимо предоставить информацию, однозначным образом определяющую сертификат.
После создания сертификата программа stunnel готова к применению. Отличными примерами служб, работающих через защищенный канал stunnel, могут послужить POP и IMAP. Главной причиной совместного использования POP, IMAP и stunnel является защита паролей пользователей, передаваемых в ходе сеансов POP и IMAP. stunnel шифрует все: регистрацию на сервере и передаваемые почтовые сообщения. Последнее защищает содержимое сообщения от перехвата в процессе передачи от сервера клиента, хотя с точки зрения системного администратора важно защитить именно пароль.
Чтобы защищенный обмен по POP и IMAP заработал, обе стороны должны уметь передавать данные по каналам SSL. Однако это не всегда так. У некоторых клиентов нет stunnel; у других вообще нет SSL. По этой причине серверы обычно предоставляют стандартный доступ к службам POP и IMAP через широко известные порты, а SSL-доступ к тем же службам - через другие порты. При работе через stunnel служба POP называется pops и использует порт TCP 995; IMAP называется imaps и получает порт TCP 993. pops и imaps - это не специальные протоколы, а просто имена служб из файла /etc/ services, связанные с номерами портов 995 и 993. Следующая команда загрузочного сценария организует доступ к POP через туннель SSL и порт 995:
stunnel -d 995 -1 /usr/sbin/ipop3d -- ipop3d
Как вариант, stunnel может выполняться демоном inetd. Чтобы это происходило, следует создать соответствующую запись в файле inetd.conf. Например, следующая запись организует доступ к POP через туннель SSL - по запросам клиентов:
pops stream tcp nowait root /usr/sbin/stunnel -1 /usr/sbin/ipop3d — ipop3d
Если используется демон xinetd, работу stunnel следует настраивать в файле xinetd.conf. Следующая запись xinetd выполняет настройку imaps:
service imaps { socket_type = stream wait = no user = root server = /usr/sbin/stunnel server_args = -1 /usr/sbin/imapd -- imapd log_on_failure += USERID }
Приложение stunnel никоим образом не связано именно с POP или IMAP, оно может применяться для обеспечения безопасности многих демонов. Если необходимо защитить демон, выполняемый inetd или xinetd, команда stunnel размещается в файле inetd.conf или xinetd.conf, как и должно быть. Если демон стартует по команде в загрузочном файле, там же должна размещаться и команда stunnel.
Несмотря на серьезные возможности инструментов вроде stunnel и ssh, шифрование не является заменой для качественной компьютерной безопасности. Оно способно защитить чувствительную или частную информацию от просмотра, но никогда не должно быть единственным средством защиты важной информации. Системы шифрования подвержены взломам, а зашифрованные данные - удалению и повреждениям, точно так же, как любые другие данные. Пусть шифрование не смущает вас ложным ощущением защищенности. Некоторая информация настолько чувствительна и важна, что ее не следует хранить на подключенных к сети компьютерах даже в закодированном виде. Шифрование - лишь небольшой фрагмент полноценной системы безопасности.