...
В файле eccm/.env замените значение пароля пользователя peeper_monitor и все вхождения tester_password/eccm_password на ваш пароль:
...
В файле eccm/.env замените все вхождения old_tester_password, old_eccm_password и old_peeper_monitor_password на ваш новый пароль:
...
Настройка PostgreSQL позволяет ограничить доступ нежелательных пользователей к базе данных . Для конфигурирования доступа необходимо, чтобы ЕССМ был запущен.
| Предупреждение |
|---|
Изменение настройки PostgreSQL при инсталляции ЕССМ в отказоустойчивой системе может привести к проблемам с его работой. |
Выведите подсети, которые использует docker:
при запуске ECCM в отказоустойчивой системе, или когда база данных находится на отдельном сервере.
| Подсказка |
|---|
Когда 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",
sudodockernetworkinspectexternal|grep"Subnet"
"Subnet":"172.20.0.0/16"
|
Во избежание утери выставленных настроек доступа, создайте новый файл:
| Блок кода |
|---|
|
| cd<путьдокаталогасфайламизапускаECCM>/postgres/
touchdata/pg_hba.conf.tpl |
Скопируйте текущую конфигурацию настроек доступа:
| Блок кода |
|---|
|
| dockerexec-ieccm-postgrescat/etc/postgresql/pg_hba.conf>>data/pg_hba.conf.tpl |
Настройте доступ к БД только с localhost, с подсетей docker-а и адреса администратора при помощи любого текстового редактора:
| Блок кода |
|---|
| theme | RDark |
|---|
| title | postgres/data/pg_hba.conf.tpl |
|---|
|
#TYPEDATABASEUSERADDRESSMETHOD
#"local"isforUnixdomainsocketconnectionsonly
local allalltrust IPv4 local connections:
host "local" is for Unix domain socket connections only | allall127.0.0.1/32trust
#IPv6localconnections:
hostallall::1/128trust
#Allowreplicationconnectionsfromlocalhost,byauserwiththe
#replicationprivilege.
localreplicationalltrust
hostreplication127.0.0.1/32trust
hostreplicationall::1/128trust
#hostallallallmd5
hostallall<eccm_ip>/32
# IPv4 local connections: | md5#IPадресECCMприложений
hostallall<admin_ip>/32md5#опционально:IPадресдляудаленногоподключенияадминистраторакБД
hostallall172.21.0.0255.255.0.0md5# docker network internal
hostall172.20.0.0 255.255.0.0md5#dockernetwork external |
Смонтируйте созданный файл настроек доступа в БД в файле postgres/docker-compose.yml:
| Блок кода |
|---|
| language | bash |
|---|
| theme | RDark |
|---|
| title | postgres/docker-compose.yml |
|---|
|
services:
postgres:
...
volumes:
...
- ./data/pg_hba.conf.tpl:/configurations/templates/pg_hba.conf.tpl
... |
Перезапустите ЕССМ:
| Блок кода |
|---|
|
sudo ./compose-tools.sh --stop
sudo ./compose-tools.sh --https --start <IP-адрес сервера или его доменное имя> |
Настройка firewall
Для обеспечения большей безопасности необходимо ограничить внешние подключения к серверу ECCM.
Создайте файл iptables.sh с правилами:
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 после перезапуска. |
|
Настройка 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 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 # запрет всех входящих соединений
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-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 # запрет всех входящих соединений
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-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 5671 -j |
|
| Блок кода |
|---|
| language | bash |
|---|
| theme | RDark |
|---|
| title | iptables.sh |
|---|
|
sudo iptables -P INPUT DROP # запрет всех входящих соединений
sudo iptables -P FORWARD DROP # запрет для всех проходящих через ваш хост соединений
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Master-app> --dport | 22 # SSH
sudo iptables -A INPUT -p tcp - | -dport5432jACCEPT # Postgres
# опционально, разрешим пинговать себя --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p | icmp --icmp-type 8 tcp -s <IP Master-app> --dport 25672 -j ACCEPT
| # разрешим исходящие подключения, которые инициировали мы сами
mstate-state ESTABLISHED,RELATED -j ACCEPT
# разрешить обращения к localhost
sudo iptables -A INPUT -i los <IP Slave-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.х.х), используйте следующую команду:
...
Чтобы разблокировать все адреса, попавшие которые попали в бан, используйте следующую команду:
...