Доля Samba, распределенная по подсети VPN

Я пытаюсь подключиться к общему ресурсу Samba через VPN, настроенную с помощью OpenVPN. И Samba, и OpenVPN настроены на виртуальной машине, работающей под управлением Ubunutu 14.04. На стороне клиента я использую несколько машин Windows. VPN работает нормально, в настоящее время я маршрутизирую веб-трафик от клиентов на www (своего рода веб-прокси) и могу подключаться к другим клиентам, а также к самой обслуживающей машине (ping и веб-сайты). текущие подсети, которые я использую:

  • Я не уверен, что вы можете сказать, что существует «подсеть» на стороне сервера, поскольку это виртуальная машина, которая имеет собственную VLAN
  • клиентская подсеть 172.16.0.0/16
  • VPN-подсеть 192.168.0.0/24

ifconfig на сервере выводится (затемняет публичный ip):

lo        Link encap:Local Loopback
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:22 errors:0 dropped:0 overruns:0 frame:0
      TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:1100 (1.1 KB)  TX bytes:1100 (1.1 KB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
      inet addr:192.168.0.1  P-t-P:192.168.0.2  Mask:255.255.255.255
      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
      RX packets:6046 errors:0 dropped:0 overruns:0 frame:0
      TX packets:7621 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100
      RX bytes:549492 (549.4 KB)  TX bytes:6177350 (6.1 MB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
      inet addr:127.0.0.1  P-t-P:127.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
      inet6 addr: ::2/128 Scope:Compat
      UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
      RX packets:77095 errors:0 dropped:0 overruns:0 frame:0
      TX packets:84984 errors:0 dropped:32 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:26204249 (26.2 MB)  TX bytes:25862190 (25.8 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
      inet addr:xxx.xxx.xxx.xxx  P-t-P:xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:255.255.255.255
      UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

Использование другой подсети для VPN (10.8.0.0./24), чтобы избежать коллизий в случае, если я что-то наблюдал ... все равно не работал.

OpenVPN server.conf , который я использую, выглядит следующим образом:

port 1095

proto tcp

dev tun0

ca /usr/share/easy-rsa/keys/ca.crt
cert /usr/share/easy-rsa/keys/server.crt
key /usr/share/easy-rsa/keys/server.key

dh /usr/share/easy-rsa/keys/dh2048.pem

server 192.168.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.0.0 255.255.255.0"

push "redirect-gateway def1 bypass-dhcp"

;push "route 0.0.0.0 0.0.0.0"

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option WINS 208.67.220.220"

client-to-client

keepalive 10 120

auth SHA1

cipher BF-CBC

comp-lzo

user <sambauser>
group <sambagroupshare>

persist-key
persist-tun

status openvpn-status.log
log-append  openvpn.log

verb 3

<sambauser> - это пользователь, которому принадлежит каталог, к которому я хочу получить доступ, и он также является членом группа <sambashare>, которой принадлежит каталог. Здесь тоже пробовали разных пользователей и группы.

Может быть, мне нужно позаботиться об управлении правами пользователей?

Я также включил push "route 0.0.0.0 0.0.0.0", отключил его, потому что я все равно его не использую .

testparm показывает следующее о smb.conf :

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[homes]"
Processing section "[share]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
    workgroup = LAB
    server string = %h server (Samba, Ubuntu)
    interfaces = tun0
    bind interfaces only = Yes
    server role = standalone server
    map to guest = Bad User
    obey pam restrictions = Yes
    pam password change = Yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    unix password sync = Yes
    log file = /var/log/samba/log.%m
    max log size = 1000
    dns proxy = No
    wins support = Yes
    usershare allow guests = Yes
    panic action = /usr/share/samba/panic-action %d
    idmap config * : backend = tdb
    hosts allow = 192.168.0.0/24


[homes]
    comment = Home Directories
    create mask = 0740
    directory mask = 0740
    directory mode = 0740


[share]
    comment = share
    path = /home/share
    create mask = 0600
    directory mask = 0740
    directory mode = 0740
    guest ok = Yes

Далее я установил hosts allow = 192.168.0.0/24

Правила, которые я использую для ] iptables выглядит следующим образом:

#
# NAT
#

*nat

# Route all VPN Subnet traffic to the www
-A POSTROUTING -o venet0 -s 192.168.0.0/24 -j MASQUERADE
#-A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source 81.169.250.110
#-A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source $(ifconfig venet0:0 | grep -i 'inet' | cut -d: -f2 | awk '{ print $1}')

COMMIT

#
# FILTER
#

*filter

#
# FILTER - INPUT
#

# Log incoming traffic
#-A INPUT -p tcp -j LOG --log-prefix "iptables: " --log-level 7
#-A INPUT -p udp -j LOG --log-prefix "iptables: " --log-level 7

# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that does not use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j ACCEPT

# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# HTTP
-A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -p udp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# HTTPS
-A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -p udp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

# VPN
-A INPUT -p tcp --dport 1095 -m state --state NEW,ESTABLISHED -j ACCEPT

# SAMBA
-A INPUT -i tun0 -p udp --dport 137 -j ACCEPT
-A INPUT -i tun0 -p udp --dport 138 -j ACCEPT
-A INPUT -i tun0 -p tcp --dport 139 -j ACCEPT
-A INPUT -i tun0 -p tcp --dport 445 -j ACCEPT

# Allows SSH connections
# The --dport number *has to be* the same as in /etc/ssh/sshd_config
-A INPUT -p tcp -m state --state NEW --dport 22 -m limit --limit 1/m --limit-burst 5 -j ACCEPT

# Allow ping
#  note that blocking other types of icmp packets is considered a bad idea by some
#  remove -m icmp --icmp-type 8 from this line to allow all kinds of icmp:
#  https://security.stackexchange.com/questions/22711
#-A INPUT -s 10.8.0.0/255.255.255.0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
# Allow all kinds of icmp
-A INPUT -i tun0 -s 192.168.0.0/24 -p icmp -j ACCEPT

# log iptables denied calls (access via "dmesg" command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Drop everything else
-A INPUT -j DROP

#
# FILTER - FORWARD
#

# Forward all established connections
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# VPN - PROXY
-A FORWARD -o venet0 -i tun0 -s 192.168.0.0/24 -j ACCEPT

# Drop everything else
-A FORWARD -j DROP

#
# FILTER - OUTPUT
#

# Accepts all established outbound connections
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow HTTP and HTTPS
-A OUTPUT -p tcp --sport 80 -j ACCEPT
-A OUTPUT -p tcp --sport 443 -j ACCEPT

# VPN
-A OUTPUT -p tcp --dport 1095 -j ACCEPT
-A OUTPUT -p tcp --sport 1095 -j ACCEPT

# SAMBA
#-A OUTPUT -p udp --dport 137 -j ACCEPT
-A OUTPUT -p udp --sport 137 -j ACCEPT

#-A OUTPUT -p udp --dport 138 -j ACCEPT
-A OUTPUT -p udp --sport 138 -j ACCEPT

#-A OUTPUT -p tcp --dport 139 -j ACCEPT
-A OUTPUT -p tcp --sport 139 -j ACCEPT

#-A OUTPUT -p tcp --dport 445 -j ACCEPT
-A OUTPUT -p tcp --sport 445 -j ACCEPT

# Allow SSH
-A OUTPUT -p tcp --sport 22 -j ACCEPT

# Allow ping
-A OUTPUT -p icmp -j ACCEPT

# Drop everything else
-A OUTPUT -j DROP

#
# /FILTER
#

COMMIT

Я не знаю, что еще я могу с этим поделать. Я попробовал несколько настроек iptables, например, разрешил всем INPUT исходить из tun0 : -A INPUT -i tun0 -j ACCEPT.

Также я попытался отключить строку hosts allow = 192.168.0.0/24 и отключить привязку к интерфейсу tun0 . С другой стороны, я попытался ужесточить привязку интерфейса следующим образом:

hosts allow = 192.168.0.0/24
interfaces = 192.168.0.0/24 tun0
bind interfaces only = yes

, что, конечно, не принесло заметных изменений.

Попытка получить доступ к общему ресурсу из Windows вручную, введя \\192.168.0.1\share или \\192.168.0.1 в адресную строку проводника Windows, заканчивается сообщением об ошибке.

Буду очень признателен, если кто-нибудь сможет мне помочь, и я буду рад любым советам!

С уважением, g.a

1
задан 9 May 2016 в 14:56

2 ответа

Если Вы хотите получить доступ к самбе только через VPN затем, раздел Global в smb.conf должен иметь эти строки:

   interfaces = 127.0.0.0/8 192.168.0.0/24
   hosts deny = ALL
   hosts allow = 127.0.0.1 192.168.0.1/24
0
ответ дан 10 May 2016 в 00:56

Я вижу в Вашем smb.conf, что Вы пытаетесь объединиться, интерфейс бочки со "связывают интерфейсы только" конфигурационная директива. Так как бочка не является "способным к широковещательной передаче" интерфейсом, это не будет работать (см., что документ Samba для "связывает интерфейсы только"). 192.168.0.0/24 в Вашей более поздней конфигурации является все еще тем же интерфейсом бочки и как таковой, это изменение не могло помочь.

В результате Samba не слушает anywehre и поэтому не может служить любым запросам.

можно проверить ли дело обстоит так в log.smbd с уровнем журнала = 3. Вы, вероятно, найдете что-то как:

[YYYY/MM/DD HH:HH:SS.ssssss, X]../source3/lib/interface.c:316 (add_interface) не добавление нешироковещательный интерфейс tun0

[YYYY/MM/DD HH:HH:SS.ssssss, X]../source3/lib/interface.c:543 (load_interfaces) ПРЕДУПРЕЖДЕНИЕ: никакие сетевые интерфейсы не нашли

1
ответ дан 10 May 2016 в 00:56
  • 1
    Это могло бы быть похожим на выход из системы, но I' m выполнение reboot команда, от терминала, как root. – Ring Ø 21 October 2017 в 21:55

Другие вопросы по тегам:

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