我正在尝试为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,一切正常。
你有什么建议吗?
答案 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 -nL
和tail -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
添加这些行并重新启动防火墙应解决New Relic报告问题。
最后一条评论,此处显示的iptables
规则也会阻止所有传入的网络请求。如果您有网站或网络应用程序,这些规则将阻止任何人访问您的网站。这也应该在您修订的防火墙规则列表中解决。