我有一个Bacula服务器正在运行,它很高兴地支持自己。我现在正在使用独立的文件守护进程连接远程客户端,并且遇到TCP Wrappers问题。我发现连接(与telnet / nc等)连接但是立即关闭(这是典型的TCP Wrappers行为),但是没有记录在syslog或File Daemon的日志中(如果打开调试日志记录)。
我尝试了/etc/hosts.allow和hosts.deny的各种排列。目前我有这些:
hosts.allow中:
bacula-fd: 1.2.3.4
hosts.deny中:
ALL: ALL
/ etc / services包含如下条目:
bacula-fd 9102/tcp
我也在Bacula文档中找到了这个:
您必须将名称调整为与每个守护程序配置文件中的Name指令相同。通常,它们与二进制守护程序名称不同。无法使用守护程序名称,因为多个守护程序可能在同一台计算机上运行但配置不同。
我尝试过各种名称代替'bacula-fd',但仍然无法弄明白。我需要改变哪些想法才能使其发挥作用?
答案 0 :(得分:0)
经过几个小时的陷入困境之后,我找到了解决方案。
高级TCP Wrappers不仅可以使用hosts.allow / deny和services文件。包装器保护的实际二进制文件也可以添加一些配置。 Bacula是我故意遇到的第一个这样做的,因此我的困惑。
'守护进程'名称(在hosts.allow / deny的第一列中)实际上是在/etc/bacula/bacula-fd.conf中定义的。这是配置中的'FileDaemon Name'。例如:
FileDaemon { # this is me
Name = bacula-fd
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/spool/bacula
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
}
...将有一个TCP Wrappers守护程序名称'bacula-fd'。将bacula-fd.conf更改为:
FileDaemon { # this is me
Name = gribblechops
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/spool/bacula
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
}
...你需要一个看起来像这样的hosts.allow:
gribblechops: 1.2.3.4
这有点令人困惑,因为它与/ etc / services中的(可能是OS供应商提供的?)条目略有不同,这些条目实际上并未使用(除非您通过xinetd运行FD)。
值得庆幸的是,就Bacula Director而言,客户端配置的“名称”是什么似乎并不重要。主管通过自己的配置了解客户,而不是客户本身的配置。这可能是个好消息,因为这意味着对于大多数人来说,客户端配置可能非常“默认”(如果您运行多个客户端实例,则只需要偏离)。