- Настройка файлового сервера в локальной сети на Windows/Linux
- Что это такое?
- Создание и настройка частной сети
- Настройка файлового сервера
- Настройка файлового сервера на Linux (Debian/Ubuntu)
- Настройка общего публичного каталога на Windows
- Настройка общего приватного каталога на Windows
- Подключение к общему каталогу с помощью Linux
- Если общий каталог находится на Windows Server?
- Если общий каталог находится на Linux?
- Подключение к общему каталогу с помощью Windows
- Если общий каталог находится на Windows Server?
- Если общий каталог находится на Linux?
- Debian настройка файлового сервера для windows
Настройка файлового сервера в локальной сети на Windows/Linux
В инструкции описан процесс настройки общего файлового сервера для всех пользователей локальной или виртуальной сети с операционными системами Linux и Windows.
Что это такое?
Файловый сервер работает по протоколу SMB/CIFS и позволяет предоставить доступ к общим ресурсам в локальной сети, например, текстовым файлам или сетевым принтерам. Для его развертывания на Windows используются штатные средства ОС, на Linux используется файловый сервер Samba.
В инструкции рассмотрена настройка файлового сервера на серверах с операционными системами Linux и Windows. На сервере будет находиться 2 каталога — публичный и приватный. К файловому серверу подключение будет происходить как с операционной системы Windows, так и с Linux, т.к. в виртуальной или физической локальной сети могут находиться серверы с разными ОС.
Создание и настройка частной сети
Для начала в панели управления должны быть созданы все необходимые для сети серверы.
После создания необходимо объединить все машины в единую локальную сеть через панель управления в разделе Сети. В результате серверы получат локальные IP-адреса.
После создания частной сети необходимо настроить сетевые адаптеры на каждом сервере. Об этом можно прочитать в наших инструкциях:
Настройка файлового сервера
Прежде всего, необходимо определиться, на сервере с какой операционной системой будет находиться общий каталог.
Настройка файлового сервера на Linux (Debian/Ubuntu)
Для развертывания файлового сервера на системах Linux используется инструмент SAMBA. Ниже перечислены действия по его установке и настройке.
Прежде всего следует обновить локальную базу пакетов:
Далее установите пакеты из главного репозитория:
apt-get install -y samba samba-client
Создайте резервную копию файла конфигурации Samba:
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Создайте или выберете директорию, к которой все пользователи будут иметь общий доступ:
mkdir -p /samba/public
Перейдите к этому каталогу и измените режим доступа и владельца:
cd /samba
chmod -R 0755 public
Создайте или выберете каталог, к которому иметь доступ будут ограниченное число пользователей:
Создайте группу пользователей, которые будут иметь доступ к приватным данным:
Создайте нужных пользователей с помощью команды useradd:
Добавьте созданных пользователей в группу:
usermod -aG smbgrp user1
Измените группу, которой принадлежит приватная директория:
chgrp smbgrp /samba/private
Задайте пароль, с помощью которого пользователь будет подключаться к каталогу:
smbpasswd -a user1
Откройте файл конфигурации на редактирование с помощью текстового редактора, например nano:
Замените содержимое файла на следующие строки:
[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[public]
path = /samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
[private]
path = /samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes
Сохраните внесенные изменения, нажав CTRL+X, затем Enter и Y.
Значения параметров выше:
- global — раздел с общими настройками для Samba сервера
- workgroup — рабочая группа Windows, WORKGROUP — значение по умолчанию для всех Windows машин, если вы не меняли самостоятельно
- security — режим безопасности, значение user означает аутентификацию по логину и паролю
- map to guest — задает способ обработки запросов, bad user — запросы с неправильным паролем будут отклонены, если такое имя пользователя существует
- wins support — включить или выключить поддержку WINS
- dns proxy — возможность запросов к DNS
- public — название общего каталога, которое будут видеть пользователи сети, может быть произвольным и не совпадать с именем директории
- path — полный путь до общего каталога
- browsable — отображение каталога в сетевом окружении
- writable — использование каталога на запись, инверсия read only
- guest ok — авторизация без пароля
- force user — пользователь по умолчанию
- valid users — список пользователей, у которых есть доступ к каталогу, через @ указывается unix-группа пользователей
Проверить настройки в smb.conf можно с помощью команды:
Чтобы изменения вступили в силу, перезапустите сервис:
service smbd restart
Далее нужно настроить firewall, открыв порты, которые использует SAMBA. Настоятельно рекомендуем разрешить только подключения из локального диапазона IP-адресов или виртуальной частной сети. Адресное пространство вашей частной сети вы можете увидеть в панели управления 1cloud.
Замените значение параметра –s в правилах ниже для соответствия адресному пространству вашей частной сети. Как правило префикс сети /24, если вы явно не подразумеваете иного:
iptables -A INPUT -p tcp -m tcp —dport 445 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp —dport 139 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp —dport 137 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp —dport 138 –s 10.0.0.0/24 -j ACCEPT
Теперь необходимо сделать так, чтобы указанные выше правила фаервола iptables были сохранены после перезагрузки машины. Для это установим пакет iptables-persistent:
apt-get install iptables-persistent
После установки откроется окно с предложением последовать запомнить текущие правила iptables для IPv4 и IPv6. Подтвердите это действие.
Проверить актуальные правила iptables можно командой:
В выводе команды вы должны увидеть ранее добавленные разрешающие политики (Accept).
Настройка общего публичного каталога на Windows
Для общего доступа к файлам по сети в Windows используются стандартные средства ОС.
Чтобы пользователи локальной сети могли без пароля подключаться к общему ресурсу, необходимо в панели управления снять ограничения защиты. Откройте панель управления и перейдите в раздел Сеть (Network and Internet) -> Центр управления сетями и общим доступом (Network and Sharing Center) -> Расширенные настройки общего доступа (Advanced sharing settings). В разделе Все сети (All Networks) выберете опцию Отключить доступ с парольной защитой (Turn off password protected sharing) и сохраните изменения.
Далее, чтобы настроить общий доступ к каталогу на Windows необходимо создать или выбрать нужный и открыть его свойства. В свойствах перейдите во вкладку Доступ (Sharing) и нажмите Расширенная настройка (Advanced Sharing).
В открывшемся окне отметьте галочкой Открыть общий доступ к этой папке (Share this folder), для того чтобы она стала общедоступной. В поле Имя общего ресурса (Share name) введите имя, которое будет видно всем пользователям. Далее нажмите Разрешения (Permissions) для настройки прав доступа.
Выберете нужные права доступа для всех пользователей (Everyone). Нажмите Применить (Apply), чтобы изменения вступили в силу.
Теперь в свойствах каталога нажмите Общий доступ (Share).
В поле поиска введите Все пользователи (Everyone) и нажмите Добавить (Add). Для полного доступа выберете права Read/Write и нажмите Поделиться (Share).
Теперь ваш каталог Windows доступен всем пользователям локальной сети без пароля.
Настройка общего приватного каталога на Windows
Для настройки общего каталога, который будет доступен только определенным пользователям, необходимо, чтобы данные пользователи существовали на сервере с общей папкой и на Windows машине с которой будет происходить подключение (наличие пользователя на Linux сервере не требуется), причем логин и пароль пользователей должны полностью совпадать. О том как создать нового пользователя читайте в нашей инструкции.
Чтобы пользователи локальной сети могли без пароля подключаться к общему ресурсу, необходимо в панели управления снять ограничения защиты. Откройте панель управления и перейдите в раздел Сеть (Network and Internet) -> Центр управления сетями и общим доступом (Network and Sharing Center) -> Расширенные настройки общего доступа (Advanced sharing settings). В разделе Все сети (All Networks) выберете опцию Отключить доступ с парольной защитой (Turn off password protected sharing) и сохраните изменения.
Далее, чтобы настроить общий доступ к каталогу на Windows необходимо создать или выбрать нужный и открыть его свойства. В свойствах перейдите во вкладку Доступ (Sharing) и нажмите Расширенная настройка (Advanced Sharing).
Так как каталог будет доступен только определенным пользователям, необходимо удалить группу Все пользователи (Everyone) с помощью кнопки Удалить (Remove).
Далее с помощью кнопки Добавить (Add) добавьте пользователей для управления каталогом.
Введите имя и нажмите Проверить имена (Check Names), выберете полное имя пользователя и нажмите OK.
Установите нужные права и нажмите Применить (Apply).
Теперь в свойствах каталога нажмите Поделиться (Share).
В поле поиска введите имя пользователя и нажмите Добавить (Add). Для полного доступа выберете права Чтение/Запись (Read/Write) и нажмите Поделиться (Share).
В итоге каталог стает общедоступным для определенных пользователей.
Подключение к общему каталогу с помощью Linux
Чтобы подключиться к общему каталогу, необходимо установить клиент для подключения:
sudo apt-get install smbclient
Для подключения используйте следующий формат команды:
Также можно выполнить монтирование общего каталога, для этого установите дополнительный пакет утилит:
sudo apt-get install cifs-utils
Для монтирования используйте следующий формат команды:
mount -t cifs -o username= ,password= // /
Где — адрес машины, на которой расположена общая директория, а — путь до общей директории.
mount -t cifs -o username=Everyone,password= //10.0.1.2/Win /root/shares/public
Если общий каталог находится на Windows Server?
Если общий каталог находится на сервере с операционной системой Windows, то для публичного каталога используйте имя пользователя Everyone, а в качестве пароля просто нажмите Enter. Например:
smbclient -U Everyone \\\\10.0.1.2\\Win
Enter Everyone’s password:
OS=[Windows Server 2016 Standard 14393] Server=[Windows Server 2016 Standard 6.3]
smb: \>
Для приватного каталога используйте имя пользователя и пароль, которому разрешен доступ.
Если общий каталог находится на Linux?
Если общий каталог находится на сервере с операционной системой Linux, то для публичного каталога используйте имя пользователя nobody, а в качестве пароля просто нажмите Enter. Например:
smbclient -U nobody \\\\10.0.1.2\\public
Enter nobody’s password:
OS=[Windows Server 2016 Standard 14393] Server=[Windows Server 2016 Standard 6.3]
smb: \>
Для приватного каталога используйте имя пользователя и пароль, которому разрешен доступ.
Подключение к общему каталогу с помощью Windows
Для подключения используйте Проводник Windows, в адресную строку введите строку в следующем формате:
Если общий каталог находится на Windows Server?
Если вы подключаетесь к приватному каталогу, то он откроется автоматически, а если подключаетесь к публичному, то перед вами вами появится окно для ввода данных для входа. Введите логин Everyone и пустой пароль, нажмите OK. В результате вы будете подключены к общему каталогу.
Если общий каталог находится на Linux?
Для подключения к публичной папке не требуется вводить логин или пароль, достаточно в адресную строку ввести нужный ip-адрес без ввода дополнительной информации. Для подключения к приватному каталогу введите логин и пароль пользователя в появившееся окно.
Debian настройка файлового сервера для windows
Всем доброго дня!
Сегодня я расскажу как подключить дебиан к домену windows 2003 сервера. И так нам понадобится. предустановленная система debian без иксов ибо не нужны они.
Далее ставим пакеты
apt-get install krb5-user samba winbind
Далее вам потребуется настроить все вышеперечисленные инструменты для работы с вашим доменом. Допустим, вы хотите войти в домен DOMAIN.RU, доменконтроллером которого является сервер trmsrv.domain.ru с IP адресом 192.168.0.1. Этот же сервер является и первичным DNS сервером домена. Кроме того допустим у вас есть второй доменконтроллер1), он же DNS — trmsrv3.domain.ru с IP 192.168.0.2. Ваш же компьютер будет называться filesrv.
Настройка DNS
Для начала необходимо изменить настройки DNS на вашей машине, прописав в качестве DNS сервера доменконтроллер2 и в качестве домена поиска — нужный домен.
Необходимо изменить содержимое файла /etc/resolv.conf на примерно такое:
domain domain.ru
search domain.ru
nameserver 192.168.0.1
nameserver 192.168.0.2
Рестартуем сетевые интерфейсы
Теперь убедитесь, что вы задали нужное имя компьютера в файле /etc/hostname
filesrv
Кроме того необходимо отредактировать файл /etc/hosts так, чтобы в нём была запись с полным доменным именем компьютера и обязательно коротким именем хоста, ссылающаяся на один из внутренних IP:
Имена этого компьютера
127.0.0.1 localhost
127.0.1.1 filesrv.domain.ru filesrv
делаем ребут серверу.
Настройка синхронизации времени
Даме такую команду, он должен подхватить его с DC
net time set dc
Если в сети существует сервер точного времени, то можно воспользоваться им или любым публичным:
ntpdate ntp.mobatime.ru
Настройка авторизации через Kerberos
Начнём с настройки авторизации в домене через протокол Kerberos. Вам потребуется изменить файл /etc/krb5.conf. В общем случае он выглядит так:
[libdefaults]
default_realm = DOMAIN.RU
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
v4_instance_resolve = false
v4_name_convert = <
host = <
rcmd = host
ftp = ftp
>
plain = <
something = something-else
>
>
fcc-mit-ticketflags = true
[realms]
DOMAIN.RU = <
kdc = trmsrv
kdc = trmsrv3
admin_server = trmsrv
default_domain = DOMAIN.RU
>
[domain_realm]
.domain.ru = DOMAIN.RU
domain.ru = DOMAIN.RU
[login]
krb4_convert = false
krb4_get_tickets = false
Красным я выделил то что должны изменить на свои параметры.
Обратите особое внимание на регистр написания имени домена — везде, где домен написан в верхнем регистре, его обязательно нужно писать именно в верхнем регистре. Иначе волшебным образом ничего не заработать.
kinit Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. — указываем админа AD
Имя домена необходимо писать заглавными буквами!
вводим пароль.
Если вы не получили никаких ошибок — значит вы настроили всё верно и домен отдаёт вам билет Kerberos. Кстати, некоторые распространённые ошибки перечислены чуть ниже.
Убедиться в том, что билет получен, можно выполнив команду
klist
Удалить все билеты (они вам вообще говоря не нужны) можно командой
kdestroy
Распространённые ошибки kinit
kinit(v5): Clock skew too great while getting initial credentialsЭто значит, что у вашего компьютера не синхронизировано время с доменконтроллером (см. выше).
kinit(v5): Preauthentication failed while getting initial credentialsВы ввели неверный пароль.
kinit(v5): KDC reply did not match expectations while getting initial credentials
Самая странная ошибка. Убедитесь, что имя realm в krb5.conf, а так же домен в команде kinit введены большими буквами:
DOMAIN.RU = <
# . kinit Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
kinit(v5): Client not found in Kerberos database while getting initial credentials
Указанного пользователя не существует в домене.
Настройка Samba и вход в домен
Для того, чтобы войти в домен, необходимо прописать правильные настройки в файле /etc/samba/smb.conf. На данном этапе вас должны интересовать только некоторые опции из секции [global]. Ниже — пример части файла конфигурации Samba с комментариями по поводу значения важных параметров:
[global]
# Эти две опции нужно писать именно в заглавном регистре, причём workgroup без
# последней секции после точки, а realm — полное имя домена
[code] workgroup = DOMAIN
realm = DOMAIN.RU[/code]
# Эти две опции отвечают как раз за авторизацию через AD
[code] security = ADS
encrypt passwords = true
# Просто важные
dns proxy = no
socket options = TCP_NODELAY[/code]
# Если вы не хотите, чтобы самба пыталась при случае вылезти в лидеры в домене или рабочей группе,
# или даже стать доменконтроллером, то всегда прописывайте эти пять опций именно в таком виде
[code] domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no[/code]
# Отключить поддержку принтеров
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
После того, как вы отредактируете smb.conf выполните команду
testparm
Она проверит вашу конфигурацию на ошибки и выдаст суммарную сводку о нём:
# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions
По нажатию энтер у вас выведится список глобальных настроек
Как видно мы задали правильные параметры для того, чтобы наш компьютер стал членом домена. Теперь пора попытаться непосредственно войти в домен. Для этого введите команду:
net ads join -U administrator -D DOMAIN
И в случае успеха вы увидите что-то похожее на:
# net ads join -U administrator -D DOMAIN
Enter username’s password:
Using short domain name — DOMAIN
Joined ‘FILESRV’ to realm ‘domain.ru’
net ads testjoin
#net ads testjoin
Join is OK
Но иногда после сообщения о присоединении к домену выдаётся ошибка наподобие3):
DNS update failed!
(читайте в сторону DNS)
Не в коем случае не рестартуем сервер, иначе будет печальный опыт в восстановлении системы, у Вас не будет прав доступа к системе вы не сможите войти под root или под созданной учетной записью. т.к. не настроены некоторые параметры.
apt-get install smbclient
Теперь можно просматривать ресурсы компьютеров домена. Но для этого нужно иметь билет kerberos, т.е. если мы их удалили, то получаем опять через kinit (см. выше). Посмотрим какие ресурсы предоставлены в сеть компьютером workstation:
smbclient -k -L workstation
Настройка Winbind
Подошли почти к финалу
Если вам необходимо как-либо работать с пользователями домена, например, настраивать SMB-шары с разграничением доступа, то вам понадобится кроме самой Samba ещё и Winbind — специальный демон, служащий для связи локальной системы управления пользователями и группами Linux с сервером Active Directory. Проще говоря Winbind нужен, если вы хотите видеть пользователей домена на своём компьютере с Ubuntu.
Winbind позволяет спроецировать всех пользователей и все группы AD в вашу Linux систему, присвоив им ID из заданного диапазона. Таким образом вы сможете назначать пользователей домена владельцами папок и файлов на вашем компьютере и выполнять любые другие операции, завязанные на пользователей и группы.
Для настройки Winbind используется всё тот же файл /etc/samba/smb.conf. Добавьте в секцию [global] следующие строки:
# Опции сопоставления доменных пользователей и виртуальных пользователей в системе через Winbind.
# Диапазоны идентификаторов для виртуальных пользователей и групп.
idmap uid = 10000 — 40000
idmap gid = 10000 — 40000
# Эти опции не стоит выключать.
winbind enum groups = yes
winbind enum users = yes
# Использовать домен по умолчанию для имён пользователей. Без этой опции имена пользователей и групп
# будут использоваться с доменом, т.е. вместо username — DOMAIN\username.
# Возможно именно это вам и нужно, однако обычно проще этот параметр включить.
winbind use default domain = yes
# Если вы хотите разрещить использовать командную строку для пользователей домена, то
# добавьте следующую строку, иначе в качестве shell’а будет вызываться /bin/false
template shell = /bin/bash
# Для автоматического обновления билета Kerberos модулем pam_winbind.so нужно добавить строчку
winbind refresh tickets = yes
Теперь перезапустим сервер или рестартонем деманы
sudo /etc/init.d/winbind stop
sudo smbd restart
sudo /etc/init.d/winbind start
После перезапуска проверьте, что Winbind установил доверительные отношения с AD командой:
checking the trust secret for domain DCN via RPC calls succeededА так же, что Winbind увидел пользователей и группы из AD командами4):
# wbinfo -u
# wbinfo -g
Эти две команды должны выдать список пользователей и групп из домена соответственно. Либо с префиксом DOMAIN\, либо без него — в зависимости от того, какое значение вы указали параметру «winbind use default domain» в smb.conf.
Итак, Winbind работает, однако в систему он ещё не интегрирован.
Добавление Winbind в качестве источника пользователей и групп
Для того, чтобы ваша Ubuntu прозрачно работала с пользователями домена, в частности, чтобы вы могли назначать пользователей домена владельцами папок и файлов, необходимо указать Ubuntu использовать Winbind как дополнительный источник информации о пользователях и группах.
Для этого измените две строчки в файле /etc/nsswitch.conf:
passwd: compat
group: compat
добавив к ним в конец winbind:
passwd: compat winbind
group: compat winbind
Теперь проверьте, что Ubuntu запрашивает у Winbind информацию о пользователях и группах, выполнив
getent passwd
getent group
Первая команда должна вам вернуть всё содержимое вашего файла /etc/passwd, то есть ваших локальных пользователей, плюс пользователей домена с ID из заданного вами в smb.conf диапазона. Вторая должна сделать тоже самое для групп.
Теперь вы можете взять любого пользователя домена и сделать его, например, владельцем какого-нибудь файла.
Авторизация в Debian через пользователей домена
Последовательность строк в файлах имеет значение!
auth required pam_env.so
auth sufficient pam_unix.so likeauth nullok try_first_pass
auth sufficient pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE
auth required pam_deny.so
account sufficient pam_winbind.so
account required pam_unix.so/etc/pam.d/common-session session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077
session optional pam_ck_connector.so nox11
session required pam_limits.so
session required pam_env.so
session required pam_unix.so
password sufficient pam_unix.so try_first_pass use_authtok nullok sha512 shadow
password sufficient pam_winbind.so
password required pam_deny.so
Офф-лайн авторизация нам нужна для того. вдруг вам надо поработать дома а AD не позволяет этого, ставим кэширующие учтеные записи.
Для этого необходимо сделать следующее. Добавьте в секцию [global] файла /etc/samba/smb.conf следующие строки:
[global]
# Возможность оффлайн-авторизации при недоступности доменконтроллера
winbind offline logon = yes
# Период кэширования учетных записей, по умолчанию равен 300 секунд
winbind cache time = 300
Далее в шаре можно делай все что угодно, только будте осторожей.