Установка samba freebsd 11. FreeBSD: установка и быстрая настройка сервера SAMBA

Я думаю, для быстрого старта в любой новой профессиональной области нет лучшего источника информации — в её концентрированном и систематизированном виде, — чем специализированная на этой же самой теме книга. Как минимум, так было раньше. Сейчас появилась очень хорошая альтернатива этому, которая очень хорошо пошла особенно у молодежи — это обучающие видеокурсы .

В самом деле, их наглядность и доступность порой творят чудеса — какие-то совершенно новые концепции здесь можно хорошо усваивать буквально «с колес». Лично моё мнение, чаще всего такие видеоуроки не могут (пока?) полноценно заменить стоящую и глубокую книгу, но вот в качестве быстрого введения и чисто психологического средства снятия различных фобий и блоков у «полного нуля» перед новой для него темой — это самое то, что нужно.

Итак, я уже освещал подробно все книги (печатные) вышедшие , теперь настала пора перечислить (с работающими линками на скачку, конечно) — все обучающие видеокурсы на русском по FreeBSD.

Скачивайте и учитесь быстро и легко!

Перед началом перечисления оных — сразу замечание. Все эти курсы предназначены для начинающих пользователей только! Здесь даются столь важные основы для самостоятельного старта — короче, самое сложное и нужное именно для новичка, здесь нет никаких элементов rocket science. Все ссылки мною были проверены на момент публикации — все работало. И даже если где-то что-то уже и не скачиватся, с помощью поиска, почти всегда по выходным данным курса, приведенным здесь, можно самостоятельно найти какие-то альтернативные рабочие ФО для их скачки.


№1: FreeBSD: Базовый и сетевой курс по FreeBSD, Программируй на Unix Shell — Г.Чилингаров

  • Базовый тренинг по FreeBSD — для самых новичков, как ставить систему, как инсталлировать программное обеспечение и так далее.
  • Сетевой курс по FreeBSD — как настраивать сеть, как установить ip адреса, маршрутизация и настройка NAT. Дается теоретический материал по работе сетей, по работе протокола IP, по основам маршрутизации.
  • Программируй на Unix Shell — пособие для тех, кто уже пользуется shell, но пока тратит свое время впустую и не заставляет shell делать большую часть задач автоматически.
  • BONUS — ответы на вопросы, дополнительные материалы.

FreeBSD: Базовый курс:

  • небольшой экскурс в историю UNIX систем, идеология системы, установка системы с нуля, дисковые разделы в FreeBSD, как стоит разбивать жесткий диск во время установки системы
  • инсталляция базового програмного обеспечения, установка/удаление пакетов и портов, обновление портов
  • добавление/удаление пользователей, смена пароля, управление пользователями, группы, как работают привилегии доступа
  • список популярных команд (посмотреть на пример подкаста)
  • текстовые редакторы (pico/vi/vim)
  • введение в ip сети, настройка сети
  • введение в ip маршрутизацию, что такое статическая/динамичесткая маршрутизация, настройка статической маршрутизации
  • настройка синхронизации времени, другие полезные сетевые сервисы
  • статистика сети
  • периодические задачи, cron, crontab
  • процессы в FreeBSD, статистика процессов, статистика дискового ввода-вывода

FreeBSD: Сетевой курс:

  • модель OSI, физический уровень, LLC
  • IP сети, tcpdump, настройка интерфейсов
  • введение в IP маршрутизацию, настройка маршрутизации в FreeBSD
  • Как работает маршрутизация в Unix системах
  • Настройка Bridging и NAT в FreeBSD. Полезные программы для отладки сети.
  • Полезные сетевые сервисы, inetd, sshd, ftpd

FreeBSD: Программируй на Unix Shell:

  • Каст #1 — Вводный материал
  • Каст #2 — Базовые понятие shell
  • Каст #3 — Ввод-вывод в shell, использование subshell
  • Каст #4 — Команды case, eval и эмуляция массивов в shell
  • Каст #5 — Команда sed
  • Каст #6 — Команда awk
  • Каст #7 — Что делать дальше?

Скачать можно здесь:


№2: Установка виртуальной машины FreeBSD в VMware

