首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hosts.deny行太长还是太大?

hosts.deny行太长还是太大?
EN

Server Fault用户
提问于 2013-07-03 14:58:25
回答 1查看 2.6K关注 0票数 0

我在hosts.deny文件中拒绝了大约50k ip地址,这是由一个脚本生成的,每行最多有7个地址,并得到以下错误:

代码语言:javascript
复制
warning: /etc/hosts.deny, line 4429: missing newline or line too long

第4429行位于中间位置:

代码语言:javascript
复制
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、锁、写打开、读问题打开)。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2013-07-03 19:46:35

在我看来,有这么大的‘/etc/hosts.Deny’文件是没有意义的,原因有几点:

  1. 僵尸网络活动可能来自于可能的合法来源IP地址,而永远阻止可能只是具有动态地址的受损家庭计算机的临时公共IP的IP通常是无用的。
  2. 这份工作有更好的工具,比如denyhostsfail2banpsad等.这将提供一些保护,不落入前段所述的陷阱,不受作恶者的伤害。

现在,如果您确实需要维护这样的文件,您可以尝试使用一个文件,如hosts_access(5)手册中所解释的,在PATTERNS部分下:

模式访问控制语言实现以下模式:·以`/‘字符开头的字符串被视为文件名。如果主机名或地址与命名文件中列出的任何主机名或地址模式匹配,则匹配主机名或地址。文件格式为零或多行,主机名或地址模式为零或多个,由空格分隔。文件名模式可以在任何可以使用主机名或地址模式的地方使用。

我试了一试,生成了一个列表:

代码语言:javascript
复制
# echo 123.{1..255}.{1..255}.{1..254} > /etc/list

将其添加到/etc/hosts.deny文件中:

代码语言:javascript
复制
# echo 'ALL: /etc/list' >> /etc/hosts.deny

尝试了一些连接检查了我的日志。我无法复制你提到的警告。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/520557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档