Защита серверов Samba Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:руководство_по_ubuntu_server:сеть_windows:securing_samba_servers [2012/09/19 17:08]
[Режимы безопасности Samba]
wiki:руководство_по_ubuntu_server:сеть_windows:securing_samba_servers [2015/07/02 14:44] (текущий)
[Режимы безопасности Samba]
Строка 12: Строка 12:
 Доступны два уровня безопасности для сетевого протокола CIFS (разделяемая файловая система интернета):​ уровень пользователя (user-level) и уровень ресурса (share-level). Реализация режима безопасности Samba обеспечивает большую гибкость,​ предоставляя четыре способа реализации уровня пользователя и один вариант реализации уровня разделяемого ресурса:​ Доступны два уровня безопасности для сетевого протокола CIFS (разделяемая файловая система интернета):​ уровень пользователя (user-level) и уровень ресурса (share-level). Реализация режима безопасности Samba обеспечивает большую гибкость,​ предоставляя четыре способа реализации уровня пользователя и один вариант реализации уровня разделяемого ресурса:​
  
-  -- **security = user**:+  -- **security = user**: ​требует от клиента предоставить имя пользователя и пароль для подключения к ресурсу. Учетные записи пользователей Samba отделены от системных учетных записей,​ но пакет **//​libpam-smbpass//​** синхронизирует системных пользователей и пароли с пользовательской базой Samba. 
 +  -- **security = domain**: этот режим позволяет серверу Samba представляться клиентам Windows первичным доменным контроллером (PDC), резервным доменным контроллером (BDC) или сервером-членом домена (DMS). Смотрите раздел [[wiki:​руководство_по_ubuntu_server:​сеть_windows:​samba_as_domain_controller|Samba как контроллер домена]] для дополнительной информации. 
 +  -- **security = ADS**: позволяет серверу Samba присоединиться к домену Active Directory как родному. Смотрите раздел [[wiki:​руководство_по_ubuntu_server:​сеть_windows:​samba_ad_integration|Интеграция Samba с Active Directory]] для уточнения деталей. 
 +  -- **security = server**: этот режим оставлен с тех времен,​ когда Samba не мог становиться членом домена и по ряду причин,​ связанных с безопасностью,​ не может использоваться. Смотрите раздел [[http://​samba.org/​samba/​docs/​man/​Samba-HOWTO-Collection/​ServerType.html#​id349531|Server Security]] руководства по Samba для уточнения деталей. 
 +  -- **security = share**: позволяет клиентам подключаться к разделяемому ресурсу без предоставления имени пользователя и пароля. 
 +<note warning>​Параметр security=share устарел </​note>​ 
 +Вместо share используйте <​code>​security = user 
 +map to guest = Bad User</​code>​ 
 +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. ​
  
-    security = user: requires clients to supply a username and password to connect to shares. Samba user accounts are separate from system accountsbut the libpam-smbpass package will sync system users and passwords with the Samba user database. +Режим безопасностикоторый вы выберетебудет зависеть от вашего окружения и того что вы хотите получить от сервера ​Samba.
- +
-    security = domain: this mode allows the Samba server to appear to Windows clients as a Primary Domain Controller (PDC)Backup Domain Controller (BDC), or a Domain Member Server (DMS). See Samba as a Domain Controller for further information. +
- +
-    security = ADS: allows the Samba server to join an Active Directory domain as a native member. See Samba Active Directory Integration for details. +
- +
-    security = server: this mode is left over from before Samba could become a member server, and due to some security issues should not be used. See the Server Security section of the Samba guide for more details. +
- +
-    security = share: allows clients to connect to shares without supplying a username and password. +
- +
-The security mode you choose will depend on your environment and what you need the Samba server to accomplish.+
  
 ====Security = User==== ====Security = User====
  
-This section will reconfigure the Samba file and print serverfrom Samba File Server and Samba Print Server, to require authentication. +В этой секции рассматривается как перенастроить сервера файлов и печати ​Samba, ​настроенные в разделах [[wiki:руководство_по_ubuntu_server:​сеть_windows:​samba_file_server|Файловый сервер ​Samba]] и [[wiki:руководство_по_ubuntu_server:​сеть_windows:​samba_print_server|Сервер печати Samba]], чтобы они требовали аутентификацию.
- +
-First, install the libpam-smbpass package which will sync the system users to the Samba user database: +
- +
-sudo apt-get install libpam-smbpass +
- +
-If you chose the Samba Server task during installation libpam-smbpass is already installed. +
- +
-Edit /​etc/​samba/​smb.conf,​ and in the [sharesection change:+
  
-    guest ok = no+Сначала установим пакет **libpam-smbpass**,​ который будет синхронизировать системных пользователей с базой пользователей Samba: 
 +<​code>​sudo apt-get install libpam-smbpass</​code>​ 
 +<​note>​Если вы выбирали задачу **//Samba сервер//​** в процессе установки сервера,​ то **libpam-smbpass** уже установлен.</​note>​
  
-Finallyrestart Samba for the new settings to take effect:+Отредактируйте /​etc/​samba/​smb.confи измените в секции [share]: 
 +<​code>​guest ok = no</​code>​
  
 +Наконец перезагрузите Samba, чтобы воспринялась новая конфигурация:​
 +<​code>​
 sudo restart smbd sudo restart smbd
 sudo restart nmbd sudo restart nmbd
- +</​code>​ 
-Now when connecting to the shared directories or printers you should be prompted for a username and password+Теперь при подсоединении к разделяемым каталогам или принтерам у вас будет запрашиваться имя пользователя и пароль
- +<​note>​Если вы выбираете подсоединение к разделяемому сетевому носителю,​ то можете установить флажок %%"​Переподключение при входе"​ ("Reconnect at Logon")%%который позволит вам вводить имя и пароль один разпо крайней мере до смены пароля.</​note>​
-If you choose to map a network drive to the share you can check the “Reconnect at Logon” check boxwhich will require you to only enter the username and password onceat least until the password changes.+
  
 ====Безопасность разделяемого ресурса==== ====Безопасность разделяемого ресурса====
  
-There are several options available to increase the security for each individual shared directoryUsing the [share] ​examplethis section will cover some common options.+Существует несколько опций для усиления безопасности по каждому конкретному разделяемому каталогуНа примере **[share]**эта секция рассматривает наиболее распространенные опции.
  
 ===Группы=== ===Группы===
  
-Groups define a collection of computers or users which have a common level of access to particular network resources and offer a level of granularity in controlling access to such resourcesFor exampleif a group qa is defined and contains the users freda, danika, and rob and a second group support ​is defined and consists of users danika, jeremy, and vincent ​then certain network resources configured to allow access by the qa group will subsequently enable access by freda, danika, and rob, but not jeremy ​or vincent. ​Since the user danika ​belongs to both the qa and support ​groupsshe will be able to access resources configured for access by both groupswhereas all other users will have only access to resources explicitly allowing the group they are part of.+Группы определяют коллекции компьютеров или пользователей,​ которые имеют общий уровень доступа к определенным сетевым ресурсам,​ и обеспечивают уровень модульности при управлении доступом к этим ресурсамНапримересли определены группа **qa**, которая содержит пользователей **freda****danika** и **rob**, и другая группа **support**, которая содержит пользователей **danika****jeremy** и **vincent**, то некоторый сетевой ресурс,​ настроенный на доступ группы **qa**, будет соответственно предоставлять доступ для **freda****danika** и **rob**но не **jeremy** или **vincent**Поскольку пользователь **danika** относится к обеим группам **qa** и **support**, она будет иметь доступ к ресурсам,​ настроенным на доступ для любой из этих групп, в то время как все остальные - только к ресурсамнастроенным на определенные группыкоторым они принадлежат.
  
-By default ​Samba looks for the local system groups defined in /​etc/​group ​to determine which users belong to which groupsFor more information on adding and removing users from groups see Adding and Deleting Users.+По умолчанию ​Samba ищет локальные системные группы,​ объявленные в /etc/group, для определения какие пользователи им принадлежатДля дополнительной информации по добавлению и удалению пользователей в группах смотрите раздел [[wiki:​руководство_по_ubuntu_server:​безопасность:​user_management#​добавление_и_удаление_пользователей|Добавление и удаление пользователей]].
  
-When defining groups in the Samba configuration file, /​etc/​samba/​smb.conf, the recognized syntax is to preface the group name with an "​@" ​symbolFor exampleif you wished to define a group named sysadmin ​in a certain section of the /​etc/​samba/​smb.conf, ​you would do so by entering the group name as @sysadmin.+При определении групп в файле настроек ​Samba /​etc/​samba/​smb.conf ​используется синтаксис распознавания с предшествующим символом %%"​@"​%%Напримересли вы собираетесь определить группу с именем **sysadmin** в определенной секции файла ​/​etc/​samba/​smb.conf, ​вы сможете сделать это, указав имя группы как **@sysadmin**.
  
 ===Права доступа к файлам=== ===Права доступа к файлам===
  
-File Permissions define the explicit rights a computer or user has to a particular directoryfile, or set of filesSuch permissions may be defined by editing the /​etc/​samba/​smb.conf ​file and specifying the explicit permissions of a defined file share.+Права доступа определяют явные права компьютера или пользователя на определенный каталогфайл или набор файловТакой доступ может быть определен редактированием файла ​/​etc/​samba/​smb.conf ​и заданием явных разрешений определенному разделяемому файловому ресурсу.
  
-For exampleif you have defined a Samba share called share and wish to give read-only permissions to the group of users known as qa, but wanted to allow writing to the share by the group called ​sysadmin ​and the user named vincent, ​then you could edit the /​etc/​samba/​smb.conf ​fileand add the following entries under the [share] ​entry:+Напримересли вы определили ​Samba ресурс с названием **share** и собираетесь дать права только на чтение группе пользователей,​ известной как **qa**но хотите предоставить возможность записи для группы с именем **sysadmin** и пользователю **vincent**то вы можете отредактировать файл ​/​etc/​samba/​smb.conf, ​добавив следующие записи в секцию **[share]**: 
 +<​code>​ 
 +read list = @qa 
 +write list = @sysadmin, vincent 
 +</​code>​
  
-    read list = @qa +Другим возможным разрешением Samba является определение административных привилегий на определенный разделяемый ресурс. Пользователи с административными правами могут читатьзаписывать или изменять любую информацию,​ которую содержит ресурс,​ на который у данного пользователя существуют административные привилегии.
-    write list = @sysadminvincent+
  
-Another possible Samba permission is to declare administrative permissions to a particular shared resource. Users having administrative permissions may read, write, or modify any information contained in the resource the user has been given explicit administrative permissions to. +Напримересли вы хотите предоставить пользователю **melissa** административные права доступа к ресурсу **share** из нашего примеравам потребуется отредактировать файл ​/​etc/​samba/​smb.conf ​и добавить следующую строку в раздел **[share]**
- +<​code>​admin users = melissa</code>
-For exampleif you wanted to give the user melissa ​administrative permissions to the share exampleyou would edit the /​etc/​samba/​smb.conf ​file, and add the following line under the [share] ​entry+
- +
-    ​admin users = melissa +
- +
-After editing ​/etc/​samba/​smb.conf,​ restart Samba for the changes to take effect:+
  
 +После изменений /​etc/​samba/​smb.conf перезапустите Samba для применения изменений:​
 +<​code>​
 sudo restart smbd sudo restart smbd
 sudo restart nmbd sudo restart nmbd
 +</​code>​
  
-For the read list and write list to work the Samba security mode must not be set to security = share+<​note>​Чтобы опции **//read list//** и **//write list//** работали,​ режим безопасности ​Samba не должен быть установлен в **security = share**.</​note>​
  
-Now that Samba has been configured to limit which groups have access to the shared directorythe filesystem permissions need to be updated.+Теперь,​ когда ​Samba настроена на ограничения какие группы имеют доступ к разделяемому каталогунеобходимо обновить права доступа для файловой системы.
  
-Traditional ​Linux file permissions do not map well to Windows NT Access Control Lists (ACLs). Fortunately ​POSIX ACLs are available on Ubuntu ​servers providing more fine grained controlFor exampleto enable ACLs on /srv an EXT3 filesystemedit /​etc/​fstab ​adding the acl option:+Традиционные файловые разрешения ​Linux не очень хорошо соответствуют управляющим спискам доступа ​(ACLWindows NTК счастью списки ACL POSIX, доступные для ​Ubuntu ​серверов,​ предоставляют улучшенное более детализированное управлениеНапримерчтобы разрешить ACL для каталога ​/srv на файловой системе ​EXT3, отредактируйте ​/etc/fstab, добавив опцию **acl**: 
 +<​code>​UUID=66bcdd2e-8861-4fb0-b7e4-e61c569fe17d /srv  ext3    noatime,​relatime,​acl 0       ​1</​code>​ 
 +Далее перемонтируйте раздел:​ 
 +<​code>​sudo mount -v -o remount /​srv</​code>​
  
-UUID=66bcdd2e-8861-4fb0-b7e4-e61c569fe17d /srv  ext3    noatime,​relatime,acl 0       1 +<​note>​Приведенный пример подразумеваетчто ​/srv смонтирован на отдельный раздел дискаЕсли ​/srv (или любой другой каталогнастроенный как разделяемый ресурс) является частью корневого раздела (/)то может потребоваться перезагрузка системы.</note>
- +
-Then remount the partition:​ +
- +
-sudo mount -v -o remount ​/srv +
- +
-The above example assumes /srv on a separate partitionIf /srv, or wherever you have configured your share pathis part of the / partition a reboot may be required. +
- +
-To match the Samba configuration above the sysadmin group will be given read, write, and execute permissions to /srv/​samba/​share,​ the qa group will be given read and execute permissions,​ and the files will be owned by the username melissa. Enter the following in a terminal:+
  
 +Чтобы соответствовать приведенной выше конфигурации Samba группе **sysadmin** требуется предоставить права на чтение,​ запись и выполнение для каталога /​srv/​samba/​share,​ группе **qa** потребуются права на чтение и запуск программ,​ а файлы должны принадлежать пользователю **melissa**. Для этого введите следующее в терминале:​
 +<​code>​
 sudo chown -R melissa /​srv/​samba/​share/​ sudo chown -R melissa /​srv/​samba/​share/​
 sudo chgrp -R sysadmin /​srv/​samba/​share/​ sudo chgrp -R sysadmin /​srv/​samba/​share/​
 sudo setfacl -R -m g:qa:rx /​srv/​samba/​share/​ sudo setfacl -R -m g:qa:rx /​srv/​samba/​share/​
 +</​code>​
 +<​note>​Команда выше **//​setfacl//​** предоставляет права на выполнение программ для всех файлов в каталоге /​srv/​samba/​share,​ что для вас может быть желательным или нежелательным.</​note>​
  
-The setfacl command above gives execute permissions to all files in the /​srv/​samba/​share directorywhich you may or may not want. +Теперь из клиента Windows вы можете заметитьчто применяются новые права на файлыСмотрите руководства **man** по **//acl//** и **//setfacl//** для более детальной информации по POSIX ACL спискам.
- +
-Now from a Windows client you should notice the new file permissions are implemented. See the acl and setfacl ​man pages for more information on POSIX ACLs.+
  
 ====Профиль AppArmor для Samba==== ====Профиль AppArmor для Samba====
  
-Ubuntu ​comes with the AppArmor ​security modulewhich provides mandatory access controlsThe default ​AppArmor ​profile for Samba will need to be adapted to your configurationFor more details on using AppArmor ​see AppArmor.+Ubuntu ​поставляется с модулем безопасности **AppArmor**который предоставляет контроль доступа по разрешениюИзначальный профиль ​AppArmor ​потребует изменений для приведения в соответствие с вашей конфигурациейБолее детальное описание ​AppArmor ​смотрите в разделе [[wiki:​руководство_по_ubuntu_server:​безопасность:​apparmor|AppArmor]].
  
-There are default ​AppArmor ​profiles for /​usr/​sbin/​smbd ​and /​usr/​sbin/​nmbd, ​the Samba daemon binariesas part of the apparmor-profiles ​packagesTo install the package, from a terminal prompt enter:+Существуют изначальные профили ​AppArmor ​для ​/​usr/​sbin/​smbd ​и /​usr/​sbin/​nmbd, ​программ-сервисов ​Samba, ​как часть пакета ​apparmor-profiles. ​Чтобы установить пакет введите в строке терминала: 
 +<​code>​sudo apt-get install apparmor-profiles apparmor-utils</​code>​ 
 +<​note>​Этот пакет содержит профили различных других программ.</​note>​
  
-sudo apt-get install apparmor-profiles apparmor-utils +По умолчанию профили для ​smbd и nmbd находятся в режиме **complain** (отслеживания),​ позволяя ​Samba работать без изменения профиляи только фиксируя ошибкиДля перевода профиля ​smbd в режим **enforce** (ограничений) и установки работы ​Samba как положенопрофиль требуется изменить для отражения всех каталогов с разделяемым доступом.
- +
-This package contains profiles for several other binaries. +
- +
-By default the profiles for smbd and nmbd are in complain ​mode allowing ​Samba to work without modifying the profileand only logging errorsTo place the smbd profile into enforce ​mode, and have Samba work as expectedthe profile will need to be modified to reflect any directories that are shared. +
- +
-Edit /​etc/​apparmor.d/​usr.sbin.smbd adding information for [share] from the file server example:+
  
 +Отредактируем /​etc/​apparmor.d/​usr.sbin.smbd,​ добавив информацию для **[share]** из примера файлового сервера:​
 +<​code>​
   /​srv/​samba/​share/​ r,   /​srv/​samba/​share/​ r,
   /​srv/​samba/​share/​** rwkix,   /​srv/​samba/​share/​** rwkix,
 +</​code>​
  
-Now place the profile into enforce and reload it+Теперь переведем профиль в режим ограничений и перезагрузим его
 +<​code>​
 sudo aa-enforce /​usr/​sbin/​smbd sudo aa-enforce /​usr/​sbin/​smbd
 cat /​etc/​apparmor.d/​usr.sbin.smbd | sudo apparmor_parser -r cat /​etc/​apparmor.d/​usr.sbin.smbd | sudo apparmor_parser -r
 +</​code>​
  
-You should now be able to readwriteand execute files in the shared directory as normal, and the smbd binary will have access to only the configured files and directoriesBe sure to add entries for each directory you configure ​Samba to shareAlsoany errors will be logged to /​var/​log/​syslog.+Теперь вы можете читатьзаписывать и выполнять файлы в разделяемом каталоге как обычноа программа **smbd** будет предоставлять доступ только к настроенным файлам и каталогамУбедитесь,​ что добавили каждый каталог,​ настроенный как ресурс ​Samba. ​Кроме тоговсе ошибки будут сохраняться в журнале ​/​var/​log/​syslog.
  
 ====Ссылки==== ====Ссылки====
  
-    For in depth Samba configurations see the Samba HOWTO Collection +  -- Для более глубокого погружения в настройки ​Samba смотрите [[http://​samba.org/​samba/​docs/​man/​Samba-HOWTO-Collection/​|Коллекцию ЧаВо по Samba]]. 
- +  -- Данное руководство доступно также в [[http://​www.amazon.com/​exec/​obidos/​tg/​detail/​-/​0131882228|печатном виде]]
-    The guide is also available in printed format+  -- Также хорошее руководство - [[http://​www.oreilly.com/​catalog/​9780596007690/​|Using Samba]] от O'​Reilly. 
- +  -- [[http://​samba.org/​samba/​docs/​man/​Samba-HOWTO-Collection/​securing-samba.htmlhttp://​samba.org/​samba/​docs/​man/​Samba-HOWTO-Collection/​securing-samba.html|18 глава]] из коллекции ЧаВо по Samba посвящена безопасности
-    ​O'​Reilly's Using Samba is also a good reference+  -- Для дополнительной информации по Samba и ACL смотрите страницу [[http://​samba.org/​samba/​docs/​man/​Samba-HOWTO-Collection/​AccessControls.html#​id397568|Samba ACLs]]
- +  -- Страница [[https://​help.ubuntu.com/​community/​Samba|Ubuntu Wiki Samba]].
-    Chapter 18 of the Samba HOWTO Collection ​is devoted to security+
- +
-    For more information on Samba and ACLs see the Samba ACLs page +
- +
-    The Ubuntu Wiki Samba page. +
  
 ---- ----