У меня есть iptables, настроенный с помощью docker-compose, но мой белый список только тех IP-адресов, которые я хочу, похоже, не работает, поскольку сервер все еще получает попытки удаленного доступа:
Соединение соответствует строке 95 pg_hba.conf: «host all all all md5»
2021-09-01 21:36:42.132 UTC [8821] FATAL: проверка подлинности пароля не удалась для пользователя "postgres"
2021-09-01 21:36:42.132 UTC [8821] ПОДРОБНОСТИ: роль «postgres» не существует.
Как исправить правильность настройки iptables? Что я здесь сделал не так?
-P ВХОД ПАДЕНИЕ
-P ПАДЕНИЕ ВПЕРЕД
-P ВЫВОД ПРИНЯТЬ
-N ДОКЕР
-N DOCKER-ИЗОЛЯЦИЯ-ЭТАП-1
-N DOCKER-ИЗОЛЯЦИЯ-СТАДИЯ-2
-N DOCKER-ПОЛЬЗОВАТЕЛЬ
-A ВВОД -i lo -j ПРИНЯТЬ
-A ВВОД -i eth1 -j ПРИНЯТЬ
-A ВВОД -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A INPUT -p tcp -m tcp --dport 22 -j ПРИНЯТЬ
-A ВХОД -p tcp -m tcp --dport 80 -j ПРИНЯТЬ
-A INPUT -p tcp -m tcp --dport 443 -j ПРИНЯТЬ
-A INPUT -s xxx.xxx.xx.xx/xx -p tcp -m tcp --dport 5432 -j ACCEPT (где x удален IP-адрес)
-A INPUT -s xxx.xxx.xx.xx/xx -p tcp -m tcp --dport 5432 -j ПРИНЯТЬ
-A ВВОД -p icmp -m icmp --icmp-type 0 -j ПРИНЯТЬ
-A ВВОД -p icmp -m icmp --icmp-type 3 -j ПРИНЯТЬ
-A ВВОД -p icmp -m icmp --icmp-type 11 -j ПРИНЯТЬ
-A FORWARD -j DOCKER-USER
-A ВПЕРЕД -j DOCKER-ИЗОЛЯЦИЯ-ЭТАП-1
-A FORWARD -o docker0 -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ВПЕРЕД -o docker0 -j DOCKER
-A ВПЕРЕД -i docker0 ! -o docker0 -j ПРИНЯТЬ
-A ВПЕРЕД -i docker0 -o docker0 -j ПРИНЯТЬ
-A FORWARD -o br-1de8a78b46b8 -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ВПЕРЕД -o br-1de8a78b46b8 -j ДОКЕР
-A ВПЕРЕД -i br-1de8a78b46b8 ! -o br-1de8a78b46b8 -j ПРИНЯТЬ
-A ВПЕРЕД -i br-1de8a78b46b8 -o br-1de8a78b46b8 -j ПРИНЯТЬ
-A FORWARD -p tcp -m tcp --dport 5432 -m iprange --src-range 82.208.14.110-82.208.14.119 -j ПРИНЯТЬ
-A FORWARD -p tcp -m tcp --dport 5432 -j REJECT --reject-with icmp-port-unreachable
-A ДОКЕР -d 172.18.0.2/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 6379 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.3/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 2368 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.4/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 5432 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.5/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 5900 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.5/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 4444 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.8/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 8000 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.9/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 443 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.9/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 80 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.6/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 9300 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.6/32 ! -i br-1de8a78b46b8 -o br-1de8a78b46b8 -p tcp -m tcp --dport 9200 -j ПРИНЯТЬ
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-1de8a78b46b8 ! -o br-1de8a78b46b8 -j DOCKER-ИЗОЛЯЦИЯ-ЭТАП-2
-A DOCKER-ISOLATION-STAGE-1 -j ВОЗВРАТ
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-1de8a78b46b8 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j ВОЗВРАТ
-A DOCKER-USER -j ВОЗВРАТ
РЕДАКТИРОВАТЬ:
Вот моя конфигурация для создания докеров:
постгрес:
изображение: "postgres:12.1"
env_file:
- '.env'
порты:
- '5432:5432' # удалено 127.0.0.1: - добавление брандмауэров в iptables
перезапуск: "${DOCKER_RESTART_POLICY:-если-не остановлен}"
stop_grace_period: "${DOCKER_STOP_GRACE_PERIOD:-3s}"
тома:
- postgres:/var/lib/postgresql/данные
- /opt/ghost_postgres:/var/lib/postgres
сети:
- эснет
редис:
изображение: redis:5.0.6-alpine
команда: redis-server --requirepass "${REDIS_PASS}"
перезапуск: "${DOCKER_RESTART_POLICY:-если-не остановлен}"
stop_grace_period: "${DOCKER_STOP_GRACE_PERIOD:-3s}"
порты:
- '6379:6379'
тома:
- Redis:/var/lib/redis/данные
сети:
- эснет
просебит:
строить:
контекст: "."
аргументы:
- "FLASK_ENV=${FLASK_ENV:-производство}"
- "NODE_ENV=${NODE_ENV:-производство}"
зависит от:
- "постгрес"
- "редис"
env_file:
- ".env"
порты:
- "${DOCKER_WEB_PORT:-127.0.0.1:8000}:8000"
перезапуск: "${DOCKER_RESTART_POLICY:-если-не остановлен}"
stop_grace_period: "${DOCKER_STOP_GRACE_PERIOD:-3s}"
тома:
- "${DOCKER_WEB_VOLUME:-./public:/app/public}"
сети:
- эснет
веб:
зависит от:
- просебит
перезапуск: всегда
строить:
контекст: ../nginx #добавлено /deploy для разработки, удалить для производства
докерфайл: Докерфайл
тома:
...
порты:
- 80:80
- 443:443
сети:
- "эснет"
сельдерей:
строить:
контекст: "."
аргументы:
- "FLASK_ENV=${FLASK_ENV:-производство}"
- "NODE_ENV=${NODE_ENV:-производство}"
команда: рабочий сельдерей -B -l информация -A
env_file:
- '.env'
зависит от:
- "постгрес"
- "редис"
env_file:
- ".env"
перезапуск: "${DOCKER_RESTART_POLICY:-если-не остановлен}"
stop_grace_period: "${DOCKER_STOP_GRACE_PERIOD:-3s}"
тома:
- "${DOCKER_WEB_VOLUME:-./public:/app/public}"
сети:
- "эснет"