Назад | Перейти на главную страницу

Какова правильная конфигурация iptables для Apache Solr в CentOS?

Я точно знаю, что при запуске 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: рад помочь!