특정 서브넷 간의 라우팅을 차단하는 방법(다른 서브넷으로의 라우팅은 허용)

특정 서브넷 간의 라우팅을 차단하는 방법(다른 서브넷으로의 라우팅은 허용)

Raspbian Linux 8.0을 사용하여 Model 3 Raspberry Pi를 VPN 라우터로 설정했습니다. 여기에는 다음과 같은 네트워크 인터페이스가 있습니다.

  • eth0 - 유선 인터넷 업링크로 구성됨(현재 사용되지 않음)
  • wlan0 - 무선 인터넷 업링크(활성)
  • eth1(서브넷 192.168.5.0/24) - 유선 클라이언트 LAN(내 PC용)
  • wlan1(서브넷 192.168.4.0/24) - 클라이언트 WLAN(내 전화기용)
  • tun0, tun1 - VPN 인터페이스

모든 것이 내가 원하는 방식으로 작동합니다(VPN을 통한 클라이언트 연결). 단 한 가지만 제외하면 eth1과 wlan1 사이에 라우팅되는 것 같은데, 이는 내가 원하지 않습니다. wlan1의 클라이언트 시스템이 eth1의 시스템에 연결되는 것을 원하지 않지만 가능합니다. 또한 클라이언트 WLAN의 시스템이 이더넷을 통해 연결된 시스템만 Pi에 SSH로 연결할 수 있을 것으로 기대하지 않지만 현재는 가능합니다. 192.168.5.1(192.168.4.1 아님)에서만 수신하도록 SSH를 설정했지만 클라이언트 WLAN에 연결하면 여전히 192.168.5.1에 ​​SSH로 연결할 수 있습니다.

물론 wlan1과 tun0/tun1 사이, eth1과 tun0/tun1 사이를 라우팅하기를 원했기 때문에 IP 전달을 활성화했습니다.

내 iptables 규칙은 다음과 같습니다.

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A FORWARD -s 192.168.4.0/24 -i wlan1 -o eth0 -m conntrack --ctstate NEW -m comment --comment "Block traffic from wlan1 (client WiFi) to eth0 (wired uplink)" -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.4.0/24 -i wlan1 -o wlan0 -m conntrack --ctstate NEW -m comment --comment "Block traffic from wlan1 (client WiFi) to wlan0 (WiFi uplink)" -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.4.0/24 -i wlan1 -o tun0 -m conntrack --ctstate NEW -m comment --comment "Allow traffic from wlan1 (client WiFi) to tun0 (VPN)" -j ACCEPT
-A FORWARD -s 192.168.4.0/24 -i wlan1 -o tun1 -m conntrack --ctstate NEW -m comment --comment "Allow traffic from wlan1 (client WiFi) to tun1 (VPN)" -j ACCEPT

-A FORWARD -s 192.168.5.0/24 -i eth1 -o eth0 -m conntrack --ctstate NEW -m comment --comment "Block traffic from eth1 (client LAN) to eth0 (wired uplink)" -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.5.0/24 -i eth1 -o wlan0 -m conntrack --ctstate NEW -m comment --comment "Block traffic from eth1 (client LAN) to wlan0 (WiFi uplink)" -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.5.0/24 -i eth1 -o tun0 -m conntrack --ctstate NEW -m comment --comment "Allow traffic from eth1 (client LAN) to tun0 (VPN)" -j ACCEPT
-A FORWARD -s 192.168.5.0/24 -i eth1 -o tun1 -m conntrack --ctstate NEW -m comment --comment "Allow traffic from eth1 (client LAN) to tun1 (VPN)" -j ACCEPT

-A FORWARD -s 192.168.4.0/24 -i wlan1 -o eth1 -m conntrack --ctstate NEW -m comment --comment "Block traffic from wlan1 (client WiFi) to eth1 (client LAN)" -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.4.0/24 -d 192.168.5.0/24 -m conntrack --ctstate NEW -m comment --comment "Block traffic from client WiFi range to client LAN range" -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.5.0/24 -i eth1 -o wlan1 -m conntrack --ctstate NEW -m comment --comment "Block traffic from eth1 (client LAN) to wlan1 (client WiFi)" -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.5.0/24 -d 192.168.4.0/24 -m conntrack --ctstate NEW -m comment --comment "Block traffic from client LAN range to client WiFi range" -j REJECT --reject-with icmp-port-unreachable

COMMIT

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -m comment --comment "Use VPN IP for eth0" -j MASQUERADE
-A POSTROUTING -o wlan0 -m comment --comment "Use VPN IP for wlan0" -j MASQUERADE
-A POSTROUTING -o tun0 -m comment --comment "Use VPN IP for tun0" -j MASQUERADE
-A POSTROUTING -o tun1 -m comment --comment "Use VPN IP for tun1" -j MASQUERADE
COMMIT

답변1

SSH 액세스 차단 wlan1:

iptables -A INPUT -i wlan1 -p tcp --dport 22 -j REJECT --reject-with icmp-port-unreachable

총평: 사용의 의미를 모르겠습니다

-s 192.168.4.0/24 -i wlan1 -o eth1

바꾸다

-i wlan1 -o eth1

유효한 소스 주소를 가진 패킷뿐만 아니라 모든 패킷을 차단하고 싶기 때문인 것 같습니다.

관련 정보