Оригинальное название: Установка виртуальной машины FreeBSD в VMware
Год выхода: 2010
Жанр: Видеоурок
Режиссер: Смоляной Сергей
Видео кодек: XviD
Видео: XVID MPEG-4 640×480 at 15.000 fps
Аудио: MPEG 1 Audio, Layer 3 (MP3) at 32.0 Кбит/сек 1 канал, 44.1 КГц
Размер: 1.59 Gb
  1. Инсталляция FREEBSD в программе VMWARE. 12 мин.
  2. Соединение 2-х виртуальных машин в локальную сеть. Часть 1 24 мин.
  3. Соединение 2-х виртуальных машин в локальную сеть.
  4. Часть 2 11 мин.
  5. Копируем файлы по сети. 6 мин.
  6. Русифицируем. 7 мин.
  7. Монтируем 23 мин.
  8. Украшаем. 15 мин.
  9. Подключаем интернет, порты (обновляем,устанавливаем,удаляем). 9 мин.
  10. Midnight Commander. 28 мин.
  11. Маска подсети. 20 мин.
  12. Инсталляция сервера DNS (master). 29 мин.
  13. Инсталляция SAMBA (share). 25 мин.
  14. WEB-сервер (Apache,PHP,MYSQL). 18 мин.
  15. FIREWALL (IPFW). 43 мин.
  16. Оконный менеджер Fluxbox (запуск, заставка на рабочий стол). Часть 1. 11 мин
  17. Оконный менеджер Fluxbox (русификация, перключатель раскладки клавиатуры xxkb). Часть 2. 9 мин.
  18. Оконный менеджер Fluxbox (меню). Часть 3. 17 мин.
  19. Оконный менеджер Fluxbox (иконки idesk, рабочие столы). Часть 4.


№3: Видео уроки по FreeBSD от Besha

Название: FreeBSD (видеотренинг)
Год выпуска: 2009
Исполнитель: http://besha.bos.ru/
Язык: русский
Жанр: компьютерные видеоуроки
Формат: AVI
Видео кодек: CRAM
Аудио кодек: PCM
Видео: 740×592, 10 Гц, 210 Кбит/сек
Аудио: 44100 Гц, Моно, 705 Кбит/сек
Размер: 1.21 GB
  • Урок 1: Показывается как можно установить операционную систему FreeBSD 7.2 на виртуальную машину
  • Урок 2: Демонстрируется выполнение некоторых команд FreeBSD которые помогут начинающим производить действия над файлами и папками, так же показано создание пользователя в системе.... З.Ы. Не забывайте об команде man)))
  • Урок 3: Рассказывается о базовых командах FreeBSD. О правах доступа к файлам и другое.
  • Урок 4: Показана установка MySQL сервера под операционной системой FreeBSD
  • Урок 5: Показана установка веб сервера Apache под операционной системой FreeBSD
  • Урок 6: Показывается процесс установки PHP под операционной системой FreeBSD
  • Урок 7: Рассказывается об обновлении дерева портов в FreeBSD
  • Урок 8: Показано как можно настроить FTP сервер на FreeBSD
  • Урок 9: Показано как настроить TFTP сервер на FreeBSD
  • Урок 10: Показано как настроить VPN сервер (MPD5) на FreeBSD
  • Урок 11: Настройка VPN IPSEC


№4: 8 видеоуроков по FreeBSD 8

Данный сборник содержит 8 видеоуроков по FreeBSD 8. В них наглядно и подробно описывается установка и настройка различных программ (с соответствующими привязками).

К каждому уроку прилагаются соответствующие файлы конфигурации.

