DD-WRT: Come consentire il port forwarding da applicare alle richieste provenienti dall'interno della LAN?


26

Con il firmware originale del mio router avevo il port forwarding definito dalla porta 80 al server nella LAN, che ho usato insieme a un servizio DNS dinamico esterno.

Ora ho aggiornato a DD-WRT e purtroppo il port forwarding funziona solo per richieste all'IP esterno dall'esterno della LAN. Dall'interno della LAN posso accedere al server solo tramite il suo IP interno.

Come posso rendere l'IP esterno (e quindi il nome di dominio collegato all'IP esterno dinamico) per essere adeguatamente accessibile anche dall'interno della LAN?

Preferisco scoprire come raggiungerlo con le definizioni DD-WRT standard, ma l'utilizzo ad es. Iptables non è fuori discussione.

Risposte:


25

Sembra che sia un bug nelle recenti build DD-WRT.

Usa iptables:

iptables -t nat -I POSTROUTING -o br0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE

(cambia la tua sottorete in base alla tua LAN specifica)

Da http://hax.at/text/41


Non era ovvio! ha funzionato come un fascino :)
Jay,

Ho impostato questo come comando di avvio e ho riavviato il router, ma nessuna modifica - continua a non funzionare.
Timwi

Ha funzionato per me. Grazie mille. Ora posso accedere al mio IP DNS assegnato dalla mia rete interna sui miei router DD-WRT.
nusi,

3
Questo ha funzionato per me, ma solo se l'ho salvato come script del firewall e non come script di avvio.
Jarett Millard,

@Timwi - Come menzionato Jarett, anch'io ho dovuto inserire questo nella sezione "Firewall", non nella sezione "Avvio".
dan_linder,

4

In spirito della risposta di UrEl: iptablessul forum DD-WRT è possibile trovare uno script autoconfigurabile che può essere semplicemente incollato senza ulteriori adattamenti :

insmod ipt_mark 
insmod xt_mark 
iptables -t mangle -A PREROUTING -i ! `get_wanface` -d `nvram get wan_ipaddr` -j MARK --set-mark 0xd001 
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark 
iptables -t nat -A POSTROUTING -m mark --mark 0xd001 -j MASQUERADE 

Come notato da Jarett, questo deve essere usato come script Firewall e non come script di avvio.


Questa soluzione ha funzionato per me meglio di quella di UrEI perché quest'ultima ha reso impossibile la connessione del mio telefono SIP.
Jamix,

Qual è la differenza tra questa e la regola di @ UrlEl (oltre a ottenere in modo dinamico l'interfaccia wan e l'indirizzo IP)?
Piotr Dobrogost,

1

Prova a disabilitare "Filtro reindirizzamento NAT WAN" nella scheda Sicurezza-> Firewall. Dalla descrizione della guida:

Filtra reindirizzamento NAT WAN Impedisce agli host su LAN di utilizzare l'indirizzo WAN del router per contattare i server sulla LAN (che sono stati configurati utilizzando il reindirizzamento delle porte).


Era già disabilitato (per impostazione predefinita). Altre idee?
UrEl

È strano: sulla mia LAN, questa impostazione è esattamente ciò che fa la differenza. Quale build stai usando? Forse dovresti ricontrollare il tuo port forwarding - forse c'è qualcosa che non va lì che ti sei perso (forse gli IP sono cambiati tra il tuo accesso esterno e interno, interrompendo così il port forwarding?)
Tobias Plutat,

Sto usando 16994. Nel frattempo ho trovato questo: hax.at/text/41
UrEl

Oh, quanto adoro le versioni buggy DD-WRT! (Stabilire una connessione da parte dei client impiegava un po 'di tempo per un po' di tempo ... fino a quando non ho scoperto che i nomi host nei contratti di locazione statici dovrebbero contenere solo caratteri alfabetici. Arrgh!)
Tobias Plutat,

1

Sembra che il tuo vero problema sia che hai bisogno di due viste del record DNS A. Esternamente il DNS dinamico punta all'IP pubblico della rete che inoltra la porta 80 all'host locale. Tutto quello che devi fare è aggiungere una voce in dnsmasq con un record A che punta lo stesso nome di dominio completo all'ip host locale per i tuoi host locali. Puoi farlo aggiungendo quanto segue nella pagina Servizi / Opzioni dnsmasq aggiuntive:

 address=/www.mydomain.com./xx.xx.xx.xx

sostituisci semplicemente le xx con l'ip locale e il nome di dominio con il tuo nome di dominio. Non dimenticare il punto finale o ad esso verrà aggiunto il nome di dominio locale.


Questo è quello che ho fatto e funziona! Ma è possibile farlo per determinate porte? Funzionerà solo se inoltri le porte a un singolo computer. Se inoltri le porte a più computer, non funzionerà ...
Rinogo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.