iptables 기반 리디렉션, 종속 포털 스타일

iptables 기반 리디렉션, 종속 포털 스타일

웹 사이트(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

관련 정보