Samba - установка и настройка old

Материал из AlexNook
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.
Логотип Samba

Samba - это программа работающая по протоколу smb или cifs, способная обеспечивать взаимодействие систем на базе Linux с системами гед стоит ОС от Microsoft.

Рассмотрим установку Samba и настройку серверной её части для работы в сети Microsoft. То есть мы имеем сервер с установленным на него ОС Gentoo куда и хотим поставить Samba, которая позволит всем компьютерам локальной сети видеть на сервере с ОС Gentoo "расшаренные" папки в стиле того как это делает ОС Windows.

Установка

Note: Следует обратить внимание на классную статью по настройке самбы под Генту вот тут

Для установки в Gentoo воодим:

USE="acl automount kerberos pam swat syslog" emerge samba

При этом используются следующие USE флаги:

Use Flags: acl automount kerberos pam swat syslog (?)

  • acl - Include support for Kerberos. Enables Access Control Lists. The ACL support in Samba uses a patched ext2/ext3, or SGI's XFS in order to function properly as it extends more detailed access to files or directories; much more so than typical *nix GID/UID schemas
  • automount - Enables automount support
  • kerberos - Adds kerberos support for authentication to AD
  • pam - Include support for pluggable authentication modules (PAM). This provides the ability to authenticate users on the Samba Server, which is required if users have to login to your server. The kerberos USE flag is recommended along with this option
  • swat - Includes the files necessary to use the Samba Web Administration Tool (SWAT)
  • syslog - для логирования

При этом автоматом поставится пакет sys-apps/xinetd. Если нет, то его необходимо установить (emerge xinetd).

Далее добавим его в автозагрузку:

rc-update add xinetd default

Далее правим конфиг Swat, где включаем его (по умолчанию он выключен):

nano /etc/xinetd.d/swat

Обратите внимание на опцию disable = yes которую надо исправить в соответствии с моим конфигом:

File: /etc/xinetd.d/swat
 service swat 
 { 
        port            = 901 
        socket_type     = stream 
        protocol        = tcp
        wait            = no 
        only_from       = localhost 
        user            = root 
        server          = /usr/sbin/swat 
        log_on_failure += USERID 
        disable         = no
 }

Так же я исправил опцию only_from для указания интерфейса который будет слушаться. При указании 0.0.0.0 - будут слущаться все интерфейсы. По умолчанию стоит localhost. Так же можно изменить и порт - port.

После этого выполним следующую команду, которая позволит установить пароль для пользователя root для самбы:

smbpasswd -a root

Далее логинимся по адресу http://localhost:901 и, введя пароль и логин root'а настраиваем самбу через веб!

Note: Для использования NetBIOS'а Windows'ом возможно иммет смысл поправить строку в файле
File: /etc/nsswitch.conf
hosts: files dns wins
, добавив туда слово wins

Настройка сервера

В первый раз ИМХО есть смысл настроить сервер врчуную через конфиг, а потом уже управлять им и подстраивать его можно будет через веб интерфейс Swat.

Для начала скопируем полностью пример конфигурационного файла с коментариями в папку, где должен находится рабочий конфиг.

cp /etc/samba/smb.conf.example /etc/samba/smb.conf

В данном файле всё очень подробно прокоментированно, так что есть смысл дочитать его до конца. Если всё же что-то будет не ясно или не до конца понятно то милости просим в страницы мана:

man smb.conf

После того, как файл настроен необходимо его сохранить в вашем любимом редакторе и запустить сервер самбы:

/etc/init.d/samba start


Кстати заметте, что при перезапуске сервера через консоль, он автоматически в дополнение к демону smbd перезапускает в качестве зависимости и демон nmbd, что я и советую делать при рестарте через веб админку.

Далее добавляем сервер в автозагрузку:

rc-update add samba default

Рассматривать весь файл конфигурации я не буду, а раскажу, как можно настроить сервер на работу в обычной домашней локальной сети для удобной организации файловой "свалки" с возможность полного доступа к ней всех членов домашней сети, включая выполнение файлов (к примеру удобно воспроизводить видео не скачивая как требует того протокол FTP)

Настройка на полный доступ для домашней сети

Приведу пример конфига уже с моими коментариями прямо в нём:

File: /etc/samba/smb.conf
# Samba config file created using SWAT
# from 192.168.0.104 (192.168.0.104)
# Date: 2008/09/05 17:00:49

#Глобальные настройки
[global]
        netbios name = Router_a
#рабочая группа домашней виндовой сети
        workgroup = FRC
#Название которое отображается в заголовке окна при заходе на сервер (%v - версия самбы)
        server string = Router_a
#Говорит о типе доступа на сервер. SHARE - это простая "шара", USER - для доступа по реквизитам логин/пароль
#       security = SHARE
        security = User
#Всех гостей интерпритируем как не верных юзеров		
        map to guest = Bad User
#Степень подробности логов (от 1 до 10) 
        log level = 3
#Путь куда логи сохраняем - %m это имя хоста зашедшего на сервер
        log file = /var/log/samba/log.%m
#Максимальный размер лога в килобайтах
        max log size = 10000
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
#Как я понял винда очень не любит когда кто-то выступает в роли мастера и завладевает конектом кроме неё самой
        preferred master = No
        local master = No
#Не использовать прокси
        dns proxy = No
#Интерфейсы, которые слушает демон
        interfaces = 192.168.0.0/24
#Разрешённые к коннекту подсети (отсутствие последней цифры означает что она может быть любой)
        hosts allow = 192.168.0., 192.168.1.

#read / write share
[secret]
        path = /path/to/secret/readwrite/share
        read only = No
        valid users = username
        create mask = 0740
        directory mask = 0750
        guest ok = no
		
#only read share		
[public]
        path = /path/to/public/readable/share
        read only = Yes
        valid users = username
        guest ok = no

И самое главное не забыть дать нужные права к папкам с шарами

chmod 750 /path/to/share/samba

Ссылки

  1. HOWTO Samba в Gentoo