如何在Docker容器中启用iptables的日志记录?

时间:2016-09-22 06:59:04

标签: logging docker

我最近创建了一些Docker镜像,以便设置一个支持开放VPN和防火墙(iptables)的容器。

到目前为止,大多数事情都运行良好,但由于我遇到了防火墙的一些问题,我添加了一些更多的iptables规则来将丢弃的软件包记录到/ var / log / messages。我意识到,即使删除了某些内容,也无法在/ var / log下找到日志文件。

因此我的问题是:Alpine Linux如何处理(系统)日志记录以及如何具体检查iptables日志?

更新

正如larsks所指出的,内核中已禁用默认日志记录,以防止日志泛滥导致DDOS攻击。

为了让日志工作,我安装了ulogd并按照here的说明进行操作。

1 个答案:

答案 0 :(得分:7)

问题不在于Alpine Linux。问题是你正在尝试从Docker容器中的iptables堆栈进行登录,并且据我所知,内核不会处理除全局网络命名空间之外的网络命名空间中的iptables LOG目标生成的消息。故意抑制网络命名空间中的LOG消息,以防止容器对具有大量日志消息的主机执行DOS攻击。请参阅内核中的this commit,它明确禁用了容器中的LOG支持。

最好的办法是查看防火墙规则中的数据包计数,以查看匹配的内容以及丢弃数据包的位置。您可能还会对NFLOG目标和ulogd感到满意。