Я точно знаю, что при запуске 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
Все еще не работает
Я даже пробовал сделать общий ACCEPT на порту 8983:
/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
Несмотря на то, что правило ACCEPT было добавлено перед последней строкой цепочки RH-Firewall-1-INPUT, оно по-прежнему не работает
В порядок правил iptables важно, так как выигрывает первый матч. Red Hat, как и большинство здравомыслящих людей, обычно помещает бланкет REJECT в конец своей цепочки, и добавление правил, разрешающих трафик solr - или любой другой тип трафика - после этого не поможет, поскольку пакет никогда не зайдет так далеко. вниз по цепочке.
Если это то, что вас кусает, вам нужно сделать iptables -L -n -v --line-number
, найдите в конце номер правила одеяла и используйте iptables -I RH-Firewall-1-INPUT n ...
для вставки вашего ПРИНЯТИЯ в номер строки n
, где 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: рад помочь!