Linux глазами хакера - Михаил Флёнов
Шрифт:
Интервал:
Закладка:
□ X68 — ATA66;
□ X69 — ATA100.
Для установки ATA66 выполните команду:
hdparm -Х68/dev/hda
Самое странное, что установленные вами параметры не сохраняются после перезагрузки системы, поэтому желательно прописать эти команды в файл /etc/rc.d/rc.local. Для этого в самый конец файла добавляем три строки:
hdparm -m128d1c3/dev/hda
hdparm -Х68/dev/hda
hdparm -k1 /dev/hda
14.11.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
# точка_монтирования карта настройки
# 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.misc# $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
#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- и DEV-программы. Последний параметр определяет устройство, которое должно монтироваться.
Как видите, все очень даже просто. Если попытаться обратиться к директории /misc/cd, и в приводе CD-ROM в этот момент будет находиться диск, то он будет автоматически смонтирован. Только есть одно замечание, адресоваться лучше командами Linux (например, выполнить команду ls /misc/cd), а не с помощью программ. Если просмотреть директорию /misc/cd с помощью Midnight Commander, то диск не будет смонтирован.
14.12. Короткие советы
Мы проанализировали достаточно много аспектов создания безопасной системы, но есть некоторые общие рекомендации, которые подытоживают рассмотренный в этой книге материал. Поэтому напоследок я собрал короткие советы, которые пригодятся вам в построении безопасного сервера или сети.
14.12.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.12.2. Маршрутизация от источника
Мы уже не раз говорили о том, как пакеты проходят по сети, и достаточно подробно затронули эту тему в разд. 4.5.1. Напоминаю, что внутри сети пакеты передаются по MAC-адресу, а для обмена между сетями необходимо маршрутизирующее устройство, которое умеет работать с IP-адресами и направлять пакеты по нужному пути, который они сами определяют. Но эти устройства управляемы, и существует несколько методов заставить их устремить пакеты в нужное русло. Один из этих методов — маршрутизация от источника (source routing).
С помощью маршрутизации от источника можно установить путь прохождения пакета по сети. Иногда это действительно удобно, но мы же знаем, что это "палка о двух концах", и вполне логичным было бы source routing запретить, а лучше вообще никогда не придумывать.
Как маршрутизация от источника влияет на безопасность? Допустим, что ваш сетевой экран запрещает подключения с адреса 192.168.1.1, потому что через этот IP к вам пытался проникнуть хакер. Так как все пакеты злоумышленника маршрутизаторы направляют именно через этот адрес, то подключение становится невозможным. Но благодаря source routing злоумышленник может сам указать путь, по которому должен следовать пакет, и провести его в обход маршрутизатора или сервера с запрещенным адресом.
Жаль, что мы не можем запретить маршрутизацию от источника на компьютере хакера, но мы не должны принимать такие пакеты на своей стороне и тем более на компьютере, который выполняет роль шлюза в Интернет (прокси-сервер или сетевой экран). Для этого необходимо установить 1 в файле /proc/sys/net/ipv4/conf/all/accept_source_route или выполнить команду:
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
14.12.3. SNMP
Протокол SNMP (Simple Network Management Protocol, простой протокол сетевого управления) применяется для управления сетевыми устройствами, такими как маршрутизаторы, управляемые коммутаторы и даже бытовыми устройствами, подключенными к сети.
Существует три версии этого протокола. Первая версия была разработана очень давно и, конечно же, осуществляла открытый обмен паролями и данными. Шифрование было добавлено в SNMP, начиная со второй версии. Именно поэтому первую версию не рекомендуется использовать, а лучше даже запретить.
У SNMP есть еще один недостаток — протокол использует в качестве транспорта UDP-протокол, который не поддерживает виртуальное соединение, и передача осуществляется простой отправкой пакетов в сеть без подтверждения доставки и без каких-либо авторизаций, т.е. злоумышленник легко может подделать любые поля пакета.
Я не рекомендую использовать SNMP вообще, потому что для большинства задач можно обойтись без него. Конечно же, шифрование, добавленное во второй версии, значительно повысило безопасность, и его можно стало применять даже в особо важных случаях. Но необходимо сначала убедиться, что вы работаете именно со второй или более старшей версией и шифрование используется.
14.12.4. Полный путь
Когда вы запускаете какие-либо команды или программы, то необходимо указывать полный путь к ним. Большинство пользователей и администраторов просто указывают имя запускаемого объекта, что может стать причиной взлома. Да что там говорить, я сам грешу вводом коротких команд