Простая настройка Samba сервера

Настройка фаервола iptables

Чтобы ресурс samba был доступен из клиентам нужно настроить фаервол Iptables.Обязательно необходимо открыть порты 137-139 и 445ый.
В следующем примере из подсети 192.168.1.* разрешен доступ к SAMBA-серверу, при необходимости можно убрать параметр -s 192.168.1.0/24 чтобы разрешить доступ к серверу всем

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

Расшариваем папки и меняем доступ к директориям Samba

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

Iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp —dport 137 -m state —state NEW -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp —dport 138 -m state —state NEW -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp —dport 139 -m state —state NEW -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp —dport 445 -m state —state NEW -j ACCEPT
iptables-save > /etc/sysconfig/iptables

Простая настройка Samba сервера

Samba — программа, которая позволяет сделать из Linux/Unix компьютера файловый сервер для Windows машин. Если вы хотите со своего компьютера под Windows получить доступ к файлам на сервере под ubuntu, то на сервер надо ставить Samba. Также, начиная с 4ой версии, Samba позволяет полностью заменить контроллер домена Active Directory.

В Ubuntu Samba ставится командой

sudo aptitude install samba

После установки сервер надо настроить, конфигурационный файл находится в /etc/samba/smb.conf

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

security = user

Делает так, что для того чтобы залогинится на сервере samba обязательно нужно использовать учётную запись сомой Ubuntu, то есть для того чтобы создать samba-юзера надо сделать следующее:

Сначала создать пользователя в Ubuntu

sudo adduser

а потом создать samba-пользователя

sudo smbpasswd -a

Открыть доступ на какую-нибудь папку очень просто.

Для начала создадим три директории/home/share/usershare, /home/share/download и /home/share/upload, сделать каталог upload доступным для записи

sudo chmod 777 /home/share/upload

и запишем в конец конфигурационного файла /etc/samba/smb.conf следующий текст.

comment = User share path = /home/shares/usershare valid users = username create mask = 0660 directory mask = 0771 writable = yes comment = All users download path = /home/share/download create mode = 0700 directory mask = 0700 available = yes browsable = yes public = yes writable = no comment = All users upload path = /home/share/upload create mode = 0777 directory mask = 0777 available = yes browsable = yes public = yes writable = yes

Не забудьте перезапустить samba после изменения конфиг. файла.

sudo /etc/init.d/samba restart

Так же для ленивых имеется графический интерфейс для настройки samba, только он не много умеет. Установить GUI для samba можно командой

sudo apt-get install system-config-samba

sudo system-config-samba

Все изменения он записывает в конфигурационный файл samba.

If you are either a power home user or you are in a business environment, you know the importance of machines being able to see one another.

Recently I did an article about this very topic («Sharing Files  & Folders Between Linux, Mac, and Windows«) which skimmed this topic, showing how simple it is to allow these different operating systems to see one another — with the help of Samba.

But that article didn’t dig too deeply into Samba itself. That article was more of a «let’s see how we can do this quickly and easily» tutorial.

Конфигурация сервера

В большинстве случаев настройка Samba заключается в редактировании основного конфигурационного файла /etc/samba/smb.conf и управлении пользователями с помощью smbpasswd.
Если это непривычно — попробуйте использовать web-интерфейс SWAT (Samba Web Administration Tool); для этого установите пакет samba-swat и откройте URL http://localhost:901/ в браузере.

Для этого есть несколько решений. Этот демон использует порт 137 для прослушивания запросов.
. Этот пакет включает необходимые файлы для сервера и клиента. Вторая строка — это путь к папке, которая будет использоваться совместно. Если установлено значение «нет», допускаются только зарегистрированные и разрешенные пользователи.

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

Либо все можно настроить через обычную графику, пакет system-config-samba.

Для начала сохраним бэкап файла, чтобы если что можно было вернуться:

Cp smb.conf smb.conf.backup

3 Free Space Map как избавиться от VACUUM FULL

Особенностями версионных движков БД (к которым относится и используемый
в PostgreSQL) является следующее:

  • Транзакции, изменяющие данные в таблице, не блокируют транзакции,
    читающие из неё данные, и наоборот (это хорошо);
  • При изменении данных в таблице (командами UPDATE или DELETE) накапливается
    мусор (а это плохо).

