20 нояб. 2000 г.

Азы linux (для детей) урок 43

Internet/Intranet приложения

Система Linux является отличной платформой для предоставления сетевых сервисов. В этом разделе мы попытаемся дать краткий обзор наиболее распространенных сетевых серверов и приложений.

Типы серверов

Автономный сервер

Предоставляемые пользователям сервисы могут быть доступны двумя разными способами. Демон или служба могут работать или в автономном режиме, или зависеть от активации другого сервиса.
Сервисы сети, которые сильно и/или постоянно используются, как правило, работают в автономном режиме: они представляют собой независимые программы-демоны, которые работают всегда. Они чаще всего запускаются во время загрузки системы и ожидают запросы по специальным точкам соединениям или портам, которые они прослушивают. Когда приходит запрос, он обрабатывается, и прослушивание продолжается до следующего запроса. Веб-сервер представляет собой типичный пример: вы хотите, чтобы он был доступен 24 часа в сутки, поэтому при большой загрузке следует создать больше прослушивающих служб, обслуживающих одновременно работающих пользователей. Другими примерами являются большие архивы программного обеспечения или зеркала, которое должно обрабатывать тысячи FTP-запросов в день.
Примером автономного сетевого сервиса на домашнем компьютере может быть named (демон named), кэширующий сервер имен. У автономных сервисов есть собственные запущенные процессы, вы можете проверить это в любое время с помощью ps:
bob:~> ps auxw | grep named
named   908  0.0  1.0 14876 5108 ?   S  Mar14  0:07 named -u named
При этом существуют некоторые службы, которые вы можете использовать на вашем ПК, даже если не будет существовать запущенного для него серверного процесса. В качестве примера можно привести службы FTP, сервис безопасного копирования. У таких служб есть интернет-демон (inetd) прослушивающий их на месте.

(x)inetd

На вашем домашнем компьютере обычно немного спокойнее. У вас может быть небольшая сеть, и вы передаете файлы с одного ПК на другой время от времени, используя FTP или Samba (для связи с машинами MS Windows). В таких случаях все службы, которые вам нужны, запускаются время от времени, работать с ними все время было бы пустой тратой ресурсов. Поэтому в небольших установках вы обнаружите, что необходимые демоны зависит от центральной программы, которая прослушивает все порты служб, за которые она несет ответственность.
Этот супер-сервер, демон сетевых сервисов, запускается во время системной инициализации. Существует две распространенные реализации: inetd и xinetd (расширенный демон интернет-услуг). Тот или иной обычно запущен на каждой системе Linux:
bob:~> ps -ef | grep inet
root  926   1 0 Mar14 ?   00:00:00 xinetd-ipv6 -stayalive -reuse \
-pidfile /var/run/xinetd.pid
Службы, за которые отвечает интернет-демон, перечислены в его конфигурационном файле /etc/inetd.conf для inetd и в каталоге /etc/xinetd.d для xinetd. Обычно управляемые службы включают сервисы разделения файлов и печати, SSH, FTP, telnet, конфигурационный демон Samba, опрашивающие и временные службы.
Как только запрос на соединение получен, центральный сервер запускает необходимую службу. Так в приведенном ниже примере, когда пользователь bob запускает FTP-сессию к локальному хосту, FTP-демон работает, пока сессия активна:
bob:~> ps auxw | grep ftp
bob     793  0.1  0.2  3960 1076 pts/6    S    16:44   0:00 ncftp localhost
ftp     794  0.7  0.5  5588 2608 ?        SN   16:44   0:00 ftpd: 
localhost.localdomain: anonymous/bob@his.server.com: IDLE
Конечно, то же самое происходит при открытии соединения с удаленными хостами: либо демон отвечает непосредственно, либо удаленный (x)inetd запускает нужную вам службу, и останавливает ее, когда вы выходите.

Почта

Серверы

