如何使用Bacula的TCP Wrappers?

时间:2016-05-10 16:23:58

标签: bacula

我有一个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',但仍然无法弄明白。我需要改变哪些想法才能使其发挥作用?

1 个答案:

答案 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而言,客户端配置的“名称”是什么似乎并不重要。主管通过自己的配置了解客户,而不是客户本身的配置。这可能是个好消息,因为这意味着对于大多数人来说,客户端配置可能非常“默认”(如果您运行多个客户端实例,则只需要偏离)。