
Рассмотрены вопросы настройки ОС Linux на максимальную производительность и безопасность. Описано базовое администрирование и управление доступом, настройка Firewall, файлообменный сервер, WEB-, FTP- и Proxy-сервера, программы для доставки электронной почты, службы DNS, а также политика мониторинга системы и архивирование данных. Приведены потенциальные уязвимости, даны рекомендации по предотвращению возможных атак и показано, как действовать при атаке или взломе системы, чтобы максимально быстро восстановить ее работоспособность и предотвратить потерю данных. В седьмом издании обновлена информация с учетом последней LTS-версии Ubuntu и добавлено больше примеров обеспечения безопасности Linux, поиска уязвимостей, в том числе и в веб-приложениях.
На сайте издательства размещены дополнительная документация и программы в исходных кодах.
Для пользователей, администраторов и специалистов по безопасности
В книге рассмотрены:
• Безопасность Linux
• Оптимизация ОС и сервисов
• Атаки хакеров на Linux
• Защита сервера от хакеров
• Предотвращение возможных атак
• Примеры для CentOS и Ubuntu
Несмотря на явное стремление Linux поселиться в домашних компьютерах, настройка этой операционной системы пока ещё слишком сложная и зависит от множества параметров, особенно когда речь идет о настройке сервера. Настройка клиентского окружения достигла простоты, способной конкурировать с Windows, но тонкий тюнинг пока требует от пользователя подготовки. Если просто оставить параметры по умолчанию, то об истинной безопасности Linux не может быть и речи. Книга посвящена безопасности ОС Linux. Она будет полезна как начинающим, так и опытным пользователям, администраторам и специалистам по безопасности. Описание Linux начинается с самых основ и заканчивается сложными настройками, при этом каждая глава рассматривает тему с точки зрения производительности и безопасности.
В книге вы найдёте необходимую информацию по настройке ОС Linux и популярных сервисов с учетом современных реалий. Вы узнаете, как хакеры могут атаковать ваш сервер и как уже на этапе настройки сделать всё необходимое для защиты данных.
Книгу “Linux глазами хакера. 7-е издание” можно купить со скидкой в интернет-магазине издательства “БХВ“.
Предисловие. 11
QualitySource. 15
Второе издание. 17
Третье издание. 17
Четвертое издание. 18
Пятое издание. 18
Шестое издание. 19
Седьмое издание. 19
Благодарности. 19
Глава 1. Прежде чем начать… 21
1.1. Ядро. 22
1.2. Дистрибутивы.. 23
1.2.1. Red Hat Linux. 24
1.2.2. CentOS. 24
1.2.3. SUSE Linux. 25
1.2.4. Debian. 25
1.2.5. Ubuntu. 25
1.2.6. Raspbian. 26
Глава 2. Установка и начальная настройка Linux. 27
2.1. Подготовка к установке. 27
2.2. Начало установки. 29
2.3. Разбивка диска. 30
2.3.1. Файловые системы.. 32
2.3.2. Ручное создание разделов. 34
2.4. Выбор пакетов для установки. 37
2.5. Завершение установки. 40
2.6. Пароль. 41
2.7. Первый старт. 44
2.8. Мы в системе. 48
2.9. Подсказки. 50
2.10. Основы конфигурирования. 50
2.10.1. Запрещено то, что не разрешено. 51
2.10.2. Настройки по умолчанию.. 51
2.10.3. Пароли по умолчанию.. 52
2.10.4. Безопасность против производительности. 52
2.10.5. Внимательность. 53
2.11. Обновление. 54
2.12. Устройство Linux: ядро и модули. 54
2.13. Установка дополнительных пакетов в Ubuntu. 56
2.14. Установка дополнительных пакетов в CentOS. 58
2.15. Редактирование файлов. 58
Глава 3. Добро пожаловать в Linux. 60
3.1. Файловая система. 61
3.1.1. Основные команды.. 63
pwd. 63
- ls. 63
cat 64
tac. 65
more и less. 65
head. 65
tail 65
- cd. 66
- cp. 66
find. 67
grep. 68
mkdir. 69
rm.. 69
rmdir. 70
shred. 70
df 71
mount 71
umount 74
tar. 74
rpm.. 75
which. 75
locate. 75
whereis. 76
3.1.2. Безопасность файлов. 76
Дата и время изменения. 77
Контрольные суммы.. 78
Что контролировать?. 79
Замечания по работе с файлами. 79
3.1.3. Ссылки. 80
Жесткие ссылки. 81
Символьные ссылки. 82
3.1.4. Сохранение в файл. 83
3.2. Загрузка системы.. 84
3.2.1. Автозагрузка. 84
3.2.2. GRUB2. 87
3.2.3. Интересные настройки загрузки. 88
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.4.5. Завершение процесса. 100
3.4.6. Приоритеты.. 101
3.5. Планирование задач. 101
3.5.1. Формирование задания. 101
3.5.2. Планировщик задач. 103
3.5.3. Безопасность запланированных работ. 105
3.6. Настройка сети. 106
3.6.1. Адресация. 107
3.6.2. Информация о сетевых подключениях. 108
3.6.3. Изменение параметров сетевого подключения. 109
3.6.4. Утилита ip. 110
3.6.5. Базовые настройки сети. 111
3.6.6. Протокол IPv6. 112
3.6.7. Смена железного адреса. 113
3.7. Работа с модулями ядра. 114
3.8. Переменная $PATH.. 116
Глава 4. Управление доступом.. 117
4.1. Права доступа. 117
4.1.1. Назначение прав. 119
4.1.2. Владелец файла. 121
4.1.3. Правила безопасности. 122
4.1.4. Права по умолчанию.. 122
4.1.5. Права доступа к ссылкам.. 123
4.1.6. Права доступа — списки доступа. 124
4.2. Управление группами. 126
4.2.1. Добавление группы.. 127
4.2.2. Редактирование группы.. 128
4.2.3. Удаление групп. 128
4.3. Управление пользователями. 128
4.3.1. Файлы и папки нового пользователя. 131
4.3.2. Изменение настроек по умолчанию.. 132
4.3.3. Редактирование пользователя. 133
4.3.4. Удаление пользователя. 133
4.3.5. Настройка процедуры добавления пользователей. 134
4.3.6. Взлом паролей. 136
4.4. Типичные ошибки распределения прав. 137
4.5. Привилегированные программы.. 139
4.6. Дополнительные возможности защиты.. 141
4.7. Защита служб. 142
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. Сохраняем таблицу. 162
4.10.9. Утилита firewalld. 162
4.10.10. Uncomplicated Firewall: упрощенное управление. 163
4.11. Некоторые нюансы работы с брандмауэром.. 163
4.11.1. Обход сетевого экрана. 164
4.11.2. Безопасный Интернет. 166
4.11.3. Дополнительная защита. 168
4.12. Запрет и разрешение хостов. 169
4.13. Советы по конфигурированию брандмауэра. 170
4.14. Повышение привилегий. 171
4.15. Запрет ICMP. 177
Глава 5. Администрирование. 178
5.1. Полезные команды для сетевых соединений. 178
5.1.1. ping. 179
5.1.2. netstat 181
5.1.3. telnet 181
5.1.4. r-команды.. 184
5.2. Шифрование. 184
5.2.1. Программа stunnel 189
5.2.2. Дополнительные возможности OpenSSL.. 190
5.2.3. Шифрование файлов. 191
5.2.4. Туннель глазами хакера. 192
5.2.5. Шифрование домашнего каталога. 194
5.3. Протокол SSH.. 196
5.3.1. Конфигурационные файлы.. 197
5.3.2. Основные параметры конфигурации сервера SSH.. 197
5.3.3. Параметры доступа к серверу sshd. 200
5.3.4. Конфигурирование клиента SSH.. 201
5.3.5. Пример работы клиента SSH.. 202
5.3.6. Вход по ключу. 202
5.3.7. Защищенная передача данных. 205
5.4. Демон inetd/xinetd. 206
5.4.1. Конфигурирование xinetd. 207
5.4.2. Безопасность. 209
5.5. Анализ безопасности дистрибутива. 210
5.6. Постучись в мою дверь. 213
Глава 6. В стиле Samba. 217
6.1. Конфигурирование Samba. 218
6.1.1. Основные настройки. 220
6.1.2. Безопасность. 220
6.1.3. Сеть. 222
6.1.4. Замена сервера Windows. 223
6.1.5. Поддержка WINS и DNS. 223
6.1.6. Отображение файлов. 224
6.2. Описание объектов. 224
6.2.1. Пора домой. 224
6.2.2. Доменный вход. 225
6.2.3. Распечатка. 226
6.2.4. Общий доступ. 226
6.2.5. Личные каталоги. 227
6.2.6. CD-ROM… 228
6.3. Управление пользователями. 228
6.4. Использование Samba. 230
Глава 7. Веб-cервер. 232
7.1. Основные настройки. 233
7.2. Модули. 235
7.3. Права доступа. 236
7.4. Создание виртуальных веб-серверов. 241
7.5. Еще несколько слов о безопасности. 243
7.5.1. Файлы .htaccess. 244
7.5.2. Файлы паролей. 245
7.5.3. Проблемы авторизации. 247
7.5.4. Обработка на сервере. 247
7.6. Проще, удобнее, быстрее. 248
7.7. Безопасность сценариев. 249
7.7.1. Основы безопасности сценариев. 250
7.7.2. Модуль mod_security. 252
7.7.3. Секреты и советы.. 254
Ограничение сценариев. 254
Резервные копии. 254
7.8. Индексация веб-страниц. 255
7.9. Безопасность подключения. 257
7.10. Тестирование безопасности. 259
Глава 8. Электронная почта. 261
8.1. Настройка sendmail 263
8.2. Безопасность сообщений. 266
8.3. Полезные команды.. 266
8.4. Безопасность sendmail 267
8.4.1. Баннер-болтун. 267
8.4.2. Только отправка почты.. 268
8.4.3. Права доступа. 268
8.4.4. Лишние команды.. 268
8.4.5. Выполнение внешних команд. 269
8.4.6. Доверенные пользователи. 269
8.4.7. Отказ от обслуживания. 270
8.5. Почтовая бомбардировка. 270
8.6. Спам.. 271
8.6.1. Блокировка приема спама. 271
Фильтрация серверов. 272
Фильтрация сообщений. 272
8.6.2. Блокировка пересылки спама. 274
8.7. Сервер Postfix. 276
8.7.1. Псевдонимы.. 277
8.7.2. Ретрансляция. 277
Глава 9. Шлюз в Интернет. 278
9.1. Работа прокси-сервера. 278
9.2. Кэширование. 282
9.3. Прокси-сервер squid. 282
9.3.1. Директивы настройки HTTP. 283
9.3.2. Директивы настройки FTP. 284
9.3.3. Настройка кэша. 284
9.3.4. Журналы.. 287
9.3.5. Разделение кэша. 287
9.3.6. Дополнительные директивы.. 288
9.4. Права доступа к squid. 289
9.4.1. Список контроля доступа. 289
9.4.2. Определение прав. 291
9.4.3. Аутентификация. 292
9.5. Некоторые нюансы работы со squid. 293
9.5.1. Безопасность сервиса. 293
9.5.2. Ускорение сайта. 294
9.5.3. Маленький секрет поля User Agent 294
9.5.4. Защита сети. 295
9.5.5. Борьба с баннерами и всплывающими окнами. 295
9.5.6. Подмена баннера. 296
9.5.7. Борьба с запрещенными сайтами. 299
9.5.8. Ограничение канала. 300
9.6. Защита прокси-сервера: squidGuard. 303
9.7. Шлюз в Интернет. 306
Глава 10. Передача файлов. 308
10.1. Протокол FTP. 309
10.1.1. Команды протокола FTP. 309
10.1.2. Сообщения сервера. 312
10.1.3. Передача файлов. 314
10.1.4. Режим канала данных. 315
10.2. Сервер ProFTPd. 316
10.3. Еще несколько слов о протоколе FTP. 318
Глава 11. DNS-сервер. 319
11.1. Введение в DNS. 320
11.2. Локальный файл hosts. 321
11.3. Внешние DNS-серверы.. 322
11.4. Настройка DNS-сервиса. 325
11.5. Файлы описания зон. 326
11.6. Обратная зона. 328
11.7. Безопасность DNS. 329
Глава 12. Мониторинг системы.. 331
12.1. Автоматизированная проверка безопасности. 332
12.2. Закрываем SUID- и SGID-двери. 335
12.3. Проверка конфигурации. 336
12.4. Журналирование. 339
12.4.1. Основные команды.. 339
who. 339
users. 340
last 340
history. 340
lastlog. 341
lsof 342
12.4.2. Системные текстовые журналы.. 342
12.4.3. Журнал FTP-сервера. 344
12.4.4. Журнал прокси-сервера squid. 346
12.4.5. Журнал веб-сервера. 347
12.4.6. Программа syslogd. 347
12.4.7. Программа rsyslog. 352
12.4.8. Утилита logrotate. 355
12.4.9. Пользовательские журналы.. 358
12.4.10. Обратите внимание! 359
12.5. Работа с журналами. 360
12.5.1. Команда tail 361
12.5.2. Программа swatch. 362
12.5.3. Программа Logsurfer 363
12.5.4. Программа Logcheck/LogSentry. 363
12.6. Безопасность журналов. 363
12.7. Мониторинг ресурсов. 365
Глава 13. Резервное копирование и восстановление. 367
13.1. Основы резервного копирования. 367
13.2. Доступность на все 100 процентов. 369
13.3. Хранение резервных копий. 370
13.4. Политика резервирования. 371
13.4.1. Редко, но метко… 372
13.4.2. Зачастили… 372
13.4.3. Часто, но не все… 373
13.4.4. Периодично… 373
13.4.5. Полная копия… 374
13.5. Резервирование в Linux. 374
13.5.1. Копирование. 374
13.5.2. Утилита tar 375
13.5.3. Утилита gzip. 377
13.5.4. Утилита dump. 379
13.6. Защита резервных копий. 380
13.7. Облака. 380
Глава 14. Советы на прощанье. 381
14.1. Пароли. 381
14.2. rootkit: «набор администратора». 384
14.3. backdoor: «потайные двери». 387
14.4. Небезопасный NFS. 388
14.5. Определение взлома. 390
14.5.1. Осведомлен — значит защищен. 390
14.5.2. Ловля на живца. 392
14.6. Тюнинг ОС Linux. 394
14.6.1. Параметры ядра. 394
14.6.2. Тюнинг HDD.. 397
14.6.3. Автомонтирование. 399
14.7. Короткие советы.. 401
14.7.1. Дефрагментация пакетов. 401
14.7.2. Маршрутизация от источника. 401
14.7.3. SNMP. 402
14.7.4. Полный путь. 402
14.7.5. Доверенные хосты.. 403
Заключение. 404
Приложение 1. Команды протокола FTP.. 405
Приложение 2. Полезные программы.. 406
Приложение 3. Интернет-ресурсы.. 408
Приложение 4. Работа в командной строке. 409
Псевдонимы.. 409
Перенаправление. 410
Запуск в фоне. 410
Последовательность команд. 411
Предметный указатель………………………………………………………………………………………………………….. 412

Флёнов Михаил, профессиональный программист. Работал в журнале «Хакер», в котором несколько лет вел рубрики «Hack-FAQ» и «Кодинг» для программистов, печатался в журналах «Игромания» и «Chip-Россия». Автор бестселлеров «Библия Delphi», «Программирование в Delphi глазами хакера», «Программирование на C++ глазами хакера», «Компьютер глазами хакера» и др. Некоторые книги переведены на иностранные языки и изданы в США, Канаде, Польше и других странах.