Sendmail является стандартной почтовой серверной программой или агентом почтовой пересылки для платформ UNIX. Она надежна, масштабируема и при правильной настройке соответствующего оборудования без проблем поддерживает тысячу пользователей. Более подробную информацию о настройке Sendmail входит в пакеты sendmail и sendmail-cf, вы можете прочитать файлы README и README.cf в /usr/share/doc/sendmail. Также полезны будут man sendmail и man aliases.
Qmail другой почтовый сервер, который приобретает все большую популярность, поскольку утверждается, что он более безопасен, чем Sendmail. Хотя Sendmail является монолитной программой, Qmail состоит из меньшего числа взаимодействующих частей программы, что может обеспечивать лучшую безопасность. Postfix и Exim являются примерами других почтовых серверов, которые набирают популярность.
Эти серверы обрабатывают списки рассылки, выполняют фильтрацию, сканируют на вирусы и делают многое другое. Бесплатные и коммерческие сканеры доступны для использования в Linux. Примеры программного обеспечения для рассылки - Mailman, Listserv, Majordomo и EZmlm. Посмотрите веб-страницу предпочитаемого вами антивирусного сканера для получения информации о клиентской и серверной поддержкеа на Linux. Amavis и Spamassassin свободные реализации сканеров на вирусы и спам.

Удаленные почтовые серверы

Наиболее популярных протоколы для доступа к почте удаленно POP3 и IMAP4. Оба, IMAP и POP, позволяет офлайновую работу, удаленный доступ к новым письмам, и оба зависят от сервера SMTP для отправки почты.
Хотя POP представляет собой простой протокол, легкий в реализации и поддерживает практически любой почтовый клиент, IMAP является предпочтительным, потому что:
  • Он может управлять метками статуса сообщений.
  • Он может как хранить, так и получать сообщения.
  • Он может получать доступ и управлять несколькими почтовыми ящиками.
  • Он поддерживает одновременное обновление и общие почтовые ящики.
  • Он также подходит для доступа к сообщениям Usenet и другим документам.
  • IMAP работает как в он-лайн так и офф-лайн.
  • Он оптимизирован для работы в он-лайн, особенно по низкоскоростным ссылкам.

Mail-агенты пользователя

Есть много текстовых и графических почтовых клиентов, мы назовем несколько из наиболее распространенных. Выберите наилучший для вас.
Команда UNIX mail использовалась в течение многих лет еще до того, как появились сети. Она представляет собой простой интерфейс для отправки сообщений и небольших файлов другим пользователям, которые затем могут сохранить сообщение, перенаправить или ответить на него.
Хотя эта программа уже почти не используется в качестве клиента, она все еще может быть полезна, например, если на почту кому-то отправить вывод команды:
mail < cv.txt
Читатель почты elm — очень важное улучшение для mail, и также есть pine (Pine Is Not ELM). Более новый читатель почты mutt предлагает такие возможности как многопоточность.
Для тех пользователей, которые предпочитают графический интерфейс, существуют сотни вариантов. Наиболее популярны для новых пользователей Mozilla Mail/Thunderbird, который легко настраивается против спама, а Evolution представляет собой клон MS Outlook. Kmail пользуется популярностью среди пользователей KDE.
Рисунок 10.1. Почтовая программа Evolution
Программа для чтения почты в Linux
Существуют также десятки web-mail приложений, таких как Squirrelmail, Yahoo! mail, gmail от Google and Hotmail.
Большинство дистрибутивов Linux включают fetchmail, утилиту для восстановления и отправки почты. Она забирает почту с удаленных почтовых серверов (POP, IMAP и некоторые другие) и направляет ее к вашей локальной системе доставки. После этого можно обрабатывать полученную почту с помощью обычных почтовых клиентов. Эта программа может быть запущена в режиме демона для многократного опроса одного или нескольких систем в указанный промежуток времени. Информация и примеры использования можно найти в info-страницах; каталог /usr/share/doc/fetchmail[-] содержит полный список возможностей и FAQ для новичков.
Фильтр procmail может быть использован для фильтрации входящей почты, создания списков рассылки, предварительной обработки почты, выборочно пересылать электронную почту и многое другое. Сопутствующая ему программа formail среди прочего позволяет генерировать автоответы и разделение почтовых ящиков. Procmail работал в течение многих лет на машинах UNIX и Linux и является надежной системой, предназначенной для работы даже в наихудших обстоятельствах. Более подробную информацию можно найти в каталоге /usr/share/doc/procmail[-] и на справочных страницах.
Заметка о почтовом этикете
Некоторые люди в наши дни, возможно, думают, что сообщение электронной почты не должна быть слишком формальными. Конечно, все зависит от обстоятельств. Если вы пишете тому, кого вы не знаете, лучше держать на некотором расстоянии, как вы бы делали в традиционном письме. И не забывайте: человек, которого вы не знаете, может оказаться как мужчиной, так и женщиной ...

Web

Веб-сервер Apache