Название: 8 видеоуроков по FreeBSD 8
Год выпуска: 2010
Жанр: Обучающее видео
Качество видео: Virtual PC Rec (~ 750kbps)
Видеокодек: Xvid (1024×768)
Язык: Русский
Формат файлов: AVI
Продолжительность: ~ 16ч.23м.
Размер файлов: 1,22 GB — Rar (4,70 GB — UnRar)
Видео: 1024×768, Format: MPEG-4 Visual, Format profile: Simple@L1, Codec: XVID, Width: 1 024 pixels
Height: 768 pixels
Display aspect ratio: 4:3
Frame rate: 10.000 fps

  • 01. Samba — файл сервер в сети Microsoft, проверка валидации пользователей в Active Directory. (2ч.20м.)
  • 02. Настройка VPN сервера MPD5 на FreeBSD 8.1. (1ч.18м.)
  • 03. IPFW + NAT + кеширующий DNS BIND + прозрачный прокси Squid. (3ч.08м.)
  • 04. Настройка прокси сервера Squid с авторизацией в Active Directory. (1ч.26м.)
  • 05. Samba + OpenLDAP как контроллер домена Windows. (2ч.54м.)
  • 06. Система мониторинга Nagios на FreeBSD 8.1. (2ч.35м.)
  • 07. Почтовый сервер на базе FreeBSD 8 (SendMail) + SpamAssassin + IMAP-UW. (1ч.04м.)
  • 08. Подробное руководство по установке и настройке почтовой системы Postfix с привязкой к базе данных MySQL, POP3 и IMAP серверу Dovecot, антувирусу clamav, антиспаму Spamassassin. Установка Web-интерфейса Postfixadmin. (+ Руководство в формате PDF) (1ч.38 м.)

В этой статье я опишу создание файл-сервера с установленной FreeBSD 9.2 (Samba-3.6) с авторизацией в домене Windows 2003.

Когда я впервые поднимал файл-сервер на FreeBSD, наткнулся на множество проблем, решение которых приходилось долго искать по тематическим сайтам и форумам. Поэтому здесь на каждом этапе будут описаны типичные проблемы и их решения. Думаю, многим эта статья поможет разрешить некоторые вопросы.


Итак, начнём с начальных данных:

  • Имя домена: domain.ru;
  • Имя хоста: msrv-file.domain.ru;
  • IP хоста: 10.1.1.6;
  • Имя PDC (он же DNS/AD/DHCP/NTP): msrv-dc1.domain.ru;
  • IP PDC: 10.1.1.10;
  • Болванка с FreeBSD 9.2-i386-bootonly;
  • Доступ в Интернет - обязательно;
  • Печать не нужна.
Не буду углубляться в тонкости установки системы. По этому поводу в интернете тонны информации и как ставить систему пусть каждый решает сам. В данном случае я не пересобирал ядро и не поднимал RAID-массивы. Всё и так прекрасно работает.

Отмечу лишь некоторые нюансы:

  • 1. Во время инсталяции ОС при настройке сетевого интерфейса я осознанно выбрал DHCP, для чего на самом DHCP-сервере было сделано резервирование IP по MAC. Узнать MAC-адрес интерфейса можно с помощью утилиты dmesg.
  • 2. Для правильного резолва я сделал соответствие в DNS-сервере на файл-сервер, а также на самом файл-сервере в файл /etc/hosts добавил следующие строки:

    10.1.1.10 msrv-dc1.domain.ru 10.1.1.6 msrv-file.domain.ru

  • 3. После установки ОБЯЗАТЕЛЬНО сверяем время с PDC (конечно при условии, что он является NTP). При разнице во времени более 5ти минут, файл-сервер будет терять домен.
    Сверяемся командой:

    #ntpdate 10.1.1.10

Переходим к установке Samba (вот здесь первой моей ошибкой была установка порта Heimdal, который, как оказалось, вообще ставить не нужно):

#cd /usr/ports/net/samba36 #make install clean && rehash

Ставил с параметрами:

[X] LDAP With LDAP support [X] ADS With Active Directory support [X] WINBIND With WinBIND support [X] ACL_SUPPORT With ACL support [X] SYSLOG With Syslog support [X] QUOTAS With Disk quota support [X] POPT With system-wide POPT library

Все необходимые пакеты установщик подтянет автоматически согласно зависимостям. Во время установки каждого дополнительного пакета система часто будет спрашивать о параметрах установки. Я всё оставлял по дефолту, только лишь отключал поддержку протокола IPv6, т.к. он нам не нужен.

Далее забиваем конфиги, размещённые в конце статьи. Отмечу, что соблюдение регистра букв обязательно. Если используете Putty, то можно копипастить прямо из вложенных мной конфигов.
smb.conf должен лежать в /usr/local/etc/. Остальные конфиги - в /etc.
Если файла по какому-то недоразумению нет, то создаём его простой командой и тут же забиваем:

#ee /usr/local/etc/smb.conf
Или, например:

