CentOS 6.3 Samba共享互联网无法正常工作

时间:2012-09-20 18:27:11

标签: centos samba

要点:

这是一个2部分问题。一个带路由器的ISP上的简单Samba共享不起作用,而另一个具有不同路由器的ISP设置相同,而具有相同Samba配置的类似服务器也可以工作。

似乎是路由器没有转发端口,虽然它成功转发了SSH和其他人,或者ISP以某种方式阻止了标准的Samba端口。它仍然让我感到困惑,我无法弄清楚它为什么不起作用,我仍然会试图缩小原因。

第二个问题是我正在寻找一种商业用途,简单易用(适用于最终用户),少数人和文件的安全共享,内部托管以及互联网外部访问, Windows 7,XP,Mac和Linux服务器,为最终用户提供简单的客户端。

stackoverflow之外的新朋友帮助sshfs作为解决方案。在CentOS上,ssh已经支持sshfs。 Windows客户端win-sshfs运行良好,我将使用UO中描述的MACFusion尝试OSXFUSE。

此外,为每个人设置linux用户。要允许linux组中的每个人写入,请在serverfault更改此问题中描述的/ etc / ssh / sshd_config中的umask。人们首先到达他们的主目录,在那里我将链接放置到设置了粘滞位的共享文件夹,这样他们就无法删除该文件夹。他们可以删除链接,但这很容易放回去。我能看到的唯一问题是缺少文件锁定和缺少自动刷新。


原始问题:

我似乎无法通过互联网让Samba在Centos 6.3服务器上运行。我在另一个互联网连接上有一个类似的测试服务器工作正常与完全相同的设置。我已经完成了http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/diagnosis.html两次,确保将端口转发到互联网(虽然不确定如何测试它们是否真的开放),双重检查samba配置,它现在只是共享/ tmp。用户帐户已设置,它可以ssh并进入/ tmp,并且samba密码设置相同。我无法ping服务器,但这是因为路由器或IP设置为不能由所有者/工作ping。 SSH和HTTPS apache在服务器上运行良好,端口转发方式相同。我还没有能够测试本地网络中的份额,因为我不在那里,但我认为它应该在内部工作。当尝试从Windows 7连接时,它只是超时,没有提示,它从未连接,而我自己的互联网连接上的测试服务器始终在内部和外部工作。

非常感谢任何帮助。

该要求是一种易于使用的内部托管共享文件夹,可替代使用" dropbox"适用于通过外部Internet连接工作的Windows 7,XP,mac和Linux服务器。它不会看到大量使用,但应该快速,易于访问/设置客户端,并确保业务安全。如果在CentOS上安装任何替代方案也会很好。

谢谢! 安德鲁

编辑,详情:

转发端口:

(我有一张图片,但作为新用户,我无法发布)137,138,139,445将同时转发所有TCP和UDP进行测试。

smb.conf设置简单且与工作测试服务器完全相同:

# cat /etc/samba/smb.conf
[global]
workgroup=WORKGROUP
log level = 3
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam

[tmp]
comment = temporary files
path = /tmp
read only = yes

Samba重新启动了很好的措施:

# service smb restart
Shutting down SMB services:                                [  OK  ]
Starting SMB services:                                     [  OK  ]

Windows 7在尝试访问共享时超时,因为它可以与测试服务器一起使用:

(我有截图但新用户无法发布)

搜索错误0x80004005会产生http://answers.microsoft.com/en-us/windows/forum/windows_vista-networking/cannot-access-network-share-get-unspecified-error/9f840844-9d5b-e011-8dfc-68b599b31bf5

我已检查工作组,共享设置和重新启动的窗口。由于测试共享工作,我认为Windows机器正在工作。我将继续详细介绍。

再次编辑:

再次按照故障排除指南进行操作:

将smb.conf简化为:

# cat /etc/samba/smb.conf
[tmp]
comment = temporary files
path = /tmp
read only = yes

/etc/resolv.conf正在使用ISP服务器并且它们可以工作。它们与工作服务器的DNS不同,但是它位于不同的ISP上:

# nslookup google.com
Server:         71.242.0.12
Address:        71.242.0.12#53