До версии 7.2 команда VACUUM полностью блокировала таблицу. Начиная
с версии 7.2, команда VACUUM накладывает более слабую блокировку,
позволяющую параллельно выполнять команды SELECT, INSERT, UPDATE и
DELETE над обрабатываемой таблицей. Старый вариант команды называется
теперь VACUUM FULL.

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

max_fsm_relations
максимальное количество таблиц, для которых
будет отслеживаться свободное место.
max_fsm_pages
количество блоков, для которых будет хранится информация
о свободном месте. Информация хранится в разделяемой памяти, для каждой
записи требуется по 6 байт.

Параметр max_fsm_relations должен быть не меньше общего
количества таблиц во всех базах данной установки. В качестве начального
приближения для max_fsm_pages можно взять половину от среднего
количества записей, изменяемых (UPDATE или DELETE) между запусками
команды VACUUM.

Запуск сервера

После того как сервер настроен необходимо выставить службу smb сервера на автозагрузку и запустить сам сервер:

Systemctl enable smb
systemctl enable nmb
systemctl start smb
systemctl start nmb

Для старых систем без systemd используйте:

Chkconfig —levels 235 smb 235
chkconfig —levels 235 nmb 235
service smb start
service nmb start

При каждом изменении smb.conf перезагружаем сервер:

Рекомендуется использовать этот параметр очень осторожно. Общее имя совпадает с именем пользователя

По этой причине права доступа к ресурсу пользователя всегда ограничиваются только владельцем каталога пользователя. Этот параметр делает доступность в сетевой среде невидимой.

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

Systemctl restart smb

или, для старых систем:

Smbd restart

Так же проверьте чтобы на расшаренных директориях стояли правильные права.
Помните, что SElinux не позволит получить доступ к шарам в домашних папках пользователей.

Подключение Windows-клиентов

Важно

В ОС семейства Windows активируйте учетную запись Администратора командой:

Подключение клиента с ОС Windows 7

Для подключения клиента с ОС Windows 7 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем со следующим содержимым:

samba_7_2008_fix.reg

Windows Registry Editor Version 5.00


"DomainCompatibilityMode"=dword:00000001
"DNSNameResolutionRequired"=dword:00000000

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

Теперь необходимо ввести компьютер в Samba-домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке «Имя компьютера» нажмите кнопку «Изменить».

Далее укажите, что компьютер является членом домена, и введите его имя:

Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:

После этого компьютер станет членом домена:

Подключение клиента с ОС Windows 10

Для подключения клиента с ОС Windows 10 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем со следующим содержимым:

samba_7_2008_fix.reg

Windows Registry Editor Version 5.00


"DomainCompatibilityMode"=dword:00000001
"DNSNameResolutionRequired"=dword:00000000

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

Отредактируйте файл на сервере, добавив в секцию «global»м следующее:

/etc/samba/smb.conf

...
server max protocol = NT1
...

После этого перезапустите сервис samba:

/etc/init.d/samba restart

samba             | * samba -> stop: smbd ...                             
samba             | * samba -> stop: nmbd ...                             
samba             | * samba -> start: smbd ...                            
samba             | * samba -> start: nmbd ...                            

Теперь необходимо ввести компьютер в Samba-домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке «Имя компьютера» нажмите кнопку «Изменить».

Далее укажите, что компьютер является членом домена, и введите его имя:

Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:

После этого компьютер станет членом домена:

Подключение клиента с ОС Windows Server 2008

Для подключения клиента с ОС Windows 2008 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем со следующим содержимым:

samba_7_2008_fix.reg

Windows Registry Editor Version 5.00


"DomainCompatibilityMode"=dword:00000001
"DNSNameResolutionRequired"=dword:00000000

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

Теперь необходимо ввести компьютер в Samba)домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке «Имя компьютера» нажмите кнопку «Изменить».

Далее укажите, что компьютер является членом домена, и введите его имя:

Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:

После этого компьютер станет членом домена:

Основы взаимодействия Windows и Linux протоколы и другие особенности