#ee /etc/krb5.conf
Проверить конфиг самбы можно утилитой testparm, которая укажет на неверные записи. Опять же, неверные записи не всегда являются таковыми. Тут нужно знать тонкости.

После того, как конфиги забиты запускаем службу samba:

# /usr/local/etc/rc.d/samba.sh start
Или проще:

#service samba start
Хорошим ответом будет:

Starting SAMBA: removing stale tdbs: Starting nmbd. Starting smbd. Starting winbindd.
После любого изменения в конфиге самбы нужно обязательно её перезапустить.

#service samba restart
Итак, система стоит, ПО скомпилировано, конфиги забиты. Пришло время ввода машину в домен.
Получаем билет:

# kinit -p dl_admin // где dl_admin - администратор домена [email protected]"s Password: // система попросит пароль админа домена # klist // проверяем полученный билет Credentials cache: FILE:/tmp/krb5cc_0 // ответ должен быть примерно таким Principal: [email protected] Issued Expires Principal Oct 05 10:37:52 Oct 05 17:17:52 krbtgt/[email protected]
Вводим самбу, а соответственно и сам сервер в Active Directory:

# net ads join -U dl_admin dl_admin"s password: Joined "MSRV-FILE" to realm "DOMAIN.RU"
Проверяем:

# wbinfo -p Ping to winbindd succeeded on fd 4

# wbinfo -t checking the trust secret via RPC calls succeeded

# wbinfo -g возвращает список групп пользователей

# wbinfo -u возвращает список пользователей

# id dl_admin возвращает идентификатор пользователя

На этом, собственно, можно и закончить, но чтобы не было проблем с записью в расшаренный каталог, рекомендую назначить админа домена в качестве владельца для расшары с указанием группы юзеров:

# chown -R dl_admin:"Domain Users" /home/share # chmod -R 770 /home/share

Вложения:

krb5.conf

Default = FILE:/var/log/kerberos/krb5libs.log kdc = FILE:/var/log/kerberos/krb5kdc.log admin_server = FILE:/var/log/kerberos/kadmin.log ticket_lifetime = 24000 default_realm = DOMAIN.RU dns_lookup_realm = false dns_lookup_kdc = false kdc_req_checksum_type = 2 checksum_type = 2 ccache_type = 1 forwardable = true proxiable = true clockskew = 300 v4_instance_resolve = false v4_name_convert = { host = { rcmd = host ftp = ftp } plain = { something = something-else } } DOMAIN.RU = { kdc = tcp/10.1.1.10:88 admin_server = tcp/10.1.1.10:749 default_domain = DOMAIN.RU } .domain.ru = DOMAIN.RU domain.ru = DOMAIN.RU debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false krb4_convert = false krb4_get_tickets = false


nsswitch.conf

group: files winbind group_compat: nis hosts: files dns networks: files passwd: files winbind passwd_compat: nis #shells: files #services: compat #services_compat: nis #protocols: files #rpc: files


rc.conf

hostname="msrv-file.domain.ru" keymap="ru.koi8-r.win.kbd" ifconfig_bge0="DHCP" sshd_enable="YES" moused_enable="YES" ntpd_enable="YES" powerd_enable="YES" # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable dumpdev="NO" # -- sysinstall generated deltas -- # Sun Oct 5 10:31:10 2014 mousechar_start="3" font8x8="cp866-8x8" font8x14="cp866-8x14" font8x16="cp866b-8x16" scrnmap="koi8-r2cp866" keymap="ru.koi8-r" # smbd_enable="YES" samba_enable="YES" nmbd_enable="YES" winbindd_enable="YES" # -- sysinstall generated deltas -- # Sun Oct 5 15:09:56 2014 tcp_extensions="YES"


resolv.conf

# Generated by resolvconf nameserver 10.1.1.10


smb.conf