Apache на сегодняшний день является самым популярным веб-сервером, используемом на более чем половине всех серверов в сети Интернет. Большинство Linux дистрибутивов включают Apache. Преимущества Apache заключаются в модульной разработке, поддержке SSL, стабильности и скорости. При наличии соответствующих аппаратных средств и их настройке он может выдерживать высокие нагрузки.
В системах Linux конфигурация сервера, как правило, делается в каталоге /etc/httpd. Наиболее важным конфигурационным файлом является httpd.conf; он пожалуй достаточно очевидный. Если вам нужна помощь, вы можете найти ее на man-странице httpd или на веб-сайт Apache.

Веб-броузеры

Для платформы Linux существует большое количество как бесплатных, так и коммерческих веб-браузеров. Netscape Navigator как единственный достойный вариант уже давно ушел в прошлое, так Mozilla/Firefox предлагает конкурентоспособную альтернативу, работающую также хорошо на многих других операционных системах, таких как MS Windows и MacOS X.
Amaya является W3C браузером. Opera - коммерческих браузер, компактный и быстрый. Многие менеджеры рабочего стола включают возможность просмотра веб-страниц в их файловом менеджере.
Популярными текстовыми браузерами являются lynx и links. Возможно, вам придется определить прокси-серверов в вашей оболочке, установив соответствующие переменные. Текстовые браузеры быстры и удобны, когда не установлена графическая среда, также как и при использовании в скриптах.

Proxy-серверы

Что такое proxy-сервер?
Компании и организации часто хотят, чтобы их пользователи могли использовать прокси-сервер. Особенно в среде с большим количеством пользователей прокси-сервер может позволить быструю загрузку веб-страниц. Прокси-сервер сохраняет веб-страницы. Когда пользователь запрашивает веб-страницу, которая уже была запрошена ранее, прокси-сервер выдаст пользователю ту страницы напрямую, без обращения к сети Интернет, что занимает меньше времени. Конечно, такой ход событий может быть приемлем, когда прокси-сервер делает быструю проверку и всегда предоставляет самую последнюю версию страницы. В некоторых средах использование прокси-сервера является обязательным, в других средах может быть выбор, следует ли его использовать.
Конфигурация прокси
Если у вас есть имя и порт прокси-сервера, это должно быть достаточно очевидным, чтобы скормить эту информацию в вашем браузере. Однако многие (командная строка) приложения зависят от переменных http_proxy и ftp_proxy для правильного функционирования. Для вашего удобства вы можете добавить строку подобной следующей в файл ~/.bashrc:
export http_proxy=http://username:password@proxy_server_name:port_number
Например:
export http_proxy=http://willy:Appelsi3ntj3@proxy:80
Если вам не требуется задавать имя пользователя и пароль, просто не вписывайте их до знака "@", а сам знак следует оставить.

File Transfer Protocol

FTP-серверы

На системах Linux сервер FTP, как правило, запускается от xinetd, используя сервер WU-ftpd, хотя FTP-сервер может быть настроен как автономный на системах с огромным FTP-трафиком. Смотрите упражнения.
Другие серверы FTP включают среди прочих vsftpd, Ncftpd и Proftpd.
Большинство дистрибутивов содержат пакет anonftp, который устанавливает анонимное дерево FTP-сервера и сопутствующие файлы конфигурации.

FTP-клиенты

Большинство дистрибутивов Linux включают ncftp, улучшенную версию распространенной команды UNIX ftp, которая может быть вам также знакома по командной строки Windows. Программа ncftp предлагает дополнительные функции, такие как лучший и понятный интерфейс пользователя, завершение имени файла, добавление и возобновление функций, закладки, управление сессиями и т.д.:
thomas:~> ncftp blob
NcFTP 3.0.3 (April 15, 2001) by Mike Gleason (ncftp@ncftp.com).
Connecting to blob...
blob.some.net FTP server (Version wu-2.6.1-20) ready.
Logging in...
Guest login ok, access restrictions apply.
Logged in to blob.
ncftp / > help
Commands may be abbreviated.  'help showall' shows hidden and 
unsupported commands.  
'help ' gives a brief description of .

ascii      cat      help      lpage     open     quote    site     
bgget      cd       jobs      lpwd      page     rename   type     
bgput      chmod    lcd       lrename   pdir     rhelp    umask    
bgstart    close    lchmod    lrm       pls      rm       version  
binary     debug    lls       lrmdir    put      rmdir      
bookmark   dir      lmkdir    ls        pwd      set        
bookmarks  get      lookup    mkdir     quit     show       
ncftp / > 
Отличную помощь с большим количеством примеров можно найти в документации.
 И опять же, существует ряд приложений с GUI.