В Linux для организации доступа к удаленной системе достаточно знать лишь IP адрес. Вместе с системой DNS, IP адресация представляет собой вполне законченный механизм взаимодействия между системами Linux. В Windows сложилась другая ситуация. Изначально, сети Windows находились в совершенно другом пространстве имен, это было следствием попытки организовать взаимодействие без участия протокола TCP/IP. Для чего был разработан родной для Windows протокол NetBEUI (Network Basic Extended Interface — основной расширенный сетевой пользовательский интерфейс). Не углубляясь в принципы сетевого взаимодействия можно сказать, что NetBEUI состоит из протокола SMB, транспортируемого по протоколу NetBIOS и обернутого в адресуемый протокол LLC, который является подуровнем канального уpовня. Из сказанной каши можно с трудом понять, что NetBEUI не принадлежит какому-либо из уровней . В итоге, данный протокол получился не маршрутизируемым и малоэффективным.Через некоторое время, на основе NetBEUI был разработан протокол NetBIOS Frame (NBF) protocol (NetBIOS over IEEE 802.2 LLC). Следующим шагом была реализация NBT (NetBIOS over TCP/IP).

Протокол NetBIOS (точнее SMB) обладает своим собственным пространством имен. Все имена могут иметь длину до 16 алфавитно-цифровых символов. При этом, использовать имена, начинающиеся с цифры не приемлемо для реализации протокола NetBIOS over TCP/IP, т.к. данное имя будет интерпретироваться как IP-адрес. В NetBIOS существует понятие Рабочая группа (в последствии замененное понятием домен). Компьютеры, имеющие одинаковое имя рабочей группы принадлежат одной группе.

NetBIOS over TCP/IP использует  два основных протокола и два порта 139/tcp (порт службы сеанса NetBIOS) и 137/udp (порт сервера имен NetBIOS). Порт UDP используется для разрешения имен на основе широковещательных рассылок, что в большой сети порождает большой трафик. Чтобы уменьшить большой широковещательный трафик, необходимо использовать сервер имен NetBIOS (в Microsoft данный сервер получил название WINS — Windows Internet Naming Service). WINS для NetBIOS over TCP/IP это как DNS для TCP/IP.

С появлением Win2k и Active Directory, Microsoft полностью отказалась от NetBIOS. Вместо NetBIOS стал использоваться SMB через TCP/IP (без использования протокола NetBIOS, его же называют NetBIOS-less). Данный протокол позволял отказаться от WINS и резолвить имена с помощью DNS, используя связку системы безопасности Kerberos и службу каталогов Active Directory. Active Directory — это LDAP каталог (аналог OpenLDAP), которому я обязательно посвящу статью.

Чтобы SAMBA работала без поддкржки NetBIOS, необходимо, чтобы система была членом домена Active Directory!!! Если система НЕ член домена, то отключать поддержку NetBIOS не стоит!

Собственно, протокол SMB и дал начало названия проекта Samba. Через некоторое время SMB был переименован в CIFS (Common Internet File System). Samba версии 2 может использоваться только совместно с протоколом NetBT (NetBIOS over TCP/IP). Версия Samba 3 способна обеспечивать совместимость по протоколу SMB через TCP/IP (NetBIOS-less TCP/IP) и совместима с Active Directory. При использовании SMB через TCP/IP используется порт 445/tcp, а так же 135/tcp для обеспечения взаимодействия по протоколу DCE RPC (удаленные вызовы процедур).

При установке и настройке Samba (без членства в домене Active Directory) желательно использовать демон Samba как сервер WINS или как член сервера WINS для снижения нагрузки мультикаст трафика в сети.

Полезные команды

После любого изменения smb.conf необходимо перезагрузить службу:

Systemctl restart smb

Чтобы смонтировать ресурс Samba в каталог, создайте каталог, если он ещё не существует, и выполните от имени root следующую команду:

Mount -t cifs -o username=,password= /// /mnt/point/

Эта команда монтирует ресурс с сервера в локальный каталог /mnt/point/.
Если все примонтировалось без ошибок можно прописать автоматическое монтирование каталога в /etc/fstab.

Подключиться к хосту с пользователем username и посмотреть шары на хосте host:

Smbclient -L host -U username

Создание нового пользователя:

Smbpasswd -a

Смена пароля у существующего пользователя:

Smbpasswd

Удаление существующего пользователя:

