Как разрешить Google-аналитику через iptables, когда Интернет заблокирован для другого трафика [дубликат]

Я запускаю следующий сценарий на шлюзе Wi-Fi. Сторона WAN шлюза имеет интерфейс ppp0 , а сторона LAN - wlan0 .

  1. Пользователям локальной сети не должно быть разрешено просматривать Интернет.
  2. Некоторым службам на шлюзе требуется доступ к Интернету, и он должен быть разрешен.
  3. Пользователи локальной сети должны иметь доступ к контенту через интерфейс локальной сети шлюза (трафик с порта 80 и 90 - некоторый локальный контент, а не интернет) На этом же локальном контенте установлена ​​google-analytics, и его нужно обновить на серверах google-analytics.com. Мой брандмауэр iptables выглядит следующим образом, но я постоянно вижу проблемы при подключении к серверам Google Analytics. Любая помощь приветствуется.


WAN_INTERFACE="ppp0" 
LAN_INTERFACE="wlan0" 
LAN_NETWORK="192.168.184.0/24"

WAN_IP=ifconfig ppp0 | grep addr | cut -d':' -f2 | cut -d' ' -f1

iptables -F iptables -F -t nat

iptables -P INPUT DROP 
iptables -P OUTPUT DROP 
iptables -P FORWARD DROP

Разрешить только пакеты, предназначенные для порта 80 и 443 из шлюза для контента на самом шлюзе

iptables -A OUTPUT -o $WAN_INTERFACE -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i $WAN_INTERFACE -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $WAN_INTERFACE -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A INPUT -i $WAN_INTERFACE -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

Accept packets on LAN network for port 80,90

iptables -A INPUT -i $LAN_INTERFACE -p tcp -d 192.168.184.1 --dport 80 -s $LAN_NETWORK -j ACCEPT 
iptables -A OUTPUT -o $LAN_INTERFACE -p tcp -s 192.168.184.1 -j ACCEPT
iptables -A INPUT -i $LAN_INTERFACE -p tcp -d 192.168.184.1 --dport 90 -s $LAN_NETWORK -j ACCEPT 
iptables -A OUTPUT -o $LAN_INTERFACE -p tcp -s 192.168.184.1 -j ACCEPT

Принять цикл возврата

iptables -A INPUT -i lo -j ACCEPT 
iptables -A OUTPUT -o lo -j ACCEPT

Разрешить исходящие запросы ping

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

Разрешить исходящие запросы DNS

iptables -A OUTPUT -p udp -o $WAN_INTERFACE --dport 53 -j ACCEPT 
iptables -A INPUT -p udp -i $WAN_INTERFACE --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -o $WAN_INTERFACE --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -i $WAN_INTERFACE --sport 53 -j ACCEPT

Разрешить трафик Google Analytics выйти и войти

iptables -A INPUT -s www.google-analytics.com -p tcp --sport 80 -j ACCEPT 
iptables -A INPUT -s ssl.google-analytics.com -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -d google-analytics.com -j ACCEPT 
iptables -A OUTPUT -d ssl.google-analytics.com -j ACCEPT
iptables -A FORWARD -d google-analytics.com -s 192.168.184.0/24 -j ACCEPT 
iptables -A FORWARD -d ssl.google-analytics.com -s 192.168.184.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o $WAN_INTERFACE -p tcp -d google-analytics.com -j SNAT --to-source $WAN_IP 
iptables -t nat -A POSTROUTING -o $WAN_INTERFACE -p tcp -d ssl.google-analytics.com -j SNAT --to-source $WAN_IP
iptables -A INPUT -s google-analytics.com -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A INPUT -s ssl.google-analytics.com -m state --state RELATED,ESTABLISHED -j ACCEPT
-1
задан 20 March 2015 в 13:01
1 ответ

Добавьте правило, разрешающее вашему шлюзу доступ из Интернета с помощью INPUT и OUTPUT chain

Затем добавьте правило для перенаправления трафика HTTP или HTTPS на ваш веб-сервер с параметром --sport

0
ответ дан 5 December 2019 в 20:36

Теги

Похожие вопросы