Содержание
Защита серверов Samba
Режимы безопасности Samba
Доступны два уровня безопасности для сетевого протокола CIFS (разделяемая файловая система интернета): уровень пользователя (user-level) и уровень ресурса (share-level). Реализация режима безопасности Samba обеспечивает большую гибкость, предоставляя четыре способа реализации уровня пользователя и один вариант реализации уровня разделяемого ресурса:
security = user: требует от клиента предоставить имя пользователя и пароль для подключения к ресурсу. Учетные записи пользователей Samba отделены от системных учетных записей, но пакет libpam-smbpass синхронизирует системных пользователей и пароли с пользовательской базой Samba.
security = domain: этот режим позволяет серверу Samba представляться клиентам Windows первичным доменным контроллером (PDC), резервным доменным контроллером (BDC) или сервером-членом домена (DMS). Смотрите раздел Samba как контроллер домена для дополнительной информации.
security = ADS: позволяет серверу Samba присоединиться к домену Active Directory как родному. Смотрите раздел Интеграция Samba с Active Directory для уточнения деталей.
security = server: этот режим оставлен с тех времен, когда Samba не мог становиться членом домена и по ряду причин, связанных с безопасностью, не может использоваться. Смотрите раздел Server Security руководства по Samba для уточнения деталей.
security = share: позволяет клиентам подключаться к разделяемому ресурсу без предоставления имени пользователя и пароля.
Вместо share используйте
security = user map to guest = Bad User
The remote user name will be compared to the one found in the samba password database and if it doesn't find a match it will be tagged a «Bad User» and mapped to the guest account.
Режим безопасности, который вы выберете, будет зависеть от вашего окружения и того что вы хотите получить от сервера Samba.
Security = User
В этой секции рассматривается как перенастроить сервера файлов и печати Samba, настроенные в разделах Файловый сервер Samba и Сервер печати Samba, чтобы они требовали аутентификацию.
Сначала установим пакет libpam-smbpass, который будет синхронизировать системных пользователей с базой пользователей Samba:
sudo apt-get install libpam-smbpass
Отредактируйте /etc/samba/smb.conf, и измените в секции [share]:
guest ok = no
Наконец перезагрузите Samba, чтобы воспринялась новая конфигурация:
sudo restart smbd sudo restart nmbd
Теперь при подсоединении к разделяемым каталогам или принтерам у вас будет запрашиваться имя пользователя и пароль.
Безопасность разделяемого ресурса
Существует несколько опций для усиления безопасности по каждому конкретному разделяемому каталогу. На примере [share], эта секция рассматривает наиболее распространенные опции.
Группы
Группы определяют коллекции компьютеров или пользователей, которые имеют общий уровень доступа к определенным сетевым ресурсам, и обеспечивают уровень модульности при управлении доступом к этим ресурсам. Например, если определены группа qa, которая содержит пользователей freda, danika и rob, и другая группа support, которая содержит пользователей danika, jeremy и vincent, то некоторый сетевой ресурс, настроенный на доступ группы qa, будет соответственно предоставлять доступ для freda, danika и rob, но не jeremy или vincent. Поскольку пользователь danika относится к обеим группам qa и support, она будет иметь доступ к ресурсам, настроенным на доступ для любой из этих групп, в то время как все остальные - только к ресурсам, настроенным на определенные группы, которым они принадлежат.
По умолчанию Samba ищет локальные системные группы, объявленные в /etc/group, для определения какие пользователи им принадлежат. Для дополнительной информации по добавлению и удалению пользователей в группах смотрите раздел Добавление и удаление пользователей.
При определении групп в файле настроек Samba /etc/samba/smb.conf используется синтаксис распознавания с предшествующим символом "@". Например, если вы собираетесь определить группу с именем sysadmin в определенной секции файла /etc/samba/smb.conf, вы сможете сделать это, указав имя группы как @sysadmin.
Права доступа к файлам
Права доступа определяют явные права компьютера или пользователя на определенный каталог, файл или набор файлов. Такой доступ может быть определен редактированием файла /etc/samba/smb.conf и заданием явных разрешений определенному разделяемому файловому ресурсу.
Например, если вы определили Samba ресурс с названием share и собираетесь дать права только на чтение группе пользователей, известной как qa, но хотите предоставить возможность записи для группы с именем sysadmin и пользователю vincent, то вы можете отредактировать файл /etc/samba/smb.conf, добавив следующие записи в секцию [share]:
read list = @qa write list = @sysadmin, vincent
Другим возможным разрешением Samba является определение административных привилегий на определенный разделяемый ресурс. Пользователи с административными правами могут читать, записывать или изменять любую информацию, которую содержит ресурс, на который у данного пользователя существуют административные привилегии.
Например, если вы хотите предоставить пользователю melissa административные права доступа к ресурсу share из нашего примера, вам потребуется отредактировать файл /etc/samba/smb.conf и добавить следующую строку в раздел [share]:
admin users = melissa
После изменений /etc/samba/smb.conf перезапустите Samba для применения изменений:
sudo restart smbd sudo restart nmbd
Теперь, когда Samba настроена на ограничения какие группы имеют доступ к разделяемому каталогу, необходимо обновить права доступа для файловой системы.
Традиционные файловые разрешения Linux не очень хорошо соответствуют управляющим спискам доступа (ACL) Windows NT. К счастью списки ACL POSIX, доступные для Ubuntu серверов, предоставляют улучшенное более детализированное управление. Например, чтобы разрешить ACL для каталога /srv на файловой системе EXT3, отредактируйте /etc/fstab, добавив опцию acl:
UUID=66bcdd2e-8861-4fb0-b7e4-e61c569fe17d /srv ext3 noatime,relatime,acl 0 1
Далее перемонтируйте раздел:
sudo mount -v -o remount /srv
Чтобы соответствовать приведенной выше конфигурации Samba группе sysadmin требуется предоставить права на чтение, запись и выполнение для каталога /srv/samba/share, группе qa потребуются права на чтение и запуск программ, а файлы должны принадлежать пользователю melissa. Для этого введите следующее в терминале:
sudo chown -R melissa /srv/samba/share/ sudo chgrp -R sysadmin /srv/samba/share/ sudo setfacl -R -m g:qa:rx /srv/samba/share/
Теперь из клиента Windows вы можете заметить, что применяются новые права на файлы. Смотрите руководства man по acl и setfacl для более детальной информации по POSIX ACL спискам.
Профиль AppArmor для Samba
Ubuntu поставляется с модулем безопасности AppArmor, который предоставляет контроль доступа по разрешению. Изначальный профиль AppArmor потребует изменений для приведения в соответствие с вашей конфигурацией. Более детальное описание AppArmor смотрите в разделе AppArmor.
Существуют изначальные профили AppArmor для /usr/sbin/smbd и /usr/sbin/nmbd, программ-сервисов Samba, как часть пакета apparmor-profiles. Чтобы установить пакет введите в строке терминала:
sudo apt-get install apparmor-profiles apparmor-utils
По умолчанию профили для smbd и nmbd находятся в режиме complain (отслеживания), позволяя Samba работать без изменения профиля, и только фиксируя ошибки. Для перевода профиля smbd в режим enforce (ограничений) и установки работы Samba как положено, профиль требуется изменить для отражения всех каталогов с разделяемым доступом.
Отредактируем /etc/apparmor.d/usr.sbin.smbd, добавив информацию для [share] из примера файлового сервера:
/srv/samba/share/ r, /srv/samba/share/** rwkix,
Теперь переведем профиль в режим ограничений и перезагрузим его:
sudo aa-enforce /usr/sbin/smbd cat /etc/apparmor.d/usr.sbin.smbd | sudo apparmor_parser -r
Теперь вы можете читать, записывать и выполнять файлы в разделяемом каталоге как обычно, а программа smbd будет предоставлять доступ только к настроенным файлам и каталогам. Убедитесь, что добавили каждый каталог, настроенный как ресурс Samba. Кроме того, все ошибки будут сохраняться в журнале /var/log/syslog.
Ссылки
Для более глубокого погружения в настройки Samba смотрите Коллекцию ЧаВо по Samba.
Данное руководство доступно также в печатном виде.
Также хорошее руководство - Using Samba от O'Reilly.
18 глава из коллекции ЧаВо по Samba посвящена безопасности.
Для дополнительной информации по Samba и ACL смотрите страницу Samba ACLs.
Страница Ubuntu Wiki Samba.