Smbpasswd -x

Приостановление учетной записи без удаления:

Smbpasswd -d

Подключение данного компьютера к существующему домену:

Smbpasswd -j -U

Винчестеры с Wi-Fi

Некоторые компании, например Seagate, выпускают портативные жёсткие диски с поддержкой Wi-Fi. Они стоят немногим дороже обычных и поддерживают одновременную раздачу файлов сразу на несколько устройств. Допустим, вы можете работать на компьютере с документами, хранящимися на этом диске, на планшете смотреть видео, а на смартфоне слушать музыку. Обычно в такие винчестеры установлен аккумулятор, благодаря которому раздачу файлов можно осуществлять даже в пути без подключения к розетке. Доступ к данным осуществляется по FTP или через специальное приложение. Диски, подключенные к Wi-Fi, видят устройства на всех современных операционных системах, как десктопных, так и мобильных.

File Sharing Basics

The important part for us is File sharing. Samba shares are named in brackets, , and configured by adding options in the lines that follow. Most options are boolean (yes / no).

We need to change:

comment = Home Directories
browseable = no

# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
  writable = no

This describes your /home directory. Usually you want to share this directory in a home environment, because these are the files you want to share. To do so, make the following changes:

comment = Home Directories
browseable = yes

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
   read only = no

This finishes sharing your /home directory. The last thing we need to do is fixing a user.

Add users who can access your shares with the ‘smbpasswd’ command.

sudo  smbpasswd -a username

New SMB password:
Retype new SMB password:
Added user username.

sudo smbpasswd -e username
Enabled user username.

NOTE: the username used here should be a real user setup on your PC/Server. Reload Samba for every change to users/passwords or ‘smb.conf’

sudo /etc/init.d/samba reload

NOTE: If the above command doesn’t work for you, try:

sudo smbd reload

That’s the basis of Samba file-sharing. Please leave your comments about what else is needed here.

— Can/should the SMB password be different from the user’s system password? MartinSpacek — 2007-11-19

Запуск бесов Samba

Об уровнях выполнения, можно почитать тут. Данный бес должен быть разрешен для запуска на подходящих уровнях выполнения ОС (команда в RedHat-подобных дистрибутивах — /sbin/chkconfig samba on, в Debian — /usr/sbin/update-rc.d samba defaults).

Хотя я и не делал акцент на сборку Samba из исходников, но описание запуска все же затрону для общего понимания. Итак, после сборки Samba, в двоичном пакете необходимо отыскать сценарий, который будет запускать и останавливать бесы в подходящем порядке.

При всем этом необходимо проверить сценарий на корректность имен каталогов, где лежит исполняемый файл беса. Сценарий необходимо сделать исполняемым с помощью команды chmod +x,  положить в каталог /etc/init.d/ и сделать соответствующие ссылки на скрипт в каталогах уровней запуска Linux (/etc/rc*.d), в каких нужен запуск беса и соответственно — остановка.

Запуск беса из bash вручную делается командой:

samba-server: ~# /etc/init.d/samba start

соответственно, для остановки поменять start на stop, для перезапуска — restart.

Подготовка накопителя

Большинство «чайников» работает на Windows, а потому для них выбор файловой системы очевиден – NTFS. Такой жесткий диск лучше подключать к роутерам Асус и Zyxel Keenetic, которые используют специальные NTFS-драйверы, что гарантирует высокую скорость. Остальные маршрутизаторы не могут похвастаться нормальными скоростями чтения и записи. Для Apple нужна файловая система HFS+.

Так как большинство маршрутизаторов работают на базе Linux, проблем с совместимостью при форматировании винчестера в Ext4 не будет. Однако, его подключение к ПК с Windows будет невозможным без создания на диске новой файловой системы с потерей данных.

Setting Up A Samba File Share Server

Setting up a Samba file share is the easiest method for connecting a media server to a variety of computers of differing operating systems. It also provides easy access to the server for adding and removing files; especially for those not familiar with the command line environment.

This tutorial assumes that you have basic knowledge of the command line environment and have a Ubuntu server already running with SSH installed.

Message of Caution

