Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Видео Unix Интернет Почта Интеграция qmail, LDAP и djbdns RSS

Интеграция qmail, LDAP и djbdns

Текущий рейтинг: 5 (проголосовало 2)
 Посетителей: 968 | Просмотров: 1280 (сегодня 0)  Шрифт: - +

Предисловие
-----------

   Материалы по интеграции qmail и LDAP уже были представлены на ресурсе,
   однако в связи с изменениями в конфигурировании qmail-LDAP а также
   множеством просьб о кратком и эффективном руководстве по инсталяции и
   администрированию было принято решение написать данный HOWTO.

   В данной статье приведена информация которая поможет быстро и
   эффективно запустить новую систему электронной почты и DNS сервер на
   любой UNIX-подобной операционной системе. В качестве рабочей платформы
   здесь используется FreeBSD 4.9/i386. Учитывая специфику любой другой
   UNIX системы, можно успешно установить все описываемое ПО.


   Работаем

   Итак, классическая задача: необходимо установить и настроить почтовый
   сервер предприятия, который смог бы размещать более тысячи почтовых
   ящиков, был бы легко управляем и масштабируем. Кроме того, сервер
   будет выполнять другие функции, как например сервер первичной зоны DNS
   и т.д. Имеется достаточно мощный IBM PC сервер с уже установленной ОС
   FreeBSD 4.9, процесс установки которой здесь не рассматривается.

   Машина имеет два сетевых интерфейса, один из которых "смотрит" внутрь
   и имеет соответственно внутренний ip, другой смотрит наружу и имеет
   полноценный IANA адрес. Дополнительно рекомендуется установить из
   пакетов/портов следующие компоненты: gmake-3.8xx (обязательно),
   gnuls-4.xx (цветной "ls" для удобства), joe-2.8xx (удобный редактор).

   Устанавливаем Berkley DB 4.2.52 (http://www.sleepycat.com/). 
   Нам нужны библиотеки BDB для того, чтобы использовать BDB базу 
   данных в качестве backend для хранения данных slapd. После того, 
   как архив был скачан и сохранен в каталог /usr/local/src/sources, 
   компилируем и устанавливаем компоненты:

       # mkdir /usr/local/src/sources/bdb
       # mv db-4.2.52.tar.gz /usr/local/src/sources/bdb
       # cd /usr/local/src/sources/bdb
       # tar -zxvf db-4.2.52.tar.gz
       # cd db-4.2.52
       # ./dist/configure --prefix=/usr/local/bdb --mandir=/usr/share/man
           --libdir=/usr/lib --includedir=/usr/include
       # gmake
       # gmake install


   Устанавливаем OpenLDAP 2.1 (http://www.openldap.org/). На момент написания
    статьи последняя доступная -STABLE версия OpenLDAP была 20031217.

       # mkdir /usr/local/src/sources/openldap
       # mv openldap-stable-20031217.tgz /usr/local/src/sources/openldap
       # cd /usr/local/src/sources/openldap
       # tar -zxvf openldap-stable-20031217.tgz
       # cd openldap-2.1.25
       # ./configure --prefix=/usr/local/openldap --mandir=/usr/share/man
           --libdir=/usr/lib --includedir=/usr/include
           --localstatedir=/var/openldap --sysconfdir=/etc --enable-crypt
       # gmake
       # gmake install

   Небольшие пояснения: используется директива --enable-crypt для
   возможности хранения паролей для аутентификации сессии с slapd в
   формате {CRYPT}. Эта директива не обязательна, и используется в целях
   совместимости. После того, как бинарники, библиотеки и прочий хлам был
   установлен, нужно создать аккаунт пользователя от прав которого будет
   действовать slapd, ибо пускать его с правами root крайне дурной тон.

       # pw groupadd ldap
       # pw useradd -n ldap -s /sbin/nologin -d /var/openldap -g ldap


   Далее расставляем соответствующие пермишены на каталог с БД backend и
   конфигурационные файлы.

       # chown -R ldap:ldap /var/openldap
       # chown -R ldap:ldap /etc/openldap/slapd.conf


   Правим конфиг slapd и ldap.conf. В качестве примера полностью
   приводится конфигурационный файл.

       # slapd.conf
       #
       include         /etc/openldap/schema/core.schema
       include         /etc/openldap/schema/misc.schema
       include         /etc/openldap/schema/cosine.schema
       include         /etc/openldap/schema/corba.schema
       include         /etc/openldap/schema/inetorgperson.schema
       include         /etc/openldap/schema/nis.schema
       include         /etc/openldap/schema/openldap.schema
       include         /etc/openldap/schema/qmail.schema
       pidfile         /var/openldap/slapd.pid
       argsfile        /var/openldap/slapd.args
       # Define ACL`s
       access to attrs=userPassword
                  by self write
                  by users none
                  by anonymous compare
       access to  attrs=mail,mailAlternateAddress,mailMessageStore,deliveryMode,accountStatus
                  by dn.base="uid=qmaild,ou=DAEMON,dc=komitex,dc=ru" read
                  by users none
       access to dn.base="ou=CONFIG,dc=komitex,dc=ru"
                  by dn.sub="uid=*,ou=DAEMON,dc=komitex,dc=ru" read
                  by users none
       access to dn.base="ou=DAEMON,dc=komitex,dc=ru"
                  by dn.sub="uid=*,ou=DAEMON,dc=komitex,dc=ru" read
                  by users none
       access to dn=*
                  by users read
                  by anonymous auth
       # Define SSL/TLS stuff
       TLSCertificateKeyFile   /etc/openldap/cert/cert.pem
       TLSCertificateFile      /etc/openldap/cert/cert.pem
       TLSCipherSuite          HIGH:MEDIUM:+SSLv2:+TLSv1

       ###################################################################
       # ldbm database definitions
       ###################################################################
       database        bdb
       suffix          "dc=komitex,dc=ru"
       rootdn          "cn=ldapadmin,dc=komitex,dc=ru"
       rootpw          {SSHA}CENSORED
       directory       /var/openldap/openldap-data
       # Indices to maintain
       index   objectClass             eq
       index   mail                    eq,sub
       index   mailAlternateAddress    eq,sub
       index   uid                     eq,sub
       index   accountStatus           eq
       index   mailHost                eq
       index   deliveryMode            eq
       index   uidNumber,gidNumber     eq


   Как видно из конфигурации slapd, доступ к атрибутам, описывающим
   конфигурацию пользователей почты, будет имеет только учетная запись,
   предназначенная для qmail-LDAP. Доступ же к атрибуту userPassword
   закрыт для всех, кроме владельца.  Пароль для rootdn генерируется
   утилитой slappasswd. Сертификат для slapd еще не создан, впрочем, как
   и не существует (пока) файла qmail.schema. Об этом чуть позже.

   На время оставим OpenLDAP в покое, и приступим к настройке DNS
   сервера, в качестве которого будет использоваться пакет djbdns (http://cr.yp.to/djbdns/).
   Предварительно потребуется также установить daemontools (http://cr.yp.to/daemontools/)  и
   ucspi-tcp (http://cr.yp.to/ucspi-tcp/). Это обязательные компоненты.

   Устанавливаем daemontools

       # mkdir -p /package
       # chmod 1755 /package
       # mv daemontools-0.76.tar.gz /package
       # tar -zxvf daemontools-0.76.tar.gz
       # rm daemontools-0.76.tar.gz
       # cd admin/daemontools-0.76
       # package/install


   Далее требуется убедиться, что в rc.local была добавлена строка,
   запускающая svscanboot. Можно перезагрузиться или запустить svscanboot
   так, как это делается из rc.local.

   Устанавливаем ucspi-tcp

       # mkdir /usr/local/src/sources/ucspi-tcp
       # mv ucspi-tcp-0.88.tar.gz /usr/local/src/sources/ucspi-tcp
       # cd /usr/local/src/sources/ucspi-tcp
       # tar -zxvf ucspi-tcp-0.88.tar.gz
       # cd ucspi-tcp-0.88
       # gmake
       # gmake setup check


   Утилиты установлены в /usr/local

   Можно приступать к установке и настройке djbdns. Предварительно
   несколько пояснений. Итак, на сервере будет функционировать сервер
   первичной зоны DNS для домена komitex.ru, DNS кеш для клиентов во
   внутренней сети, сервер трансфера зоны и dummy сервер для обратной
   зоны в локальной сети.

   Устанавливаем djbdns

       # mkdir /usr/local/src/sources/djbdns
       # mv djbdns-1.05.tar.gz /usr/local/sources/djbdns
       # tar -zxvf djbdns-1.05.tar.gz
       # cd djbdns-1.05
       # gmake
       # gmake setup check


   Конфигурируем DNS кеш для клиентов во внутренней сети. Когда сервис
   будет подыматься, он должен биндится на ip-адрес, принадлежащий
   внутренней сети, в данном случае это адрес 192.168.0.1. Т.е. на
   основной ip внутреннего сетевого интерфейса. Кроме того, нам
   потребуется еще один ip на внутреннем интерфейсе, для того чтобы
   забиндить туда walldns для разрешения имен в обратной зоне внутренней
   сети. Поэтому у внутреннего интерфейса помимо основного ip-адреса еще
   имеется и алиасный, куда и будет производить bind() наш walldns.

   Конфигурируем dnscache. Нужно создать также аккаунты в системе.

       # pw useradd -n Gdnscache
       # pw useradd -n Gdnslog -s /sbin/nologin
       # dnscache-conf Gdnscache Gdnslog /etc/dnscache 192.168.0.1


   Нужно разрешить всем клиентам из внутренних сетей пользоваться кешем

       # touch /etc/dnscache/root/ip/192.168


   Последний штрих в /etc/resolv.conf. Добавим адрес сервера

       # /etc/resolv.conf
       domain komitex.ru
       nameserver 192.168.0.1


   Предполагаем также лукапы на домен komitex.ru направлять сразу на
   локальный DNS сервер и также поступать с лукапами в обратную зону
   локальной сети - будем направлять запрос сразу на алиасный ip, куда
   будет забинден walldns.

       # cd /etc/dnscache/root/servers
       # touch komitex.ru
       # echo "217.24.115.21" > komitex.ru
       # touch 0.168.192.in-addr.arpa
       # echo "192.168.0.139" > 0.168.192.in-addr.arpa


   Можно запускать dnscache

       # ln -s /etc/dnscache /service/dnscache
       # svstat /service/dnscache


   Проверим работу кеша, дав рекурсивный запрос

       # dnsqr A www.nordcomp.ru
       1 www.nordcomp.ru:
       49 bytes, 1+1+0+0 records, response, noerror
       query: 1 www.nordcomp.ru
       answer: www.nordcomp.ru 86400 A 195.239.170.224


   Пора запустить и tinydns. Он будет биндится на внешний ip
   217.24.115.21, принадлежащий внешнему сетевому интерфейсу.

       # pw useradd -n Gtinydns -s /sbin/nologin
       # tinydns-conf Gtinydns Gdnslog /etc/tinydns 217.24.115.21


   Редактируем файл данных /etc/tinydns/root/data.

       # /etc/tinydns/root/data
       # NS и SOA записи для домена komitex.ru
       .komitex.ru:217.24.115.21:ns.komitex.ru
       # Вторичный NS
       &komitex.ru:217.24.114.30:ns.komisat.ru
       # MX записи
       @komitex.ru:217.24.115.21:mail.komitex.ru:5
       @komitex.ru:217.24.114.23:ns.komisat.ru:10
       # A записи
       =pop.komitex.ru:217.24.115.21
       =smtp.komitex.ru:217.24.115.21
       =helga.komitex.ru:217.24.115.21
       =komitex.komitex.ru:217.24.114.11
       =proxy.komitex.ru:217.24.114.12
       =hosting.komitex.ru:217.24.114.24
       =webhosting.komitex.ru:217.24.114.17
       =mandrake.komitex.ru:217.24.114.22
       =www.komitex.ru:217.24.115.21
       =ftp.komitex.ru:217.24.114.17
       =stat.komitex.ru:217.24.114.11
       =flex.komitex.ru:217.24.114.30


   В этом файле содержится вся информация, нужная для tinydns. После
   того, как файл отредактирован, создаем data.cdb просто сказав "gmake"
   в каталоге с только что отредактированным файлом данных. Постольку
   поскольку операции обновления cdb файлов атомарные, изменять данные
   DNS зоны можно во время работы tinydns.

   Запускаем tinydns

       # ln -s /etc/tinydns /service/tinydns
       # svstat /service/tinydns


   Проверяем данные зоны, посылая нерекурсивные запросы

       # dnsq soa komitex.ru 217.24.115.21
       6 komitex.ru:
       165 bytes, 1+1+2+3 records, response, authoritative, noerror
       query: 6 komitex.ru
       answer: komitex.ru 2560 SOA ns.komitex.ru hostmaster.komitex.ru
       1072778137 16384 2048 1048576 2560
       authority: komitex.ru 259200 NS ns.komitex.ru
       authority: komitex.ru 259200 NS ns.komisat.ru
       additional: ns.komitex.ru 259200 A 217.24.115.21
       additional: ns.komisat.ru 259200 A 217.24.114.30
       additional: ns.komisat.ru 86400 A 217.24.114.23


   Нужно еще сделать возможным передачу зоны по запросу от вторичного DNS
   сервера.

   Конфигурируем axfrdns

       # pw useradd -n Gaxfrdns -s /sbin/nologin
       # axfrdns-conf Gaxfrdns Gdnslog /etc/axfrdns 217.24.115.21


   Нужно разрешить вторичному DNS серверу брать зону с нас по tcp.

   Редактируем файл /etc/axfrdns/tcp.

       217.24.114.30:allow,AXFR="komitex.ru"
       :allow,AXFR=""


   Чтобы применить изменения, говорим "gmake" в том же каталоге.

   Запускаем axfrdns

       # ln -s /etc/axfrdns /service/axfrdns
       # svstat /service/axfrdns


   Осталось поднять walldns для обратной зоны внутренней сети. Это
   необходимо для нормальной работы некоторых служб в сети, которые
   обязательно хотят ресолвить имена клиентов через DNS. Для работы
   walldns специально задан дополнительный адрес на внутреннем сетевом
   интерфейсе.

       # pw useradd -n Gwalldns -s /sbin/nologin
       # walldns-conf Gwalldns Gdnslog /etc/walldns 192.168.0.139


   Запускаем walldns

       # ln -s /etc/walldns /service/walldns
       # svstat /service/walldns


   Проверим

       # dnsq a 192.168.0.51 192.168.0.139
       1 192.168.0.50:
       46 bytes, 1+1+0+0 records, response, authoritative, noerror
       query: 1 192.168.0.50
       answer: 192.168.0.50 655360 A 192.168.0.50


   На этом с DNS службами поконечно. Можно браться за OpenLDAP и qmail.


   Установка qmail-LDAP


   Потребуется "чистый" qmail-1.03 (http://cr.yp.to/software/qmail-1.03.tar.gz)
   на который будет залит самый последний патч qmail-LDAP
   (http://www.nrg4u.com/qmail/qmail-ldap-1.03-20031201.patch.gz).

       # mkdir /usr/local/src/sources/qmail
       # mv qmail-1.03.tar.gz /usr/local/src/sources/qmail
       # cd /usr/local/src/sources/qmail
       # tar -zxvf qmail-1.03.tar.gz


   В распакованный каталог qmail скачиваем патч.

       # patch -p1 < qmail-ldap-1.03-20031201.patch.gz


   Редактируем Makefile. Значения уже рассматривались.

       LDAPLIBS=-L/usr/lib -lldap -llber
       LDAPINCLUDES=-I/usr/include
       TLS=-DTLS_REMOTE -DTLS_SMTPD
       TLSINCLUDES=-I/usr/local/include
       TLSLIBS=-L/usr/local/lib -lssl -lcrypto
       OPENSSLBIN=/usr/local/bin/openssl
       OPENSSLBIN=openssl
       MNW=-DMAKE_NETSCAPE_WORK
       MDIRMAKE=-DAUTOMAILDIRMAKE
       HDIRMAKE=-DAUTOHOMEDIRMAKE
       SHADOWLIBS=-lcrypt


   Подправим также 67-ю строчку в qmail-ldap.h. Это нужно для того, чтобы
   qmail-LDAP не пытался разместить Maildir каталог в домашнем каталоге
   пользователя, если такой атрибут присутствует у объекта в LDAP
   каталоге.

       #define LDAP_HOMEDIR            "nohomeDirectory"


   Создаем нужные аккаунты в системе, как написано в INSTALL.ids

       # pw groupadd nofiles
       # pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
       # pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
       # pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
       # pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
       # pw groupadd qmail
       # pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent
       # pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent
       # pw useradd qmails -g qmail -d /var/qmail -s /nonexistent
       и каталог /var/qmail
       # mkdir /var/qmail


   Компилируем и устанавливаем

       # gmake setup check
       # cd /var/qmail/alias
       # touch .qmail-mailer-daemon .qmail-postmaster .qmail-root
       # chmod 644 .*


   Добавим аккаунты, которые будут использоваться для работы с каталогами
   пользовательской почты

       # pw groupadd virtmail
       # pw useradd -n virtmail -g virtmail -s /sbin/nologin
       # mkdir /var/qmail/users
       # chown virtmail:virtmail /var/qmail/users
       # chmod 700 /var/qmail/users


   Немножко пошуршим в ~/control

       # cd /var/qmail/control
       # echo "helga.komitex.ru" > me
       # echo "komitex.ru" > locals
       # echo "helga.komitex.ru" >> locals
       # echo "localhost" > ldapserver
       # echo "dc=komitex,dc=ru" > ldapbasedn
       # echo "1" > ldaprebind
       # echo "1" > ldaplocaldelivery
       # echo "30" > ldaptimeout
       # echo "1009" > ldapgid
       # echo "1006" > ldapuid
       # echo "cn=qmaild,ou=DAEMON,dc=komitex,dc=ru" > ldaplogin
       # echo "password" > ldappassword
       # chmod 600 ldappassword
       # echo "qmailUser" > ldapobjectClass
       # echo "1000" > defaultquotacount
       # echo "2000000" > defaultquotasize
       # echo "You have exceeded your quota" > quotawarning
       # echo "/var/qmail/bin/dirmaker" > dirmaker


   Создадим скрипт, который будет создавать каталог пользователя для
   почты

       #!/bin/sh
       # script /var/qmail/bin/dirmaker
       /bin/mkdir -m 700 -p $1
       # chown virtmail:virtmail /var/qmail/bin/dirmaker
       # chmod u+s dirmaker


   Редактируем конфигурацию служб qmail-LDAP

       # qmail-smtpd.rules
       192.168.:allow,SENDERCHECK="",RELAYCLIENT="",NOPBS=""
       :allow,RCPTCHECK="",RETURNMXCHECK="",SANITYCHECK="",NOPBS=""

       # qmail-pop3d.rules
       127.0.0.1:allow,NOPBS=""
       # default allow
       :allow,NOPBS=""


   Так как мы собираемся использовать функции проверки адресов
   отправителя и получателя (SENDERCHEK="", RCPTCHECK="") нам нужно дать
   разрешение на чтение файла ~control/ldappassword пользователю qmaild,
   в противном случае лукапы qmail-verify будут оканчиваться "temporary
   ldap lookup error".

       # chmod 600 /var/qmail/control/ldappassword
       # chown qmaild /var/qmail/control/ldappassword


   В заключении собираем все обновления в *.cdb файлы - для этого теперь
   достаточно сказать "gmake" в каталоге ~/control. Для полного счастья
   сгенерим сертификат для работы TLS. Кроме того, этот же сертификат
   будет использован для TLS/SSL соединений с демоном slapd.

       # cd /usr/local/src/sources/qmail/qmail-1.03
       # gmake cert
       # mkdir /etc/openldap/cert
       # chmod 700 /etc/openldap/cert
       # cp /var/qmail/control/cert.pem /etc/openldap/cert
       # chown ldap:ldap /etc/openldap/cert/cert.pem


   Теперь можно запустить slapd и произвести начальное наполнение
   каталога LDAP.

       # /usr/local/openldap/libexec/slapd -u ldap -h "ldap:// ldaps:///"


   Чтобы slapd стартовал при загрузке системы добавим в /etc/rc.local

       # /etc/rc.local
       ...
       # OpenLDAP stuff
       if [ -x /usr/openldap/libexec/slapd ]; then
          /usr/openldap/libexec/slapd -u ldap -h "ldap:/// ldaps:///"
          echo -n " openldap"
       fi


   Создадим начальную структуру каталога LDAP

       # ldapadd -W -D cn=ldapadmin,dc=komitex,dc=ru -f init.ldif

       # init.ldif
       dn: dc=komitex,dc=ru
       objectClass: domain
       dc: komitex
       description: JSC Komitex
       dn: ou=Users,dc=komitex,dc=ru
       objectClass: organizationalUnit
       ou: Users
       description: JSC Komitex Users
       dn: ou=Groups,dc=komitex,dc=ru
       objectClass: organizationalUnit
       ou: Groups
       description: JSC Komitex Groups
       dn: ou=CONFIG,dc=komitex,dc=ru
       objectClass: organizationalUnit
       ou: CONFIG
       description: Configurational ROOT
       dn: ou=DAEMON,dc=komitex,dc=ru
       objectClass: organizationalUnit
       ou: DAEMON
       description: System Daemons


   Добавим также объект, который будет использоваться qmail для доступа к
   каталогу

       # ldapadd -W -D cn=ldapadmin,dc=nordcomp,dc=ru -f qmaild.ldif

       # qmaild.ldif
       dn: uid=qmaild,ou=DAEMON,dc=komitex,dc=ru
       objectClass: OpenLDAPperson
       uid: qmaild
       cn: qmail-LDAP Account
       sn: qmail-LDAP Account
       userPassword:


   Зададим пароль, который мы указали в ~/control/ldappassword

       # ldappasswd -W -s password -D cn=ldapadmin,dc=komitex,dc=ru
           uid=qmaild,ou=Daemon,dc=komitex,dc=ru


   Добавим тестовую запись в каталог

       # test.ldif
       dn: cn=Kitty,ou=Users,dc=komitex,dc=ru
       objectClass: posixAccount
       objectClass: inetOrgPerson
       objectClass: qmailUser
       cn: kitty
       sn: kitty
       uid: kitty
       uidNumber: 2027
       gidNumber: 500
       homeDirectory: /home/kitty
       loginShell: /bin/csh
       mail: [10]kitty@komitex.ru
       deliveryMode: noforward
       accountStatus: active
       mailMessageStore: /var/qmail/users/kitty
       userPassword: {crypt}CENSORED

       # ldapadd -W -D cn=ldapadmin,dc=komitex,dc=ru -f test.ldif


   Пора запускать службы qmail. Наделаем символических ссылок в /service

       # ln -s /var/qmail/boot/qmail /service/qmail
       # ln -s /var/qmail/boot/qmail-smtpd /service/qmail-smtpd
       # ln -s /var/qmail/boot/qmail-pop3d /service/qmail-pop3d


   Проверим SMTP

       helga# telnet 192.168.0.1 25
       Trying 192.168.0.1...
       Connected to helga.komitex.ru.
       Escape character is `^]`.
       220 helga.komitex.ru ESMTP
       EHLO
       250-helga.komitex.ru
       250-PIPELINING
       250-SIZE 0
       250-STARTTLS
       250 8BITMIME
       MAIL FROM: [11]admin@net.nordcomp.ru
       250 ok
       RCPT TO: [12]kitty@komitex.ru
       250 ok
       DATA
       354 go ahead punk, make my day
       TEST
       .
       250 ok 1073248118 qp 14340 by helga.komitex.ru


   и POP3 тоже

       helga# telnet 192.168.0.1 110
       Trying 192.168.0.1...
       Connected to helga.komitex.ru.
       Escape character is `^]`.
       +OK <mailto:14426.1073248192@REMOVE-THIS-FAKE.helga.komitex.ru>;
       USER kitty
       +OK
       PASS kiska-zaika
       +OK
       stat
       +OK 3 958
       QUIT
       +OK
       Connection closed by foreign host.


   Время создания: 2004-01-05 00:42:14
   © Сыктывкарское сообщество UNIX, 2002 - 2003 г.


Иcточник: http://www.opennet.ru  •  Опубликована: 05.03.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.