为NewRelic配置iptables

时间:2014-08-03 15:57:14

标签: unix iptables centos6 newrelic

我正在尝试为Centos6服务器配置iptables。 我遇到了NewRelic ips的问题。 这是我的iptables文件:

*filter

#new relic
-A INPUT -s 50.31.164.0/24    -j ACCEPT
-A INPUT -s 103.21.244.0/22   -j ACCEPT
-A INPUT -s 103.22.200.0/22  -j ACCEPT
-A INPUT -s 103.31.4.0/22   -j ACCEPT
-A INPUT -s 104.16.0.0/12   -j ACCEPT
-A INPUT -s 108.162.192.0/18   -j ACCEPT
-A INPUT -s 141.101.64.0/18  -j ACCEPT
-A INPUT -s 162.158.0.0/15    -j ACCEPT
-A INPUT -s 162.247.240.0/22    -j ACCEPT
-A INPUT -s 173.245.48.0/20    -j ACCEPT
-A INPUT -s 188.114.96.0/20   -j ACCEPT
-A INPUT -s 190.93.240.0/20    -j ACCEPT
-A INPUT -s 197.234.240.0/22   -j ACCEPT
-A INPUT -s 198.41.128.0/17    -j ACCEPT
-A INPUT -s 199.27.128.0/21   -j ACCEPT

-A OUTPUT -d 50.31.164.0/24    -j ACCEPT
-A OUTPUT -d 103.21.244.0/22   -j ACCEPT
-A OUTPUT -d 103.22.200.0/22   -j ACCEPT
-A OUTPUT -d 103.31.4.0/22   -j ACCEPT
-A OUTPUT -d 104.16.0.0/12   -j ACCEPT
-A OUTPUT -d 108.162.192.0/18   -j ACCEPT
-A OUTPUT -d 141.101.64.0/18   -j ACCEPT
-A OUTPUT -d 162.158.0.0/15    -j ACCEPT
-A OUTPUT -d 162.247.240.0/22    -j ACCEPT
-A OUTPUT -d 173.245.48.0/20    -j ACCEPT
-A OUTPUT -d 188.114.96.0/20   -j ACCEPT
-A OUTPUT -d 190.93.240.0/20    -j ACCEPT
-A OUTPUT -d 197.234.240.0/22   -j ACCEPT
-A OUTPUT -d 198.41.128.0/17    -j ACCEPT
-A OUTPUT -d 199.27.128.0/21   -j ACCEPT

# Default chain policy
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP

COMMIT

现在的问题是新的文物被封锁了,尽管所有的文物都被打开了。 如果我将默认策略更改为:

 -P INPUT ACCEPT
    -P FORWARD DROP
    -P OUTPUT ACCEPT

实际上禁用iptables,一切正常。

你有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我首先回顾一下

的输出
iptables -nL

确保当前运行的内容与您认为正在加载的文件相同(我假设是/ etc / sysconfig / iptables)。

如果它们匹配,我会通过

从命令行添加一些日志记录
iptables --append INPUT --jump LOG --log-prefix Input____ --log-level=$LOG_LEVEL
iptables --append OUTPUT --jump LOG --log-prefix Output____ --log-level=$LOG_LEVEL

或修改您的文件并添加

-A INPUT -j LOG --log-prefix "Input____" --log-level 6
-A OUTPUT -j LOG --log-prefix "Output____" --log-level 6

# Default chain policy行之前,然后重新加载防火墙。

我会选择命令行选项,以免永久更改。

日志的输出通常会转到/ var / log / messages。 (您可以查看/etc/syslog.conf以找出kern。*正在记录的位置。)

您可以通过

轻松找到记录的输出
tail -f /var/log/messages | grep put____

然后尝试访问其中一个NewRelic ips。

如果您需要更多帮助,请发布iptables -nLtail -f /var/log/messages | grep put____

的输出

答案 1 :(得分:0)

似乎这些规则旨在确保您的系统可以与New Relic的doc网站上列出的IP地址列表进行通信:

https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/networks

您现在拥有的规则是允许您的系统与New Relic之间进行通信的良好开端。我可以帮助连接New Relic,但我无法告诉您完整的防火墙规则应该是什么。防火墙是一个复杂的主题,当然不是一刀切。

请不要将我的添加视为使上述规则列表全面。

现在免责声明已经完成,代理/监视器无法向New Relic报告数据的可能原因可能是因为这些规则阻止了所有DNS查找。

对于任何应用程序监视器(意味着Java代理程序,Ruby代理程序等)或Linux服务器监视器将数据发送到New Relic,必须执行“collector.newrelic.com”的DNS查找。这个“收集器”实际上将代理或监视器重定向到另一个“真正的”收集器系统。

使用上面列出的规则,当应用程序代理或服务器监视器尝试对“collector.newrelic.com”执行DNS查找时,它将失败。此故障将阻止代理或服务器监视器向New Relic报告任何数据。

您可以通过添加一般内容来允许DNS查找:

-A OUTPUT -p udp --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -p udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
  • 您可以通过明确包含DNS服务器的IP地址来进一步优化此规则。

添加这些行并重新启动防火墙应解决New Relic报告问题。

最后一条评论,此处显示的iptables规则也会阻止所有传入的网络请求。如果您有网站或网络应用程序,这些规则将阻止任何人访问您的网站。这也应该在您修订的防火墙规则列表中解决。