Before we get started I have a message of caution for when setting up any new type of server. Always, always, always back up configuration files before you edit them. Trust me. I learnt this the hard way on a different server which resulted in a few fresh installs. This is even more important on a SheevaPlug as fresh installs are not as straight forward as a regular server.

So before editing any configuration file, make sure you type
cp configurationfile.extension configurationfile.extension.backup
Obviously replace the word configurationfile with the name of your file and use the proper extension. By adding .backup, or any other bogus extension, to the end of the file, you will preserve it in it’s original state. If you mess up the original configuration file, just copy the backup to the same name as it originally was. By taking this precaution when editing config files, I guarantee that you will save yourself some serious pains down the line.

Installing and setting up Samba is very easy. First start by installing from the repository with
apt-get install samba

Configuration

Now we’re going to set up the Samba config file. Make sure you backup the file as per the instructions above before you make any edits. Open the file for editing with
vi /etc/samba/smb.conf
Find the section Authentication section of the file. It will appear as so
####### Authentication #######
# «security = user» is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
#  security = user
Uncomment the line
security = user
and add a line right after it so the final authentication section appears as so
# «security = user» is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
security = user
username map = /etc/samba/smbusers

Adding A Folder To Share

Now of course you will want to share a specific folder with the users in your house. We are going to share the external hard drive we have attached at /media/external.

Once again open up the smb.conf file for editing and find the «Share Definitions» section and add the text below.
#external media drive

comment = External Media Drive
browseable = yes
writeable = yes
path = /media/external
guest ok = yes
When you connect to the Samba share, you should have one option to select and that is «server». If you want to add more specific shares, duplicate the code above with your desired settings making sure that the name in the square brackets, currently «server», is different than the others. If you have more than one share set up, you will see the list of them upon connection.

Creating A Samba User

You can only create a samba user for a user that already exists on the system so make sure you’ve already done that before trying the next step.

This server is useless without users so lets add a user to Samba with the line
smbpasswd -a username
It will prompt you for a password and then a confirmation. Once completed, you now have a samba user.

Now that your Samba file share is all set up you can try connecting from your computer. For Mac OSX users, in Finder, go to the menu «Go» and select «Connect to Server» and type
smb://192.168.1.200
You will then be prompted for a username and password. Enter the proper credentials and select the share to connect to from the list provided. For our setup only «server» will be listed». After you connect, the file share will appear as a folder on your computer. From there you can stream media, add media and organize files from the comfort of your GUI desktop.

Создаем связь с роутером Asus

Компания Asus создала очень простую систему настройки для домашнего сервера данных. Её суть заключается в первоначальном подключении гаджетов.

Потом пользователь должен настроить их в меню на ПК или со смартфона.

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

Для начала отключите роутер от сети. Теперь подсоедините к нему внешний накопитель, используя переходник USB-micro USB. Должна получиться следующая конструкция:

Рис. 2 – пример подключения накопителя к роутеру

Если на маршрутизаторе есть два доступных порта, выбирайте тот, что обеспечивает бОльшую скорость передачи (версии 3.0).

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

Чтобы настроить показ файлов из сети на компьютере, зайдите в окно «Этот компьютер». Слева на панели отображения элементов найдите вкладку «Сеть» и перейдите в это окно.

Здесь отображаются все доступные сетевые хранилища и протоколы передачи, которые вы можете использовать.

Кликните правой клавишей мыши на пустой области окна и во всплывающем меню нажмите на «Обновить».

Таким образом, в окне отобразится иконка подключенного к роутеру накопителя.

Рис. 3 – окно «Сеть» на компьютере

Теперь просто кликните на появившуюся иконку, чтобы перейти в папку с файлами внешнего накопителя.

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

Это слово admin.

После получения доступа к содержимому папки вы сможете создавать в ней новые файлы, редактировать или просматривать существующий контент.

Для управления роутером с телевизора достаточно просто зайти в настройки соединения с интернетом. В окне появиться вкладка USB.

Нажав на неё, вы сможете узнать о количестве свободного места на диске или посмотреть его содержимое.

Рис. 4 – просмотр данных внешнего диска на телевизоре

Для получения доступа к файлам с телефона или планшета необходимо скачать приложение «ES Проводник».

