Предисловие 11
QualitySource 16
Второе издание 17
Третье издание 17
Четвертое издание 18
Благодарности 18
Глава 1. Прежде чем начать
21
1.1. Что такое Linux? 22
1.2. Открытый исходный код — безопасно? 24
1.3. Ядро 25
1.4. Дистрибутивы 26
1.4.1. Red Hat Linux 28
1.4.2. Slackware 28
1.4.3. SuSE Linux 28
1.4.4. Debian 29
1.4.5. Ubuntu 29
1.5. В заключение 30
Глава 2. Установка и начальная настройка Linux
31
2.1. Подготовка к установке 32
2.2. Начало установки 34
2.3. Разбивка диска 36
2.3.1. Файловые системы 37
2.3.2. Ручное создание разделов 39
2.4. Выбор пакетов для установки 42
2.5. Завершение установки 46
2.6. Пароль 48
2.7. Первый старт 50
2.8. Мы в системе 53
2.9. Подсказки 55
2.10. Основы конфигурирования 56
2.10.1. Запрещено то, что не разрешено 56
2.10.2. Настройки по умолчанию 57
2.10.3. Пароли по умолчанию 57
2.10.4. Безопасность против производительности 58
2.10.5. Внимательность 59
2.11. Обновление 59
2.12. Устройство Linux: ядро и модули 60
2.13. Установка дополнительных пакетов 61
Глава 3. Добро пожаловать в Linux
63
3.1. Файловая система 64
3.1.1. Основные команды 66
pwd 66
ls 66
cat 68
tac 68
cd 68
cp 68
find 69
mkdir 71
rm 71
df 71
mount 72
umount 74
tar 75
rpm 75
which 75
3.1.2. Безопасность файлов 76
Дата изменения 76
Контрольные суммы 77
Что контролировать? 78
Замечания по работе с файлами 79
3.1.3. Ссылки 80
Жесткие ссылки 80
Символьные ссылки 82
3.2. Загрузка системы 83
3.2.1. Автозагрузка 83
3.2.2. GRUB 87
3.2.3. Интересные настройки загрузки 88
3.3. Регистрация в системе 88
3.3.1. Теневые пароли 89
3.3.2. Забытый пароль 91
3.3.3. Модули аутентификации 91
3.4. Процессы 92
3.4.1. Смена режима 93
3.4.2. Остановка процессов 94
3.4.3. Просмотр процессов 95
3.4.4. Зомби против растений 97
3.5. Планирование задач 98
3.5.1. Формирование задания 99
3.5.2. Планировщик задач 100
3.5.3. Безопасность запланированных работ 102
3.6. Настройка сети 103
3.6.1. Адресация 103
3.6.2. Информация о сетевых подключениях 106
3.6.3. Изменение параметров сетевого подключения 107
3.6.4. Базовые настройки сети 107
3.7. Подключение к сети Интернет 108
3.8. Обновление ядра 108
3.8.1. Подготовка к компиляции 109
3.8.2. Обновление ядра из пакета 110
3.8.3. Компиляция ядра 111
3.8.4. Настройка загрузчика 114
3.8.5. Работа с модулями 114
lsmod 114
modinfo 114
modprobe 115
rmmod 115
Глава 4. Управление доступом
117
4.1. Права доступа 117
4.1.1. Назначение прав 119
4.1.2. Владелец файла 121
4.1.3. Правила безопасности 121
4.1.4. Права по умолчанию 122
4.1.5. Права доступа к ссылкам 123
4.2. Управление группами 123
4.2.1. Добавление группы 124
4.2.2. Редактирование группы 125
4.2.3. Удаление групп 125
4.3. Управление пользователями 126
4.3.1. Файлы и папки нового пользователя 129
4.3.2. Изменение настроек по умолчанию 130
4.3.3. Редактирование пользователя 130
4.3.4. Удаление пользователя 131
4.3.5. Настройка процедуры добавления пользователей 131
4.3.6. Взлом паролей 133
4.4. Типичные ошибки распределения прав 134
4.5. Привилегированные программы 135
4.6. Дополнительные возможности защиты 136
4.7. Защита служб 138
4.7.1. Принцип работы 139
4.7.2. Установка Jail 140
4.7.3. Работа с программой Jail 141
4.8. Получение прав root 143
4.9. Расширение прав 145
4.10. Сетевой экран 146
4.10.1. Фильтрация пакетов 148
4.10.2. Параметры фильтрации 149
Протоколы 150
Фильтрация портов 151
Фильтрация адресов 151
Фильтрация нежелательных адресов 152
Фильтрация неверных адресов 153
Фильтрация в Linux 153
4.10.3. Firewall — не панацея 154
4.10.4. Firewall как панацея 155
4.10.5. Конфигурирование Firewall 156
4.10.6. Основные возможности iptables 157
4.10.7. Переадресация 160
4.11. Замечания по работе Firewall 161
4.11.1. Обход сетевого экрана 162
4.11.2. Безопасный Интернет 164
4.11.3. Дополнительная защита 166
4.12. Запрет и разрешение хостов 167
4.13. Советы по конфигурированию Firewall 169
4.14. Повышение привилегий 170
Глава 5. Администрирование
177
5.1. Полезные команды 177
5.1.1. Сетевые соединения 177
5.1.2. ping 178
5.1.3. netstat 180
5.1.4. telnet 181
5.1.5. r-команды 183
5.2. Шифрование 183
5.2.1. stunnel 188
5.2.2. Дополнительные возможности OpenSSL 189
5.2.3. Шифрование файлов 191
5.2.4. Туннель глазами хакера 191
5.3. Протокол SSH 193
5.3.1. Конфигурационные файлы 194
5.3.2. Основные параметры конфигурации сервера SSH 195
5.3.3. Параметры доступа к серверу sshd 198
5.3.4. Конфигурирование клиента SSH 198
5.3.5. Пример работы клиента SSH 199
5.3.6. Вход по ключу 200
5.3.7. Защищенная передача данных 202
5.4. Демон inetd/xinetd 203
5.4.1. Конфигурирование xinetd 204
5.4.2. Безопасность 206
Глава 6. В стиле Samba
209
6.1. Конфигурирование Samba 210
6.1.1. Основные настройки 212
6.1.2. Безопасность 213
6.1.3. Сеть 215
6.1.4. Замена сервера Windows 215
6.1.5. Поддержка WINS и DNS 216
6.1.6. Отображение файлов 216
6.2. Описание объектов 217
6.2.1. Пора домой 217
6.2.2. Доменный вход 218
6.2.3. Распечатка 218
6.2.4. Общий доступ 219
6.2.5. Личные каталоги 219
6.2.6. CD-ROM 220
6.3. Управление пользователями 221
6.4. Использование Samba 223
6.5. Развитие Samba 224
Глава 7. Веб-cервер
225
7.1. Основные настройки 226
7.2. Модули 228
7.3. Права доступа 229
7.4. Создание виртуальных веб-серверов 234
7.5. Замечания по безопасности 236
7.5.1. Файлы .htaccess 236
7.5.2. Файлы паролей 238
7.5.3. Проблемы авторизации 239
7.5.4. Обработка на сервере 240
7.6. Проще, удобнее, быстрее 240
7.7. Безопасность сценариев 242
7.7.1. Основы безопасности 242
7.7.2. mod_security 244
7.7.3. Секреты и советы 246
Ограничение сценариев 246
Резервные копии 246
7.8. Индексация веб-страниц 247
7.9. Безопасность подключения 249
Глава 8. Электронная почта
253
8.1. Настройка sendmail 255
8.2. Работа почты 257
8.2.1. Безопасность сообщений 260
8.3. Полезные команды 261
8.4. Безопасность sendmail 262
8.4.1. Баннер-болтун 262
8.4.2. Только отправка почты 262
8.4.3. Права доступа 263
8.4.4. Лишние команды 263
8.4.5. Выполнение внешних команд 263
8.4.6. Доверенные пользователи 264
8.4.7. Отказ от обслуживания 264
8.5. Почтовая бомбардировка 265
8.6. Спам 265
8.6.1. Блокировка приема спама 266
Фильтрация серверов 266
Фильтрация сообщений 267
8.6.2. Блокировка пересылки спама 267
8.7. Postfix 269
8.7.1. Псевдонимы 270
8.7.2. Ретрансляция 271
Глава 9. Шлюз в Интернет
273
9.1. Работа прокси-сервера 273
9.2. Кэширование 278
9.3. Прокси-сервер squid 278
9.3.1. Директивы настройки HTTP 278
9.3.2. Директивы настройки FTP 279
9.3.3. Настройка кэша 280
9.3.4. Журналы 282
9.3.5. Разделение кэша 283
9.3.6. Дополнительные директивы 284
9.4. Права доступа к squid 285
9.4.1. Список контроля доступа 285
9.4.2. Определение прав 287
9.4.3. Аутентификация 287
9.5. Замечания по работе squid 289
9.5.1. Безопасность сервиса 289
9.5.2. Ускорение сайта 289
9.5.3. Маленький секрет User Agent 289
9.5.4. Защита сети 290
9.5.5. Борьба с баннерами и всплывающими окнами 290
9.5.6. Подмена баннера 292
9.5.7. Борьба с запрещенными сайтами 295
9.5.8. Ограничение канала 295
9.6. Кэширование браузером 299
9.7. squidGuard 300
9.7.1. Установка 300
9.7.2. Настройка 301
Глава 10. Передача файлов
305
10.1. Работа протокола FTP 306
10.1.1. Команды протокола FTP 306
10.1.2. Сообщения сервера 309
10.1.3. Передача файлов 311
10.1.4. Режим канала данных 312
10.2. ProFTPd 313
10.3. Заключение 315
Глава 11. DNS-сервер
317
11.1. Введение в DNS 318
11.2. Локальный файл hosts 319
11.3. Внешние DNS-серверы 320
11.4. Настройка DNS-сервиса 321
11.5. Файлы описания зон 323
11.6. Обратная зона 325
11.7. Безопасность DNS 326
Глава 12. Мониторинг системы
329
12.1. Автоматизированная проверка безопасности 330
12.2. Закрываем SUID- и SGID-двери 333
12.3. Проверка конфигурации 334
12.3.1. lsat 335
12.3.2. bastille 337
12.4. Выявление атак 337
12.4.1. Klaxon 338
12.4.2. PortSentry 339
12.4.3. LIDS 342
12.5. Журналирование 342
12.5.1. Основные команды 342
who 343
users 343
last 343
lastlog 344
lsof 345
12.5.2. Системные текстовые журналы 346
12.5.3. Журнал FTP-сервера 347
12.5.4. Журнал прокси-сервера squid 349
12.5.5. Журнал веб-сервера 350
12.5.6. Кто пишет? 350
12.5.7. logrotate 355
12.5.8. Пользовательские журналы 358
12.5.9. Обратите внимание 359
12.6. Работа с журналами 361
12.6.1. tail 362
12.6.2. swatch 363
12.6.3. Logsurfer 363
12.6.4. Logcheck/LogSentry 363
12.7. Безопасность журналов 364
Глава 13. Резервное копирование и восстановление
367
13.1. Основы резервного копирования 367
13.2. Доступность на все 100 процентов 369
13.3. Хранение резервных копий 370
13.4. Политика резервирования 372
13.4.1. Редко, но метко 373
13.4.2. Зачастили 373
13.4.3. Часто, но не все 374
13.4.4. Периодично 375
13.4.5. Полная копия 375
13.4.6. Носители 375
13.5. Резервирование в Linux 376
13.5.1. Копирование 376
13.5.2. tar 377
13.5.3. gzip 378
13.5.4. dump 379
13.6. Защита резервных копий 381
Глава 14. Советы на дорогу
383
14.1. Пароли 383
14.2. rootkit 386
14.3. backdoor 389
14.4. Небезопасный NFS 390
14.5. Определение взлома 392
14.5.1. Осведомлен, значит защищен 392
14.5.2. Ловля на живца 395
14.6. Тюнинг ОС Linux 396
14.6.1. Параметры ядра 396
14.6.2. Тюнинг HDD 399
14.6.3. Автомонтирование 401
14.7. Короткие советы 403
14.7.1. Дефрагментация пакетов 403
14.7.2. Маршрутизация от источника 403
14.7.3. SNMP 404
14.7.4. Полный путь 404
14.7.5. Доверенные хосты 405
Заключение 407

Приложения 409
Приложение 1. Команды протокола FTP 411
Приложение 2. Полезные программы 413
Приложение 3. Интернет-ресурсы 415
Приложение 4. Работа в командной строке 417
Псевдонимы 417
Перенаправление 418
Запуск в фоне 418
Последовательность команд 419
Приложение 5. Описание электронного архива 421
Предметный указатель 423