Linux mini-HOWTO

         

Быстродействие.


Конечно же, сжатие/шифрование занимает процессорное время. Например старый Пентиум-133 может сжимать и шифровать около 1Гб в час, а это достаточно много. Чтобы увеличить скорость, вы можете скомпилировать SSH с опцией "-with-none", и он не будет шифровать информацию. Следующая таблица дает сравнение между различными методами загрузки (файл 6МБ передавался с Pentium-133 на Pentium-233 через сеть 10Мбит).

+-------------------+--------+----------+-----------+------------------------+ | | FTP |шифрованый| сжатый |сжатый & шифрованный| +-------------------+--------+----------+-----------+------------------------+ +-------------------+--------+----------+-----------+------------------------+ | Время | 7.6с | 26с | 9с | 23с | +-------------------+--------+----------+-----------+------------------------+ | Скорость | 790K/с | 232K/с | 320K/с | 264K/с | +-------------------+--------+----------+-----------+------------------------+ | Сжатие | 1 | 1 | 3.8 | 3.8 | +-------------------+--------+----------+-----------+------------------------+



Исходящая почта (SMTP)


Передача электронной почты через сжатое и шифрованное SSH-соединение обеспечивает:

Уменьшение трафика сети

Безопасность (впрочем, это не имеет смысла, если далее почта идет по незащищенным сетям)

Аутентификация посылающего. Большинство почтовых серверов не принимают почту с других машин, предназначенную для внешней доставки (relay). Если вы посылаете почту через SSH-соединение, почтовый сервер (sendmail или MS-exchange) думает, что она посылается с локальной программы...

Если на почтовом сервере установлен доступ SSH, используйте следующую команду:

ssh -C -l имя почтовый_сервер -L2525:почтовый_сервер:25

Если у вас нет SSH-доступа к почтовому серверу, но есть сервер с SSH, которому разрешена связь с другими машинами, вы можете использовать его:

ssh -C -l имя другой_сервер -L2525:почтовый_сервер:25

После этого вы можете настроить свою почтовую программу (или почтовый сервер: см. "smarthost") так, чтобы она посылала исходящую почту через localhost:2525.



Сжатие HTTP/FTP,...


Мой офис подключен к Интернет через ISDN на скорости 64Кбит, так что максимальная скорость передачи является около 7Кб/сек. Можно повысить скорость соединения, путем сжатия передаваемой информации: теперь, когда я скачиваю файлы, Netscape показывает скорость до 40Кб/сек (файлы журналов сжимаются в 15 раз). SSH - это утилита, предназначенная для обеспечения безопасного соединения через небезопасные сети, при помощи шифрования данных. Но, кроме того, SSH способна сжимать информацию и осуществлять переадресацию портов (аналогично rinetd или redir). Так что она вполне подходит для сжатия простых TCP/IP соединений. "Простых" \- значит, что открывается только одно TCP-соединение. FTP-соединения или соединения между M$-Outlook и MS-Exchange не являются "простыми", т.к. открывается несколько соединений одновременно. SSH использует алгоритм сжатия LempleZiv (LZ77), обеспечивая такую же компрессию, как и в winzip/pkzip. Для того, чтобы сжимать все HTTP-соединения с Интернет, мне необходимо запустить одну команду на своей машине:

ssh -l -C -L8080::80 -f sleep 10000

hostname> = машина моего провайдера, обеспечивающая доступ через SSH.

login ID> = мое имя входа на hostname>

=веб-прокси-сервер моего провайдера

Обозреватель настроен на работу через прокси-сервер localhost:8080. Портативный компьютер настроен на этот же порт моей машины. Соединения сжимаются и переназначаются реальному прокси-серверу сервером SSH. Инфраструктура выглядит примерно так:

64KBit ISDN Мой компьютер--------------------------------Компьютер (Unix/Linux/Win-NT) SSH-клиент сжато моего провайдера порт 8080 SSH-сервер, порт 22 | | | | | | |10МБит Ethernet |100МБит |не сжато |не сжато | | | | Мой второй компьютер WWW-прокси провайдера с Netscape,... порт 80 (портативный)



Сжатие TCP/IP-соединений при помощи ssh


Sebastian Schreiber
Schreib@SySS.de
Перевод: Павел Гашев, ASPLinux





Входящая почта (POP3, IMAP4)


Большинство людей принимают электронную почту с почтового сервера при помощи POP3. POP3 - это протокол со многими недостатками.

POP3 передает пароль, как обычный текст. (Хотя есть различные реализации SSL для POP/IMAP и аутентификация типа запрос/ответ, описанные в RFC-2095/2195).

POP3 - избыточный протокол: сначала клиент запрашивает сообщение, затем сервер посылает его. После этого клиент может дать серверу команды удаления принятых сообщений. Сервер подтверждает удаление. Далее сервер дает понять, что он готов к следующей команде. Таким образом, необходимо 4 команды, чтобы принять каждое письмо.

POP3 передает почту без сжатия, хотя она очень хорошо компрессируется (в 3.5 раза).

Возможно осуществить сжатие POP3, перенаправляя соединения с адреса localhost:110 через сжатое соединение к вашему провайдеру на порт POP3. Для этого необходимо в почтовой программе установить сервер входящей почты в localhost:110. Это безопасное и быстрое соединение, но оно все еще зависит от недостатков протокола POP3.

Имеет смысл заменить POP3 на более эффективный протокол. Идея заключается в том, чтобы перекачивать все содержимое почтового ящика, хранящегося на почтовом сервере, без какого-то ни было почтового протокола. SCP - хорошая утилита для выполнения этого. Вы можете скачать ваш почтовый ящик примерно так:

scp -C -l имя:/var/spool/mail/loginid /tmp/newmail

Но есть проблема: что произойдет, если во время передачи на сервер придет новая почта? Новая почта будет потеряна. Таким образом, лучше всего использовать следующие команды:

ssh -l имя почтовый_сервер -f mv /var/spool/mail/имя /tmp/имя_fetchme

scp -C -l имя:/tmp/my_;new_;mail /tmp/имя_fetchme

mv - это простая операция, мгновенно переносящая файл в другое место, так что у вас не будет проблем, если придет новая почта. Но если каталоги /tmp/ и /var/spool/mail находятся на разных дисках/разделах, у вас все-таки могут возникнуть некоторые трудности. Решение - это создать файл блокировки на сервере перед тем, как перекачивать почту: touch /var/spool/mail/имя.lock. Вы должны убрать его после того, как закончите перекачку. А еще лучше, переименовать почтовый ящик внутри этого же каталога:

ssh -l имя почтовый_сервер -f mv /var/spool/mail/имя /var/spool/mail/имя_fetchme

Затем обработайте полученный почтовый ящик /tmp/newmail, при помощи команд formail и procmail: formail -s procmail < /tmp/newmail