Linux глазами хакера. Пятое издание

Михаил Фленов

Обложка:


Полное содержание
Предисловие 11
QualitySource 16
Второе издание 18
Третье издание 18
Четвертое издание 18
Пятое издание 19
Благодарности 20
Глава 1. Прежде чем начать...
23
1.1. Ядро 24
1.2. Дистрибутивы 25
1.2.1. Red Hat Linux 26
1.2.2. Slackware 26
1.2.3. SuSE Linux 27
1.2.4. Debian 27
1.2.5. Ubuntu 27
1.2.6. Raspbian 28
Глава 2. Установка и начальная настройка Linux
29
2.1. Подготовка к установке 29
2.2. Начало установки 31
2.3. Разбивка диска 32
2.3.1. Файловые системы 34
2.3.2. Ручное создание разделов 36
2.4. Выбор пакетов для установки 39
2.5. Завершение установки 42
2.6. Пароль 43
2.7. Первый старт 46
2.8. Мы в системе 50
2.9. Подсказки 52
2.10. Основы конфигурирования 52
2.10.1. Запрещено то, что не разрешено 52
2.10.2. Настройки по умолчанию 53
2.10.3. Пароли по умолчанию 53
2.10.4. Безопасность против производительности 54
2.10.5. Внимательность 55
2.11. Обновление 56
2.12. Устройство Linux: ядро и модули 56
2.13. Установка дополнительных пакетов в Ubuntu 57
2.14. Установка дополнительных пакетов в CentOS 59
2.15. Редактирование файлов 60
Глава 3. Добро пожаловать в Linux
63
3.1. Файловая система 64
3.1.1. Основные команды 66
pwd 66
ls 66
cat 67
tac 68
cd 68
cp 68
find 69
grep 71
mkdir 71
rm 72
df 72
mount 72
umount 75
tar 76
rpm 76
which 76
3.1.2. Безопасность файлов 77
Дата изменения 77
Контрольные суммы 78
Что контролировать? 79
Замечания по работе с файлами 80
3.1.3. Ссылки 81
Жесткие ссылки 81
Символьные ссылки 82
3.2. Загрузка системы 84
3.2.1. Автозагрузка 84
3.2.2. GRUB2 86
3.2.3. Интересные настройки загрузки 87
3.3. Регистрация в системе 88
3.3.1. Теневые пароли 89
3.3.2. Забытый пароль 90
3.3.3. Модули аутентификации 91
3.3.4. Сложность паролей 92
3.4. Процессы 93
3.4.1. Смена режима 94
3.4.2. Остановка процессов 95
3.4.3. Просмотр процессов 96
3.4.4. «Зомби»: поиск и устранение 98
3.5. Планирование задач 100
3.5.1. Формирование задания 100
3.5.2. Планировщик задач 101
3.5.3. Безопасность запланированных работ 103
3.6. Настройка сети 104
3.6.1. Адресация 105
3.6.2. Информация о сетевых подключениях 106
3.6.3. Изменение параметров сетевого подключения 107
3.6.4. Утилита ip 108
3.6.5. Базовые настройки сети 109
3.6.6. Протокол IPv6 110
3.7. Работа с модулями ядра 111
3.8. Переменная $PATH 113
Глава 4. Управление доступом
115
4.1. Права доступа 115
4.1.1. Назначение прав 117
4.1.2. Владелец файла 119
4.1.3. Правила безопасности 119
4.1.4. Права по умолчанию 120
4.1.5. Права доступа к ссылкам 121
4.1.6. Права доступа к ссылкам 122
4.2. Управление группами 124
4.2.1. Добавление группы 124
4.2.2. Редактирование группы 125
4.2.3. Удаление групп 126
4.3. Управление пользователями 126
4.3.1. Файлы и папки нового пользователя 129
4.3.2. Изменение настроек по умолчанию 130
4.3.3. Редактирование пользователя 131
4.3.4. Удаление пользователя 131
4.3.5. Настройка процедуры добавления пользователей 132
4.3.6. Взлом паролей 134
4.4. Типичные ошибки распределения прав 135
4.5. Привилегированные программы 137
4.6. Дополнительные возможности защиты 137
4.7. Защита служб 139
4.7.1. Принцип работы 141
4.7.2. Установка Jail 142
4.7.3. Работа с программой Jail 143
4.8. Получение прав root 145
4.9. Права приложений 146
4.10. Сетевой экран 147
4.10.1. Фильтрация пакетов 149
4.10.2. Параметры фильтрации 150
Протоколы 152
Фильтрация портов 152
Фильтрация адресов 153
Фильтрация нежелательных адресов 154
Фильтрация неверных адресов 154
Фильтрация в Linux 155
4.10.3. Брандмауэр — не панацея 156
4.10.4. Брандмауэр как панацея 156
4.10.5. Конфигурирование брандмауэра 157
4.10.6. Основные возможности iptables 158
4.10.7. Переадресация 161
4.10.8. Утилита firewalld 162
4.10.9. Uncomplicated Firewall: упрощенное управление 162
4.11. Некоторые нюансы работы с брандмауэром 163
4.11.1. Обход сетевого экрана 164
4.11.2. Безопасный Интернет 166
4.11.3. Дополнительная защита 167
4.12. Запрет и разрешение хостов 168
4.13. Советы по конфигурированию брандмауэра 170
4.14. Повышение привилегий 171
Глава 5. Администрирование
177
5.1. Полезные команды для сетевых соединений 177
5.1.1. ping 178
5.1.2. netstat 179
5.1.3. telnet 180
5.1.4. r-команды 182
5.2. Шифрование 182
5.2.1. Программа stunnel 188
5.2.2. Дополнительные возможности OpenSSL 189
5.2.3. Шифрование файлов 191
5.2.4. Туннель глазами хакера 192
5.3. Протокол SSH 194
5.3.1. Конфигурационные файлы 194
5.3.2. Основные параметры конфигурации сервера SSH 195
5.3.3. Параметры доступа к серверу sshd 198
5.3.4. Конфигурирование клиента SSH 198
5.3.5. Пример работы клиента SSH 200
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 222
6.5. Развитие Samba 224
Глава 7. Веб-cервер
225
7.1. Основные настройки 226
7.2. Модули 228
7.3. Права доступа 229
7.4. Создание виртуальных веб-серверов 235
7.5. Еще несколько слов о безопасности 236
7.5.1. Файлы .htaccess 237
7.5.2. Файлы паролей 238
7.5.3. Проблемы авторизации 240
7.5.4. Обработка на сервере 240
7.6. Проще, удобнее, быстрее 241
7.7. Безопасность сценариев 242
7.7.1. Основы безопасности сценариев 243
7.7.2. Модуль mod_security 245
7.7.3. Секреты и советы 246
Ограничение сценариев 247
Резервные копии 247
7.8. Индексация веб-страниц 248
7.9. Безопасность подключения 250
Глава 8. Электронная почта
253
8.1. Настройка sendmail 255
8.2. Работа почты 257
8.2.1. Настройка сервера для отправки почты 258
8.2.2. Настройка сервера для чтения почты 259
8.2.3. Безопасность сообщений 261
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. Выполнение внешних команд 264
8.4.6. Доверенные пользователи 264
8.4.7. Отказ от обслуживания 264
8.5. Почтовая бомбардировка 265
8.6. Спам 266
8.6.1. Блокировка приема спама 266
Фильтрация серверов 266
Фильтрация сообщений 267
8.6.2. Блокировка пересылки спама 269
8.7. Сервер Postfix 270
8.7.1. Псевдонимы 271
8.7.2. Ретрансляция 272
Глава 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. Защита прокси-сервера: squidGuard 299
9.6.1. Установка 299
9.6.2. Настройка 300
9.7. Шлюз в Интернет 302
Глава 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. Еще несколько слов о протоколе FTP 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.4. Журналирование 337
12.4.1. Основные команды 337
who 337
users 338
last 338
history 339
lastlog 339
lsof 340
12.4.2. Системные текстовые журналы 341
12.4.3. Журнал FTP-сервера 342
12.4.4. Журнал прокси-сервера squid 344
12.4.5. Журнал веб-сервера 345
12.4.6. Кто пишет? 345
12.4.7. Утилита logrotate 351
12.4.8. Пользовательские журналы 353
12.4.9. Обратите внимание! 354
12.5. Работа с журналами 356
12.5.1. Команда tail 357
12.5.2. Программа swatch 358
12.5.3. Программа Logsurfer 358
12.5.4. Программа Logcheck/LogSentry 358
12.6. Безопасность журналов 359
12.7. Мониторинг ресурсов 361
Глава 13. Резервное копирование и восстановление
363
13.1. Основы резервного копирования 363
13.2. Доступность на все 100 процентов 365
13.3. Хранение резервных копий 366
13.4. Политика резервирования 367
13.4.1. Редко, но метко... 368
13.4.2. Зачастили... 368
13.4.3. Часто, но не все... 369
13.4.4. Периодично... 369
13.4.5. Полная копия... 370
13.5. Резервирование в Linux 370
13.5.1. Копирование 370
13.5.2. Утилита tar 371
13.5.3. Утилита gzip 373
13.5.4. Утилита dump 374
13.6. Защита резервных копий 375
13.7. Облака 376
Глава 14. Советы на прощанье
377
14.1. Пароли 377
14.2. rootkit: «набор администратора» 380
14.3. backdoor: «потайные двери» 383
14.4. Небезопасный NFS 384
14.5. Определение взлома 386
14.5.1. Осведомлен — значит защищен 386
14.5.2. Ловля на живца 388
14.6. Тюнинг ОС Linux 390
14.6.1. Параметры ядра 390
14.6.2. Тюнинг HDD 393
14.6.3. Автомонтирование 395
14.7. Короткие советы 397
14.7.1. Дефрагментация пакетов 397
14.7.2. Маршрутизация от источника 397
14.7.3. SNMP 398
14.7.4. Полный путь 398
14.7.5. Доверенные хосты 399

Заключение 401
Приложение 1. Команды протокола FTP 403
Приложение 2. Полезные программы 405
Приложение 3. Интернет-ресурсы 407
Приложение 4. Работа в командной строке 409
Псевдонимы 409
Перенаправление 410
Запуск в фоне 410
Последовательность команд 411
Предметный указатель 412