SSL-порты и Inetd
Может возникнуть ситуация, когда используемое тобой с одной стороны (клиента или сервера)
приложение поддерживает SSL. Тогда Stunnel можно запускать только со другой стороны
(сервера или клиента). Например, если ты хочешь забирать почту Netscape Messenger'ом через imaps
(ssl-imap), а установленный на сервере imapd не поддерживает SSL, то на хосте-сервере
можно запустить Stunnel, а на хосте-клиенте можно не запускать, т.к. Netscape Messanger и так поддерживает соединение по SSL.
И, наоборот, если на сервере у тебя установлен ipop3d, поддерживающий SSL, а твой почтовый клиент не поддерживает
pop3s(ssl-pop3), то Stunnel запускать нужно только на хосте-клиенте.
Возьмем первую ситуацию (когда клиентское приложение поддерживает SSL, а серверное - нет).
Необходимо не просто запустить на сервере Stunnel, но и выбрать такой порт для подключения, который
будет поддерживаться клиентским приложением. Благо данную проблему давно решили за нас - существует официальный список
SSL-портов, т.е. надо просто выбирать для каждого сервиса такие порты, которые используют все...:)
Вот этот список:
https 443/tcp # http protocol over TLS/SSL
smtps 465/tcp # smtp protocol over TLS/SSL (was ssmtp)
nntps 563/tcp # nntp protocol over TLS/SSL (was snntp)
imap4-ssl 585/tcp # IMAP4+SSL (use 993 instead)
sshell 614/tcp # SSLshell
ldaps 636/tcp # ldap protocol over TLS/SSL (was sldap)
ftps-data 989/tcp # ftp protocol, data, over TLS/SSL
ftps 990/tcp # ftp protocol, control, over TLS/SSL
telnets 992/tcp # telnet protocol over TLS/SSL
imaps 993/tcp # imap4 protocol over TLS/SSL
ircs 994/tcp # irc protocol over TLS/SSL
pop3s 995/tcp # pop3 protocol over TLS/SSL (was spop3)
Добавь эти данные в файл /etc/services, предварительно убедившись, что там их нет...:)
После этого можно настроить вызов Stunnel из inetd.
Вызов из inetd имеет свои преимущества. У Stunnel нет встроенной возможности
ограничений на подключение, у inetd есть. При помощи файлов /ets/hosts.allow и /etc/hosts.deny
можно запретить или разрешить доступ к определенным сервисам, в том числе и поддерживаемым Stunnel, с
определенных хостов.
Предположим, тебе необходимо добавить поддержку SSL для imapd, ipop3d
и sendmail.
В файле /etc/inetd.conf есть примерно такие строки:
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
imap stream tcp nowait root /usr/sbin/tcpd imapd
Они описывают вызов imapd и ipop3d из inetd (строки в твоем inetd.confмогут отличаться от вышеуказанных).
Добавь следующие строки для поддержки SSL для pop3,imap и smtp:
pop3s stream tcp nowait root /usr/local/sbin/stunnel stunnel -l /usr/sbin/ipop3d
imaps stream tcp nowait root /usr/local/sbin/stunnel stunnel -l /usr/sbin/imapd
smtps stream tcp nowait root /usr/local/sbin/stunnel stunnel -r 25
Выполни /etc/rc.d/init.d/inet restart или killall -HUP inetd. Теперь можешь проверить работу, подключившись
к указанным портам при помощи своего почтового клиента с поддержкой SSL.
Аналогичным образом можно настроить и вызов Stunnel для остальных портов.
(c)Ерижоков А.А., 2001.
Использование данного документа разрешено только с согласия автора и с указанием первоисточника:
DH's Linux Site