Колисниченко Д. Н.
Linux-сервер своими руками
Под редакцией Финкова М.В.
Автор благодарит Марка Финкова, редактора и самого внимательного читателя этой книги, за его советы относительно содержания книги (например, описать программу MRTG в книге посоветовал именно Марк), а также исправление множества всевозможных опечаток в тексте и листингах. Особая благодарность Федору Сорексу, редактору раздела Unix-систем портала СофтТерра и руководителю проекта Linux RSP за предложение в 2000 году написать мою первую статью. Главная благодарность Линусу Торвальдсу за создание замечательной операционной системы и всем тем, кто участвуетв процессе создания и сопровождения данной системы, а также всем моим родным за проявленное ими терпение во время работы над книгой.
1
Введение в Linux
1.1. Вступительное слово
Цель данной книги состоит в том, чтобы развеять миф о «неподъемности» UNIX или Linux-систем, заложить прочный фундамент для построения вашего Интернет-сервера. Излагая материал, я старался объяснять все как можно более понятным языком. Все примеры, приведенные в книге, являются на 100% рабочими. Поэтому эта книга окажется полезной тем, кому нужно в сжатые сроки освоить Linux или настроить Linux-сервер. Я следовал одному простому правилу: не излагать те факты, которые заведомо окажутся невостребованными. Я наоборот, я старался приводить как можно больше примеров из реальной жизни, а в гл. 17 я полностью описал настройку шлюза и сервера для входящих звонков, а также довольно интересную вещь — настройку «обратного звонка». Вам может показаться, что сведения в этой главе повторяются, но с ее помощью читатель сможет настроить шлюз и сервер для входящих звонков «с нуля», не читая предыдущих глав, при условии, что он обладает хоть какими-нибудь навыками работы в ОС Linux.
Данная книга предназначена как для начинающих, так и для опытных системных администраторов. В книге рассматриваются все этапы настройки Linux-сервера, особое внимание уделено вопросам безопасности. Читатель также найдет подробное описание настройки сетевых служб, включая DNS, HTTP, FTP, IpChains, SQUID. В книге собраны самые актуальные, на мой взгляд, темы.
1.2. О Linux
История операционной системы Linux началась, естественно, с создания операционной системы Unix. В конце 60-х годов завершился проект Multics, над которым работали сотрудники компаний General Electrics, AT&T Bell Laboratories и Массачусетского института. Результатом этого проекта стала одноименная операционная система. Операционная система Multics была многозадачной, имела высокоэффективную на то время файловую систему, а также предоставляла пользователям относительно удобный интерфейс.
В 1969 году Кен Томпсон разработал операционную систему Unix, в основе которой были принципы, которых придерживались разработчики операционной системы Multics. Новая операционная система, в отличие от Multics, могла работать на мини-ЭВМ. При этом с самого начала новая система была многозадачной и многопользовательской.
Вскоре операционная система Unix стала настолько популярной, что Кен Томпсон и Деннис Ритчи решили переписать код системы на языке С. До этого операционная система была написана на ассемблере. Это обеспечило огромною мобильность операционной системы — ОС Unix могла быть перенесена практически на любую платформу без перепрограммирования. Нужно было только модифицировать небольшую часть ядра, написанную на ассемблере.
Через определенное время операционная система Unix стала стандартным программным продуктом, который распространялся многими компаниями, включая IBM и Novell.
В 1972 году началась массовая продажа лицензий на эту операционную систему различным пользователям. С этого момента ОС Unix неофициально стала коммерческим программным продуктом.
Калифорнийский университет в Беркли также приобрел лицензию на ОС Unix. Специалисты этого университета внесли много изменений, которые вскоре стали стандартными. В 1975 году Калифорнийский университет выпустил свою версию Unix — Berkeley Software Distribution (BSD). Эта операционная система стала основным конкурентом операционной системы, разработанной компанией AT&T.
Постепенно другие компании, последовав примеру Калифорнийского университета, начали выпускать свои версии Unix. Например, в 1980 году компания Microsoft выпустила ОС Xenix. Правда, данная операционная система не могла составить конкуренцию Unix, так как не поддерживала многопользовательский режим, а была предназначена для одного пользователя.
В 1982 году компания AT&T выпустила версию Unix System3.Это была первая официальная коммерческая версия ОС Unix. Следующей версией стала Unix System V. Помимо различных нововведений, эта версия отличалась серьезной технической поддержкой.
Разработчики BSD Unix также не сидели сложа руки и в 1983 году Калифорнийский университет выпустил версию Unix BSD 4.2. Эта операционная система содержала довольно мощные средства управления памятью, файлами, печатью, а также в ней был реализован протокол TCP/IP, который сейчас во всю применяется в сети Интернет. Многие фирмы-производители выбрали именно Unix BSD 4.2.
Широкое распространение различных версий Unix привело к необходимости создания стандарта на эту операционную систему. В середине 80-х годов выделились два основных стандарта — Unix System V и BSD Unix. Компания AT&T Labs передала права на разработку версии Unix System V компании Unix System Labs. Эта компания в 1991 году представила операционную систему System V 4, в которой были реализованы практически все возможности операционных систем System V 3, BSD 4.2, Xenix.
Четыре компании, в том числе IBM и Hewlett-Packard, создали фонд открытого программного обеспечения (Open Software Foundation, OSF). Целью этого фонда было создание собственной версии Unix. В результате появился еще один стандарт — OSF Unix.
В 1993 году компания AT&T продала свою часть прав на ОС Unix компании Novell. После этого были выпущены версии Unix компании Novell, которые были основаны на версии System V 4. Новая операционная система была названа UnixWare.
Параллельно с развитием операционных систем развивались графические интерфейсы. До начала 90-х годов выделились два основных графических интерфейса пользователя: Motiff и OpenLook. Впоследствии эти два интерфейса были определены в один, получивший название Common Desktop Environment (CDE).
Операционная система Unix с самого начала была требовательна к аппаратным ресурсам компьютера. Для нормальной работы нужна была довольно мощная рабочая станция. Некоторые версии были рассчитаны только на определенные платформы. Например, SunOS была предназначена только для рабочих станций Sun, AIX — для рабочих станций IBM, a AUX — для компьютеров Macintosh.
Прообразом Linux стала операционная система Minix, разработанная Эндрю Таннебаумом. ОС Minix являлась небольшой UNIX-системой, которая была предназначена даже не для реального использования, а для демонстрации возможностей системы Unix. Вдохновленный идеей создать собственную Minix, Линус Торвальдс начал работу над операционной системой Linux. Впервые ОС Linux обсуждалась в конференции USENET comp.os.minix.
5-го октября 1991 года Линус Торвальдс объявил о выходе первой «официальной» версии Linux 0.02. Тогда в этой операционной системе работали только интерпретатор bash (Bourne Again Shell) и gcc (GNU С compiler). Основное внимание уделялось созданию ядра. Никакие вопросы поддержки пользователей, тиражирования и документирования даже не обсуждались.
Постепенно к разработке ядра и другого программного обеспечения присоединились тысячи других разработчиков со всего мира. На сегодняшний день Linux считается единственным примером столь масштабного сотрудничества программистов. Linux сегодня — это полноценная операционная система семейства UNIX, поддерживающая широкий спектр аппаратных средств, протокол TCP/IP, графический интерфейс пользователя, что позволяет использовать ее не только как сервер, но и как высокопродуктивную рабочую станцию.