Колисниченко Д. Н. Linux-сервер своими руками Под редакцией Финкова М.В. 1 Введение в Linux 1.1. Вступительное слово 1.2. О Linux 1.3. Почему именно Linux? 1.4. Область применения Linux-серверов 1.5. Как устроена данная книга 1.6. Какие сервера бывают и для чего они нужны 1.6.1. Сервер локальной сети 1.6.2. Шлюз — сервер для доступа в Интернет 1.6.3. Сервер удаленного доступа 1.7. Что такое сервер? (или Курс Молодого Администратора) 1.7.1. Архитектура сети: одноранговая и клиент/сервер 1.7.2. Протокол и интерфейс 1.7.3. Протокол TCP/IP 1.7.4.Системадоменныхимен—DNS 1.7.5. Многоуровневая архитектура стека TCP/IP 1.7.6. Порты и демоны 1.7.7. Структура пакетов IP и TCP 1.8. Общие рекомендации 1.9. Обзор дистрибутивов Linux 1.10. Глоссарий 2 Установка системы 2.1. Установка Red Hat Linux 2.2. Установка Linux Mandrake 2.3. Установка Linux на компьютер с чипсетом Intel810 2.4. Установка нескольких операционных систем 2.4.1. Установка Windows 9x и Linux 2.4.2. Установка Windows 9x, Windows NT/2000 и Linux. 2.4.3. Использование loadlin 2.5. Постинсталляционная настройка 2.6. Установка программного обеспечения 2.6.1.Традиционный способ установки: установка из исходных текстов 2.6.2. Программа RPM 2.6.3. Программы gnorpm, kpackage, apt 2.6.4. Установка из пакетов, содержащих исходный код 2.7. Завершение работы операционной системы 3 Учетные записи пользователей 3.1. Вход в систему 3.1.1. Вход в систему под другим именем 3.2. Изменение пароля 3.3. Идентификаторы пользователя и группы 3.4. Создание группы 3.5. Удаление и модификация учетных записей 3.6. Квотирование 3.6.1. Определение ограничений 3.6.2. Запрет квоты для пользователя или группы 3.6.3. Использование программы linuxconf для определения квот 3.7. Сценарий создания пользователей 4 Файловая система Linux 4.1. Файлы и каталоги. Дерево каталогов 4.2. Команды для работы с файлами и каталогами 4.2.1. Команды для работы с файлами 4.2.2. Команды для работы с каталогами 4.3.Ссылки 4.4. Стандартные имена устройств в Linux 4.5. Стандартные каталоги 4.6. Создание файловой системы. Типы файловых систем 4.7. Использование программы fdisk 4.8. Программа Disk Drake 4.9. Монтирование дисков. Файл/etc/fstab 4.10. Создание раздела (файла) подкачки 4.11. Использование LILO 4.12. Права доступа 4.13. Обслуживание файловой системы 4.14. Подключение магнитооптического диска 4.15. Использование стримера 4.15.1. Подключение стримера с интерфейсом SCSI 4.15.2. Подключение стримера с интерфейсомFDC 4.15.3. Управление стримером 4.16. Стратегия резервного копирования 4.17. Использование программы cpio 4.18. Повышение производительности жесткого диска 4.19. Создание массивов RAID 4.20. Форматирование дискет в Linux 5 Процессы 5.1. Системные вызовы fork() и ехес() 5.1.1. Общая схема управления процессами 5.2. Перенаправление ввода/вывода 5.3. Команды управления процессами 5.4. Создание расписаний 5.5. Уровни выполнения.Программа init 5.6. Сценарии загрузки системы 5.7. Стандартные файлы протоколов (журналов) 5.8. Управление протоколированием 5.8.1. Демон Syslogd 5.8.2. Сигналы 5.8.3. Файл конфигурации 5.8.4. Сетевое протоколирование 5.8.5. Демон klogd 5.8.6. Параметры ядра 6 Русификация Linux 6.1. Русификация консоли 6.2. Русификация системы X Window 6.3. Русификация принтера 7 Настройка сети 7.1. Установка сетевой платы. Настройка параметров сети 7.2. Подключение модема 7.3. Подключение к Интернет 7.3.1. Терминальный способ 7.3.2. PAP- и СНАР-аутентификация 7.4. Настройка DSL-соединения 7.4.1. Настройка соединения DSL в Linux Mandrake 7.4.2. Настройка соединения DSL в другом дистрибутиве 7.5. Настройка выделенных линий 7.6. Перед настройкой сервера 8 Конфигурирование сервера 8.1. Суперсерверы inetd и xinetd 8.1.1. Настройка сервера inetd 8.1.2. Настройка tcpd 8.1.3. Протокол IPv6 8.1.4. Установкаx inetd 8.1.5. Настройка xinetd 8.1.6. Параметры запуска xinetd 8.1.7. Пример файла конфигурации /etc/xinetd 8.2. Удаленный доступ: ssh и telnet 8.3.Маршрутизация 8.4. Настройка DHCP (Dynamic Host Configuration Protocol) 8.5. Подсчет трафика. Программа MRTG 8.6. Сетевая файловая система (NFS) 8.6.1. Настройка сервера NFS 8.6.2. Настройка клиента NFS 8.7. Поисковый сервер ht:/Dig 8.8. Прокси-сервер Socks5 8.8.1.Установка и настройкасервера 8.8.2. Альтернативные серверы Socks5 8.8.3. Настройка клиента Socks5 (licq) 8.9. Система обнаружения и защиты от вторжения 8.9.1. Что такое LIDS? 8.9.2. Установка LIDS 8.9.3. Базовая настройка 8.9.4. Правила доступа 8.9.5. Администрирование LIDS 9 Протокол Server Message Block (SMB) 9.1. Установка Samba 9.2. Настройка файлового сервера 9.3. Доступ к SMB-ресурсам из Linux 9.4. Доступ к принтеру Linux для Windows-машин 9.5. Доступ к Windows-принтеру с компьютеров, работающих под Linux 9.6. Пример файла smb.conf 9.7. Конфигуратор SWAT 10 Служба имен — DNS 10.1. Настройка сервера DNS 10.2. Кэширующий сервер DNS 10.3. Настройка дополнительного сервера DNS 10.4. Команды управления сервером DNS 10.5. Использование nslookup 11 Настройка FTP 11.1. Сервер FTP wu-ftpd 11.1.1. Файл ftpaccess 11.1.2. Файл ftphosts 11.1.3. Файл ftpusers 11.1.4. Файл ftpgroups 11.1.5. Файл ftpconversions 11.1.6. Файл xferlog 11.2.СерверProFTP 11.2.1. Файл /etc/proftpd.conf 11.2.2. Ограничение доступа 11.2.3. Файл .ftpaccess 11.3. Организация анонимного FТР-сервера 11.4. Вспомогательные программы 11.5. Виртуальный узел FTP 12 Сервер Apache 12.1. Установка Apache 12.2. Файлы конфигураци исервера 12.2.1. Файл httpd.conf 12.2.2. Конфигурирование Apache с помощью netconf 12.3. Каталоги пользователей 12.4. Виртуальный HTTP-сервер 12.4.1. Виртуальные серверы с идентификацией по имени 12.4.2. Виртуальные серверы с идентификацией по IP-адресу 12.5. SSL и Apache 12.5.1. Установка SSL 12.5.2. Подключение SSL к Apache 12.5.3. Генерирование сертификатов 12.6. Пример файла httpd.conf 12.7. Перекодирование русскоязычных документов «на лету» 13 Почтовый сервер 13.1. Настройка sendmail 13.2. Аутентификация в sendmail 13.3. Настройка почтовых клиентов 13.4. Другие программы для работы с электронной почтой 13.5. Создание списка рассылки 14 Бастионы 14.1. Применение IPChains 14.2. Настройка IPChains 14.3. Различные примеры 14.3.1. Пакеты SYN 14.3.2. Фрагментация пакетов 14.3.3. Пинг смерти 14.3.4. IР-спуфинг 14.3.5. Фильтрация фрагментированных бомб 14.4. Практический пример 14.5. IPTables 15 Прокси-сервер SQUID 15.1. Что такое SQUID? 15.2. Установка SQUID 15.3. Настройка SQUID 15.4. Запуск SQUID 15.5. Формат файла squid.conf 15.5.1. Параметры сети 15.5.2. Параметры соседей 15.5.3. Управление кэшем 15.5.4. Протоколирование 15.5.5. Параметры внешних программ 15.5.6. Списки ACL 15.5.7. Параметры доступа 15.5.8. Параметры администрирования 15.6. Отказ от рекламы. Баннерный фильтр 15.7. Разделение канала 15.8. Программы для учета трафика 15.9. Настройка клиентов 16 Установка MySQL 16.1. Установка сервера 16.2. Клиентская часть 16.3. Связка Apache + PHP + MySQL 16.3.1. Первый способ: из пакетов RPM 16.3.2. Второй способ: из исходных текстов 17 Практические примеры. Обратный звонок 17.1. Настройка шлюза 17.1.1. Настройка ядра 17.1.2. Настройка сети 17.1.3. Конфигурирование IpChains 17.1.4. Настройка DNS 17.1.5. Настройка Squid 17.2. Настройка Dial-In сервера 17.2.1. Установка программного обеспечения 17.2.2. Настройка mgetty 17.2.3. Настройка ррр 17.2.4. Включение IP Forwarding 17.2.5. Второй вариант настройки 17.2.6. Если что-то не работает… 17.2.7. Настройка Windows-клиентов 17.2.8. Дополнительная литература 17.3. Обратный звонок 17.3.1. Что такое callback? 17.3.2. Настройка сервера. Способ1 17.3.3. Настройка сервера.Способ 2 17.3.4. Настройка клиентов. Способ 1 17.3.5. Настройка клиентов. Способ 2 18 Компилирование ядра 18.1. Параметры ядра 18.1.1. Параметры корневой файловой системы 18.1.2. Управление RAMDISK 18.1.3. Управление памятью 18.1.4. Другие параметры ядра 18.2. Конфигурирование ядра 18.2.1. Processor type and features 18.2.2. Loadable module support 18.2.3.General setup 18.2.4. PnP support 18.2.5. Block devices 18.2.6. Networking options 18.2.7. SCSI support 18.2.8. Network device support 18.2.9.IrDA, USB support 18.2.10. Filesystems 18.2.11. Sound 18.3. Компилирование ядра 19 Полезные команды и программы. Создание RPM-пакетов 19.1. Общие команды 19.2. Команды для работы с файлами 19.3. Команды для работы с Интернет 19.4. Обработка текста 19.5. Создание RPM-пакетов 19.6. Использование редактора vi 19.7. Интерпретатор команд bash 19.7.1. Каналы и списки 19.7.2. Перенаправление ввода/вывода 19.7.3. Подоболочки 19.7.4. Переменные и массивы 19.7.5. Подстановка команд и арифметических выражений 19.7.6. Управляющие структуры и циклы 19.7.7. Подстановка переменных 19.7.8. Функции 19.7.9. Обработка сигналов и протоколирование 20 Графический интерфейс пользователя. Система X Window 20.1. Установка и запуск системы 20.2. Конфигурационный файл XF86Config 20.3. Настройка X Window 20.4. Конвертирование шрифтов Windows 20.5. Оконная среда KDE 20.6. Оконная среда GNOME 20.7. Настройка Х-терминала 21 Linux в игровом зале 21.1. Достоинства и недостатки 21.2. Выбор аппаратного обеспечения для игрового зала 21.3. Установка драйверов для видеокарт nVidia 21.4. Установка Windows-эмулятора wine 21.5. Запуск игр с помощью эмулятора wine 21.6. Средства мультимедиа 21.7. Администрирование зала 21.7.1. Доступ к Интернет 21.7.2. Управление пользователями 21.7.3. Ограничение доступа пользователя 22 Антивирусная защита 22.1. Антивирусные программы 22.1.1. Программа DrWeb для Linux 22.1.2. Программа AVP для Linux 22.2. Проверка входящей и исходящей почты 23 Прочие возможности 23.1. SATAN 23.2. Защита от спама 23.3. Ограничение системных ресурсов 24 Вместо заключения Приложения Приложение А. Конфигурационные файлы Linux Приложение Б. Общие параметры программ для системы X Window Приложение В. Компактное и нормальное ядра Приложение Г. Ссылки
1.1. Вступительное слово Цель данной книги состоит в том, чтобы развеять миф о «неподъемности» UNIX или Linux-систем, заложить прочный фундамент для построения вашего Интернет-сервера. Излагая материал, я старался объяснять все как можно более понятным языком. Все примеры, приведенные в книге, являются на 100% рабочими. Поэтому эта книга окажется полезной тем, кому нужно в сжатые сроки освоить Linux или настроить Linux-сервер. Я следовал одному простому правилу: не излагать те факты, которые заведомо окажутся невостребованными. Я наоборот, я старался приводить как можно больше примеров из реальной жизни, а в гл. 17 я полностью описал настройку шлюза и сервера для входящих звонков, а также довольно интересную вещь — настройку «обратного звонка». Вам может показаться, что сведения в этой главе повторяются, но с ее помощью читатель сможет настроить шлюз и сервер для входящих звонков «с нуля», не читая предыдущих глав, при условии, что он обладает хоть какими-нибудь навыками работы в ОС Linux.
Данная книга предназначена как для начинающих, так и для опытных системных администраторов. В книге рассматриваются все этапы настройки Linux-сервера, особое внимание уделено вопросам безопасности. Читатель также найдет подробное описание настройки сетевых служб, включая DNS, HTTP, FTP, IpChains, SQUID. В книге собраны самые актуальные, на мой взгляд, темы.