Cukup siapkan wadah ElasticSearch untuk digunakan dengan aplikasi Laravel perusahaan.Membuat docker-compose.yml dan menjalankannya tanpa cacat dan lurus ke depan tetapi masalah terjadi ketika saya ingin firewall hal ini sehingga hanya dapat diakses dari satu, IP spesifik dari aplikasi Laravel yang disebutkan.
Saat meneliti, saya perhatikan bahwa banyak orang mengalami masalah ini di mana lalu lintas ke port yang diteruskan oleh buruh pelabuhan benar-benar terpapar ke publik dan mereka tidak dapat melakukan firewall dengan benar.
Saya menemukan beberapa solusi dalam 6 jam terakhir yang tidak ada yang bekerja. Saya berasumsi ini ada hubungannya dengan cara Docker memproses/meneruskan lalu lintas masuk dan pengetahuan iptables saya tidak begitu luas sehingga saya dapat memahami apa yang terjadi sendiri.
Ini adalah docker-compose saya.yml (untuk apa itu layak):
version: '3.4'services: elasticsearch: image: khezen/elasticsearch:6.1.1 container_name: elasticsearch environment: NETWORK_HOST: 0.0.0.0 HOSTS: 127.0.0.1 CLUSTER_NAME: fd-es NODE_NAME: node-1 HEAP_SIZE: 31g HTTP_SSL: "true" ELASTIC_PWD: "somepasswd" HTTP_CORS_ENABLE: "true" HTTP_CORS_ALLOW_ORIGIN: /https?:\/\/localhost(:[0-9]+)?/ ulimits: memlock: soft: -1 hard: -1 volumes: - ./config/elasticsearch.yml:/elasticsearch/config/elasticsearch.yml - ./data:/elasticsearch/data - ./logs:/elasticsearch/logs ports: - 9200:9200 networks: - es-network restart: alwaysnetworks: es-network: driver: bridge
Ini adalah aturan iptables saya yang saat ini digunakan yang sampai taraf tertentu sesuai dengan yang saya inginkan tetapi semua lalu lintas ke port 9200 dari klien mana pun masih diizinkan alih-alih hanya dapat diakses dari aplikasi saya:
*filter:INPUT DROP [0:0]:FORWARD DROP [0:0]:OUTPUT ACCEPT [779:162776]:DOCKER - [0:0]-A DOCKER -s xxx.xxx.xxx.xxx -p tcp -m tcp --dport 9200 -j ACCEPT-A DOCKER -o docker0 -p tcp -m tcp --dport 9200 -j ACCEPT-A DOCKER -p tcp --dport 9200 -j DROP-A INPUT -i lo -j ACCEPT-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A INPUT -m conntrack --ctstate INVALID -j DROP-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT-A INPUT -p udp -m conntrack --ctstate NEW -j ACCEPT-A INPUT -p tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT-A INPUT -p tcp -m tcp --dport 44344 -j ACCEPT-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable-A INPUT -p tcp -j REJECT --reject-with tcp-reset-A INPUT -j REJECT --reject-with icmp-proto-unreachable-A INPUT -j DROP
Saya mencoba menonaktifkan dukungan iptables Docker dan menonaktifkan jaringan jembatan dan mengubah aturan iptables beberapa lusin kali tetapi tidak berhasil.
Saya akan menghargai saran dan bantuan apa pun untuk mewujudkannya karena saya kehabisan ide dan hasil pencarian untuk masalah ini.
Terima kasih sebelumnya!