Dos charset = cp866 unix charset = koi8-r display charset = koi8-r workgroup = DOMAIN realm = DOMAIN.RU netbios name = MSRV-FILE server string = File Server %v security = ADS auth methods = winbind map to guest = Bad User log file = /var/log/samba/log.%m max log size = 50 client signing = Yes preferred master = No local master = No domain master = No dns proxy = No winbind use default domain = Yes inherit acls = Yes hosts allow = 10.1.1., 127. map acl inherit = Yes case sensitive = No nt acl support = Yes os level = 10 socket options = SO_RCVBUF=8192 SO_SNDBUF=8192 TCP_NODELAY load printers = No printing = bsd guest account = nobody guest ok = yes winbind enum users = Yes winbind enum groups = Yes winbind nested groups = No winbind refresh tickets = Yes idmap config * : range = 600-20000 idmap config * : backend = tdb interfaces = bge0 comment = Temporary file space path = /tmp read only = No create mask = 0666 create mode = 666 directory mode = 666 directory mask = 0777 guest ok = Yes comment = Share Directory path = /home/share write list = "@DOMAIN.RU\Domain Admins", "@DOMAIN.RU\Domain Users" read only = No create mode = 660 directory mode = 660 create mask = 0660 directory mask = 0770

Теги: Добавить метки

Первым делом — обновляем порты:

# cd /usr/ports
# portsnap fetch update

# cd /usr/ports/net/
# ls | grep samba

samba34
samba35
samba36

Приступаем к установке:

# cd /usr/ports/net/samba36

Из опций можно добавить With Syslogd :

LDAP — поддержка LDAP .
ADS -поддержка Active Directory. Отключаем.
CUPS — поддержка сервера печати CUPS.
WINBIND — обьединение пользвателей Windows/Unix. Почитать можно тут>>>.
ACL_SUPPORT — поддержка Access Control List.
AIO_SUPPORT — поддержка возможности асинхронного ввода-вывода.
FAM_SUPPORT — API для мониторинга за состоянием файла или группы файлов/директорий.
SYSLOG — поддержка логирования syslog. Включаем.
QUOTAS — поддержка квотирования. Поскольку диски не резиновые, а пользователи жадные до дискового пространства — включаем.
UTMP — включаем поддержку уникального идентификатора для каждого вновь подключенного пользователя. Поскольку понижает производительность — выключаем.
PAM_SMBPASS — поддержка синхронизации системных пользователей и пользователей samba. В нашем случае неактуально, поэтому оставляем выключеным.
DNSUPDATE — поддержка динамического обновления DNS. Поскольку данный вариант работает с поддержкой Active Directory, что нам не нужно, то оставляем отключенным.
EXP_MODULES — поддержка експериментальных модулей. А нам нужна стабильность в работе.
POPT — поддержка системной библиотеки анализа коммандной строки.
PCH — предкомпиляционная оптимизация заголовков.
MAX_DEBUG — включение режима максимальной отладки.
SMBTORTURE — утилита для стресс-тестирования серверов.

Добавляем автозапуск при старте сервера. В файл /etc/rc.conf добавляем:

samba_enable=»YES»

nmbd_enable=»YES»
smbd_enable=»YES»

Теперь — добавим пользователя:

# adduser sambaroot
Username: sambaroot
Full name:
Uid (Leave empty for default):
Login group :
Login group is sambaroot. Invite sambaroot into other groups? :
Login class :
Shell (sh csh tcsh bash rbash nologin) : nologin
Home directory :
Home directory permissions (Leave empty for default):
Use password-based authentication? :
Use an empty password? (yes/no) :
Use a random password? (yes/no) :
Enter password:
Enter password again:
Lock out the account after creation? :
Username: sambaroot
Password: *****
Full Name:
Uid: 1002
Class:
Groups: sambaroot
Home: /home/sambaroot
Home Mode:
Shell: /usr/sbin/nologin

Для каждого созданного пользователя — выполняем следующую команду, что бы SAMBA добавил его в собственную базу (в случае, если не используется MySQL или LDAP )

# smbpasswd -a sambaroot
New SMB password:
Retype new SMB password:
Added user sambaroot.

Проверить, какие пользователи есть в SAMBA можно командой:

# pdbedit -L
setevoy:1001:User &
sambauser:1003:User &

Теперь — пробуем запустить сервер:

# service samba onestart
Removing stale Samba tdb files: …… done
Starting nmbd.
Starting smbd.

Проверяем:

# service samba status
nmbd is running as pid 44633.
smbd is running as pid 44636.

Если появляется сообщение такого плана «nmbd is not running » — решение описано .

В целом, мой файл конфигурации получился таким:


workgroup = WORKGROUP
server string = Setevoy home samba server
security = user
load printers = no
log file = /var/log/samba/log.%m
max log size = 50
interfaces = re0
dns proxy = no
display charset = koi8-r
unix charset = koi8-r
dos charset = cp866


