Ü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.
- 1642 megtekintés
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
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
"Itt a baj a publikus IP-vel lesz, ugyanis dinamikus, szóval nem tudok neki konkrét címet megadni."
http://www.dyndns.com/
- A hozzászóláshoz be kell jelentkezni
huh.
- A hozzászóláshoz be kell jelentkezni
"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.
- A hozzászóláshoz be kell jelentkezni
Persze, ha csak otthonról akarod tudni (az otthonit):
curl -s http://checkip.dyndns.com | awk '{print $6}' | awk ' BEGIN { FS = "<" }{ print $1}'
- A hozzászóláshoz be kell jelentkezni
Mi nem jó abban, hogy bentről az egyik, kivülről a másik IP-n éred el?
- A hozzászóláshoz be kell jelentkezni
Kényelmi megfontolások, esetleg több "virtual server" esetén nem az igazi szerintem...
- A hozzászóláshoz be kell jelentkezni
Tesztelesi celokbol lenne szuksegem arra, hogy kulso IP-vel erjem el a halozatot belulrol.
- A hozzászóláshoz be kell jelentkezni
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).
- A hozzászóláshoz be kell jelentkezni
Ha mindezt "iptables nyelven" meg tudod nekem fogalmazni, akkor azt már fel tudom használni, ugyanis a router is iptables-t használ, csak nem olyan paraméterezéssel, mint egy mezei linux-on.
- A hozzászóláshoz be kell jelentkezni
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 hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni