RouterBOARD 450G külső IP

Üdv!

Olyan problémám van, hogy a tárgyban említett routeren beállítottam a tűzfalszabályokat és a NAT-ot. Minden működik rendesen, kivéve egy dolgot, ha a saját hálózatomat próbálom elérni külső IP-vel, akkor nem érek el semmit.

A hálózatom: [ Belső háló; 192.168.1.0/24 ] <-- LAN --> [ RouterBOARD ] <-- PPPoE --> [ ISP; Digi ]

Ha az egyik belső hálózaton lógó gépről pl. el akarom érni a 192.168.1.50-en futó webszervert, akkor úgy működik, hogy a 192.168.1.50-es címet használom, de úgy nem, ha az ISP által adott IP-t használom. Viszont ha nem a belső hálóról próbálom elérni, hanem kívülről, pl. egy másik netkapcsolattal, akkor működik rendesen az ISP-s IP-vel.

Mi lehet a gond? Gondolom egy tűzfal/NAT szabály hiányzik. Előzőleg Linksys WRT54GL-t használtam, ott nem volt ez a probléma.

Hozzászólások

2 szabalyt kell felvenned a nat tablaba

pelda tcp 80-ra:

/ip firewall nat
add action=netmap chain=dstnat disabled=no dst-address=a.public.ip.cim protocol=tcp src-port=80 to-addresses=192.168.1.50 to-ports=80

/ip firewall nat
add action=netmap chain=srcnat disabled=no dst-address=192.168.1.50 dst-port=80 protocol=tcp to-addresses=a.public.ip.cim to-ports=80

Itt a baj a publikus IP-vel lesz, ugyanis dinamikus, szóval nem tudok neki konkrét címet megadni.

Jelenleg az alábbi szabályok vannak:


add action=masquerade chain=srcnat comment="PPPoE NAT" disabled=no out-interface=pppoe-digi
add action=dst-nat chain=dstnat comment="homeserver SSH" disabled=no dst-port=80 in-interface=pppoe-digi \
    protocol=tcp to-addresses=192.168.1.50 to-ports=80
add action=dst-nat chain=dstnat comment="homeserver HTTPS" disabled=no dst-port=443 in-interface=\
    pppoe-digi protocol=tcp to-addresses=192.168.1.50 to-ports=443
add action=dst-nat chain=dstnat comment="homeserver HTTP" disabled=no dst-port=22 in-interface=pppoe-digi \
    protocol=tcp to-addresses=192.168.1.50 to-ports=22
add action=dst-nat chain=dstnat comment="homeserver FTP" disabled=no dst-port=21 in-interface=pppoe-digi \
    protocol=tcp to-addresses=192.168.1.50 to-ports=21
add action=dst-nat chain=dstnat comment="homeserver rTorrent UDP" disabled=no dst-port=54330 \
    in-interface=pppoe-digi protocol=udp to-addresses=192.168.1.50 to-ports=54330
add action=dst-nat chain=dstnat comment="homeserver rTorrent TCP" disabled=no dst-port=54330 \
    in-interface=pppoe-digi protocol=tcp to-addresses=192.168.1.50 to-ports=54330

"dinamikus publikus IP"

Nekem is volt ilyen bajom én igy csináltam. A tűzfal szabály aktualizáló scriptet midenki saját belátása szerint kell, hogy megírja.

Én előkészitésnek iptables-save-vel kimentettem az éppen működőt, aztán a "dinamikus rész" előttit, és utánit két részben tárolom. Amikor kell, az aktuálist cat-tel közé(össze)szerkesztve iptables -restore-t hajtatok végre.

(otthon azért futtatom, hogy laptopról bejussak kintről)

ja, dyndns az kell a dologhoz.

Mi nem jó abban, hogy bentről az egyik, kivülről a másik IP-n éred el?

ezt egy módon teheted meg: ha nem csak a szerver címét natolod (a kintiről a bentire), hanem a routern átmenő, de bentről jövő forráscímeket is.
ez egyúttal azt jelenti, hogy a szerveren nem fogod látni, ha így benti gépről nézed, hogy melyikről jött a kérés, mert a natoló routered címe lesz a forráscím a webszervered logjában.

tehát a kliensen 192.168.1.50 -> :80 lesz a kapcsolat, míg a szerveren -> :80 formában jelenik majd meg ugyanez a kapcsolat.

hogy hogyan lehet megcsinálni a routereden, hogy a bentről jövő forráscímeket natoljad, ha a külső címre mennek, azt majd mások elmondják (akik értened a készülékhez).


iptables -t mangle -A PREROUTING -d 145.236.x.y -p tcp --dport 80 -m state --state NEW -j CONNMARK --set-mark 2
iptables -t nat -A PREROUTING -m connmark --mark 2 -p tcp -j DNAT --to-destination 192.168.1.50:80
iptables -A FORWARD -m connmark --mark 2 -j ACCEPT
iptables -t nat -A POSTROUTING -m connmark --mark 2 -j MASQUERADE

persze ehhez fog kelleni CONNMARK meg connmark modul, DNAT nyilván van, hiszen különben hogy menne most, a MASQ module meg szintén alap mindenhol.
Elvileg CONNMARK+connmark nélkül is meg lehet csinálni, talán a sima MATCH+match is elég lenne (akkor persze ki kell venni a -m state --state NEW részt).

Az megintcsak kérdés, hogy a dinamikus címmel hogyan tudsz boldogulni. A kintről jövő kapcsolatoknál egyszerű a dolog, mert pl. egy -i ppp0 simán matchelni fog az összes bejövő kapcsolatra, FORWARD pedig nem lesz, hiszen kintről nem küldenek be csomagokat más címre, csak a publikus címedre. De bentről már érdekesebb a dolog.

A bentről kifelé menő forgalomra még várom a nálamnál okosabb és tapasztaltabb emberek véleményét. Kirpóbálom az általad küldött szabályokat. Connmark van. Ahogy néztem, az összes speckó dolog bele van fordítva a router firmware-ébe (Connmark, Masq, Conntrack stb.).

Szerk.:
Kipróbáltam, ezekkel a szabályokkal működik. Már csak a dinamikus IP vár megoldásra. Ehhez már gondolom szkriptelni kellene a router-t.