Оно точно отобразит нужную папку и позволит быстро открывать файлы или создавать новые документы на HDD:

  • Подключите смартфон к роутеру и запустите программу проводника;
  • Теперь в верхней части экрана выберите окно LAN, как показано на рисунке ниже;
  • Дождитесь загрузки содержимого. Иногда это может занять несколько минут. После появления папки внешнего жесткого диска кликните на её иконку;
  • При необходимости, введите данные для получения доступа (логин – admin, пароль — admin);
  • После подтверждения ввода на телефоне отобразятся все файлы сети.

Рис. 5 – подключение к файлам внешнего HDD со смартфона

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

Файловый сервер Samba

Один из наиболее стандартных способов взаимодействия по сети между компьютерами Ubuntu и Windows — это настройка Samba в качестве файлового сервера. Эта глава рассказывает как настроить Samba сервер для разделения файлов с клиентами Windows.

Сервер будет настроен на доступ к файлам для любого клиента в сети без запроса пароля. Если ваше окружение требует более строгого контроля доступа, смотрите раздел Защита серверов Samba.

Установка

Для начала установим пакет samba. Введите в терминале :

sudo apt-get install samba

Это все, что требуется. Теперь вы готовы настраивать Samba для разделения файлов.

Настройка

Основной файл настройки Samba — /etc/samba/smb.conf. Изначальный файл конфигурации имеет значительное количество комментариев для документирования различных директив настройки.

1. Сначала измените следующие пары ключ/значение в секции файла /etc/samba/smb.conf:

workgroup = EXAMPLE
...
security = user

Параметр security находится значительно ниже в секции и по умолчанию закомментирован. Также замените EXAMPLE на что-то более соответствующее вашему окружению.

2. Создайте новую секцию в конце файла или раскомментируйте один из примеров для каталога, который нужно настроить на общий доступ:

    comment = Ubuntu File Server Share
    path = /srv/samba/share
    browsable = yes
    guest ok = yes
    read only = no
    create mask = 0755
  1. comment: короткое описание разделяемого ресурса. Используется для вашего удобства.

  2. path: путь до разделяемого каталога.

    Этот пример использует /srv/samba/sharename поскольку, в соответствии со стандартом иерархии файловых систем (FHS), каталог /srv — это место, где должны находится все данные, относящиеся к данному сайту. Технически разделяемый ресурс Samba может быть размещен в любом месте файловой системы, где позволяют файловые ограничения доступа, но следование стандартам рекомендуется.

  3. browsable: позволяет клиентам Windows просматривать содержимое разделяемого каталога с помощью проводника Windows.

  4. guest ok: позволяет клиентам подключаться к разделяемому ресурсу без указания пароля.

  5. read only: определяет доступность ресурса только на чтение или с привилегиями на запись. Привилегии на запись доступны только при указании no, как показано в данном примере. Если значение yes, то доступ к ресурсу будет только на чтение.

  6. create mask: определяет какие права доступа будут установлены для создаваемых новых файлов.

3. Теперь, поскольку Samba настроена, требуется создать каталог и установить на него права доступа. Введите в терминале:

sudo mkdir -p /srv/samba/share
sudo chown nobody.nogroup /srv/samba/share/

параметр -p говорит mkdir создать полное дерево каталога, если оно не существует.

4. Наконец, перезапустите сервисы samba для применения новых настроек:

sudo restart smbd
sudo restart nmbd

Еще раз: данная конфигурация предоставляет полный доступ любому клиенту в локальной сети. Для более безопасной настройки смотрите раздел Защита серверов Samba.

Теперь вы можете находить Ubuntu файл сервер с помощью клиента Windows и просматривать его разделяемые каталоги. Если ваш клиент не показывает ваши разделяемые ресурсы автоматически, попробуйте обратиться к вашему серверу по его IP адресу, например, \\192.168.1.1, из окна проводника Windows. Для проверки, что все работает, попробуйте создать каталог внутри вашего разделяемого ресурса из Windows.

Для создания дополнительных разделяемых ресурсов создайте новую секцию в /etc/samba/smb.conf и перезапустите Samba. Просто убедитесь, что разделяемый каталог создан и у него корректные права доступа.