comment = Public Stuff
path = /home/samba
public = yes
writable = yes
guest ok = yes
write list = @wheel


comment = Home Directories
browseable = no
read only = no

Краткое пояснение к опциям:

# comment — комментарий к ресурсу
# path — путь к каталогу, который необходимо «расшарить»
# browseable — будет ли каталог виден в «сетевом окружении», или будет скрытым
# writable — возможно ли записывать данные в этот сетевой ресурс
# valid users — список пользователей, которым разрешен доступ к данной шаре
# hosts allow — перечень IP, которым разрешен доступ к данной шаре

FreeBSD. Администрирование серверов

Duration 10:02:01

FreeBSD. Администрирование серверов - Полный список уроков

Развернуть / Свернуть
  • Урок 1. Введение 01:53:21
  • Урок 2. Инструментальные средства системного администрирования 01:52:03
  • Урок 3. Установка портов, установка пакетов 02:08:27
  • Урок 4. Сервисы 02:11:36
  • Урок 5. Диагностика системы и решение проблем 01:56:34

Твоя оценка

Комментарии

Последнее добавленное

Ru 28-03-2019

Bootstrap - самый популярный в мире на сегодняшний день HTML-, CSS- и JavaScript-фреймворк для верстки адаптивных, кроссбраузерных, веб-страниц и веб-проектов. Bootstrap помогает при верстке страниц, упрощает и ускоряет ее. Фреймворк состоит из множества различных компонентов, которые...

Ru 27-03-2019

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

En 25-03-2019

В этом курсе мы рассмотрим составные компоненты Angular Material. Мы начнем с компонентов, связанных с навигацией, макетом и структурой. Затем мы пройдемся по компонентам утилит, ввода и данных, демонстрируя, как каждый из них можно использовать в соответствии с потребностями вашего проекта.

Как правильно писать код на java, какие лучшие практики написания кода существуют. Данный курс предоставлен для полноценного изучения лучших практик java, он подойдет как людям только начинающим изучить java, так и для тех кто уже имеет опыт работы. Вы сможете полноценно изучить данные практики...

En 22-03-2019

Получите контекст и практику, чтобы преуспеть с некоторыми из самых сложных тем на собеседованиях - теория графов. На этом семинаре будут рассмотрены детали реализации деревьев и графиков, типичные вопросы интервью и алгоритмы, которые их решают. Такого рода вопросы вы можете ожидать в самых...

En 22-03-2019

На этом семинаре вы узнаете, как максимально эффективно использовать свои программы с помощью объектно-ориентированного языка Python и других расширенных языковых функций. К концу семинара у вас появятся необходимые навыки для написания базового веб-приложения c Flask, включая внутренний API...

VPN (mpd5)>>DNS (bind 9.x)>>Kernel>> Squid (NAT)>>Postfix (Mail)>> Samba

Мои изыскания в области юниха продолжаются. Планирую посвятить этой теме еще месяц интенсивного изучения, ну а далее уже постепенно крутить его в продакшин среде.

Медленно но верно подошел к настройке сервера Samba. В данном случае он меня интересует как файл-сервер.

Итак приступим к установке…

Обновим порты:

#portsnap fetch update

cd /usr/ports/net/samba34

LDAP With LDAP support

ADS With Active Directory support

CUPS With CUPS printing support

WINBIND With WinBIND support

[X] ACL_SUPPORT With ACL support

AIO_SUPPORT With Asyncronous IO support

[X] FAM_SUPPORT With File Alteration Monitor

[X] SYSLOG With Syslog support

[X] QUOTAS With Disk quota support

UTMP With UTMP accounting support

PAM_SMBPASS With PAM authentication vs passdb backends

CLUSTER With experimental cluster support

DNSUPDATE With dynamic DNS update(require ADS)

EXP_MODULES With experimental modules

[X] POPT With system-wide POPT library

[X] PCH With precompiled headers optimization

MAX_DEBUG With maximum debugging

SMBTORTURE With smbtorture

samba_enable="Yes"


ee /usr/local/etc/smb.conf

#======================= Global Settings =====================================
# В разделе global задаются все основные настройки (голбальные для сервера Samba)

