Puncte:1

iptables nu redirecționează traficul http

drapel cn

Încerc să creez un portal captiv și primul lucru de făcut este să redirecționez tot traficul către un anumit IP:port.

Am încercat:

iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination <my-ip>:<my-port>

Care funcționează atunci când încercați să testați redirecționarea pe același dispozitiv care acționează ca un hotspot. Am înțeles că solicitările de la alți utilizatori trec prin lanțul PREROUTING, așa că am făcut următoarele:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination <my-ip>:<my-port>

Acum, când încerc să accesez IP xxx.xxx.xxx.xxx cu alt dispozitiv, primesc ERR_ADDRESS_UNREACHABLE. Totuși, dacă încerc să ajung <my-ip>, sunt redirecționat către altul <my-port>. Este ca și cum redirecționarea către alt port funcționează, dar redirecționarea către alt IP nu funcționează. Care ar putea fi problema aici?

Am spălat iptables înainte de experiment și toate politicile sunt ACCEPTATE.

*unul dintre răspunsurile cerute pentru iptables-save, iată-l:

    # Generat de iptables-save v1.6.1 pe Dum. 20 iunie 20:22:06 2021
*Securitate
:INPUT ACCEPT [12750:14270713]
: FORWARD ACCEPT [0:0]
: ACCEPT IEȘIRE [3688:960149]
COMMIT
# Finalizat duminică, 20 iunie, 20:22:06 2021
# Generat de iptables-save v1.6.1 pe Dum. 20 iunie 20:22:06 2021
*brut
:ACCEPTAREA PRE-ROUTARE [0:0]
: ACCEPT IEȘIRE [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 PREROUTING -j qcom_htimer_PREROUTING
-A PREROUTING -j clat_raw_PREROUTING
-A PREROUTING -j bw_raw_PREROUTING
-A PREROUTING -j idletimer_raw_PREROUTING
-A PREROUTING -j tetherctrl_raw_PREROUTING
-A bw_raw_PREROUTING -i ipsec+ -j RETURN
-A bw_raw_PREROUTING -m policy --dir in --pol ipsec -j RETURN
-A bw_raw_PREROUTING -m bpf --object-pinned /sys/fs/bpf/prog_netd_skfilter_ingress_xtbpf
-A nm_mdmprxy_raw_pre -p tcp -m multiport --ports 5060 -j NOTRACK
-A nm_mdmprxy_raw_pre -p udp -m multiport --ports 5060 -j NOTRACK
COMMIT
# Finalizat duminică, 20 iunie, 20:22:06 2021
# Generat de iptables-save v1.6.1 pe Dum. 20 iunie 20:22:06 2021
*nat
:ACCEPTAREA PRE-ROUTARE [0:0]
:INPUT ACCEPT [0:0]
: ACCEPT IEȘIRE [0:0]
: POSTROUTING ACCEPT [0:0]
:oem_nat_pre - [0:0]
:tetherctrl_nat_POSTROUTING - [0:0]
-A PREROUTING -j oem_nat_pre
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.43.11:8080
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.43.11:8080
-A POSTROUTING -j tetherctrl_nat_POSTROUTING
COMMIT
# Finalizat duminică, 20 iunie, 20:22:06 2021
# Generat de iptables-save v1.6.1 pe Dum. 20 iunie 20:22:06 2021
*calandru
:ACCEPTAREA PRE-ROUTARE [0:0]
:INPUT ACCEPT [0:0]
: FORWARD ACCEPT [0:0]
: ACCEPT IEȘIRE [0:0]
: POSTROUTING ACCEPT [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 INPUT -j wakeupctrl_mangle_INPUT
-A INPUT -j routectrl_mangle_INPUT
-A FORWARD -j tetherctrl_mangle_FORWARD
-A POSTROUTING -j qcom_htimer_POSTROUTING
-A POSTROUTING -j oem_mangle_post
-A POSTROUTING -j bw_mangle_POSTROUTING
-A POSTROUTING -j idletimer_mangle_POSTROUTING
-A POSTROUTING -j qcom_qos_reset_POSTROUTING
-A POSTROUTING -j qcom_qos_filter_POSTROUTING
-A bw_mangle_POSTROUTING -o ipsec+ -j RETURN
-A bw_mangle_POSTROUTING -m policy --dir out --pol ipsec -j RETURN
-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 --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 --mark 0xf0002 -j nm_mdmprxy_pkt_forwarder
-Un nm_mdmprxy_pkt_marker ! -p icmp -m mark --mark 0xf0002 -j DROP
-A nm_mdmprxy_pkt_skmark -j RETURN
-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/0xffefffff
-A routectrl_mangle_INPUT -i wlan0 -j MARK --set-xmark 0x30063/0xffefffff
-A tetherctrl_mangle_FORWARD -p tcp -m tcp --tcp-flags SYN SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Finalizat duminică, 20 iunie, 20:22:06 2021
# Generat de iptables-save v1.6.1 pe Dum. 20 iunie 20:22:06 2021
*filtru
:INPUT ACCEPT [0:0]
: FORWARD ACCEPT [0:0]
: ACCEPT IEȘIRE [0:0]
COMMIT
# Finalizat duminică, 20 iunie, 20:22:06 2021
bocian85 avatar
drapel cn
este această mașină un gateway NAT pentru sau o gazdă pentru care ai încercat să lucreze? Pentru ca acest lucru să funcționeze, traficul trebuie să treacă prin această mașină. Îmi pare rău că afirm aici ceea ce este evident. O bună practică ar fi, de asemenea, să adăugați sursa sau destinația pentru regula PREROUTING, deoarece aceasta ar putea funcționa în ambele direcții, ceea ce ar putea să nu fie ceea ce v-ați dorit. Ar fi o problemă pentru dvs. să afișați rezultatul lui `iptables-save` aici pentru a exclude o regulă anterioară care o face pe aceasta în stare latentă? Puteți specifica și „nu se întâmplă nimic”? Vrei să spui că există un timeout în browser?
Nikola avatar
drapel cn
este adresa mașinii care rulează iptables și serverul http. iptables-save arată acest lucru, îl voi adăuga la întrebare. Deschiderea în browser dă „ERR_ADDRESS_UNREACHABLE”
bocian85 avatar
drapel cn
se poate conecta gazda de la care încercați să vă conectați la adresa țintă? gazdă inaccesabilă înseamnă că fie IP-ul nu este accesibil, fie nimic nu ascultă pe acel port. Puteți încerca să adăugați `-t nat -A POSTROUTING -d : -J MASQUERADE` pentru a elimina prima problema
Nikola avatar
drapel cn
Am adăugat ceea ce mi-ați spus fără portul (gazdă/rețea : nu a fost gasit). Încă nu pot accesa serverul web care rulează pe mașina mea mergând la un IP aleatoriu.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.