Разделяемый ресурс «» и путь /srv/samba/share — это просто примеры. Установите название ресурса и имя каталога в соответствии с вашим окружением. Хорошей идеей является использование в качестве названия ресурса имени его каталога в файловой системе. Другими словами ресурс можно указать как для каталога /srv/samba/qa.

Исходные данные подготовка хостов для воплощения общего доступа

Сначала я обрисую возможность организации доступа к ресурсам на Windows (Сервер) со стороны Linux (Клиент). Для организации данного взаимодействия нам необходимо наличие соединения по протоколу TCP/IP меж хостами (другими словами присвоен корректный IP, заданы правильные маски, в каждой системе должен быть корректный файл hosts и правильно настроена служба ДНС, если такая употребляется), а так же наличие расшаренного ресурса в системе Windows.

В примере, машина Windows будет иметь IP 192.168.2.1 и имя host, Linux — 192.168.2.2 и имя samba. Рабочую группу будем использовать WORKGROUP. Ресурс в общем доступе будет называться share.

Пакет Samba для своей работы просит наличия модулей ядра и инструментов для доступа к удаленной системе. Поначалу, должна быть поддержка файловых систем smbfs и cifs ядром Linux. Старые версии ядра — ниже 2.6.х может не поддерживать cifs в начальной комплектации компиляции.

Joining Ubuntu 11.10 to Samba Server

  Хотя, по поводу поддержки smbfs в современных дистрибутивах можно поспорить, т.к. данный модуль устарел и не поддерживает знаки кириллицы и … ну в общем я его рассматривать не буду ввиду устаревания. Для включения поддержки cifs в старые ядра 2.4 необходимо ознакомиться с документацией на сайте: http://linux-cifs.samba.org/. Новые версии ядра Linux 2.6 в большинстве дистрибутивов имеют встроенную поддержу cifs (если, естественно, ядро не самосборное). Убедиться в поддержке ядром — cifs можно, выполнив команду grep над  файлом текущей конфигурации ядра:

samba:~# grep CONFIG_SMB_FS /boot/config-2.6.32-5-686 # CONFIG_SMB_FS is not set samba:~# grep CONFIG_CIFS /boot/config-2.6.32-5-686 CONFIG_CIFS=m # CONFIG_CIFS_STATS is not set CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set CONFIG_CIFS_DFS_UPCALL=y CONFIG_CIFS_EXPERIMENTAL=y

Посмотрев на вышеприведенный код, отлично видно, что текущее ядро не поддерживает SMB_FS (нам оно в принципе и не нужно), а вот cifs поддерживается в виде модуля (что, практически, нас так же устраивает).

  Если в Вашем ядре нет поддержки CIFS, то необходимо будет его пересобрать с необходимым параметром. О том как это сделать, я описывал в статьях Ядро Linux (получение инфы и управление) и Управление ядром Linux (сборка, компилирование, конфигурирование).

Итак, мы убедились, что наше ядро поддерживает подходящую файловую систему. На данный момент нам необходимо установить саму SAMBA и кое-какие инструменты. Выбор того, каким способом устанавливать ПО в Linux оставляю Для вас.

Скажу только-только при установке из исходных текстов, получив их (исходники) с samba.org можно получить более новейшую версию, нежели при установке в бинарном виде из репозитория, в каком скорее всего будет более старая и испытанная версия. Я пошел по пути наименьшего сопротивления и установил SAMBA через пакетный менеджер (apt-get install samba). Так же, необходимо установить пакет smb-fs (без данного пакета я столкнулся с ошибкой CIFS VFS: cifs_mount failed w/return code = -22).

Мы начнем с самого обыденного примера и представим, что DNS для разрешения имен не употребляется и машины имеют статичные Ip-адреса. Поэтому нам необходимо в /etc/hosts добавить следующую строку:

samba:~# cat /etc/hosts 127.0.0.1       localhost 127.0.1.1       samba 192.168.2.1     host samba:~# ping host PING host (192.168.2.1) 56(84) bytes of data. Шестьдесят четыре bytes from host (192.168.2.1): icmp_req=1 ttl=128 time=2.46 ms Шестьдесят четыре bytes from host (192.168.2.1): icmp_req=2 ttl=128 time=0.322 ms ^C --- host ping statistics --- Два packets transmitted, Два received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.322/1.394/2.467/1.073 ms
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector