기계의 요청에 대해서만 들어오는 응답을 허용하는 방법

기계의 요청에 대해서만 들어오는 응답을 허용하는 방법

특정 IP 범위에서 들어오는 트래픽만 허용하도록 IP 테이블 규칙을 설정했습니다.

-A INPUT -i eth0 -m iprange --src-range x.y.0.0-x.y.255.255 -j ACCEPT

-A INPUT -i eth0 -m iprange --src-range 0.0.0.0-255.255.255.255 -j DROP

이 규칙을 적용하면 내 허용 범위를 벗어나는 IP에 대해 내 컴퓨터에 대한 액세스가 차단됩니다. 이것은 좋다.

그러나 이제 나는 이 규칙에 대한 예외를 원합니다. 내 컴퓨터에서 일부 http 웹 링크에 액세스하려면 계속 진행하고 싶습니다. 하지만 이를 피할 수 있는 다른 방법은 없습니다. 차단된 IP가 내 컴퓨터에 호스팅된 http 웹 링크에 액세스하려고 시도하는 경우 이를 허용해서는 안 됩니다.

이전에 언급한 규칙과 함께 다음 규칙을 추가해 보았습니다.

iptables -A INPUT -i eth0 -p tcp -m tcp -m state --state RELATED,ESTABLISHED -j ACCEPT

하지만 이것은 작동하지 않습니다. 위의 상태 목록에 NEW를 추가하면 내 컴퓨터는 차단된 IP에서 웹 링크에 액세스할 수 있지만 두 가지 방법 모두 작동하며 차단된 IP는 내가 액세스하지 않는 웹 링크에도 액세스할 수 있습니다. 웹 링크를 원합니다.

답변1

iptables -A INPUT -i eth0 -p tcp -m tcp -m state --상태 관련, 설정됨 -j accept

이거 추가했어?뒤쪽에

-A 입력 -i eth0 -m iprange --src-range 0.0.0.0-255.255.255.255 -j DROP

?

그렇다면 규칙이 트리거되지 않습니다. 관련 있고 확립된 규칙이 체인의 최상위에 있는지 확인하십시오.

답변2

여기서 일반적인 방화벽 개념을 오해하고 계신 것 같습니다. 상태 비저장 수신 방화벽 규칙을 사용하여 나가는 연결을 차단 및 차단 해제하고 있습니다. 불가능하지는 않지만 비논리적입니다. CIDR 네트워크를 사용하는 것은 범위보다 간단하며 아웃바운드 필터링 테이블도 사용해야 합니다.

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -s x.y.0.0/16 -j ACCEPT
iptables -A INPUT -j DROP

iptables -A OUTPUT -o eth0 -d a.b.0.0/16 -j ACCEPT
iptables -A OUTPUT -j DROP

다음 규칙을 사용합니다.

  • xy0.0/16 네트워크 블록은 컴퓨터에서 액세스할 수 있어야 합니다.
  • 귀하의 머신은 ab0.0/16 네트워크 블록에 액세스할 수 있어야 합니다.
  • 아웃바운드든 인바운드든 다른 모든 액세스는 불가능해야 합니다.

관련 정보