Fedora linux forum

Форум русской поддержки ОС Fedora linux

#1 2008-09-18 14:50:04

oNe3
Member
Зарегистрирован: 2008-09-18
Сообщений: 36

How to Samba 3.x

Опишу как я настраивал samba на centos 5.1

Были поставлены следующие задачи:
   Один каталог private в который может осуществляться запись и чтение любым пользователям видимый только в 2х их 3х сегментах сети.
   Каталог public4all видимый из всех 3х сегментов сети и в который разрешена запись любым пользователям.
   Скрытый каталог secure доступ в который осуществляется по паролю и невидимый при обзоре сервера.
   Доступ из любых ОС в том числе включая win9x.
   Распознавание NetBios имен виндозных машин.

Для этих целей был создан следующий файл конфигурации smb.conf.

[global]
# отключаем принтеры
    load printers = no
# разрешаем пустые пароли
    null passwords = yes
# список хостов которым разрешается подключатся
    hosts allow = 127. 192.168.81. 192.168.80. 192.168.45.
    passdb backend = tdbsam
# включаем поддержку wins для работы с именами машин
    wins support = yes
# имя и описание сервера
    netbios name = Fileserver
    server string = Fileserver
    printable = no
# делаем наш сервер главным браузером сети
    local master = yes
    workgroup = MYGROUP
    os level = 33
# задаем права для создаваемых файлов
    create mode = 0664
# указываем на файл с паролями
    smb passwd file = /etc/samba/smbpasswd
# твик самбы, увеличивает скорость работы
    socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
# устанавливаем режим безопасности
    security = share

    preferred master = yes

# права для вновь создаваемых каталогов
    directory mode = 0775

# заставляем самбу писать отдельный лог на каждую машину
    max log size = 50
    log file = /var/log/samba/%m.log
   
[homes]
    comment = Home Directories
    browseable = no
    writable = yes
    guest ok = yes
        valid users = %S
        create mode = 0664
        directory mode = 0775   
   
[Profiles]
    path = /var/lib/samba/profiles
    browseable = no
    guest ok = yes
   
[private]
    comment = private
    path = /home/private
    force user = private
    browseable = yes
    public = yes
    writable = yes
    printable = no
    hosts allow = 127. 192.168.81. 192.168.45.   

[public4all]
    comment = public4all
    path = /home/public4all
    force user = public4all   
    browseable = yes
    public = yes
    writable = yes
    printable = no

[secure]
    comment = secure
    path = /home/secure/share
    browseable = no
    public = no
    writable = yes
    printable = no
       guest ok = no
       valid users = secure



Далее нам нужно только лишь создать юзера самбы чтобы по его имени и паролю мы могли попасть в закрытые от чужих глаз каталоги.

# smbpasswd -a secure

и проверить добавился ли он в базу пользователей самбы

# pdbedit -L
secure:523:secure


Еще хочу добавить на случай если Вы захотите сделать папку невидимой при обзоре но доступной при подключении диска без пароля достаточно изменить параметр public

public = no


P.S. Это конечно больше пример чем мануал, но надеюсь он поможет разобраться с samba wink
Буду рад выслушать замечания и предложения по дальнейшему развитию описания smile


Недавно возникла надобность контролировать кто и что делает с файлами.

Начнем с того что в секцию [global] файла smb.conf добавим(исправим) следующие строки.

Код:

[global]
log file = /var/log/samba/%m.log
log level = 0 vfs:2
syslog = 0

Далее нужно немного подправить smb.conf, в секции объявления расшаренных каталогов.

Код:

[public4all]
comment = public4all
path = /home/mines/123
force user = mines
browseable = yes
public = yes
writable = yes
printable = no
# добавим эту секцию
[b] vfs objects = full_audit
full_audit:prefix = %H|%m|%a|%u|%I
full_audit:failure = none
full_audit:success = mkdir rmdir write pwrite sendfile rename unlink
# может принимать следующие значения — connect disconnect opendir mkdir rmdir closedir open close read pread write pwrite sendfile rename unlink chmod fchmod chown fchown chdir ftruncate lock symlink readlink link mknod realpath
full_audit:facility = local5
full_audit:priority = notice[/b]

Затем, ввиду того что опция  syslog = 0 все равно не действует на аудит, его сообщения продолжают сыпаться в /var/log/messages, мы немного подправим файл /etc/syslog.conf. Жирным выделены добавленные строки.

Код:

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none[b];local5[/b] /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
[b]# Save samba audit messages.
local5.notice /var/log/samba/log.audit[/b]

Таким образом мы получим подробную информацию о том кто чего творил с нашими файлами smile
p.s. Думаю не сложно догадаться как вести разные логи на разные шары wink

Неактивен

 

#2 2008-09-29 11:17:24

valdemar_ru
Member
Зарегистрирован: 2008-07-23
Сообщений: 24

Re: How to Samba 3.x

1) Как сделать чтобы демоны smbd и nmbd стартовали при загрузки системы в Fedora9.....?
Желательно поподробней.
2) После настройки самбы пыташься зайти на расшаренные ресурсы, SeLinux непускает как это победить ?
Заранее спасибо !!!

Отредактированно valdemar_ru (2008-09-29 11:19:52)

Неактивен

 

#3 2008-09-29 13:24:02

oNe3
Member
Зарегистрирован: 2008-09-18
Сообщений: 36

Re: How to Samba 3.x

1) # chkconfig smb on
2) отключить SELinux # setenforce 0 или почитать напутствие в конфиге

Код:

# SELINUX NOTES:
#
# If you want to use the useradd/groupadd family of binaries please run:
# setsebool -P samba_domain_controller on
#
# If you want to share home directories via samba please run:
# setsebool -P samba_enable_home_dirs on
#
# If you create a new directory you want to share you should mark it as
# "samba-share_t" so that selinux will let you write into it.
# Make sure not to do that on system directories as they may already have
# been marked with othe SELinux labels.
#
# Use ls -ldZ /path to see which context a directory has
#
# Set labels only on directories you created!
# To set a label use the following: chcon -t samba_share_t /path
#
# If you need to share a system created directory you can use one of the
# following (read-only/read-write):
# setsebool -P samba_export_all_ro on
# or
# setsebool -P samba_export_all_rw on
#
# If you want to run scripts (preexec/root prexec/print command/...) please
# put them into the /var/lib/samba/scripts directory so that smbd will be
# allowed to run them.
# Make sure you COPY them and not MOVE them so that the right SELinux context
# is applied, to check all is ok use restorecon -R -v /var/lib/samba/scripts

Неактивен