Заблокируйте доступ к серверу с публичного IP с помощью iptables

Заблокируйте доступ к серверу с публичного IP с помощью iptables

У меня есть 2 сервера, я настроил один сервер для http( phpимя: web), а другой для mysql(имя: db).

На обоих этих серверах у меня есть публичные и частные IP. Я хотел иметь такие правила:

  1. измените порт ssh webсервера на 1234. (Я уже сделал это изменение /etc/ssh/sshd_config)
  2. блокировать все запросы к webпубличному интерфейсу, кроме 80, 443 и 1234.
  3. блокировать все запросы к dbпубличному интерфейсу.
  4. блокировать все запросы к dbчастному интерфейсу, за исключением 22 и 3306 из web частного интерфейса.

webчастный ip: 192.168.0.110

dbчастный ip: 192.168.0.111

Поэтому я написал эти правила для iptables.

firewall.sh наdb

#!/bin/bash
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 192.168.0.110 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.0.110 -p tcp --dport 3306 -j ACCEPT

firwall.sh наweb

#!/bin/bash
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 1234 -j ACCEPT

Но после выполнения этих правил мое соединение с сервером будет полностью потеряно, и эти два сервера также не смогут общаться друг с другом.

в чем моя проблема?

Связанный контент