- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Linux глазами хакера - Михаил Флёнов
Шрифт:
Интервал:
Закладка:
Но это препятствие довольно просто обойти. Достаточно запустить несколько потоков подбора, которые будут параллельно подключаться к серверу.
Наиболее эффективный метод защиты в этом случае — запрет подключения с IP-адреса к серверу с помощью сетевого экрана. Если вы заметили, что кто-то пытается подобрать пароль, немедленно определите IP-адрес злоумышленника и добавьте запрещающий фильтр в сетевой экран.
Из-за сложности подбора пароля хакеры стремятся получить доступ к файлу /etc/shadow и скачать его на свой компьютер, чтобы работать с ним локально. В этом случае операция происходит намного быстрее по следующим причинам:
□ хакеру становятся известны реальные имена пользователей, которые зарегистрированы на сервере;
□ защита сервера уже не может ничем помочь, потому что вы потеряли контроль над паролями;
□ т.к. пароли хранятся в файле в зашифрованном виде, достаточно один раз зашифровать его и сравнить со всеми кэш-суммами. Чем больше в файле записей, тем больше вероятность, что хотя бы один пароль подойдет;
□ в больших файлах паролей существует вероятность, что хотя бы один пользователь задал в качестве пароля регистрационное имя.
Локальный взлом намного быстрее и безопаснее, единственная проблема заключается в том, как получить файл /etc/shadow. Этот файл доступен для чтения и записи только администратору root, а все остальные пользователи не могут его увидеть.
14.10.3. Защита
Защиты от подбора пароля в принципе нет и не может быть. Если хакер получит доступ к файлу /etc/shadow, то можно считать, что пароль у него в руках. Но если следовать следующим правилам, то можно избежать взлома:
□ меняйте пароли каждый месяц. Если хакер взламывает систему удаленно, то это может сделать подбор невыполнимым. Если взлом происходит локально, то пока хакер подберет пароль, он уже изменится;
□ проверяйте свои пароли на стойкость от подбора по словарю. Если найдено несоответствие критерию, заставьте пользователя сменить пароль;
□ устанавливайте сложные и длинные пароли, чтобы подбор по словарю стал невозможным;
□ защищайте файл /etc/shadow. Если файл /etc/passwd нужен для чтения всем пользователям для нормальной работы множества утилит, то /etc/shadow необходимо охранять всеми возможными средствами;
□ следите за журналом безопасности на предмет появления большого количества записей о неверном входе в систему.
Соблюдая эти правила, вы понизите вероятность взлома вашей системы методом перебора паролей.
В разд. 2.6 мы говорили о необходимости создания сложных паролей и рассмотрели некоторые рекомендации по этому вопросу. А сейчас я хочу предложить вам для этого еще один интересный метод:
□ создайте файл pass.txt с текстом, который нужно использовать в качестве пароля, например: echo "password" >> pass.txt;
□ шифруем файл с помощью OpenSSL. Для этого выполняем команду: openssl des -in pass.txt -out pass.txt.s. Ключ, который запросит программа для шифрования, не имеет значения, можно даже использовать слово password;
□ просмотрите содержимое файла pass.txt.s. В нем будет зашифрованный текст, который вы записали в файл pass.txt. Выберите читаемые символы и используйте их в качестве пароля. Такое нарочно не придумаешь, поэтому программы подбора по словарю будут бессильны, останется только полный перебор.
Отличным методом защиты от удаленного подбора может быть модульная аутентификация, которую мы рассматривали в разд. 3.3. Среди РАМ есть очень удобный в защитных целях модуль /lib/security/pam_tally.so. Он позволяет блокировать доступ после определенного количества попыток входа в систему. Рассмотрим использование модуля на примере авторизации в Linux, настройки которой находятся в файле /etc/pam.d/login. Для ограничения попыток ввода паролей добавим в этот файл следующую строку:
account required /lib/security/pam_tally.so deny=5 no_magic_root
В качестве аргумента модулю передается параметр deny, который равен 5. Это значит, что после этого количества попыток учетная запись блокируется. Число 5 является наиболее оптимальным. Меньшие значения приведут к проблемам, когда пользователи по несколько раз ошибаются при вводе своего пароля. Ну а если пяти попыток не хватило исправиться или вспомнить пароль, то далее идет уже подбор случайным образом, что надо запретить.
14.10.4. John the Ripper
Теперь рассмотрим на практике, как происходит подбор паролей. Это необходимо, чтобы понять технологию и уметь использовать ее самостоятельно для тестирования стойкости паролей ваших пользователей.
John the Ripper — самая популярная программа для взлома паролей, которая завоевала сердца большинства хакеров и администраторов. Она поддерживает основные алгоритмы шифрования MD5, DES и Blowfish.
Чтобы подобрать пароли, для начала необходимо выполнить следующие команды:
unshadow /etc/passwd /etc/shadow > pass.txt
jhon -incremental pass.txt
С помощью первой директивы мы получаем файл pass.txt, в котором находятся соответствия имен пользователей и паролей. Этот файл можно создать и вручную, перенеся пароли из файла /etc/shadow в файл /etc/passwd, но это занятие не для слабонервных, поэтому лучше довериться программе.
Вторая команда запускает полный перебор паролей. Если у вас есть файл со словарем, то для его использования выполните следующую команду:
jhon -wordfile:filename pass.txt
В данном случае filename — это имя файла словаря.
В ОС Linux уже есть словарь, который находится в файле /usr/share/dict/words. На заре становления Интернета самый знаменитый вирус Морриса, благодаря подбору паролей по словарю, встроенному в ОС Unix (в те времена Linux еще не было), смог взломать множество систем и заразить самое большое число компьютеров для своего времени. Для того чтобы использовать встроенный словарь, выполните команду:
jhon -wordfile: /usr/share/dict/words pass.txt
На сайте http://packetstorm.sequrity.com есть большая коллекция словарей, которую можно использовать для тестирования своей системы на сложность паролей. Если с помощью такого лексикона вы подберете пароль для одной из своих учетных записей, то поверьте мне, то же самое сделает и хакер.
Если нажать любую клавишу, то на экране будет отображена информация о ходе подбора. Для прерывания программы необходимо нажать сочетание клавиш <Ctrl>+<C>. Для продолжения процесса подбора можно выполнить команду:
jhon -restore
Чтобы просмотреть пароли, которые подобрала программа, необходимо выполнить следующую директиву:
jhon -show pass.txt
14.11. Тюнинг ОС Linux
В течение всей книги мы говорили о безопасной и эффективной настройке ОС Linux и ее сервисов. В данном разделе подведем итог всему сказанному ранее и рассмотрим несколько новых параметров, которые могут сделать систему еще быстрее и надежнее. Эти установки уже относятся к более тонким, поэтому я оставил их напоследок.
Мы уже говорили о том, что лучшим средством повысить безопасность и производительность является загрузка только самого необходимого. От этого напрямую зависит использование памяти и нагрузка на процессор.
После того как вы определились со списком загружаемых сервисов и сократили их до минимума, необходимо позаботиться о настройке каждого из них с учетом целесообразности использования. Здесь опять вступает в дело минимизация возможностей. Например, сервис Apache загружает множество различных модулей, абсолютно ненужных для большинства сайтов.
Каждый лишний модуль — это очередной удар по производительности и безопасности. Закончив с этим, переходим к более тонким настройкам.
14.11.1. Параметры ядра
Для начала откроем конфигурационный файл /etc/sysctl.conf. В нем находятся параметры ядра. Пример файла можно увидеть в листинге 14.1.
Листинг 14.1. Конфигурационный файл /etc/sysctl.conf# Kernel sysctl configuration file for Red Hat Linux
# Конфигурационный файл ядра для Red Hat Linux
# For binary values, 0 is disabled, 1 is enabled.
# See sysctl(8) for more details.
# Для бинарных значений, 0 - это отключен, а 1 - включен.
# Смотрите man sysctl для получения дополнительной информации
# Controls IP packet forwarding
# Контролирует переадресацию IP-пакетов
net.ipv4.ip_forward = 0
# Controls source route verification
# Контроль проверки маршрутизации от источника
net.ipv4.conf.default.rp_filter = 1
kernel.sysrq = 1
kernel.core_uses_pid = 1
#net.ipv4.tcp_ecn = 0
kernel.grsecurity.fifo_restrictions = 1
kernel.grsecurity.linking_restrictions = 1

