Книга: Linux глазами хакера
14.8. Небезопасная NFS
14.8. Небезопасная NFS
Технология NFS (Network File System, сетевая файловая система) была разработана компанией Sun Microsystems в 1989 году. Идея была великолепной. Любой пользователь может монтировать каталоги сервера к своей файловой системе и использовать их, как будто они находятся на компьютере клиента. Это очень удобно в сетях. Пользовательские каталоги могут находиться на сервере и подключаться к клиенту по мере надобности. Таким образом, все файлы будут храниться централизованно, а использоваться, как будто они находятся локально.
Как я уже говорил, удобство и безопасность — несовместимые вещи, a NFS слишком удобна.
В состав NFS входит утилита showmount, которая может отобразить, какие директории и какими пользователями подключены. Для администратора это неоценимая информация.
Выполните команду showmount -a localhost
.
Вы сможете увидеть следующую информацию о NFS на своем сервере:
All mount points on localhost:
robert:/home/robert
econom:/home/jhon
buh:/home/andrey
robert:/usr/local/etc
econom:/usr/games
Результат разделен на две колонки символом двоеточия. В первой находится имя компьютера, подключившего удаленный раздел, а во второй — путь на сервере к подсоединенному ресурсу.
Приятно видеть подробную информацию, но и опасно, потому что команда может выполняться удаленно, а значит, любой хакер доберется с ее помощью до следующей информации:
? подключенные директории. В примере выше подсоединяются различные папки из раздела /home. Чаще всего их названия совпадают с именами пользователей, поэтому легко определить действительные имена юзеров, не обращаясь к файлу /etc/passwd. С такой информацией хакеру проще будет подбирать пароли доступа;
? имена компьютеров в сети. Если вы потратили большие усилия на защиту своего DNS-сервера, то можете считать, что вы сделали это зря, если на каком-либо сервере установлена NFS. Один запрос показывает имена компьютеров в сети, пусть и не все, а только работающие с NFS, но и этого может быть достаточно для хакера. Кстати, ему не надо даже зондировать сеть с помощью ping-запросов, потому что и так видно действующие компьютеры;
? используемые программы, включая номер версии. Если пользователи монтируют каталоги с программами, то имена этих каталогов могут выглядеть как /usr/local/jail 1.0. Это только пример, но он показывает, что директории в Linux могут содержать в качестве имени название программы и, самое главное, номер версии.
В зависимости от того, какие открыты каталоги, хакер может получить намного больше информации. Выходит, что утилиты NFS слишком болтливы, а этого нельзя допускать.
Если вы решили использовать NFS, то позаботьтесь о том, чтобы она не был доступна из Интернета. Для этого необходимо запретить подключение к 2049 UDP- и TCP-порту извне. Эти функции может выполнить сетевой экран. А если хакер уже взломал какой-то компьютер в сети и получил возможность выполнять команды внутри нее, то защита сетевого экрана не поможет.
При настройке NFS в файле /etc/exports указываются экспортируемые файловые системы и права доступа к ним. Никогда не открывайте полный доступ ко всей системе, т.е. в файле не должно быть строки:
/ rw
Необходимо четко прописывать пути к каталогам, которые могут быть монтированы пользователями. Это значит, что если пользователи должны иметь возможность подключать домашние каталоги, то следующее разрешение также является неверным и опасным:
/home rw
В чем здесь опасность? Не все пользовательские каталоги должны монтироваться удаленно. Например, если вы работаете под пользовательской учетной записью, но являетесь администратором, то в вашем каталоге могут быть программы, используемые для управления системой. Нельзя допустить, чтобы злоумышленник смог его увидеть (даже с правами только на чтение). Разрешайте подключение только конкретным пользователям, которые действительно монтируют свои файловые системы удаленно. Например:
/home/Robert rw
/home/FlenovM rw
/home/Andreу rw
Большинство специалистов по безопасности сходятся во мнении, что NFS не стоит использовать вообще. Если вы решили применить ее только для того, чтобы программы были установлены централизованно, то следует победить свою лень и заняться их постановкой на каждый компьютер в отдельности.
Если вам необходимо сделать документы общедоступными, чтобы пользователи могли работать совместно с одним каталогом, то можно рассмотреть вариант использования Samba (см. гл. 6). Этот сервис менее болтлив и может решить ваши потребности в разделении каталогов сервера.
- 14.1. Основы безопасности
- 14.2. Переполнение буфера
- 14.3. Rootkit
- 14.4. backdoor
- 14.5. Подслушивание трафика
- 14.6. DoS/DdoS-атаки
- 14.7. Проникновение через доверительные узлы
- 14.8. Небезопасная NFS
- 14.9. Определение взлома
- 14.10. Взлом паролей
- 14.11. Тюнинг ОС Linux
- 14.12. Короткие советы
- 14.13. Обнаружен взлом
- NFS Server Configuration
- NFS Client Configuration
- 9.7.1. Root File System on NFS
- 12.3.3. NFS Server
- 12.3.4. Target NFS Root Mount
- 12.3.5. U-Boot NFS Root Mount Example
- Preparing NFS
- Mounting an NFS Volume
- The NFS Daemons
- Kernel-Based NFSv2 Server Support
- Kernel-Based NFSv3 Server Support
- C News in an NFS Environment