...
| Блок кода |
|---|
|
...
# Root credentials для развертки и настройки базы данных
ROOT_POSTGRES_USER=tester
ROOT_POSTGRES_PASSWORD=old_tester_password
# Client info для работы с базой данных
ECCM_POSTGRES_DB=eccm
ECCM_POSTGRES_USER=eccm
ECCM_POSTGRES_PASSWORD=old_eccm_passwordhistpassword
...
PPEEPER_MONITOR_POSTGRES_USER=peeper_monitor
PEEPER_MONITOR_POSTGRES_PASSWORD=old_peeper_monitor_password
... |
...
Настройка PostgreSQL позволяет ограничить доступ нежелательных пользователей к базе данных при запуске ECCM в отказоустойчивой системе, или когда база данных находится на отдельном сервере.
Выведите подсети, которые использует docker:
| Подсказка |
|---|
Когда ECCM и база данных — на одном сервере, настройка подключений не требуется. По умолчанию контейнер с базой данных при выбранной инсталляции изолирован и недоступен из внешней сети. |
| Раскрыть |
|---|
| title | Настройка доступа к БД в отказоустойчивой системе |
|---|
|
Настройте доступ к БД только с localhost, подсетей docker и адреса администратора при помощи любого текстового редактора в файле postgres/data/pg_hba.cluster.conf.tpl: | Блок кода |
|---|
| theme | RDark |
|---|
| title | postgres/data/pg_hba.cluster.conf.tpl |
|---|
| # TYPE DATABASE |
|
| Блок кода |
|---|
|
| sudo docker network inspect internal | grep "Subnet"
"Subnet": "172.21.0.0/16",
sudo docker network inspect external | grep "Subnet"
"Subnet": "172.20.0.0/16"
|
Перейдите в рабочую директорию ECCM:
| Раскрыть |
|---|
| title | Настройка доступа к БД в отказоустойчивой системе |
|---|
|
Настройте доступ к БД только с localhost, с подсетей docker-а и адреса администратора при помощи любого текстового редактора в файле postgres/data/pg_hba.cluster.conf.tpl: | Блок кода |
|---|
| theme | RDark |
|---|
| title | postgres/data/pg_hba.conf.tpl |
|---|
| # TYPE ADDRESS METHOD DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
# "local" is for Unix domain socket connections only
local all all trust
local all all trust
# IPv4 local connections:
# IPv4 local connections:
host all all
host all all 127.127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Docker network internal (172.21.0.0/20) и external (172.20.0.0/20)
hostssl ${ECCM_DATABASE} ${POSTGRES_USER} 172.21.0.0/16 md5 # docker network internal
hostssl ${ECCM_DATABASE} ${ECCM_POSTGRES_USER} 172.21.0.0/16 md5 # docker network internal
hostssl all ${PEEPER_MONITOR_POSTGRES_USER} 172.21.0.0/16 md5 # docker network internal
hostssl repmgr ${REPMGR_USER} 172.21.0.0/16 md5 # docker network internal
hostssl ${ECCM_DATABASE} ${POSTGRES_USER} 172.20.0.0/16 md5 # docker network external
hostssl ${ECCM_DATABASE} ${ECCM_POSTGRES_USER} 172.20.0.0/16 md5 # docker network external
hostssl all ${PEEPER_MONITOR_POSTGRES_USER} 172.20.0.0/16 md5 # docker network external
hostssl repmgr ${REPMGR_USER} 172.20.0.0/16 md5 # docker network external
# Опционально: удаленный доступ администратора к БД
hostssl all all <admin_ip>/32 md5 # опционально: IP адрес для удаленного подключения администратора к БД
# Опционально: доступ приложений ECCM инсталляции отказоустойчивой системы с БД на отдельном сервере
hostssl ${ECCM_DATABASE} ${POSTGRES_USER} <master_app_ip>/32 md5 # IP адрес Master-ECCM
hostssl ${ECCM_DATABASE} ${ECCM_POSTGRES_USER} <master_app_ip>/32 md5 # IP адрес Master-ECCM
hostssl all ${PEEPER_MONITOR_POSTGRES_USER} <master_app_ip>/32 md5 # IP адрес Master-ECCM
hostssl repmgr ${REPMGR_USER} <master_app_ip>/32 md5 # IP адрес Master-ECCM
hostssl ${ECCM_DATABASE} ${POSTGRES_USER} <slave_app_ip>/32 md5 # IP адрес Slave-ECCM
hostssl ${ECCM_DATABASE} ${ECCM_POSTGRES_USER} <slave_app_ip>/32 md5 # IP адрес Slave-ECCM
hostssl all ${PEEPER_MONITOR_POSTGRES_USER} <slave_app_ip>/32 md5 # IP адрес Slave-ECCM
hostssl repmgr ${REPMGR_USER} <slave_app_ip>/32 md5 # IP адрес Slave-ECCM |
| Подсказка |
|---|
IP-адреса всех узлов отказоустойчивой системы будут добавлены автоматически при запуске ECCM. |
Синхронизируйте конфигурационные файлы между узлами: | Блок кода |
|---|
| sudo rsync -av --delete --rsync-path="sudo rsync" eccm/2.9/postgres/data/pg_hba.cluster.conf.tpl <имя пользователя сервера>@<IP-адрес сервера назначения>:<полный путь до директории eccm>/postgres/data/ |
В файле .env.cluster измените значение параметра RECONFIGURE_CLUSTER на true и перезапустите систему в соответствии с инструкцией в разделе "Запуск ECCM в отказоустойчивой системе". | Примечание |
|---|
Во избежание ошибок верните значение параметра RECONFIGURE_CLUSTER на false после перезапуска. |
|
Настройте доступ к БД только с localhost, с подсетей docker-а и адреса администратора при помощи любого текстового редактора в файле postgres/data/pg_hba.conf.tpl:
Настройка firewall
Для обеспечения большей безопасности необходимо ограничить внешние подключения к серверу ECCM.
Создайте файл iptables.sh с правилами:
| Блок кода |
|---|
|
code | | theme | RDark |
|---|
| title | postgres/data/pg_hba.conf.tpl | iptables.sh |
|---|
|
sudo iptables -P INPUT DROP # запрет всех входящих соединений
sudo iptables -P FORWARD DROP # запрет для всех проходящих через ваш хост соединений
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # веб-интерфейс ECCM на схеме HTTPS - не используется для Witness
# разрешить исходящие подключения, которые инициировали мы сами
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# разрешить обращения к localhost
sudo iptables -A INPUT -i lo -j ACCEPT
# опционально: разрешить пинговать себя
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 67 -j ACCEPT # DHCP
sudo iptables -A INPUT -p udp --dport 69 -j ACCEPT # TFTP
sudo iptables -A INPUT -p udp --dport 162 -j ACCEPT # SNMP-трапы
sudo iptables -A INPUT -p udp --dport 514 -j ACCEPT # Syslog (UDP)
sudo iptables -A INPUT -p tcp --dport 514 -j ACCEPT # Syslog (TCP)
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT # загрузка прошивок |
Примените правила:
| Блок кода |
|---|
|
chmod +x iptables.sh
sudo ./iptables.sh |
Для того чтобы правила сохранились после перезагрузки, можно использовать утилиту iptables-persistent (или любые другие доступные методы):
| Блок кода |
|---|
|
sudo apt-get install iptables-persistent
sudo netfilter-persistent save |
| Раскрыть |
|---|
| title | Настройка firewall для ECCM с БД на отдельном сервере |
|---|
|
Создайте файл iptables.sh на сервере с ECCM со следующими правилами: | Блок кода |
|---|
| language | bash |
|---|
| theme | RDark |
|---|
| title | Сервер ECCM |
|---|
| sudo iptables -P INPUT DROP # запрет всех входящих соединений
sudo iptables -P FORWARD DROP # запрет для всех проходящих через ваш хост соединений
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # веб-интерфейс ECCM на схеме HTTPS
# разрешить исходящие подключения, которые инициировали мы сами
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# разрешить обращения к localhost
sudo iptables -A INPUT -i lo -j ACCEPT
# опционально: разрешить пинговать себя
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 67 -j ACCEPT # DHCP
sudo iptables -A INPUT -p udp --dport 69 -j ACCEPT # TFTP
sudo iptables -A INPUT -p udp --dport 162 -j ACCEPT # SNMP-трапы
sudo iptables -A INPUT -p udp --dport 514 -j ACCEPT # Syslog (UDP)
sudo iptables -A INPUT -p tcp --dport 514 -j ACCEPT # Syslog (TCP)
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT # загрузка прошивок |
На сервере с БД создайте файл iptables.sh со следующими правилами: | Блок кода |
|---|
| language | bash |
|---|
| theme | RDark |
|---|
| title | Сервер с БД |
|---|
| sudo iptables -P INPUT DROP # запрет всех входящих соединений
sudo iptables -P FORWARD DROP # запрет для всех проходящих через ваш хост соединений
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
sudo iptables -A INPUT -p tcp -s <IP сервера ECCM> --dport 5432 -j ACCEPT # доступ приложений к БД
# разрешим исходящие подключения, которые инициировали мы сами
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# разрешить обращения к localhost
sudo iptables -A INPUT -i lo -j ACCEPT
# опционально: разрешить пинговать себя
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# опционально: доступ администратора к БД
sudo iptables -A INPUT -p tcp -s <admin_ip>/32 --dport 5432 -j ACCEPT |
Примените правила на каждом сервере: | Блок кода |
|---|
| chmod +x iptables.sh
sudo ./iptables.sh |
Для того чтобы правила сохранились после перезагрузки, можно использовать утилиту iptables-persistent (или любые другие доступные методы): | Блок кода |
|---|
| sudo apt-get install iptables-persistent
sudo netfilter-persistent save |
|
| Раскрыть |
|---|
| title | Настройка firewall для отказоустойчивой системы по стандартной схеме |
|---|
|
Создайте файл iptables.sh на узлах Master и Slave со следующими правилами: | Блок кода |
|---|
| language | bash |
|---|
| theme | RDark |
|---|
| title | Узлы Master и Slave |
|---|
| sudo iptables -P INPUT DROP # запрет всех входящих соединений
sudo iptables -P FORWARD DROP # запрет для всех проходящих через ваш хост соединений
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # веб-интерфейс ECCM на схеме HTTPS
# разрешить исходящие подключения, которые инициировали мы сами
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# разрешить обращения к localhost
sudo iptables -A INPUT -i lo -j ACCEPT
# опционально: разрешить пинговать себя
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# опционально: доступ администратора к БД
sudo iptables -A INPUT -p tcp -s <admin_ip>/32 --dport 5432 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 67 -j ACCEPT # DHCP
sudo iptables -A INPUT -p udp --dport 69 -j ACCEPT # TFTP
sudo iptables -A INPUT -p udp --dport 162 -j ACCEPT # SNMP-трапы
sudo iptables -A INPUT -p udp --dport 514 -j ACCEPT # Syslog (UDP)
sudo iptables -A INPUT -p tcp --dport 514 -j ACCEPT # Syslog (TCP)
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT # загрузка прошивок
# PostgreSQL
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 5432 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 5432 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Witness> --dport 5432 -j ACCEPT
# Redis
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 6379 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 6379 -j ACCEPT
# Sentinel
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 26379 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 26379 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Witness> --dport 26379 -j ACCEPT
# RabbitMQ
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 5671 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 5671 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Witness> --dport 5671 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Witness> --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 25672 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 25672 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Witness> --dport 25672 -j ACCEPT
# Keepalived
sudo iptables -A INPUT -p vrrp -j ACCEPT |
На узле Witness создайте файл iptables.sh со следующими правилами: | Блок кода |
|---|
| language | bash |
|---|
| theme | RDark |
|---|
| title | Узел Witness |
|---|
| sudo iptables -P INPUT DROP # запрет всех входящих соединений
sudo iptables -P FORWARD DROP # запрет для всех проходящих через ваш хост соединений
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
# разрешить исходящие подключения, которые инициировали мы сами
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# разрешить обращения к localhost
sudo iptables -A INPUT -i lo -j ACCEPT
# опционально: разрешить пинговать себя
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# PostgreSQL
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 5432 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 5432 -j ACCEPT
# Sentinel
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 26379 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 26379 -j ACCEPT
# RabbitMQ
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 5671 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 5671 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Master> --dport 25672 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave> --dport 25672 -j ACCEPT |
Примените правила на каждом сервере: | Блок кода |
|---|
| chmod +x iptables.sh
sudo ./iptables.sh |
Для того чтобы правила сохранились после перезагрузки, можно использовать утилиту iptables-persistent (или любые другие доступные методы): | Блок кода |
|---|
| sudo apt-get install iptables-persistent
sudo netfilter-persistent save |
|
| Раскрыть |
|---|
| title | Настройка firewall для отказоустойчивой системы с БД на отдельном сервере |
|---|
|
Создайте файл iptables.sh на узлах Master-app и Slave-app со следующими правилами: | Блок кода |
|---|
| language | bash |
|---|
| theme | RDark |
|---|
| title | Узлы Master-app и Slave-app |
|---|
| sudo iptables -P INPUT DROP # запрет всех входящих соединений
sudo iptables -P FORWARD DROP # запрет для всех проходящих через ваш хост соединений
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # веб-интерфейс ECCM на схеме HTTPS
# разрешим исходящие подключения, которые инициировали мы сами
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# разрешить обращения к localhost
sudo iptables -A INPUT -i lo -j ACCEPT
# опционально, разрешим пинговать себя
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 67 -j ACCEPT # DHCP
sudo iptables -A INPUT -p udp --dport 69 -j ACCEPT # TFTP
sudo iptables -A INPUT -p udp --dport 162 -j ACCEPT # SNMP-трапы
sudo iptables -A INPUT -p udp --dport 514 -j ACCEPT # Syslog (UDP)
sudo iptables -A INPUT -p tcp --dport 514 -j ACCEPT # Syslog (TCP)
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT # загрузка прошивок
# Redis
sudo iptables -A INPUT -p tcp -s <IP Master-app> --dport 6379 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-app> --dport 6379 -j ACCEPT
# Sentinel
sudo iptables -A INPUT -p tcp -s <IP Master-app> --dport 26379 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-app> --dport 26379 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Witness> --dport 26379 -j ACCEPT
# RabbitMQ
sudo iptables -A INPUT -p tcp -s <IP Master-app> --dport 5671 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-app> --dport 5671 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Witness> --dport 5671 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Master-app> --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-app> --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Witness> --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Master-app> --dport 25672 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-app> --dport 25672 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Witness> --dport 25672 -j ACCEPT
# Keepalived
sudo iptables -A INPUT -p vrrp -j ACCEPT |
На узлах Master-db и Slave-db создайте файл iptables.sh со следующими правилами: | Блок кода |
|---|
| language | bash |
|---|
| theme | RDark |
|---|
| title | Узлы Master-db и Slave-db |
|---|
| sudo iptables -P INPUT DROP | # TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all всех входящих соединений
sudo iptables -P FORWARD DROP | trust
hostreplicationall127.0.0.1/32 # запрет для всех проходящих через ваш хост | trusthostreplicationACCEPT
sudo iptables -A INPUT -p | alltcp --dport 22 -j ACCEPT # SSH
# разрешить | ::1/128 trust
#host all all all md5
host all all <eccm_ip>/32 md5 # IP адрес ECCM приложений
host all all исходящие подключения, которые инициировали мы сами
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# разрешить обращения к localhost
sudo iptables -A INPUT -i lo -j ACCEPT
# опционально: разрешить пинговать себя
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# PostgreSQL репликация
sudo iptables -A INPUT -p tcp -s <IP Master-db> --dport 5432 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-db> --dport 5432 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Witness> --dport 5432 -j ACCEPT
# доступ приложений к PostgreSQL
sudo iptables -A INPUT -p tcp -s <IP Master-app> --dport 5432 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-app> --dport 5432 -j ACCEPT
# опционально: доступ администратора к БД
sudo iptables -A INPUT -p tcp -s <admin_ip>/32 --dport 5432 -j ACCEPT |
На узле Witness создайте файл iptables.sh со следующими правилами: | Блок кода |
|---|
| language | bash |
|---|
| theme | RDark |
|---|
| title | Узел Witness |
|---|
| sudo iptables -P INPUT DROP | <admin_ip>/32md5#опционально:IPадресдляудаленногоподключенияадминистраторак БДhostall all172.21.0.0/16 md5dockernetworkinternal
hostпроходящих через ваш хост | all allсоединений
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
# разрешить исходящие подключения, которые инициировали | 172.20.0.0/16 md5 # docker network external |
Перезапустите ЕССМ:
| Блок кода |
|---|
|
sudo ./compose-tools.sh --stop
sudo ./compose-tools.sh --https --start <IP-адрес сервера или его доменное имя> |
Настройка firewall
Для обеспечения большей безопасности необходимо ограничить внешние подключения к серверу ECCM.
Создайте файл iptables.sh с правилами:
| Блок кода |
|---|
| language | bash |
|---|
| theme | RDark |
|---|
| title | iptables.sh |
|---|
|
sudo iptables -P INPUT DROP # запрет всех входящих соединений
sudo iptables -P FORWARD DROP # запрет для всех проходящих через ваш хост соединений
sudo iptables -P OUTPUT мы сами
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# разрешить обращения к localhost
sudo iptables -A INPUT -i lo -j ACCEPT
# опционально: разрешить пинговать себя
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# PostgreSQL
sudo iptables -A INPUT -p tcp -s <IP Master-db> --dport 5432 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-db> --dport 5432 -j ACCEPT
# Sentinel
sudo iptables -A INPUT -p tcp -s <IP Master-app> --dport 26379 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-app> --dport 26379 -j ACCEPT
# RabbitMQ
sudo iptables -A INPUT -p tcp -s <IP Master-app> --dport 5671 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-app> --dport | 22 # SSH
sudo iptables -A INPUT -p tcp - | -dport5432jACCEPT # Postgres
# опционально, разрешим пинговать себя --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p | icmp --icmp-type 8tcp -s <IP Slave-app> --dport 4369 -j ACCEPT |
# разрешим исходящие подключения, которые инициировали мы самиmstate-state ESTABLISHED,RELATED -j ACCEPT
# разрешить обращения к localhosts <IP Master-app> --dport 25672 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP | -i loSlave-app> --dport 25672 -j ACCEPT |
Примените правила на каждом сервере: | Блок кода |
|---|
| chmod +x iptables.sh
sudo ./iptables.sh |
Для того чтобы правила сохранились после перезагрузки, можно использовать утилиту iptables-persistent (или любые другие доступные методы): | Блок кода |
|---|
| sudo apt-get install iptables-persistent
sudo netfilter-persistent save |
|
Дополнительная защита сервера
...
IP-адреса, попавшие которые попали в бан:
| Блок кода |
|---|
|
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list: 192.168.х.х |
Чтобы разблокировать IP-адрес, попавший который попал в бан (например, 192.168.х.х), используйте следующую команду:
...
Чтобы разблокировать все адреса, попавшие которые попали в бан, используйте следующую команду:
...