Главная страница
Навигация по странице:

  • 14.6.3. Автомонтирование

  • Листинг 14.2. Конфигурационный файл /etc/auto.master

  • Листинг 14.3. Содержимое файла /etc/auto.misk

  • 14.7. Короткие советы

  • 14.7.1. Дефрагментация пакетов

  • 14.7.2. Маршрутизация от источника

  • 14.7.4. Полный путь

  • 14.7.5. Доверенные хосты

  • 14.7.6. Защита паролей

  • 14.7.7. Перенаправление сервисов

  • Михаил Фленов СанктПетербург бхвпетербург 2010 удк 681 06 ббк 32. 973. 26018. 2 Ф69


    Скачать 3.69 Mb.
    НазваниеМихаил Фленов СанктПетербург бхвпетербург 2010 удк 681 06 ббк 32. 973. 26018. 2 Ф69
    Дата13.03.2022
    Размер3.69 Mb.
    Формат файлаpdf
    Имя файлаlinux_glazami_xakera_3-e_izd.pdf
    ТипДокументы
    #394477
    страница33 из 35
    1   ...   27   28   29   30   31   32   33   34   35
    14.6.2.
    Тюнинг
    HDD
    Долгое время в ОС Linux для доступа к жесткому диску была отключена да- же поддержка DMA (Direct Memory Access, прямой доступ к памяти), хотя эта возможность существует почти во всех материнских платах еще со вре- мен первых компьютеров с процессором Pentium. ОС не использовала DMA в
    целях совместимости с более старыми компьютерами, поэтому функцию приходилось включать самостоятельно.
    В
    современных дистрибутивах поддержка DMA уже включена, но работу винчестера можно и дальше оптимизировать. Для тестирования и настройки жесткого диска используется утилита hdparm
    . Для определения скорости ра- боты диска выполните команду с ключом
    -t
    : hdparm –t /dev/hda

    Глава
    14
    440
    В
    ответ вы получите сообщение типа:
    Timing buffered disk reads: 64 MB in 3.02 seconds = 21.19MB/sec
    Попробуйте в качестве параметра указать раздел: hdparm /dev/hda2
    В
    результате будут выведены параметры жесткого диска:
    /dev/hda2: multcount = 128 (on)
    IO_support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 1 (on) keepsettings = 0 (off) readonly = 0 (off) readahead = 8 (on) geometry = 2088/255/63, sectors = 32515560, start = 1028160
    Из этого сообщения можно узнать много интересного:
    ˆ
    multcount
    — количество слов, читаемых за один такт. Эта опция должна быть включена, и желательно установить значение 128. Это может повы- сить производительность на 30—50%. Для изменения значения использу- ется ключ
    -mX
    , где
    X
    — это устанавливаемое значение;
    ˆ
    using_dma
    — режим DMA. Для включения используется ключ
    -d1
    ;
    ˆ
    IO_support
    — режим доступа к диску. По умолчанию стоит 16-битный, но сейчас уже можно использовать 32-битный режим. Для включения ис- пользуется ключ
    -c3
    Это основные три параметра, которые могут реально повысить производи- тельность
    . Итак, давайте установим значения в соответствии с указанными выше рекомендациями. Для этого выполните команду: hdparm –m128d1c3 /dev/hda
    Как видите, мы просто перечислили все ключи и указали диск
    /dev/hda
    Обратите внимание, что при определении устройства не стоит никаких цифр, которые указывали бы на раздел, так как доступ можно изменить только же- сткому диску в целом.
    После изменения параметров их необходимо сохранить с помощью команды: hdparm –k1 /dev/hda
    После этого снова выполните команду тестирования скорости работы диска hdparm –t /dev/hda
    Есть еще один параметр, который влияет на производительность — режим доступа
    . В настоящее время поддерживается три режима ATA 33/66/100.

    Советы
    хакера
    441
    Сверьтесь с документацией на жесткий диск, чтобы узнать, что он поддержи- вает
    . Для смены режима используется ключ
    -X
    :
    ˆ
    -X34
    — ATA33;
    ˆ
    -X68
    — ATA66;
    ˆ
    -X69
    — ATA100.
    Для установки ATA66 выполните команду: hdparm –X68/dev/hda
    Странно
    , но установленные вами параметры не сохраняются после переза- грузки системы, поэтому желательно прописать эти команды в файл
    /etc/rc.d/rc.local. Для этого в самый конец файла добавляем три строки: hdparm –m128d1c3/dev/hda hdparm –X68/dev/hda hdparm –k1 /dev/hda
    14.6.3.
    Автомонтирование
    Если вы начали знакомство с компьютером под ОС Windows, то вам пока- жется дикостью процесс ручного монтирования файловых систем и осо- бенно
    CD-ROM-дисков. Действительно, для сервера это еще приемлемо, потому что там диски используются редко, а вот на рабочей станции внеш- ние носители применяются регулярно. Мне иногда приходится вставлять по
    20 разных дисков в день, и каждый раз монтировать и демонтировать их очень неудобно.
    Так как ОС Linux все больше поворачивается в сторону домашних пользова- телей
    , в последних дистрибутивах производителями по умолчанию включена возможность автоматического монтирования. Для этого используется служба autofs. Убедитесь, что она запускается у вас, и можно приступать к настройке.
    Основной конфигурационный файл сервиса autofs — файл /etc/auto.master.
    Просмотрите его содержимое в листинге 14.2.
    Листинг
    14.2.
    Конфигурационный
    файл
    /etc/auto.master
    # $Id: auto.master,v 1.2 1997/10/06 21:52:03 hpa Exp $
    # Sample auto.master file
    # Пример файла auto.master
    # Format of this file:
    # Формат этого файла:
    # mountpoint map options

    Глава
    14
    442
    # точка_монтирования карта настройки
    # For details of the format look at autofs(8).
    # Для дополнительной информации выполните команду man autofs
    /misc /etc/auto.misc --timeout=60
    Если не считать комментариев, в этом файле только одна содержательная строка
    — последняя. В вашей системе она может быть закомментирована, и
    для использования автоматического монтирования необходимо убрать знак "#".
    У
    конфигурационной строки следующий формат: точка_монтирования карта настройки
    В
    данном случае точкой монтирования выступает директория /misc. Это немного затрудняет работу, потому что при ручном подключении использу- ется директория /mnt. Второй параметр определяет карту монтирования.
    В
    данном случае это файл /etc/auto.misc. Формат и назначение файла чем-то похоже на файл /etc/fstab, который используется для команды mount. Содер- жимое файла /etc/auto.misc можно увидеть в листинге 14.3.
    Последний параметр
    --timeout=60
    — это время простоя. Если в течение это- го периода в директории, использованной под подключение, не будет актив- ности
    , то устройство будет размонтировано. По умолчанию используется значение
    60 секунд. В большинстве случаев это вполне приемлемо.
    Листинг
    14.3.
    Содержимое
    файла
    /etc/auto.misk
    # $Id: auto.misc,v 1.2 1997/10/06 21:52:04 hpa Exp $
    # This is an automounter map and it has the following format:
    # Это карта автомонтирования, которая имеет следующий формат:
    # key [ -mount-options-separated-by-comma ] location
    # Details may be found in the autofs(5) manpage
    # Дополнительную информацию можно получить, выполнив man autofs cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
    # The following entries are samples to pique your imagination
    # Следующие записи являются примерами для возбуждения воображения
    #linux -ro,soft,intr ftp.example.org:/pub/linux
    #boot -fstype=ext2 :/dev/hda1
    #floppy -fstype=auto :/dev/fd0
    #floppy -fstype=ext2 :/dev/fd0

    Советы
    хакера
    443
    #e2floppy -fstype=ext2 :/dev/fd0
    #jaz -fstype=ext2 :/dev/sdc1
    #removable -fstype=ext2 :/dev/hdd
    Теперь рассмотрим содержимое файла /etc/auto.misc. Здесь только одна строка без комментария, которая описывает команды подключения диска
    CD-ROM : cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
    Первый параметр определяет директорию внутри /misc, куда будет монтиро- вано устройство. Второй атрибут — параметры файловой системы и ключи, которые будут использоваться для подключения. В случае с CD-ROM ис- пользуется файловая система ISO9660 и опции, разрешающие только чтение и
    запрещающие использование SUID- и SGID-программ. Последний пара- метр определяет устройство, которое должно монтироваться.
    Как видите, все очень даже просто. Если попытаться обратиться к директо- рии
    /misc/cd, и в приводе CD-ROM в этот момент будет находиться диск, то он будет автоматически смонтирован. Правда, для этого нужно использовать команды
    Linux (например, выполнить команду ls /misk/cd
    ), а не другие программы
    . Если просмотреть директорию /misc/cd с помощью Midnight
    Commander, то диск не будет смонтирован.
    14.7.
    Короткие
    советы
    Мы проанализировали достаточно много аспектов создания безопасной систе- мы
    , но есть некоторые общие рекомендации, которые подытоживают рассмот- ренный в этой книге материал. Поэтому напоследок я собрал короткие советы, которые пригодятся вам при построении безопасного сервера или сети.
    14.7.1.
    Дефрагментация
    пакетов
    С
    помощью фрагментированных пакетов хакеры производят очень много атак на серверы. В Linux можно сделать так, чтобы ОС объединяла приходя- щие пакеты. Если у вас монолитное ядро (без поддержки модулей), то необ- ходимо прописать 1 в файл /proc/sys/net/ipv4/ip_always_defrag. Это легко сде- лать с помощью команды: echo 1 > /proc/sys/net/ipv4/ip_always_defrag
    В
    последних ядрах, которые используют RPM-модули, необходимо подгру- зить модуль ip_conntrack
    : modprobe ip_conntrack

    Глава
    14
    444
    14.7.2.
    Маршрутизация
    от
    источника
    Мы уже говорили о том, как пакеты проходят по сети. Напомню, что внутри сети пакеты передаются по MAC-адресу, а для обмена между сетями необхо- димо маршрутизирующее устройство, которое умеет работать с IP-адресами и
    направлять пакеты по нужному пути. В принципе, правильный путь опре- деляется самим маршрутизатором. Но эти устройства управляемы, и сущест- вует несколько методов заставить их устремить пакеты в нужное русло. Один из этих методов — маршрутизация от источника (source routing).
    С
    помощью маршрутизации от источника можно установить путь прохож- дения пакета по сети. Иногда это действительно удобно, но мы же знаем, что удобство — это "палка о двух концах". Вполне логичным было бы маршрутизацию от источника запретить, а еще лучше вообще никогда не придумывать
    Как маршрутизация от источника влияет на безопасность? Допустим, что ваш сетевой экран запрещает подключения с адреса 192.168.1.1, потому что через этот адрес к вам пытался проникнуть хакер. Так как все пакеты злоумышлен- ника маршрутизаторы направляют именно через этот адрес, то подключение становится невозможным. Но благодаря source routing злоумышленник мо- жет сам указать путь, по которому должен следовать пакет, и провести его в
    обход маршрутизатора или сервера с запрещенным адресом.
    Жаль
    , что мы не можем запретить маршрутизацию от источника на компь- ютере хакера, но мы должны запретить ее на своем компьютере и тем бо- лее на компьютере, который выполняет роль шлюза в Интернет (прокси- сервер или сетевой экран). Для этого необходимо установить 0 в файле
    /proc/sys/net/ipv4/conf/all/accept_source_route или выполнить команду: echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
    14.7.3. SNMP
    Протокол
    SNMP (Simple Network Management Protocol, простой протокол сетевого управления) применяется для управления сетевыми устройствами, такими как маршрутизаторы, управляемые коммутаторы и даже бытовыми устройствами
    , подключенными к сети.
    Существует три версии этого протокола. Первая версия была разработана очень давно и, конечно же, осуществляла открытый обмен паролями и дан- ными
    . Шифрование было добавлено в SNMP начиная со второй версии.
    Именно поэтому первую версию не рекомендуется использовать, а лучше даже запретить.

    Советы
    хакера
    445
    У
    SNMP есть еще один недостаток — протокол использует в качестве транс- порта протокол UDP, который не поддерживает виртуальное соединение, и
    передача осуществляется простой отправкой пакетов в сеть без подтвер- ждения доставки и без какой-либо авторизации, то есть злоумышленник лег- ко может подделать любые поля пакета.
    Я
    не рекомендую использовать SNMP вообще, потому что для большинства задач можно обойтись без него. Конечно же, шифрование, добавленное во второй версии, значительно повысило безопасность, и его можно стало при- менять даже в особо важных случаях. Но необходимо сначала убедиться, что вы работаете именно со второй или более старшей версией, и что шифрова- ние используется.
    14.7.4.
    Полный
    путь
    Когда вы запускаете какие-либо команды или программы, то необходимо указывать полный путь к ним. Большинство пользователей и администрато- ров просто указывают имя запускаемого объекта, что может стать причиной взлома
    . Да что там говорить, я сам грешу вводом коротких команд.
    Рассмотрим пример того, как злоумышленник может использовать короткие имена в своих целях на примере команды ls
    :
    1.
    Хакер создает в каком-либо каталоге (например, в общедоступном /tmp) файл с таким же именем, как и у атакуемой программы.
    2.
    В
    этот файл хакер записывет сценарий, который выполняет необходимые ему действия.
    3.
    В
    переменную окружения
    PATH
    добавляется путь к этому каталогу.
    Например
    , в файл может быть записан следующий код:
    #!/bin/sh
    # Изменяем права доступа к файлам /etc/passwd и /etc/shadow chmod 777 /etc/passwd > /dev/null chmod 777 /etc/shadow > /dev/null
    # Выполняем программу ls exec /bin/ls "$@"
    В
    данном примере выполняется всего три команды. Первые две изменяют права доступа к файлам /etc/passwd и /etc/shadow так, чтобы любой пользова- тель смог их прочитать. При этом все сообщения, которые могут возникнуть во время выполнения команд, направляются на нулевое устройство /dev/null, чтобы они не отображались на экране. После этого выполняется системная команда ls из каталога bin

    Глава
    14
    446
    Теперь устанавливаем программе права, которые позволят выполнять ее лю- бому пользователю: chmod 777 /tmp/ls
    Ложный файл готов. Теперь необходимо сделать так, чтобы он выполнялся вместо системной команды ls
    . Для этого достаточно добавить каталог /tmp в
    самое начало системной переменной окружения
    PATH
    . Если теперь кто-то запустит команду ls без указания полного пути, то выполнится наш сцена- рий
    , который попытается изменить права доступа на файлы паролей. Если у
    пользователя, выполнившего команду, хватит полномочий для изменения прав
    , то можно считать, что система взломана.
    Следите за содержимым системной переменной окружения
    PATH
    , чтобы ее никто не изменил.
    14.7.5.
    Доверенные
    хосты
    В
    файле .rhosts можно прописать адреса компьютеров, которым вы доверяете.
    Пользователи этих компьютеров смогут подключаться к серверу без аутен- тификации с помощью таких программ, как telnet или ftp.
    Мы уже столько раз говорили о безопасности, что нетрудно догадаться, что хакер может подделать адрес отправителя. Если ему удастся это сделать, то ваш сервер превратится в проходной двор.
    14.7.6.
    Защита
    паролей
    Для защиты паролей Linux недостаточно только охранять файл /etc/shadow.
    Помимо этого вы должны контролировать сложность паролей, регулярно пы- таясь подобрать пароль по популярным словарям, которые легко найти в Ин- тернете
    (именно их используют хакеры). Если пароли сложные, то даже при получении файла /etc/shadow взломщику понадобится слишком много време- ни
    , и скорей всего ничего не удастся.
    Но не все так просто. Если пароли для доступа к системе защищаются самой
    ОС
    и обязательно шифруются, то остальные программы могут не иметь та- кой возможности. Например, в пользовательских программах для доступа к
    определенным сервисам, например, FTP или POP3, может не использовать- ся шифрование, и в этом случае пароли могут находиться в конфигурацион- ном файле в открытом виде.
    Прежде чем устанавливать какую-либо программу, узнайте, где она хранит пароли и как они защищены (используется шифрование или нет). Устанавли- вайте такие права на файлы, чтобы доступ к ним мог получить только кон- кретный пользователь и администратор. Желательно, чтобы для группы

    Советы
    хакера
    447
    стояли нулевые права, особенно, если в ней может быть несколько пользо- вателей
    Если отдельная группа создается для каждого пользователя, то для группы можно установить некоторые права. И все же, я бы не советовал этого делать, потому что неизвестно, что будет в будущем. Хакер может добавить себя в
    определенную группу, или вы сами можете случайно или намеренно объе- динить пользователей.
    Всем своим пользователям я рекомендую не сохранять в программах паро- лей
    . Это значит, что, например, при проверке почты надо каждый раз указы- вать свой пароль. Но это очень неудобно, особенно, когда у пользователя бо- лее трех почтовых ящиков, а это в наше время является нормой. Да и при наличии лишь одного есть другие запароленные службы, и очень трудно за- ставить пользователя помнить все пароли и не сохранять их в системе.
    Но вводить пароль надо непосредственно в программе, и лучше всего, если он не будет отображаться на экране. Это значит, что надо стараться не ука- зывать пароли в командной строке, которая не может использовать невиди- мые символы.
    Существует множество методов, с помощью которых можно увидеть наби- раемый пароль, например, команда ps
    . Пример правильного ввода пароля — утилита login, которая не отображает на экране вводимые данные.
    В
    открытом виде пароли могут храниться и в базах данных, именно там со- держится наиболее важная информация для любой организации. Базы дан- ных требуют отдельного разговора, и в данной книге мы эту тему не затраги- ваем
    , но забывать о ней нельзя.
    14.7.7.
    Перенаправление
    сервисов
    Если существуют какие-либо ресурсы, к которым обращается ограниченный круг людей, то необходимо заставлять сервисы работать на нестандартных портах
    . Это позволит защитить систему от излишних посягательств.
    Одной из распространенных проблем использования стандартных портов явля- ется возможность их сканирования. Например, хакер узнает об уязвимости БД определенного разработчика. Допустим, что эта база использует порт 1457.
    Злоумышленнику достаточно только запустить сканирование сети в поисках компьютера с открытым портом 1457. Как только машина найдена, она попа- дает в "черный" список, и хакер может запустить программу, которая автома- тически захватит все компьютеры из списка.
    Проблема легко решается переконфигурированием сервиса для работы на другом порту. При этом необходимо убрать любые баннеры, которые появ-

    Глава
    14
    448
    ляются при подключении на этот канал. В этом случае хакер не сможет узнать, что работает на порту и как взаимодействовать с удаленной программой.
    Если с сервисами внутреннего сервера работает небольшое количество лю- дей
    , то можно поменять местами особо уязвимые (те программы, которые предоставляют пользователям возможность записи или выполнения команд в
    системе), например FTP (заставить работать на порту 80) и HTTP (настро- ить на порт 21). Жаль, что это нельзя сделать с общедоступными сервисами, а
    если и можно, то бесполезно. Например, если заставить работать WEB- сервер на порту 81 вместо 80, то любой пользователь Интернета должен иметь возможность узнать об этом. А тогда и хакер будет в курсе.
    1   ...   27   28   29   30   31   32   33   34   35


    написать администратору сайта