# Название рабочей групы. Должно совпадать с названием рабочей групы

# на клиентских машинах.
workgroup = LOCALNET

# Строка описания сервера. Высвечивается в сетевом окружении.
server string = FreeBSD Samba Server
# Тип входа. user — авторизация пользователей по логину и паролю. Те, кто

# хочет создать файлообменник, могут воспользоваться опцией share.

# Список сетей, которым разрешено коннектиться к серверу.
hosts allow = 192.168.0. 127.

# Куда будут писаться логи, и в каком формате.
log file = /var/log/samba/log.%m

# Задаем максимальный размер лог-файла (в килобайтах). 10 мегабайт — для среднего сервера

# достаточно

max log size = 10240

# Если несколько сетевых интерфейсов, указываем, на каких «слушать» запросы пользователей.

# Даже если интерфес только один, по привычке указываю. А вдруг что-то поменяется 😉
interfaces = 192.168.0.155/24

# Если уж есть samba-сервер, то сделаем его мастер-браузером для нашей сети.
local master = yes

# «Крутость» операционной системы. Учитывается при выборах мастер-браузера.
os level = 255

#Дает дополнительный приоритет во время «голосования» и выборов мастер-браузера.

preferred master = yes

#============================ Share Definitions ==============================
# Здесь начинается описание расшареных ресурсов

# comment — комментарий к ресурсу

# path — путь к каталогу, который необходимо «расшарить»

# browseable — будет ли каталог виден в «сетевом окружении», или будет скрытым

# writable — возможно ли записывать данные в этот сетевой ресурс

# valid users — список пользователей, которым разрешен доступ к данной шаре

# hosts allow — перечень IP, которым разрешен доступ к данной шаре

# guest ok — разрешаем гостевой доступ


comment = Share for admins
path = /var/samba/admin
browseable = yes
writable = yes
valid users = winadmin
hosts allow = 192.168.0.2
comment = Share for all users
path = /var/samba/share
browseable = yes
writable = yes
guest ok = yes

Проверим командой:

Далее добавим пользователя winadmin. samba имеет свою базу логинов и паролей. Работать с этой базой можно с помощью утилиты smbpasswd. Однако не стоит забывать про то, что для корректной работы в системе должен присутствовать точно такой же пользователь. Что ж, если должен, значит сделаем. Добавим системного пользователя winadmin, правда доступ к консоли ему давать не будем 😉

# adduser
Username: winadmin
Full name: Local administrators
Uid (Leave empty for default):
Login group : nobody
Login group is nobody. Invite admin into other groups? :
Login class : rusian
Shell (sh csh tcsh nologin) : nologin
Home directory :
Home directory permissions (Leave empty for default):
Use password-based authentication? : no
Lock out the account after creation? :
Username: winadmin
Password:
Full Name: Local administrators
Uid: 1003
Class: rusian
Groups: nobody
Home: /home/admin
Home Mode:
Shell: /usr/sbin/nologin
Locked: no
OK? (yes/no): yes
adduser: INFO: Successfully added (admin) to the user database.
Add another user? (yes/no): no
Goodbye!

Теперь воспользуемся утилитой smbpasswd, чтобы добавить пользователя samba:

# smbpasswd -a winadmin
New SMB password:
Retype new SMB password:
startsmbfilepwent_internal: file /usr/local/etc/samba/smbpasswd did not exist. File successfully created.
Added user winadmin.

Опция указывает на то, что пользователь в базе пользователей samba еще не существует, то есть указывает, что мы добавляем нового пользователя. В случае, если вам необходимо просто сменить пароль для пользователя, этот ключ опускаем.

Как вы уже догадались, пароли samba и пароли системных пользователей хранятся в рахных хранилищах, соответственно могут отличатся (и я рекомендую использовать разные пароли). Из вывода видно, что пароли samba хранятся в файле /usr/local/etc/samba/smbpasswd.

У меня еще не созданы папки шар. Нужно создать:). Кстати, samba бережно относится к правам доступа файлов. Доступ будет осуществлятся от имени авторизовавшегося пользователя. Соответственно выставляем необходимые права доступа:

# mkdir -p /var/samba/winadmin

# mkdir /var/samba/share

# chown winadmin:nobody /var/samba/winadmin/

# chmod 777 /var/samba/share

Пробуем запустить samba.

