![iptables 기반 리디렉션, 종속 포털 스타일](https://linux55.com/image/37302/iptables%20%EA%B8%B0%EB%B0%98%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%2C%20%EC%A2%85%EC%86%8D%20%ED%8F%AC%ED%84%B8%20%EC%8A%A4%ED%83%80%EC%9D%BC.png)
웹 사이트(IP 또는 호스트 이름의 포트 80)에 액세스하려고 하는 액세스 포인트에 연결된 호스트가 네트워크의 다른 장치로(실제로는 독립적으로) 리디렉션되도록 강제하는 iptables 규칙 세트는 무엇입니까?
예를 들어 두 번째 서버(호스팅 웹 서버)는 이더넷을 통해 IP 192.168.1.99/24(eth0)로 연결됩니다.
기본 서버는 IP 192.168.12.1/24를 사용하여 무선 핫스팟(어댑터 wlan0ap에서)을 호스팅합니다. 192.168.12.1:80, 192.168.12.4:80 또는 google.com:80(192.168.12.0/24 네트워크)에서 핫스팟에 액세스하려는 Wi-Fi 사용자가 강제로 192.168로 리디렉션되도록 만들고 싶습니다. 1.99:80.
net.ipv4.ip_forward=1
현재 나는 이러한 규칙을 sysctl의 활성화 설정과 결합하려고 시도했습니다 .
sudo iptables -A POSTROUTING -t nat -o wlan0ap -j MASQUERADE
sudo iptables -t mangle -N internet
sudo iptables -t mangle -A PREROUTING -i wlan0ap -p tcp -m tcp --dport 80 -j internet
sudo iptables -t mangle -A PREROUTING -i wlan0ap -p tcp -m tcp --dport 443 -j internet
sudo iptables -t mangle -A internet -j MARK --set-mark 99
sudo iptables -t nat -A PREROUTING -i eth1 -p tcp -m mark --mark 99 -m tcp --dport 80 -j DNAT --to-destination 192.168.1.98
답변1
다음 규칙이 작동해야 합니다(테스트되지 않음).
iptables -t nat -A PREROUTING -i wlan0ap -p tcp --dport 80 -j DNAT --to-destination 192.168.1.99:80
iptables -t nat -A PREROUTING -i wlan0ap -p tcp --dport 443 -j DNAT --to-destination 192.168.1.99:80
iptables -t nat -A POSTROUTING -j MASQUERADE
답변2
다중 포트 옵션을 사용할 수 있습니다. 포트의 모든 트래픽을 제한하려면 다음을 80
사용할 443
수 있습니다.
iptables -t nat -A PREROUTING -i wlan0ap -p tcp -m multiport 80,443 -j DNAT --to-destination 192.168.1.99:80
사용자가 de Portal을 사용하여 로그인하는 경우,
iptables -t nat -A PREROUTING -i wlan0ap -s ip_user -p tcp -ACCEPT
대체품 -s Ip -mac --source mac MAC