Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

305
Views
Restrinja el puerto expuesto de Docker solo de direcciones IP específicas

¿Cómo restringir el puerto de un contenedor expuesto por Docker solo de una lista de IP? Solo esta lista de IP podría acceder a este puerto.

Intenté eso:

 iptables -I DOCKER -p tcp --dport PORT_X -j REJECT --reject-with icmp-port-unreachable iptables -I DOCKER -p tcp --dport PORT_X --source EXTERNAL_IP_1 --destination HOST_IP_1 -j ACCEPT iptables -I DOCKER -p tcp --dport PORT_X --source EXTERNAL_IP_2 --destination HOST_IP_1 -j ACCEPT iptables -I DOCKER -p tcp --dport PORT_X --source EXTERNAL_IP_3 --destination HOST_IP_1 -j ACCEPT
about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Yo tuve el mismo problema. Lo resolví con estas reglas:

 iptables -I DOCKER-USER -i <your_interface_name> -j DROP iptables -I DOCKER-USER -i <your_interface_name> -s <your_first_ip> -j ACCEPT iptables -I DOCKER-USER -i <your_interface_name> -s <your_second_ip> -j ACCEPT

Atención, DOCKER-USER es una cadena que no se eliminará cuando service docker restart

Debería poder agregar su bandera de puerto, pero no soy un experto y no es mi necesidad.

about 4 years ago · Santiago Trujillo Report

0

Su política es la lista blanca, es mejor crear una chain personalizada de usuario para manejar esto solo.

Por ejemplo, tengo un contenedor redis , quiero que solo sirva para IP específicas:

 $ docker run -d -p 6379:6379 redis:2.8

Después de iniciar el contenedor Redis, las iptables se ven así:

 $ iptables -t filter -nL Chain DOCKER (1 references) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 172.17.0.2 tcp dpt:6379

Crea nuestra cadena personalizada:

 $ iptables -N CUSTOM_REDIS $ iptables -A CUSTOM_REDIS -p tcp --dport 6379 --source 172.31.101.37 --destination 172.17.0.2 -j ACCEPT $ iptables -A CUSTOM_REDIS -p tcp --dport 6379 --source 172.31.101.38 --destination 172.17.0.2 -j ACCEPT $ iptables -A CUSTOM_REDIS -p tcp --dport 6379 --source 0.0.0.0/0 --destination 172.17.0.2 -j DROP

Reemplace la regla original con una cadena personalizada:

 $ iptables -R DOCKER 1 -p tcp --source 0.0.0.0/0 --destination 172.17.0.2 --dport 6379 -j CUSTOM_REDIS

Ahora mi redis solo puede acceder por ip: 172.31.101.37 y 172.31.101.38 .

Nota:

  • 172.17.0.2 es la ip del contenedor redis
about 4 years ago · Santiago Trujillo Report

0

De la guía acoplable aquí :

Las reglas de reenvío de Docker permiten todas las direcciones IP de origen externo de forma predeterminada. Para permitir que solo una IP o red específica acceda a los contenedores, inserte una regla negada en la parte superior de la cadena de filtros DOCKER. Por ejemplo, para restringir el acceso externo de modo que solo la fuente IP 8.8.8.8 pueda acceder a los contenedores, se podría agregar la siguiente regla:

$ iptables -I DOCKER -i ext_if ! -s 8.8.8.8 -j DROP

En su caso, dado que desea permitir múltiples direcciones IP, creo que algo como esto debería funcionar:

 iptables -I DOCKER -s EXTERNAL_IP_1 -p tcp --dport PORT_X -j ACCEPT iptables -I DOCKER -s EXTERNAL_IP_2 -p tcp --dport PORT_X -j ACCEPT iptables -I DOCKER -s EXTERNAL_IP_3 -p tcp --dport PORT_X -j ACCEPT iptables -I DOCKER -p tcp --dport PORT_X -j REJECT --reject-with icmp-port-unreachable
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!