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

Конфигурация iptables нарушает связь Java + Elastic Search

Я пытаюсь настроить брандмауэр для сервера, на котором размещено приложение Java и ES. Оба находятся на одном сервере и обмениваются данными друг с другом. Проблема, с которой я столкнулся, заключается в том, что моя конфигурация брандмауэра не позволяет java подключаться к ES. Не уверен, почему на самом деле .... Я пробовал много вещей, например, безуспешно открывал диапазон портов 9200: 9400 для IP-адреса сервера, но, насколько мне известно, вся связь внутри сервера должна быть разрешена с этой конфигурацией.

Идея состоит в том, что ES не должен быть доступен извне, но он должен быть доступен из этого java-приложения, а ES использует диапазон портов 9200: 9400.

Это мой скрипт iptables:

echo -e Deleting rules for INPUT chain
iptables -F INPUT

echo -e Deleting rules for OUTPUT chain
iptables -F OUTPUT

echo -e Deleting rules for FORWARD chain
iptables -F FORWARD

echo -e Setting by default the drop policy on each chain
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

echo -e Open all ports from/to localhost
iptables -A INPUT -i lo -j ACCEPT

echo -e Open SSH port 22 with brute force security
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --rcheck --seconds 30 --hitcount 4 --rttl --name SSH --rsource -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --rcheck --seconds 30 --hitcount 3 --rttl --name SSH --rsource -j LOG --log-prefix "SSH brute force "
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 30 --hitcount 3 --rttl --name SSH --rsource -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

echo -e Open NGINX port 80
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

echo -e Open NGINX SSL port 443
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

echo -e Enable DNS
iptables -A INPUT -p tcp -m tcp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

И я получаю это в приложении java, когда эта конфигурация находится на месте:

org.elasticsearch.cluster.block.ClusterBlockException: blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];[SERVICE_UNAVAILABLE/2/no master];
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)

Кто-нибудь из вас видит какие-либо проблемы с этой конфигурацией и ES?

заранее спасибо

Добавление этого устранило проблему:

-A INPUT -m pkttype --pkt-type multicast -j ACCEPT