특정 IP만 특정 포트에 액세스하도록 허용하려면 어떻게 해야 합니까?

특정 IP만 특정 포트에 액세스하도록 허용하려면 어떻게 해야 합니까?

데이터베이스가 설치된 중앙 서버와 해당 중앙 데이터베이스를 호출하는 여러 분산 서버가 있습니다. 보안상의 이유로 알려진 서버에서만 중앙 서버에 액세스할 수 있기를 바랍니다.

그래서 제가 여기서 달성하려는 것은 서버 192.168.1.5 및 192.168.2.6에서 포트 5432에 액세스할 수 있도록 허용하는 것입니다.

iptables -A INPUT -s 192.168.1.5,192.168.2.6 -d ??.??.??.?? -p tcp --dport 5432 -j ACCEPT

이 올바른지?

내가 이해하지 못하는 것은 목적지를 지정하는 옵션입니다. INPUT의 대상은 항상 서버 자체입니다. 그렇죠? 그러면 왜 구성이 가능합니까? 정의해야 합니까, 아니면 생략하면 자동으로 동일한 서버를 가리키게 됩니까?

답변1

먼저 규칙을 두 개의 규칙으로 나누어야 합니다(두 IP를 모두 지정하는 하나의 명령을 사용하여 시도했는데 작동하는 것 같습니다). 최종 결과는 다음과 같은 두 가지 규칙입니다.

iptables -A INPUT -s 192.168.1.5 -p tcp --dport 5432 -j ACCEPT
iptables -A INPUT -s 192.168.2.6 -p tcp --dport 5432 -j ACCEPT

-d둘째, 모든 IP와 일치하도록 를 생략할 수 있습니다 . 이는 체인이므로 INPUT시스템 IP 중 하나와 일치해야 합니다.

셋째, 체인 에 대한 기본 정책으로 DROP이 두 가지 규칙만 있는 경우 규칙이 있다는 것을 잊지 마십시오 . 모든 연결이 허용됩니다.ACCEPTINPUT

또한 패킷이 양방향으로 흐르도록 트래픽을 RELATED허용 해야 할 수도 있습니다 . ESTABLISHED이는 귀하의 규칙(허용되는 것과 삭제되는 것)에 따라 다릅니다. 규칙은 다음과 같습니다.

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

관련 정보