Puncte:1

Cum să preveniți accesul de la distanță în iptables

drapel cn

Am iptables configurat cu docker-compose, dar lista mea albă numai a adreselor IP pe care le doresc nu pare să funcționeze, deoarece serverul primește încă încercări de acces la distanță:

Conexiunea s-a potrivit cu pg_hba.conf linia 95: „gazdă toate toate toate md5”
2021-09-01 21:36:42.132 UTC [8821] FATAL: autentificarea parolei a eșuat pentru utilizatorul „postgres”
2021-09-01 21:36:42.132 UTC [8821] DETALII: Rolul „postgres” nu există.

Cum îmi pot repara iptables pentru a fi configurat corect? Ce am greșit aici?

-P CĂDERARE INTRARE
-P PĂDURA ÎNTÂMPRE
-P ACCEPT IEȘIRE
-N DOCKER
-N DOCKER-IZOLARE-ETAPA-1
-N DOCKER-ETAPA DE IZOLARE-2
-N DOCKER-UTILIZATOR
-A INTRARE -i lo -j ACCEPT
-A INTRARE -i eth1 -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,STABLISHED -j ACCEPT
-A INTRARE -p tcp -m tcp --dport 22 -j ACCEPT
-A INTRARE -p tcp -m tcp --dport 80 -j ACCEPT
-A INTRARE -p tcp -m tcp --dport 443 -j ACCEPT
-A INTRARE -s xxx.xxx.xx.xx/xx -p tcp -m tcp --dport 5432 -j ACCEPT (unde x este eliminat adresele IP)
-A INTRARE -s xxx.xxx.xx.xx/xx -p tcp -m tcp --dport 5432 -j ACCEPT
-A INTRARE -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INTRARE -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INTRARE -p icmp -m icmp --icmp-type 11 -j ACCEPT
-UN FORWARD -j DOCKER-UTILIZATOR
-A ÎNAINTE -j DOCKER-ETAPA DE IZOLARE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,STABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A ÎNTÂMPRE -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -o br-1de8a78b46b8 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o br-1de8a78b46b8 -j DOCKER
-A FORWARD -i br-1de8a78b46b8 ! -o br-1de8a78b46b8 -j ACCEPT
-A FORWARD -i br-1de8a78b46b8 -o br-1de8a78b46b8 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 5432 -m iprange --src-range 82.208.14.110-82.208.14.119 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 5432 -j REJECT --reject-with icmp-port-unreachable
-A DOCKER -d 172.18.0.2/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 6379 -j ACCEPT
-A DOCKER -d 172.18.0.3/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 2368 -j ACCEPT
-A DOCKER -d 172.18.0.4/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 5432 -j ACCEPT
-A DOCKER -d 172.18.0.5/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 5900 -j ACCEPT
-A DOCKER -d 172.18.0.5/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 4444 -j ACCEPT
-A DOCKER -d 172.18.0.8/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 8000 -j ACCEPT
-A DOCKER -d 172.18.0.9/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 443 -j ACCEPT
-A DOCKER -d 172.18.0.9/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 80 -j ACCEPT
-A DOCKER -d 172.18.0.6/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 9300 -j ACCEPT
-A DOCKER -d 172.18.0.6/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 9200 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-IZOLARE-ETAPA-1 -i br-1de8a78b46b8 ! -o br-1de8a78b46b8 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-IZOLARE-ETAPA-1 -j RETURNARE
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-1de8a78b46b8 -j DROP
-A DOCKER-IZOLARE-ETAPA-2 -j RETURNARE
-UN DOCKER-USER -j RETURN

EDITAȚI | ×:

Iată configurația mea pentru docker-compose:

  postgres:
    imagine: "postgres:12.1"
    env_file:
      - „.env”
    porturi:
      - '5432:5432' # eliminat 127.0.0.1: - adăugarea de firewall-uri în iptables

    reporniți: „${DOCKER_RESTART_POLICY:-unless-stopped}”
    stop_grace_period: „${DOCKER_STOP_GRACE_PERIOD:-3s}”
    volume:
      - postgres:/var/lib/postgresql/data
      - /opt/ghost_postgres:/var/lib/postgres
    retele: 
      - esnet

  redis:
    imagine: redis:5.0.6-alpin
    comandă: redis-server --requirepass „${REDIS_PASS}”
    reporniți: „${DOCKER_RESTART_POLICY:-unless-stopped}”
    stop_grace_period: „${DOCKER_STOP_GRACE_PERIOD:-3s}”
    porturi:
      - „6379:6379”
    volume:
      - redis:/var/lib/redis/data
    retele: 
      - esnet


  prosebit:
    construi: 
      context: "."
      argumente:
        - „FLASK_ENV=${FLASK_ENV:-producție}”
        - „NODE_ENV=${NODE_ENV:-producție}”
    depinde de:
      - "postgres"
      - "redis"
    env_file:
      - „.env”
    porturi:
      - „${DOCKER_WEB_PORT:-127.0.0.1:8000}:8000”
    reporniți: „${DOCKER_RESTART_POLICY:-unless-stopped}”
    stop_grace_period: „${DOCKER_STOP_GRACE_PERIOD:-3s}”
    volume:
      - „${DOCKER_WEB_VOLUME:-./public:/app/public}”
    retele:
      - esnet
      
  web: 
    depinde de:
      - prosebit
    reporniți: întotdeauna
    construi:
      context: ../nginx #added /deploy pentru dezvoltare, eliminați pentru producție
      dockerfile: Dockerfile
    volume:
      ...
    porturi:
      - 80:80
      - 443:443
    retele:
      - "esnet"


  țelină:
    construi: 
      context: "."
      argumente: 
        - „FLASK_ENV=${FLASK_ENV:-producție}”
        - „NODE_ENV=${NODE_ENV:-producție}”
    comanda: lucrator telina -B -l info -A 
    env_file:
      - „.env”
    depinde de:
      - "postgres"
      - "redis"
    env_file:
      - „.env”
    reporniți: „${DOCKER_RESTART_POLICY:-unless-stopped}”
    stop_grace_period: „${DOCKER_STOP_GRACE_PERIOD:-3s}”
    volume:
      - „${DOCKER_WEB_VOLUME:-./public:/app/public}”
    retele:
      - "esnet"
Puncte:1
drapel cz

Docker deschide portul în firewall-ul propriu-zis, deoarece docker-compose.yml solicită în mod explicit ca portul 5432 să fie expus lumii.

    porturi:
      - '5432:5432' # eliminat 127.0.0.1: - adăugarea de firewall-uri în iptables

Nu este deloc clar de ce este aici, sub nicio formă. Amintiți-vă că serviciile în același reţea pot accesa întotdeauna unul pe celălalt și nu au nevoie porturi specificat. Specificați doar porturi pentru a permite accesul din exterior.

PS: Ți-ai expus și containerul redis lumii, ceea ce probabil nu este ceea ce îți dorești.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.