Non-authoritative answer:
Name:   google.com
Address: 74.125.228.2

我正在使用IP地址做所有事情,所以我不知道DNS会发挥作用。

我为smb.conf添加了dns proxy = no以获得乐趣,但这并没有帮助。

/var/log/samba/log.smbd没有报告与工作服务器不同的任何内容:

[2012/09/20 16:59:41,  0] smbd/server.c:1141(main)
  smbd version 3.5.10-125.el6 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2010
[2012/09/20 16:59:41.484699,  0] param/loadparm.c:7648(lp_do_parameter)
  Global parameter dns proxy found in service section!
[2012/09/20 16:59:41.486645,  0] printing/print_cups.c:109(cups_connect)
  Unable to connect to CUPS server localhost:631 - Connection refused
[2012/09/20 16:59:41.486809,  0] printing/print_cups.c:468(cups_async_callback)
  failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
[2012/09/20 16:59:41.507198,  0] smbd/server.c:501(smbd_open_one_socket)
  smbd_open_once_socket: open_socket_in: Address already in use
[2012/09/20 16:59:41.507407,  0] smbd/server.c:501(smbd_open_one_socket)
  smbd_open_once_socket: open_socket_in: Address already in use
[2012/09/20 17:00:39,  0] smbd/server.c:1141(main)
  smbd version 3.5.10-125.el6 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2010
[2012/09/20 17:00:39.513793,  0] printing/print_cups.c:109(cups_connect)
  Unable to connect to CUPS server localhost:631 - Connection refused
[2012/09/20 17:00:39.513955,  0] printing/print_cups.c:468(cups_async_callback)
  failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
[2012/09/20 17:00:39.535458,  0] smbd/server.c:501(smbd_open_one_socket)
  smbd_open_once_socket: open_socket_in: Address already in use
[2012/09/20 17:00:39.535689,  0] smbd/server.c:501(smbd_open_one_socket)
  smbd_open_once_socket: open_socket_in: Address already in use

但是,工作服务器在名为log的目录中创建日志文件。非工作服务器没有。

testparm:

# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[tmp]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]

[tmp]
        comment = temporary files
        path = /tmp

...继续

(续):

nmb正在运行:

# service nmb restart
Shutting down NMB services:                                [  OK  ]
Starting NMB services:                                     [  OK  ]

"在互联网端口上响应Ping"通常在路由器上关闭。我在Windows客户端和服务器上都打开了它。每个人都可以ping另一个,共享仍然无法正常工作。

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\xxxx>ping xxxx

Pinging xxxx with 32 bytes of data:
Reply from xxxx: bytes=32 time=25ms TTL=51
Reply from xxxx: bytes=32 time=23ms TTL=51
Reply from xxxx: bytes=32 time=26ms TTL=51
Reply from xxxx: bytes=32 time=24ms TTL=51

Ping statistics for xxxx:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 23ms, Maximum = 26ms, Average = 24ms


# ping xxxx -c 5
PING xxxx (xxxx) 56(84) bytes of data.
64 bytes from xxxx: icmp_seq=1 ttl=251 time=20.7 ms
64 bytes from xxxx: icmp_seq=2 ttl=251 time=24.6 ms
64 bytes from xxxx: icmp_seq=3 ttl=251 time=21.4 ms
64 bytes from xxxx: icmp_seq=4 ttl=251 time=25.3 ms
64 bytes from xxxx: icmp_seq=5 ttl=251 time=22.9 ms

--- xxxx ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4029ms
rtt min/avg/max/mdev = 20.776/23.022/25.319/1.764 ms

...继续

(续):

iptables已关闭:

# iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

SELinux已关闭:

# sestatus
SELinux status:                 disabled
使用samba中的用户设置的

smbclient 可以从samba服务器到其本地IP及其外部IP。 Windows客户端获取:

Connection to <ip addr> failed (Error NT_STATUS_UNSUCCESSFUL)

Samba作为守护进程/服务运行,netbios-ssn处于侦听模式:

# netstat -a|grep netbios-ssn
tcp        0      0 *:netbios-ssn               *:*                         LISTEN

