특정 인터페이스/네트워크 간 IP 전달 제한

특정 인터페이스/네트워크 간 IP 전달 제한

현재 ipv4.ip_forward여러 인터페이스 간의 패킷 라우팅을 활성화했습니다.

이제 시스템을 8개의 인터페이스로 확장했지만 인터페이스/주소 간의 라우팅을 제한하고 싶습니다.

한 가지 옵션은 를 사용하는 것이지만 firewalld이전 버전의 RH에 배포하므로 를 통해 작동합니다 iptables.

답변1

실제로 iptables이것을 제한하는 것이 좋습니다. 이것필터패킷을 허용하거나 차단하는 테이블에는 세 개의 체인이 있습니다. 각 체인 내에서 패킷을 일치시키고 패킷이 일치할 때 작업을 트리거하도록 규칙을 정의할 수 있습니다. 패킷이 일치하는 규칙 체인은 iptables실행 중인 호스트를 기준으로 한 패킷 방향에 따라 달라집니다.

  • INPUT: 수신 패킷이 localhost로 전송됨
  • OUTPUT: localhost에서 나가는 패킷
  • FORWARD: 다른 호스트로 전송되어 전달되어야 하는 데이터 패킷

예를 들어, 패킷이 전달되어야 하는데 체인에 일치하는 규칙이 없으면 다음을 FORWARD기반으로 전달됩니다.정책이 체인에 설정되며 기본값은 입니다 ACCEPT. 패킷 통과가 허용됩니다. 이 명령은 정책과 규칙을 표시합니다(정의된 경우).

iptables -t filter -vnL

테이블은 지정되지 않은 경우 기본 테이블을 사용하여 지정되므로 -t <table>다음 filter명령은 동일합니다.

iptables -vnL

모든 패킷이 전달되는 것을 방지하기 위해 체인의 정책을 다음과 같이 설정할 수 REJECT있습니다 DROP.

iptables -P FORWARD REJECT

FORWARD이제 전달될 모든 패킷을 명시적으로 허용하는 규칙이 체인에 없으면 해당 패킷은 거부됩니다.

내부 트래픽의 경우 정책이 필요할 수 있습니다 REJECT. 그러면 경로가 닫혔음을 클라이언트에 즉시 알립니다. DROP외부 네트워크의 트래픽에 대한 규칙을 만들어야 할 수도 있습니다 .

특정 패킷의 통과를 명시적으로 허용하기 위해 규칙이 정의된 순서대로 패킷과 일치하는 규칙이 이러한 체인에 추가됩니다. 예를 들어 모든 수신 eth0및 경로 기반 트래픽이 다음으로 전달되도록 허용합니다 eth1.

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

10.0.0.0/24예를 들어, 서브넷의 패킷 만 반대 방향으로 전달되도록 허용하려면 다음을 수행하세요 .

iptables -A FORWARD -i eth1 -o eth0 -s 10.0.0.0/24 -j ACCEPT

모든 매개변수에 대한 자세한 설명은 다음을 참조하세요.iptables 맨페이지그리고iptables 확장 맨페이지.

관련 정보