FTP не безопасен! Не используйте протокол передачи файлов для неанонимного логина, если вы не уверены в том, что вы делаете. Ваше имя пользователя и пароль могут быть захвачены злонамеренными пользователями сети! Вместо этого используйте защищенное FTP; программа sftp поставляется с пакетом Secure SHell, см. Раздел "Безопасное удаленное копирование".

Чаты и конференции

В каждом дистрибутиве доступны различные клиенты и системы, которые заменяют старый IRC-стиль текстовых чатов. Вот короткий и неполный перечень наиболее популярных программ:
  • pidgin: мульти-протокольный клиент обмена мгновенными сообщениями под Linux, Windows и Mac, совместимый с MSN Messenger, ICQ, IRC и многими другими; смотрите info-страницы или сайт этой программы.
  • xchat: IRC клиент для X Window System:
Рисунок 10.2. X-Chat Программа xchat
  • aMSN: клон MSN.
  • Konversation, kopete, KVIrc и многие другие К-инструменты из пакета KDE.
  • gnomemeeting: программы видеоконференции для UNIX (в настоящее время Ekiga).
  • jabber: программа для обмена мгновенными сообщениями с открытым исходным кодом, совместимая с ICQ, AIM, Yahoo, MSN, IRC, SMTP и другими.
  • psi: клиент для jabber.
  • skype: программа для совершения телефоноподобных звонков через Интернет другим пользователям Skype. Skype является бесплатным, но не открытым.
  • Gizmo: бесплатный (но не открытый) телефон для вашего компьютера

Службы новостей

Запуск сервера Usenet предполагает наличие специальных знаний и тонкой настройки. Есть несколько интересных новостей в comp.* иерархии, которые можно получить с помощью различных текстовых и графических клиентов. Многие почтовые клиенты также поддерживают просмотр новостей, проверьте вашу программу или обратитесь к локальным зеркалам открытого программного обеспечения за такими текстовыми клиентами, как tin, slrnn и mutt,
 или загрузите Mozilla или любой другой графический клиент.


Deja.com хранит архив всех новостей с возможностью поиска, его работа
 обеспечивается Google. Это очень мощный инструмент для получения 
помощи: есть большие шансы, что кто-то уже сталкивался с вашей 
проблемой, нашел решение и отправил его в одну из групп новостей.

Система доменных имен

Все эти приложения пользуются службой DNS для сопоставления IP-адреса с именами хоста и обратно. Сервер DNS не знает всех IP-адресов в мире, но он может отправлять запросы на другие сервера DNS для поиска неизвестного адреса. Большинство систем UNIX могут запускать named, который является частью пакета BIND (Berkeley Internet Name Domain) распространяемого Internet Software Consortium. Он может работать как автономный кэширующий nameserver, что часто делается на системах
 Linux для ускорения доступа к сети.


Ваш основной клиентский файл конфигурации — это /etc/resolv.conf,
 который определяет порядок, в котором происходит соединение с
 Domain Name Servers:


search somewhere.org
nameserver 192.168.42.1
nameserver 193.74.208.137
Более подробную информацию можно найти в info-страницах для named
в файлах /usr/share/doc/bind[-] и на домашней странице проекта Bind.
 DNS HOWTO описывает использование BIND в качестве сервера DNS.


DHCP

DHCP - это протокол динамической настройки хоста, который постепенно
 заменяет старый добрый bootp
 в больших средах. Он используется для контроля жизненно важных 
параметров сетей, таких как IP-адресов и серверов имен хостов. DHCP 
имеет обратную совместимость с bootp. Для настройки сервера следует 
прочитать HOWTO.


DHCP клиентских машин, как правило, конфигурируется с помощью 
графического интерфейса, который настраивает dhcpcd, клиентский демон 
DHCP. Проверьте системную документацию, если вам нужно настроить 
компьютер в качестве клиента DHCP.

Службы проверки подлинности

Традиционный

Традиционно пользователи проходят проверку подлинности локально, 
используя информацию, хранящуюся в /etc/passwd и /etc/shadow
 на каждой системе. Но даже при использовании сетевой службы для 
проверки подлинности, локальные файлы всегда будут присутствовать для 
настройки системных аккаунтов для административного использования, 
такого как учетная запись суперпользователя, аккаунты демонов и других 
программ и целей.