...继续

(续):

我们不限制连接或使用inetd。

log.nmbd不会报告任何问题。

nmblookup -B BIGSERVER SAMBA 使用服务器名称

使用Windows客户端名称或外部IP地址对所有日志文件进行nmblookup -B ACLIENT * 失败

nmblookup -d 2` *&#39;。 失败

&#34;如果您的PC和服务器不在同一子网上,则需要使用-B选项将广播地址设置为PC子网的广播地址。

如果子网掩码和广播地址不正确,此测试可能会失败。 (参见上面的测试3注释)。&#34;

我不确定在这里,因为我们要通过互联网,我们是否需要这些来匹配和工作?

smbclient // BIGSERVER / TMP工作

在客户端:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\xxxx>net view \\xxxx (ip addr)
System error 53 has occurred.

The network path was not found.


C:\Users\xxxx>
即使提供用户和密码,

净使用也存在同样的问题。

nmblookup -M WORKGROUP返回网络上的本地Windows机器,而在我的测试服务器上,它返回测试机器本地的客户端。也许这里有一个问题,工作组在另一台机器上,但如果这是问题,其他人如何从其他网络连接?

我也尝试过master = yes。

第2页桑巴如何下一步。

更新:一位新朋友说尝试使用nmap查看端口:

# nmap -sS -P0 -sV -O xxxx

Starting Nmap 5.51 (  ) at 2012-09-21 11:09 EDT
Nmap scan report for xxxx (xxxx)
Host is up (0.024s latency).
Not shown: 995 filtered ports
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        OpenSSH 5.3 (protocol 2.0)
25/tcp   open  smtp       Postfix smtpd
110/tcp  open  pop3       Dovecot pop3d
443/tcp  open  ssl/http   Apache httpd 2.2.15 ((CentOS))
9100/tcp open  jetdirect?
Warning: OSScan results may be unreliable because we could not find at
least 1 open and 1 closed port
OS fingerprint not ideal because: Missing a closed TCP port so results
incomplete
No OS matches for host
Service Info: Host:  xxxx

由于Samba端口没有显示,我认为此时路由器或ISP没有转发/阻止端口。

至于共享解决方案,我正在尝试使用Windows和Mac客户端进行sshfs。

2 个答案:

答案 0 :(得分:3)

回答您的原始问题,测试您的ISP是否未阻止列出端口的好方法是:

# yum -y install tcpdump
# tcpdump -i eth0 "port 137 or port 138 or port 139 or port 445"

(将eth0替换为连接到Internet的接口名称。)

然后你应该尝试访问共享(net view / net use / Windows Shell)。如果端口正确转发,您应该看到类似的内容:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
01:25:48.631173 IP 192.168.0.10.54032 > 192.168.0.1.microsoft-ds: Flags [S], seq 4008761512, win 5840, options [mss 1460,sackOK,TS val 136010468 ecr 0,nop,wscale 7], length 0
01:25:48.631198 IP 192.168.0.1.microsoft-ds > 192.168.0.10.54032: Flags [S.], seq 2220435566, ack 4008761513, win 14480, options [mss 1460,sackOK,TS val 15507714 ecr 136010468,nop,wscale 7], length 0
01:25:48.631397 IP 192.168.0.10.54032 > 192.168.0.1.microsoft-ds: Flags [.], ack 1, win 46, options [nop,nop,TS val 136010468 ecr 15507714], length 0
01:25:48.642171 IP 192.168.0.10.54032 > 192.168.0.1.microsoft-ds: Flags [P.], seq 1:184, ack 1, win 46, options [nop,nop,TS val 136010479 ecr 15507714], length 183SMB PACKET: SMBnegprot (REQUEST)
...

如果你什么也看不见,那就意味着你的ISP(或中间路由器)阻止了这些端口的数据包,而且最有可能的情况是 - 对于开放的Internet部署,SMB协议被证明是非常不安全的。

答案 1 :(得分:0)

在文件/etc/samba/smb.conf[global]下的工作组行下方,添加以下两行:

client min protocol = NT1  
client max protocol = SMB3