CentOS 上 Apache Solr 的正確 iptables 配置是什麼?
我知道 iptables 執行導致我的 Apache Solr 實例無法訪問。我怎麼知道這個?因為我跑了:
/sbin/service iptables save && /sbin/service iptables stop
一旦我這樣做了,一切都完美無缺。
我想繼續使用我的防火牆,但是為其添加必要的規則似乎不起作用。我已經用盡了我認為可行的方法:
/sbin/service iptables start /sbin/iptables -A RH-Firewall-1-INPUT -p tcp -s 127.0.0.1 --dport 8983 -j ACCEPT /sbin/service iptables save
還是行不通
/sbin/iptables -D RH-Firewall-1-INPUT -p tcp -s 127.0.0.1 --dport 8983 -j ACCEPT /sbin/iptables -A RH-Firewall-1-INPUT -p tcp --dport 8983 -j ACCEPT /sbin/service iptables save
還是行不通
我什至嘗試在 8983 埠上做一個通用的 ACCEPT:
/sbin/iptables -A INPUT -p tcp --dport 8983 -j ACCEPT /sbin/service iptables save
還是行不通!
想法?
**/sbin/iptables -L -n -v** Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 215K 50M RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8983 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 279K packets, 286M bytes) pkts bytes target prot opt in out source destination Chain RH-Firewall-1-INPUT (2 references) pkts bytes target prot opt in out source destination 14286 19M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 8 672 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 255 0 0 ACCEPT esp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT ah -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.251 udp dpt:5353 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:631 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 181K 29M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 164 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:55 148 7676 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8008 2 120 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 11208 621K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 2202 123K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443 5372 951K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
更新(在最後一條規則之前添加):
*# /sbin/iptables -L -n -v --line-numbers* Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 585K 123M RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 782K packets, 822M bytes) num pkts bytes target prot opt in out source destination Chain RH-Firewall-1-INPUT (2 references) num pkts bytes target prot opt in out source destination 1 31867 43M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 2 27 2232 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 255 3 0 0 ACCEPT esp -- * * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT ah -- * * 0.0.0.0/0 0.0.0.0/0 5 0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.251 udp dpt:5353 6 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:631 7 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 8 502K 76M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 9 4 268 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:55 10 189 9780 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8008 11 8 480 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 12 29633 1656K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 13 6138 345K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443 14 14841 2635K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited *# /sbin/iptables --insert RH-Firewall-1-INPUT 14 -p tcp --dport 8983 -j ACCEPT # /sbin/iptables -L -n -v --line-numbers* Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 599K 127M RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 801K packets, 841M bytes) num pkts bytes target prot opt in out source destination Chain RH-Firewall-1-INPUT (2 references) num pkts bytes target prot opt in out source destination 1 32631 44M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 2 27 2232 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 255 3 0 0 ACCEPT esp -- * * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT ah -- * * 0.0.0.0/0 0.0.0.0/0 5 0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.251 udp dpt:5353 6 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:631 7 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 8 514K 78M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 9 4 268 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:55 10 292 15136 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8008 11 8 480 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 12 30425 1701K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 13 6304 355K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443 14 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8983 15 15130 2690K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
即使在 RH-Firewall-1-INPUT 鏈的最後一行之前添加了 ACCEPT 規則,它仍然不起作用
iptables 規則的順序很重要,因為第一場比賽獲勝。像大多數明智的人一樣,紅帽通常會在其鏈的末尾放置一個全面的 REJECT,然後添加規則以允許 solr 流量 - 或任何其他類型的流量 - 之後將無濟於事,因為數據包永遠不會到達那麼遠沿著鏈條。
如果這是你的問題,你需要做一個
iptables -L -n -v --line-number
,在最後找到一攬子規則的編號,並使用iptables -I RH-Firewall-1-INPUT n ...
在行號處插入你的 ACCEPTn
,其中 n 小於一攬子 REJECT 的數量。編輯:感謝您的列表。看到最後那條毯子
REJECT all -- * *
了嗎?在那之後添加你的沒有意義ACCEPT
,因為你永遠不會走那麼遠。嘗試--line-number
列出清單以找出需要插入該行的位置 - 在最後一行之前的任何位置 - 並查看是否有效。編輯 2:您是否還可以確認
netstat -an|grep 8983
伺服器上返回的內容是合理的?編輯 3:那麼您的伺服器沒有在埠 8983 上偵聽,這就是為什麼即使在防火牆中打開埠後您也無法連接到它的原因。如果您在該埠上有一個偵聽器,您會看到類似
[madhatta@www mail]$ netstat -an|grep 443 tcp 0 0 193.219.118.100:443 0.0.0.0:* LISTEN
上面的例子取自我的網路伺服器,這就是為什麼它的埠是 443 而不是 8983。在我們取得更多進展之前,你需要找出為什麼 8983 上沒有監聽器。
編輯 4:您無法連接到未收聽的守護程序。我知道您說過“關閉防火牆可以解決所有問題”,當守護程序正在偵聽時,這可能是正確的;但現在我對此表示懷疑。如果您願意重複實驗:關閉防火牆,確認
netstat -an|grep 8983
伺服器上仍然沒有返回任何內容,然後顯示telnet server 8983
連接,我會感到驚喜。編輯5:很高興提供幫助!