IPTables для маршрутизации пакетов с двумя сетями wifi

Когда вы помещаете "| tee", оболочка, интерпретирующая сценарий, создает новую оболочку для цикла. Вставка a засыпание в цикле и запуск скрипта в фоновом режиме дает следующий список процессов:

   PID TTY       TIME COMMAND
 21168 pts/0     0:00 sh
 21259 pts/0     0:00 ps
 11962 pts/0     0:00 sh
 21170 pts/0     0:00 sleep
 21171 pts/0     0:00 tee
 21169 pts/0     0:00 sh

Как видите, в конце списка есть дополнительная оболочка. Вы можете получить тот же результат с помощью этого скрипта:

STATUS=9
echo "" > /tmp/ses.txt
for  SESSION in  A B C
do
   STATUS=5
   echo "SESSION=$SESSION  STATUS=$STATUS" | tee -a /tmp/ses.txt
done
echo "STATUS=$STATUS"

, но без упомянутого побочного эффекта.

2
01.08.2017, 10:26
2 ответа

Примечание. :Wi-Fi A и B должны находиться в разных подсетях, иначе система Linux будет жаловаться.

Я предполагаю, что eth0 для ПК,затем вы можете использовать это правило для достижения желаемого для портов ssh и tcp:

iptables -t filter -A FORWARD -i eth0 -o <Interface> -d <Des subnet> -p tcp --dport <Des Port> -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Чтобы разрешить пинг, вы можете использовать:

iptables -t filter -A FORWARD -i eth0 -o <Interface> -d <Des subnet> -p icmp --icmp-type 8 -j ACCEPT
2
27.01.2020, 22:03

Поскольку вы, похоже, используете один и тот же диапазон адресов для Wi-Fi A и WiFi B, а у Linux есть только один адрес в этом диапазоне, я думаю, вам нужно будет соединить два интерфейса wlan (, т.е. рассматривать их как один сети ), и в этом случае ваши правила iptables должны будут ссылаться на интерфейс моста.
См. этот вопрос для некоторых идей о настройке фильтрации в мостовой сети. В качестве альтернативы, если вы назначили разные подсети 192.170.1.xx для каждой сети Wi-Fi, тогда Linux-боксу потребуется 1 IP-адрес в каждой подсети, а не один адрес 192.170.1.253, который вы укажете.

1
27.01.2020, 22:03

Теги

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