# sh /usr/local/etc/rc.d/samba start
Removing stale Samba tdb files: done
Starting nmbd.
Starting smbd.
# ps -ax | grep smb
97289 ?? Ss 0:00,01 /usr/local/sbin/nmbd -D -s /usr/local/etc/smb.conf
97293 ?? Is 0:00,01 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf
97294 ?? I 0:00,00 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf

Кажется все заработало… На всякий случай посмотрим, что делается в логах:

# tail — f /var/log/messages

Sep 4 10:48:42 mail nmbd: nmbd/nmbd_become_lmb.c:become_local_master_stage2(396)

Sep 4 10:48:42 mail nmbd:
Sep 4 10:48:42 mail nmbd: Samba name server MAIL is now a local master browser for workgroup LOCALNET on subnet 192.168.0.155
Sep 4 10:48:42 mail nmbd:
Sep 4 10:48:42 mail nmbd: *****

Отлично. Samba даже стала мастер-браузером для рабочей группы LOCALNET в подсети 192.168.44.0/24. После набора в командной строке адреса сервера (\\192.168.44.100), появилось окно запроса логина и пароля доступа к сетевому ресурсу. После ввода логина winadmin и заданого пароля, доступ был разрешен. Это уже неплохо 🙂

Чтобы ознакомиться с полными возможностями samba, воспользуемся интерфейсом управления.

Немного общей информации… SWAT (Samba Web Administration Tool) — программа, которая позволяет сконфигурировать сервер Samba через web-интерфейс изменяя таким образом конфигурационный файл smb.conf. SWAT является частью набора Samba, поэтому развивается параллельно и не использует устаревшие опции в smb.conf.

SWAT запускается через суперсервер inetd. Чтобы разрешить запуск SWAT, необходимо в конфигурационном файле /etc/inetd.conf раскомментировать такую строку:

swat stream tcp nowait/400 root /usr/local/sbin/swat swat

Добавляем в rc.conf поддержку inetd и запускаем службу:

# echo ‘inetd_enable=»YES»‘ >> /etc/rc.conf

# sh /etc/rc.d/inetd start

Открываем любимый браузер и в строке адреса набиваем: http://ip_interface_samba-servera:901 . В моем случае этоhttp://192.168.44.100:901 . В окне запроса логина и пароля вбиваем рутовый логин и пароль.

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

На что еще стоит обратить пристальное внимание, так это на безопасность. Наведу несколько опций контроля доступа, которые могут пригодится:

  • encrypt passwords глобальная опция; принимает значение no или yes. Отвечает за возможность включения или отключения шифрования паролей при пересылке по сети.
  • smb passwd file — глобальная опция; указывает пуль к файлу, в котором хранится список пользователей и паролей Samba (по умолчанию имеет значение /usr/local/etc/samba/smbpasswd).
  • unix password sync — глобальная опция; указывает на необходимость синхронизации паролей Samba с системными паролями; принимает значение yes или no.
  • null passwords — глобальная опция; разрешает вход пользователей с пустым паролем.
  • update encrypted — глобальная опция; при установке значения в yes, указывает изменять файл с шифрованными паролями, в случае, когда пользователь входит в систему, указывая пароль в явном виде.
  • invalid users — список пользователей, которым будет отказано в доступе к ресурсу
  • path — опция, используемая при описании ресурсов; позваоляет задать системную директорию.
  • comment — комментарий к общедоступному ресурсу.
  • writable — определяет, доступен ли ресурс на запись.
  • admin users — список пользователей, которые будут иметь доступ как пользователь root.
  • valid users — список пользователей, имеющих доступ к ресурсу.
  • read list — список пользователей, имеющих доступ только на чтение к ресурсу с правами на запись.
  • write list — список пользователей, имеющих право чтения и записи в ресурсе, доступном только на чтение.
  • browsable — определяет видимость ресурса для пользователей.
  • guest ok — определяет, разрешен ли доступ гостевых пользователей.
  • guest only — если установлено значение в yes, то доступ к ресурсу смогут получить только гостевые пользователи.
  • username map — позволяет указать файл, в котором хранится список сопоставлений имен груп и пользователей системы FreeBSD с именами и группами Windows (пароли должны совпадать). Пример записи из файла: «root = Admin Administrator»