Я пытаюсь создать закрытый портал, и первое, что нужно сделать, это перенаправить весь трафик на определенный IP-порт.
Я пытался:
iptables -t nat -A ВЫВОД -p tcp --dport 80 -j DNAT --to-destination <мой-ip>:<мой-порт>
Что работает при попытке проверить перенаправление на том же устройстве, которое выступает в качестве точки доступа. Я понял, что запросы от других пользователей проходят через цепочку PREROUTING, поэтому сделал следующее:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination <мой-ip>:<мой-порт>
Теперь, когда я пытаюсь получить доступ к IP ххх.ххх.ххх.ххх
с другим устройством я получаю ERR_ADDRESS_UNREACHABLE. Однако, если я попытаюсь достичь <my-ip>
, меня перенаправляют на другой <my-port>
. Как будто переадресация на другой порт работает, а переадресация на другой IP - нет. В чем тут может быть дело?
Прошил iptables перед экспериментом, все политики ПРИНЯТЫ.
* один из ответов на вопрос о сохранении iptables, вот он:
# Сгенерировано iptables-save v1.6.1, воскресенье, 20 июня, 20:22:06 2021 г.
*безопасность
:ВВОД ПРИНЯТ [12750:14270713]
:ВПЕРЕД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТ [3688:960149]
СОВЕРШИТЬ
# Завершено вс 20 июня 20:22:06 2021
# Сгенерировано iptables-save v1.6.1, воскресенье, 20 июня, 20:22:06 2021 г.
*сырой
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [0:0]
: ВЫВОД ПРИНЯТЬ [0:0]
:bw_raw_PREROUTING - [0:0]
:clat_raw_PREROUTING - [0:0]
:idletimer_raw_PREROUTING - [0:0]
:nm_mdmprxy_raw_pre - [0:0]
:qcom_htimer_PREROUTING - [0:0]
:tetherctrl_raw_PREROUTING - [0:0]
-A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -j qcom_htimer_PREROUTING
-A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -j clat_raw_PREROUTING
-A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -j bw_raw_PREROUTING
-A PREROUTING -j idletimer_raw_PREROUTING
-A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -j tetherctrl_raw_PREROUTING
-A bw_raw_PREROUTING -i ipsec+ -j ВОЗВРАТ
-A bw_raw_PREROUTING -m policy --dir in --pol ipsec -j ВОЗВРАТ
-A bw_raw_PREROUTING -m bpf --object-pinned /sys/fs/bpf/prog_netd_skfilter_ingress_xtbpf
-A nm_mdmprxy_raw_pre -p tcp -m многопортовый --ports 5060 -j NOTRACK
-A nm_mdmprxy_raw_pre -p udp -m многопортовый --ports 5060 -j NOTRACK
СОВЕРШИТЬ
# Завершено вс 20 июня 20:22:06 2021
# Сгенерировано iptables-save v1.6.1, воскресенье, 20 июня, 20:22:06 2021 г.
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [0:0]
:ВВОД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТЬ [0:0]
:ОТПРАВКА ПРИНЯТИЯ [0:0]
:oem_nat_pre - [0:0]
:tetherctrl_nat_POSTROUTING - [0:0]
-A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -j oem_nat_pre
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --назначение 192.168.43.11:8080
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --назначение 192.168.43.11:8080
-A РАЗМЕЩЕНИЕ -j tetherctrl_nat_POSTROUTING
СОВЕРШИТЬ
# Завершено вс 20 июня 20:22:06 2021
# Сгенерировано iptables-save v1.6.1, воскресенье, 20 июня, 20:22:06 2021 г.
* калечить
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [0:0]
:ВВОД ПРИНЯТЬ [0:0]
:ВПЕРЕД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТЬ [0:0]
:ОТПРАВКА ПРИНЯТИЯ [0:0]
:bw_mangle_POSTROUTING - [0:0]
:idletimer_mangle_POSTROUTING - [0:0]
:nm_mdmprxy_icmp_pkt_marker — [0:0]
:nm_mdmprxy_mark_prov_chain - [0:0]
:nm_mdmprxy_mngl_post - [0:0]
:nm_mdmprxy_mngl_pre - [0:0]
:nm_mdmprxy_mngl_pre_ex - [0:0]
:nm_mdmprxy_mngl_pre_spi - [0:0]
:nm_mdmprxy_mngl_pre_tee - [0:0]
:nm_mdmprxy_pkt_forwarder - [0:0]
:nm_mdmprxy_pkt_marker — [0:0]
:nm_mdmprxy_pkt_skmark - [0:0]
:oem_mangle_post - [0:0]
:qcom_htimer_POSTROUTING - [0:0]
:qcom_qos_filter_POSTROUTING - [0:0]
:qcom_qos_reset_POSTROUTING - [0:0]
:routectrl_mangle_INPUT - [0:0]
:tetherctrl_mangle_FORWARD - [0:0]
:wakeupctrl_mangle_INPUT - [0:0]
-A ВХОД -j wakeupctrl_mangle_INPUT
-A ВХОД -j routectrl_mangle_INPUT
-A ВПЕРЕД -j tetherctrl_mangle_FORWARD
-A ОТПРАВКА -j qcom_htimer_POSTROUTING
-A Публикация -j oem_mangle_post
-A РАЗМЕЩЕНИЕ -j bw_mangle_РАЗМЕЩЕНИЕ РАЗМЕЩЕНИЯ
-A Публикация -j idletimer_mangle_POSTROUTING
-A ОТПРАВКА -j qcom_qos_reset_POSTROUTING
-A ОТПРАВКА -j qcom_qos_filter_POSTROUTING
-A bw_mangle_POSTROUTING -o ipsec+ -j ВОЗВРАТ
-A bw_mangle_POSTROUTING -m policy --dir out --pol ipsec -j ВОЗВРАТ
-A bw_mangle_POSTROUTING -j MARK --set-xmark 0x0/0x100000
-A bw_mangle_POSTROUTING -m bpf --object-pinned /sys/fs/bpf/prog_netd_skfilter_egress_xtbpf
-A nm_mdmprxy_mark_prov_chain -p udp -m socket --transparent --nowildcard --restore-skmark -j nm_mdmprxy_pkt_skmark
-A nm_mdmprxy_mark_prov_chain -p tcp -m socket --transparent --nowildcard --restore-skmark -j nm_mdmprxy_pkt_skmark
-A nm_mdmprxy_mngl_post -m отметка --mark 0xf0002 -j MARK --set-xmark 0x0/0xffffffff
-A nm_mdmprxy_pkt_marker -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A nm_mdmprxy_pkt_marker -j nm_mdmprxy_mngl_pre
-A nm_mdmprxy_pkt_marker -j nm_mdmprxy_mark_prov_chain
-A nm_mdmprxy_pkt_marker -j nm_mdmprxy_mngl_pre_spi
-A nm_mdmprxy_pkt_marker -j nm_mdmprxy_mngl_pre_ex
-A nm_mdmprxy_pkt_marker -p udp -m udp --dport 7275 -j MARK --set-xmark 0xf0002/0xffffffff
-A nm_mdmprxy_pkt_marker -p tcp -m tcp --dport 5060 -j MARK --set-xmark 0xf0002/0xffffffff
-A nm_mdmprxy_pkt_marker -p udp -m udp --dport 5060 -j MARK --set-xmark 0xf0002/0xffffffff
-A nm_mdmprxy_pkt_marker -m отметка --mark 0xf0002 -j nm_mdmprxy_pkt_forwarder
-A nm_mdmprxy_pkt_marker ! -p icmp -m отметка --mark 0xf0002 -j УДАЛИТЬ
-A nm_mdmprxy_pkt_skmark -j ВОЗВРАТ
-A qcom_qos_reset_POSTROUTING -o rmnet_data+ -j MARK --set-xmark 0x0/0xffffffff
-A routectrl_mangle_INPUT -i rmnet_data1 -j MARK --set-xmark 0xf0001/0xffeffffff
-A routectrl_mangle_INPUT -i wlan0 -j MARK --set-xmark 0x30063/0xffeffffff
-A tetherctrl_mangle_FORWARD -p tcp -m tcp --tcp-flags SYN SYN -j TCPMSS --clamp-mss-to-pmtu
СОВЕРШИТЬ
# Завершено вс 20 июня 20:22:06 2021
# Сгенерировано iptables-save v1.6.1, воскресенье, 20 июня, 20:22:06 2021 г.
*фильтр
:ВВОД ПРИНЯТЬ [0:0]
:ВПЕРЕД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТЬ [0:0]
СОВЕРШИТЬ
# Завершено вс 20 июня 20:22:06 2021