Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Раскрыть
titleНастройка firewall для ECCM с БД на отдельном сервере

Создайте файл iptables.sh на сервере с ECCM со следующими правилами:

Блок кода
languagebash
themeRDark
titleiptables.shСервер 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 со следующими правилами:

Блок кода
languagebash
themeRDark
titleiptables.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 -s <IP-адрес сервера БД> --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

Примените правила на каждом сервере:

Блок кода
languagebash
themeRDark
chmod +x iptables.sh
sudo ./iptables.sh

Для того чтобы правила сохранились после перезагрузки, можно использовать утилиту iptables-persistent (или любые другие доступные методы):

Блок кода
languagebash
themeRDark
sudo apt-get install iptables-persistent
sudo netfilter-persistent save


Раскрыть
titleНастройка firewall для отказоустойчивой системы по стандартной схеме

Создайте файл iptables.sh на узлах Master и Slave со следующими правилами:

Блок кода
languagebash
themeRDark
titleiptables.shУзлы 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 со следующими правилами:

Блок кода
languagebash
themeRDark
titleiptables.shУзел 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

Примените правила на каждом сервере:

Блок кода
languagebash
themeRDark
chmod +x iptables.sh
sudo ./iptables.sh

Для того чтобы правила сохранились после перезагрузки, можно использовать утилиту iptables-persistent (или любые другие доступные методы):

Блок кода
languagebash
themeRDark
sudo apt-get install iptables-persistent
sudo netfilter-persistent save


Раскрыть
titleНастройка firewall для отказоустойчивой системы с БД на отдельном сервере

Создайте файл iptables.sh на узлах Master-app и Slave-app со следующими правилами:

Блок кода
languagebash
themeRDark
titleiptables.shУзлы 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 со следующими правилами:

Блок кода
languagebash
themeRDark
titleiptables.shУзлы 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 со следующими правилами:

Блок кода
languagebash
themeRDark
titleiptables.shУзел 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 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 Master-app>  --dport 25672 -j ACCEPT
sudo iptables -A INPUT -p tcp -s <IP Slave-app>  --dport 25672 -j ACCEPT

Примените правила на каждом сервере:

Блок кода
languagebash
themeRDark
chmod +x iptables.sh
sudo ./iptables.sh

Для того чтобы правила сохранились после перезагрузки, можно использовать утилиту iptables-persistent (или любые другие доступные методы):

Блок кода
languagebash
themeRDark
sudo apt-get install iptables-persistent
sudo netfilter-persistent save


...