Centos 6.5 上的 Samba / smbd

Centos 6.5 上的 Samba / smbd

我已经安装了 Samba4,并且 smb.conf 文件如下:

 [global]
         workgroup = WORKGROUP
         server string = Samba Server
         realm = REXIALO.COM
         netbios name = REXIALO.COM
         security = user
         map to guest = Bad Password
         bind interfaces only = no
         interfaces = lo venet0
         log file = /var/log/samba/samba.log
         max log size = 1000
 
 [webroot]
         path = /usr/local/apache/htdocs
         comment = Example.com webroot directory
         read only = No

我可以使用 smbclient 从同一台服务器进行连接。

本地主机:

# smbclient -L 本地主机 -U root

域=[工作组] 操作系统=[Unix] 服务器=[Samba 4.1.11]

    Sharename       Type      Comment
    ---------       ----      -------
    webroot         Disk      RexiAlo webroot directory
    IPC$            IPC       IPC Service (RexiAlo Samba Server) Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.11]

    Server               Comment
    ---------            -------

    Workgroup            Master
    ---------            -------Enter root's password:

网络:

# smbclient -L rexialo.com -U

域=[工作组] 操作系统=[Unix] 服务器=[Samba 4.1.11]

    Sharename       Type      Comment
    ---------       ----      -------
    webroot         Disk      RexiAlo webroot directory
    IPC$            IPC       IPC Service (RexiAlo Samba Server) Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.11]

    Server               Comment
    ---------            -------

    Workgroup            Master
    ---------            -------

问题是当我尝试从 Windows 7 映射到 smb webroot 时,它会要求输入用户/密码,但会超时,然后提示输入凭据。samba.log 文件除了启动 smbd 进程外,没有显示任何其他活动。

任何帮助,将不胜感激。

tcpdump 输出(服务器端)

# tcpdump|grep neal-pc
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on venet0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
08:45:43.945262 IP rexialo.com.ssh > neal-pc.60224: Flags [P.], seq 4145385672:4145385880, ack 188947689, win 502, length 208
08:45:44.190147 IP neal-pc.60224 > rexialo.com.ssh: Flags [.], ack 208, win 53124, length 0
08:46:10.622737 IP neal-pc > rexialo.com: ICMP echo request, id 1, seq 216, length 40
08:46:10.622787 IP rexialo.com > neal-pc: ICMP echo reply, id 1, seq 216, length 40
08:46:27.901123 IP rexialo.com.ssh > neal-pc.60224: Flags [P.], seq 208:640, ack 1, win 502, length 432
08:46:28.144050 IP neal-pc.60224 > rexialo.com.ssh: Flags [.], ack 640, win 53016, length 0
08:46:29.528999 IP neal-pc.60497 > rexialo.com.http: Flags [S], seq 434975840, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
08:46:29.529058 IP rexialo.com.http > neal-pc.60497: Flags [S.], seq 1268998490, ack 434975841, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
08:46:29.574194 IP neal-pc.60497 > rexialo.com.http: Flags [.], ack 1, win 16425, length 0
08:46:29.581169 IP neal-pc.60497 > rexialo.com.http: Flags [P.], seq 1:133, ack 1, win 16425, length 132
08:46:29.581225 IP rexialo.com.http > neal-pc.60497: Flags [.], ack 133, win 245, length 0
08:46:29.907133 IP rexialo.com.ssh > neal-pc.60224: Flags [P.], seq 640:1488, ack 1, win 502, length 848
08:46:30.152728 IP neal-pc.60224 > rexialo.com.ssh: Flags [.], ack 1488, win 53248, length 0
08:46:31.077482 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 1:1461, ack 133, win 245, length 1460
08:46:31.077508 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 1461:2921, ack 133, win 245, length 1460
08:46:31.077520 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 2921:4381, ack 133, win 245, length 1460
08:46:31.077530 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 4381:5841, ack 133, win 245, length 1460
08:46:31.077541 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 5841:7301, ack 133, win 245, length 1460
08:46:31.077552 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 7301:8761, ack 133, win 245, length 1460
08:46:31.077572 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 8761:10221, ack 133, win 245, length 1460

答案1

您应该在 Samba 和 Windows 机器中配置相同的工作组。

如果有“工作组 = WORKGROUP”

那么您也应该在 Windows 机器上将其更改为 WORKGROUP。

仔细检查 Windows 机器上的防火墙和其他设置,在 samba 服务器端运行 tcpdump 以验证流量是否确实进入您的服务器。

答案2

我不确定这里到底发生了什么,但话又说回来,信息量确实不大。我不确定您的网络捕获是否正确,因为没有任何协议解析。所以我在这里只是随口说说。以下是一些断言(阅读猜测)

  1. 由于系统提示您输入用户名/密码,因此基本连接正常。因为已经进行了名称解析(如果需要)或者您提供了要挂载的 IP。此外,如果我没记错的话,Windows 首先尝试了登录凭据

  2. 这意味着我们可能已经通过了 SMB 连接的协议协商阶段,但会话设置或树连接阶段失败了。

我也不确定您是否根据您的描述正确定义了您的用户。这里有几个适当添加用户的解决方案(也许 - 除非我生疏了)

  1. smbpasswd -a <username>(如果你想的话,你可以使用 root 权限)它会要求输入密码才能进入
  2. 当您通过 Windows 登录时,请指定您的 samba netbios 名称\用户名以及NETBIOS\username您定义的密码

顺便问一下,“.”在 netBIOS 中是合法字符吗?也许可以将您的 NB 名称更改为 REXIALOCOM?

或者将访客映射到已知帐户...例如将所有人映射到 root 您可以这样做

map to guest = Bad User
guest account = root

这意味着当 samba 无法识别你的用户时——将其映射到 root(除非你知道自己在做什么,否则不要为测试以外的任何事情执行此操作)

然后我认为您需要在您的共享部分中有一个客人......

相关内容