Работа с UNIX
На сегодняшний день Windows в различных модификациях является наиболее популярной и широко используемой системой. При всех ее недостатках у нее есть безусловное преимущество. Она проста и понятна пользователям. Интерфейс последних реализаций Windows 2000 очень удобен. Настройки доступны почти любому человеку, который желает в этом хоть чуть-чуть разобраться. Еще очень важным, а быть может, решающим фактором является то, что создано огромное количество программ, работающих в среде Windows. Надо отдать должное тому, что многие программы на самом деле очень качественны и удобны. Спектр программного обеспечения чрезвычайно широк: от офисного до сложнейшего математического, от графических редакторов до программ анимации и звукозаписи; кроме того, созданы визуальные средства программирования и многое другое. Одним словом, современный рынок программной индустрии неотделим от Windows. UNIX сильно уступает Windows в популярности. Это сложная система, изначально предполагающая определенный набор знаний, предоставляющая возможности, которые зачастую просто не нужны. Рядовому пользователю, например секретарше, не нужна многозадачная и многопользовательская система. Однако в последнее время произошло изменение приоритетов. Появилось желание объединиться в сети Интернет. И в этой области первенство, как историческое, так и техническое, принадлежит именно UNIX. Когда появилась Windows, Интернет или его части уже были. Была отлаженная, продуманная система, которая надежно работала, и соревнование оказалось просто бесполезным. ОС Windows в своем развитии пошла чуть по-другому пути. Появились средства подключения к сетям с помощью протокола TCP/IP. Это открыло возможность подключения персональных компьютеров с Windows к глобальной сети Интернет. Именно о такой интеграции и пойдет далее речь.
Что я называю интеграцией? Все описанные ниже возможности соединения компьютеров с Windows и UNIX подходят и для соединения двух UNIX-машин. Проблема в том, что Windows поддерживает не все, что есть в UNIX. Поэтому я описываю лишь те возможности, которые Windows поддерживает. Я не буду вдаваться в детальное описание настроек различных программ, так как во многих реализациях UNIX это можно сделать с помощью интерактивных программ. В Linux это программа Control Panel.
Предположим, что вы системный администратор. Ваша цель — следить за работой внутренней сети и дать возможность остальным сотрудникам пользоваться прелестями сети Интернет. Из сказанного выше ясно, что почти все работают на компьютерах, где стоит Windows. Напомним, что установка поддержки сети в Windows автоматически устанавливает такие программы, как telnet, ftp, tracert (аналог traceroute), ping, Internet Explorer, и кое-что еще. Для подключения к UNIX-серверу необходима установка TCP/IP- клиента, так как основной протокол Интернет – TCP/IP. Предположим также, что для выхода в мир вы создали шлюз, почтовый и Web-серверы, разумеется, под UNIX. Оставляя на потом вопрос, как можно подключить шлюз к самой сети Интернет, будем считать, что такое подключение есть. Также пока подразумеваем, что подключение компьютеров внутренней сети к серверам проводное. Стандартные цели таких серверов — хранить почту, обеспечивать некоторое пространство для файлов пользователей, быть может, обеспечивать модемный доступ. Есть несколько распространенных способов использовать эти возможности.
Непосредственный доступ
Первый и самый дешевый — все по очереди сидят прямо за тем компьютером, который является сервером. Такой способ выглядит наивно, но он весьма эффективен в небольших коллективах, особенно если учесть, что при этом вы можете использовать все предлагаемые сервером средства. Тут не возникает вопросов, что нужно сделать, чтобы всем было удобно. Наверняка есть графическая среда, почтовый и Web-клиент, удобная программа для работы с файлами и т.д.
Терминальный доступ
Такой способ не всегда подходит. Тогда можно воспользоваться терминальным подключением. Любой человек, сидящий за компьютером во внутренней сети, может запустить программу telnet и подключиться к компьютеру company.ru (так будем называть ваш сервер). В результате, после ввода имени и пароля человек попадает на сервер, причем в свою домашнюю директорию. При этом, к сожалению, есть возможность использования лишь текстового экрана. Что необходимо сделать системному администратору для удобства этого использования?
Желательно включить в файл .login или .csh.rc, которые автоматически выполняются при входе пользователя и старте (в данном случае оболочки csh), соответственно поддержку терминала ANSI. Это дает возможность использования псевдографики и стрелок управления курсором. Чтобы это сделать, нужно включить строчки
set term=ANSI
или
set term ANSI
где конкретный вид зависит от реализации UNIX и оболочки. Соответственно нужно в программе telnet в Windows поставить в свойствах терминала поддержку терминала ANSI. В общем случае соответствующие типы терминалов, указанные на сервере и в программе клиента, должны совпадать, но среди имеющихся типов ANSI является наиболее удобным. Для чтения почты желательно установить программу pine. Это удобная, основанная на принципе меню программа, в которой, как в любом почтовом клиенте, есть папки, возможность сортировки писем, адресная книга и огромное число настроек, в том числе и установка кодировок. Для работы с файлами, наверное, следует установить mc (midnight commander) — аналог Norton Commander. Более экзотичным, но иногда очень полезным будет предложение установить текстовый Web-клиент lynx. На самом деле это Web-клиент, который поддерживает большинство стандартных функций типа списков, кнопок выбора полей ввода и т.п.
Что получит пользователь?
Попав на сервер и находясь в своей домашней директории, пользователь может сразу начать работать с файлами. Даже если есть midnight commander, полезно знать следующие команды (напомним, что большие и маленькие буквы различаются):
- ls — список файлов;
- ls -al — список файлов с полной информацией о них (атрибуты, владелец, размер, время создания);
- cd — переходить в директорию (~ — обозначение домашней директории);
- cp — копирование файлов;
- mv — перенос файлов;
- rm — удаление файлов;
- mkdir — создание директории;
- rmdir — удаление директории (если в директории остались файлы, то необходимо использовать параметр -f);
- chmod — изменение атрибутов файла;
- more — постраничный вывод файла на экран по 24 строки;
- less — постраничный вывод файла на экран по 24 строки, но с конца (очень удобен при просмотре, например, последних записей в log-файле, но, к сожалению, есть не во всех реализациях UNIX); и многое другое.
Но и уже перечисленного весьма достаточно для работы с файлами. Кроме того, для работы с архивами есть следующие программы: tar и gzip. Они наиболее распространены в мире UNIX, хотя есть поддержка и более привычных форматов — arj и zip.
Программа tar просто последовательно записывает указанные файлы в один. Ее параметры: c — создание, v — печать сообщений, x — раскрытие, f — файл. А именно команда
tar cf f.tar f1 f2
создаст файл f.tar и запишет в него файлы f1 и f2, а команда
tar xf f.tar
раскроет файл f.tar, записав на диск его содержимое.
- gzip — просто архиватор.
- gunzip разархивирует файлы, созданные gzip. Столь подробное описание сделано лишь из тех соображений, что в большинстве архивов в Интернете именно таким образом, то есть в форе file.tar.gz, хранятся очень многие вещи.
Описанные команды плюс работа с программами pine, mc, lynx не дают возможности перенести файлы непосредственно на компьютер, за которым сидит человек. В тех случаях, когда это необходимо, используется программа ftp. Аналогично запуску telnet вы запускаете ftp, вводите имя и пароль, но теперь это уже совсем другая среда. Вы не можете копировать файлы, архивировать, запускать программы. Вы можете следующее:
- ls — смотреть список файлов;
- cd — переходить в директорию (~ — обозначение домашней директории);
- lcd — менять директорию на своем компьютере, то есть на том, за которым вы сидите;
- put — класть файл со своего компьютера в текущую директорию на сервере;
- get — брать файл с сервера в текущую директорию на своем компьютере;
- bin — ставить двоичный тип данных;
- ascii — ставить текстовый тип данных;
- hash — заставлять при передаче файлов отмечать каждый килобайт значком #.
Команды bin и ascii очень важны. Дело в том, что в DOS и Windows перенос строки кодируется символами 10, 13, а в UNIX — только символом 13. В режиме ascii будет производиться соответствующая замена, что недопустимо, например, при передаче архивов.
Описанная выше работа в терминальном режиме является весьма эффективной, в меру удобной и обеспечивает полное использование ресурсов сервера. Однако в том случае, когда пользователям от сервера нужна только почта и файлы (то есть не нужны компиляторы, счетные программы и что-нибудь еще, установленное на сервере), — есть другие способы взаимодействия компьютеров с сервером.
Почта и файлы
Для получения и просмотра почты можно использовать протокол POP3 (Post Office Protocol). Он позволяет подключаться к серверу, передавать имя и пароль пользователя, читать его почту и передавать ее на вызывающий компьютер. Подключение через POP3 поддерживают Internet Explorer, Netscape Communicator, Outlook и многие другие программы. Для работы протокола POP3 необходимо запустить на сервере программу pop3d — демон, обеспечивающий работу указанного протокола. Следует также с помощью команды chmod изменить атрибут x (execute) на s (share) для всех. Это нужно для того, чтобы при подключении по POP3 и вызове POP3-клиента его владельцем динамически назначался сам пользователь. При этом программа получит право чтения и изменения файла почты пользователя и не сможет испортить других файлов. Пользователю необходимо лишь указать на своем компьютере имя почтового сервера в почтовом клиенте, например Outlook.
Для удаленной работы с дисками UNIX предоставляет возможность создания NFS (Network File System). На сервере должен быть запущен nfsd (демон, управляющий работой этих самых систем). Для создания такой системы выбирается директория, которую вы хотите сделать доступной с других машин, указываются права доступа (все, только чтение, парольный доступ) — абсолютно аналогично тому, как в сети Windows вы можете сделать доступным некоторый диск. Это называется «экспорт». Далее на том компьютере, где вы хотите эти файлы использовать, нужно создать файловую систему, задать ей тип NFS и импортировать директорию сервера, указав его IP-адрес и ту директорию, которую вы хотите видеть (если экспортировано несколько). В Windows вам необходимо лишь найти сервер в сетевом окружении, и вы увидите список доступных директорий. Единственная возможная проблема в том, что клиент и сервер не имеют общих типов файловых систем. К счастью, последние версии Linux, Sun OS и некоторых других реализаций UNIX поддерживают FAT (файловая система DOS). Кроме того, возможна более тонкая настройка. Администратор сервера может указать, для каких адресов и в каком формате экспортировать директорию. С точки зрения пользователя Windows это будет обычная директория, только за правами доступа будет следить сервер. Еще одна тонкость заключается в том, что в UNIX большие и маленькие буквы различаются, а в Windows — нет.
Еще одной, наиболее ресурсоемкой возможностью объединить удобство Windows и потенциал UNIX является запуск приложений, написанных для Xwindows, на удаленной машине. Для этого при подключении к серверу, например, с помощью telnet необходимо установить переменную окружения display (или DISPLAY), присвоив ей в качестве значения IP-адрес машины, на которой вы работаете. Для поддержки этой возможности требуется клиент, который будет запущен на вашей машине, и по мере необходимости нужно перенаправлять вывод на экран. Такой клиент не входит в стандартный набор программ Windows. На мой взгляд, удобной является программа Xwin32. Следует только иметь в виду, что для передачи графической информации необходим хороший канал связи. В результате после входа на сервер с помощью telnet вы можете, установив переменную display и запустив Xwin32 (http://tucows.rinet.ru/tucows/server95.html) на своей машине, запускать такие программы, как Netscape, GhostView или что-либо еще.
Ситуация несколько меняется, если вы как администратор хотите защитить свой сервер от взломов. Один из шагов — установка SSH (Secure Shell). В части описания терминального доступа нужно лишь поменять название telnet на название любого SSH-клиента, например SecureCRT (www.vandyke.com). Однако использование POP3 будет невозможно, так как стандарт POP3 не предусматривает кодированных паролей. В качестве альтернативы был создан SPOP3 — протокол, поддерживающий Secure. Но есть другой способ. Администратор может настроить pop3d так, что он будет пересылать информацию не наружу, а в порт 22 (порт sshd). Соответственно sshd будет распознавать pop3-пакеты и перенаправлять их к pop3d. Со стороны машины пользователя достаточно сделать то же самое. Программа SecureCRT может быть настроена так, что будет самостоятельно перехватывать POP3-пакеты, кодировать и пересылать их. После таких настроек необходимо установить соединение по каналу ssh (22 порт) и дальше передавать почту, используя POP3.
DialUp-подключение
Остановлюсь еще на DialUp-подключении. По-простому — это связь через модем. Сейчас это, наверное, единственный дешевый способ соединиться из дома с компьютером в сети Интернет. Для этого вы создаете на UNIX-сервере логическое устройство TTY. Оно ассоциируется с COM-портом, куда подключен модем. В настройках необходимо указать число бит в байте, число стоп-битов и наличие проверки четности (обычно 8, 1, No). Также указывается имя программы, которая запускается при появлении данных на входе. В Linux — это mgetty. Эта программа будет активироваться автоматически. Дальнейшее — это ее настройки. По умолчанию запускается терминальный режим работы, причем вначале запрашивается имя и пароль, а затем запускается оболочка (полностью аналогично telnet). Дальнейшая работа полностью аналогична описанной выше работе в терминальном режиме. По-другому происходит только передача файлов. Через модем нельзя сделать ftp. Существуют специальные программы: xmodem, ymodem, zmodem, которые взаимодействуют с модемом и могут передавать или принимать файлы. Наиболее надежной является zmodem, которая помимо всего прочего дает возможность дописывать в конец файла.
Но есть способ сделать полноценное IP-подключение. Существуют два наиболее распространенных протокола IP-соединения по телефонным линиям. Это PPP и SLIP. Первый является более современным, поддерживает сжатие данных и гораздо чаще используется. Можно настроить mgetty так, чтобы она запускала pppd (Point to Point protocol daemon), интерпретировала первые две строки как имя и пароль и тем самым пыталась организовать PPP-соединение. Именно это происходит при дозвоне к любому провайдеру. Совместить терминальный режим и PPP очень трудно. Работа SLIP удобна с той точки зрения, что может быть начата в любой момент. Находясь в терминальном режиме, вы можете запустить программу sliplogin, которая активирует связь посредством протокола SLIP. Но перед ее запуском необходимо отредактировать файл /etc/sliphosts (это должен делать администратор). По умолчанию в нем записан только root. Также в этом файле, как и в файле /etc/ppp.cf (конкретные названия зависят от реализации), нужно указать IP-адрес, который будет присваиваться вызывающей машине (я считаю, что вы создаете возможность одноканального подключения по модему, то есть это просто лишнее удобство для пользователей, а вы не провайдер). Именно этот адрес нужно вписать в настройках подключения в Windows пользователям на домашнем компьютере. Также на домашнем компьютере нужно правильно указать — SLIP- или PPP-протокол.
В общем, описанные способы и методы подключения исчерпывают возможности Windows. По сравнению с UNIX нет таких удобных программ, как write, talk, rlogin, и многого другого. Но более важным является то, что во всем вышеописанном машина с Windows является клиентом и это объясняет, почему обычно для работы в Интернет ключевые машины оснащены UNIX.
Оставив в начале статьи вопрос о том, как сами серверы подключены к сети, я хочу к этому вернуться, а также указать несколько моментов, которые относятся к сети в целом. Само подключение — вопрос скорее коммерческий, но технически оно может быть проводное, модемное или спутниковое. В любом случае на другом конце провода должен стоять некоторый Интернет-сервер. Важны несколько моментов. Первое — ваша сеть не сможет стать более высокого ранга чем та, к которой вы подключаетесь. Второе — вы можете использовать только те адреса, к которым принадлежат первые числа сервера, через который происходит подключение. То есть если вы подключаетесь к серверу второго ранга с адресом 23.43.54.6, то ваши номера будут 23.43.aaa.bbb, причем они не могут совпадать с уже имеющимися. За этим нужно следить и в вашей сети. В ней не может быть двух машин с совпадающими номерами. Третье – вам нужен DNS (Domain Name Server), иначе вы будете пользоваться номерами. То есть вы как администратор должны на всех компьютерах прописать правильный адрес DNS, а в качестве шлюза указать созданный вами шлюз. Если вы хотите присвоить каждой (или некоторым) машине имя, то для его регистрации нужно послать соответствующий запрос на сервер, который является DNS (обычно это письмо администратору). После подключения вы становитесь полноправным членом Интернета.
КомпьютерПресс 4'2000