我在 hosts.deny 文件中有大约 50k 个 IP 地址被拒绝,由每行最多 7 个地址的脚本生成,并收到此错误:
warning: /etc/hosts.deny, line 4429: missing newline or line too long
第 4429 行是中间的那一行:
ALL: 96.47.225.95, 96.47.225.96, 96.47.225.97, 96.47.225.98, 96.47.225.99, 96.56.113.123, 96.8.112.149
ALL: 98.126.161.178, 98.15.206.118, 98.159.4.16, 98.197.212.67, 98.83.135.94, 98.94.6.213, 98.94.6.78
ALL: 99.167.89.146, 99.177.96.73, 99.235.84.25, 99.244.9.103, 99.49.94.70
怎么了?
更新:
警告仅在建立连接时出现,hosts.deny 文件同时被写入。(i/o, lock, fopen for write, fopen for read)。
在我看来,拥有这么大的 `/etc/hosts.deny' 文件没有任何意义,原因如下:
denyhosts
,fail2ban
,psad
, 等等...可以提供一些保护免受作恶者的伤害,而不会落入上一段提到的陷阱。现在,如果你真的需要维护这样一个文件,你可以尝试使用一个文件,如
hosts_access(5)
手册页中所述,在以下PATTERNS
部分:我试了一下,生成了一个列表:
将其添加到
/etc/hosts.deny
文件中:尝试了一些连接并检查了我的日志。我无法重现您提到的警告。