Эти файлы часто являются первыми кандидатами на изучение хакерами, 
поэтому убедитесь, что права доступа и владельцы установлены именно так,
 как должно быть:


bob:~> ls -l /etc/passwd /etc/shadow
-rw-r--r--    1 root     root         1803 Mar 10 13:08 /etc/passwd
-r--------    1 root     root         1116 Mar 10 13:08 /etc/shadow

PAM

Linux может использовать PAM, Pluggable Authentication Module,
 гибкий метод аутентификации в UNIX. Преимущества PAM:



Обычная схема аутентификации, которая
 может использоваться с большим рядом приложений.
PAM может быть реализован с различными приложениями без необходимости перекомпиляции приложений специально для поддержки PAM.
Большая гибкость и контроль над аутентификациями администратора и разработчика приложений.
Разработчикам приложений не требуется создавать свои программы, 
чтобы использовать определенную схему аутентификации. Вместо этого, они 
могут сосредоточиться исключительно на деталях своей программы.

Каталог /etc/pam.d содержит конфигурационные
 файлы PAM (используемые /etc/pam.conf).
 Каждое приложение или служба имеют свой собственный файл. 
Каждая строка в файле состоит из четырех элементов:

Модуль:
  • auth: обеспечивает проверку подлинности (запрашивая и сверяя пароль) и устанавливает учетные данные, такие как членство в группе или тикеты Kerberos.
  • account: проверяет для уверенности, что доступ разрешен для пользователя (время учетной записи еще не истекло, что пользователь может войти в это время суток, и так далее).
  • password: используется для установки паролей.
  • session: используется после того как пользователь прошел аутентификацию. Этот модуль выполняет дополнительные задачи, которые необходимы для разрешения доступа (например, монтирование домашней директории пользователя или имеющегося в наличии почтового ящика).
Порядок, в котором расставляются модули такой, 
чтобы могли использоваться несколько модулей; это является важным.


Control Flags: сообщают PAM, какие действия предпринять в случае ошибки
 или удачи. Значения могут быть required, requisite,
 sufficient или optional.
Module Path: путь к подключаемый модуль, который будет использоваться,
 обычно в /lib/security.
Arguments: информация для модулей.
Файлы теневых паролей автоматически обнаруживаются PAM. Более подробную информацию можно найти на man-страницах pam или домашней
 странице проекта.

LDAP

Lightweight Directory Access Protocol является клиент-серверной системой для доступа к глобальной или локальной службам каталогов по сети. В Linux используется реализация OpenLDAP. Она включает в себя slapd,
 отдельный сервер; slurpd,
 автономный сервер репликации LDAP; библиотеки, реализующие протокол 
LDAP, а также ряд утилит, инструментов и примеров клиентов.


Главным преимуществом использования LDAP является консолидация 
отдельных видов информации в пределах организации. Например, все разные 
списки пользователей в вашей организации могут быть объединены в один 
LDAP-каталог. Этот каталог может быть запрошен любым LDAP-приложением, 
которому необходима эта информация. Она также может быть доступна 
пользователям.


Другие преимущества LDAP или X.500 Lite заключаются в его простоте 
реализации (по сравнению с X.500) и его четко определенном Application 
Programming Interface (API), что означает, что число LDAP-приложений с 
поддержкой LDAP и шлюзов увеличиться в будущем.


Однако есть и другая сторона. Если вы хотите использовать LDAP, вам 
потребуются LDAP-приложения или возможность использования LDAP-шлюзов. 
Хотя использование LDAP должно только возрастать, в настоящее время 
существует не так много LDAP-приложений для Linux. Кроме того, хотя LDAP
 поддерживает некоторый контроль доступа, он не обладает теми многими 
функциями безопасности, как X.500.


Так как LDAP является открытым и настраиваемый протоколом, он может 
быть использован для хранения практически любой информации, относящейся к
 конкретной организационной структуре. Типичными примерами являются 
поиск почтовых адресов, централизованная аутентификация в сочетании с 
PAM, телефонные справочники и базы данных конфигурации компьютера.


Посмотрите вашу системную информацию и man-страницы связанных команд,
 таких как ldapmodify и ldapsearch
 для выяснения деталей. Более подробную информацию можно найти в LDAP 
Linux HOWTO, в котором обсуждается установка, настройка, запуск и 
обслуживание LDAP-сервера на Linux.