← 문제 라이브러리
Network 입문 NETWORK-024 · 14분

DB 접속 허용 규칙을 넣었는데 연결이 여전히 시간 초과: 규칙 적중 0

분석팀 서버들(10.10.0.0/16)이 새 PostgreSQL 서버에 붙을 수 있도록 서버의 iptables에 5432 허용 규칙을 추가했습니다.

검수된 문제무료
시나리오

분석팀 서버들(10.10.0.0/16)이 새 PostgreSQL 서버에 붙을 수 있도록 서버의 iptables에 5432 허용 규칙을 추가했습니다. 그런데 분석팀 서버에서 접속하면 시간 초과가 나고, 규칙의 패킷 카운터는 0에서 움직이지 않습니다. 이 DB 서버에는 인터넷용(eth0)과 사내망용(eth1) 인터페이스가 둘 있습니다. 규칙은 다른 서버의 설정을 복사해 출발지만 바꿨습니다. 담당자는 PostgreSQL이 외부 접속을 막는 설정이라며 listen_addresses를 고치려고 합니다.

단서
iptables -L INPUT -v -n (일부)
pkts bytes target  prot  in    source          destination
   0     0 ACCEPT  tcp   eth0  10.10.0.0/16    0.0.0.0/0    tcp dpt:5432
 412 24720 DROP    all   *     0.0.0.0/0       0.0.0.0/0
경로와 소켓
$ ip route get 10.10.3.4
10.10.3.4 via 10.60.0.1 dev eth1 src 10.60.0.21

$ ss -ltn | grep 5432
LISTEN 0  244  0.0.0.0:5432  0.0.0.0:*

과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.

먼저 볼 것
  • 규칙이 맞는 인터페이스에 걸렸는지
  • 패킷이 실제로 어느 인터페이스로 들어오는지
점검 체크리스트
  1. iptables -L -v 로 규칙별 패킷 카운터와 in 인터페이스
  2. ip route get <출발지> 로 그 대역과 통하는 인터페이스
  3. ss -ltn 으로 DB가 모든 주소에서 듣고 있는지