Задать вопрос

Как ограничить доступ к папке Samba по ip?

Настроен Samba сервер на отдельном компьютере под управлением Ubuntu Linux 18.04.6, нужно что бы со всех компьютеров доступ был ко всем папкам, кроме одной папки - вот к этой одной папке доступ должен быть только с одного компьютера - с остальных туда не должно быть доступа. Использовал данный параметр
allow hosts = 192.168.1.166,192.168.1.217

Но когда его прописываешь доступ со всех IP компьютеров в том числе указанных не возможен. Компьютере под управление Wndows 10. При попытке зайти в папку появляется ввод сетевых учетных данных, если туда написать рандомные значения все равно не пускает. Вот конфиг Samba
[global]

server string = Samba
security = user
aio read size = 1
path = /media
map to guest = Bad User
create mode = 777
directory mode = 777
os level = 20
aio write size = 1
public = yes
force create mode = 777
workgroup = WORKGROUP
server multi channel support = yes
force directory mode = 777
writeable = yes
browsable = yes
log level = 2
log file = /var/log/samba/log.%m
max log size = 50

# Change this to the workgroup/NT-domain name your Samba server will part of

# server string is the equivalent of the NT Description field

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
# wins support = no

# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z

# This will prevent nmbd to search for NetBIOS names through DNS.

#### Networking ####

# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
; interfaces = 127.0.0.0/8 eth0

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
; bind interfaces only = yes

#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects

# Cap the size of the individual log files (in KiB).

# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
# syslog only = no

# We want Samba to log a minimum amount of information to syslog. Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.

# Do something sensible when Samba crashes: mail the admin a backtrace

####### Authentication #######

# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller".
#
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan < for
# sending the correct chat script for the passwd program in Debian Sarge).

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.

# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections

########## Domains ###########

#
# The following settings only takes effect if 'server role = primary
# classic domain controller', 'server role = backup domain controller'
# or 'domain logons' is set
#

# It specifies the location of the user's
# profile directory from the client point of view) The following
# required a [profiles] share to be setup on the samba server (see
# below)
; logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home directory
# (this is Samba's default)
# logon path = \\%N\%U\profile

# The following setting only takes effect if 'domain logons' is set
# It specifies the location of a user's home directory (from the client
# point of view)
; logon drive = H:
# logon home = \\%N\%U

# The following setting only takes effect if 'domain logons' is set
# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention
; logon script = logon.cmd

# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe. The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

# This allows machine accounts to be created on the domain controller via the
# SAMR RPC pipe.
# The following assumes a "machines" group exists on the system
; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u

# This allows Unix groups to be created on the domain controller via the SAMR
# RPC pipe.
; add group script = /usr/sbin/addgroup --force-badname %g

############ Misc ############

# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /home/samba/etc/smb.conf.%m

# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash

# Setup usershare options to enable non-root users to share folders
# with the net usershare command.

# Maximum number of usershare. 0 (default) means that usershare is disabled.
; usershare max shares = 100

# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones

#======================= Share Definitions =======================

# Un-comment the following (and tweak the other settings below to suit)
# to enable the default home directory shares. This will share each
# user's home directory as \\server\username
;[homes]
; comment = Home Directories
; browseable = no

# 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 = yes

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
; create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
; directory mask = 0700

# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.
# Un-comment the following parameter to make sure that only "username"
# can connect to \\server\username
# This might need tweaking when using external authentication schemes
; valid users = %S

# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
; comment = Network Logon Service
; path = /home/samba/netlogon
; guest ok = yes
; read only = yes

# Un-comment the following and create the profiles directory to store
# users profiles (see the "logon path" option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700

[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# You may need to replace 'lpadmin' with the name of the group your
# admin users are members of.
# Please note that you also need to set appropriate Unix permissions
# to the drivers directory for these users to have write rights in it
; write list = root, @lpadmin

[Docs]
path = /media/Docs
browseable = Yes
guest ok = Yes
writeable = Yes
public = yes

[Scan]
path = /media/Scan
browseable = Yes
guest ok = Yes
writeable = Yes
public = yes

[Tatyana_docs]
path = /media/Tatyana_docs
browseable = Yes
guest ok = Yes
writeable = Yes
public = yes

[TORRENTS]
guest ok = Yes
writeable = Yes
force user = debian-transmission
public = yes
path = /media/TORRENTS

[.incomplete]
path = /media/.incomplete
delete readonly = yes
public = yes
writeable = Yes
guest ok = Yes

[FILMS]
path = /media/FILMS
browseable = Yes
guest ok = Yes
writeable = Yes
public = yes

[MyData]
allow hosts = 192.168.1.166,192.168.1.217
path = /media/MyData
browseable = Yes


[Music]
path = /media2/Music


[Drivers]
path = /media2/Drivers
  • Вопрос задан
  • 421 просмотр
Подписаться 3 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 3
@Measurer01
Сделать файл smb.conf.192.168.1.166

В основном конфиге прописать:
include = /etc/samba/smb.conf.%I

Содержимое файла:
[MyData]
path = /media/MyData
browseable = Yes


Все, кто зайдёт с IP 192.168.1.166 будут видеть шару.
Ответ написан
Комментировать
hint000
@hint000
у админа три руки
Вариант простой как каменный топор: вынести папку на отдельную Самбу (в том числе на виртуалке).

Или вариант для приключенцев: попытаться запустить вторую Самбу на том же хосте на другом порту (поменять имя сервиса? и поменять папку с конфигами?). При этом вряд ли винда способна понять, что Самба может быть на нестандартном порту, значит на самбовом хосте нужно в iptables добавить переадресацию со стандартного порта на нестандартный только для одного клиента.
Ответ написан
Комментировать
Afranius
@Afranius
Из говорящих дольше живут те, что говорят меньше.
появляется ввод сетевых учетных данных
И в чём проблема?
На винде всегда есть юзер и у него всегда есть пароль. Для винды ввод пароля можно отключить через netplwiz но он всё равно будет
На самбе создать пользука с этим логином-паролем и прописать его для шары.
allow users = user
и не забыть
smbpasswd -a user
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы