데이터베이스가 설치된 중앙 서버와 해당 중앙 데이터베이스를 호출하는 여러 분산 서버가 있습니다. 보안상의 이유로 알려진 서버에서만 중앙 서버에 액세스할 수 있기를 바랍니다.
그래서 제가 여기서 달성하려는 것은 서버 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
이 두 가지 규칙만 있는 경우 규칙이 있다는 것을 잊지 마십시오 . 모든 연결이 허용됩니다.ACCEPT
INPUT
또한 패킷이 양방향으로 흐르도록 트래픽을 RELATED
허용 해야 할 수도 있습니다 . ESTABLISHED
이는 귀하의 규칙(허용되는 것과 삭제되는 것)에 따라 다릅니다. 규칙은 다음과 같습니다.
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT