iptables를 사용하여 공용 IP에서 서버에 대한 액세스를 차단합니다.

iptables를 사용하여 공용 IP에서 서버에 대한 액세스를 차단합니다.

2개의 서버가 있는데, 하나는 httpand php(이름: web)에 대해 하나는 구성하고 다른 하나는 mysql(이름: db)에 대해 구성했습니다.

이 두 서버 모두에는 공개 IP와 개인 IP가 있습니다. 나는 다음과 같은 규칙을 갖고 싶었습니다.

  1. web서버 의 SSH 포트를 1234. (이미 변경했습니다 /etc/ssh/sshd_config.)
  2. web80, 443 및 1234를 제외하고 공용 인터페이스 에 대한 모든 요청을 차단합니다 .
  3. 공용 인터페이스 에 대한 모든 요청을 차단합니다 db.
  4. db개인 인터페이스 의 22 및 3306을 제외하고 개인 인터페이스 에 대한 모든 요청을 차단합니다 web .

web개인 IP: 192.168.0.110

db개인 IP: 192.168.0.111

그래서 저는 iptables에 대한 이러한 규칙을 작성했습니다.

방화벽.shdb

#!/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

하지만 이 규칙을 실행한 후에는 서버 연결이 완전히 끊어지고 두 서버가 서로 통신할 수 없게 됩니다.

내 문제는 어디에 있습니까?

관련 정보