Sziasztok!
Azt gondolom, triviális, de mégis elszúrom valahol, és nem látom a hibát.
Ez az egyszerű hálózat:
------------ ------------ -------------
| ppp0e | | 192.168.1.1| | 192.168.1.2 | ---------------
| enp3s0 | - | enp2s0 | - | wifi AP | - - - | pl. telefonok |
| xy.ddns.zz | | | | | ---------------
------------- ------------ -------------
|
------- ------------
| bridge| helyett |NAT network | lett.
------- ------------
|
-------------
| VB - Ubuntu |
| 192.168.1.5 |
-------------
pppoe authentikációval kap a gép dinamikus címet az enp3s0 csatolón keresztül.
A cél, hogy a pppoe felé érkező 80-as, 443-as kéréseket a VirtualBoxban csücsülő Ubuntu szolgálja ki, emellett minden végponton szabad legyen az Internetezés. A VB-ban az apache2 felkonfigurálva, tudja a dolgát.
Alapértelmezett megosztás (eredeti iptables script):
#!/bin/bash
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe
EXTIF="ppp0"
INTIF="enp2s0"
$DEPMOD -a
$MODPROBE ip_tables
$MODPROBE nf_conntrack
$MODPROBE nf_conntrack_ftp
$MODPROBE nf_conntrack_irc
$MODPROBE iptable_nat
$MODPROBE nf_nat_ftp
iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
EOF
Erre küldtem rá ezeket a parancsokat
sudo iptables -A FORWARD -m state -p tcp -d 192.168.1.5 -m multiport --dports 80,443 --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A PREROUTING -t nat -p tcp -m tcp -i ppp0 --dport 80 -j DNAT --to-destination 192.168.1.5:80
sudo iptables -A PREROUTING -t nat -p tcp -m tcp -i ppp0 --dport 443 -j DNAT --to-destination 192.168.1.5:443
sudo iptables -A POSTROUTING -t nat -p tcp -m tcp -s 192.168.1.5 --sport 80 -j SNAT --to-source xx.236.xx.86
sudo iptables -A POSTROUTING -t nat -p tcp -m tcp -s 192.168.1.5 --sport 443 -j SNAT --to-source xx.236.xx.86
Az eredmény:
- A VB-tudja a helyét, benne a "w3m xy.ddns.zz" (xx.236.xx.86) hatására szépen látszik a weboldal.
Szerk.: mert tudja, hogy xy.ddns.zz a neve, bocs'. Az IP-re már nem válaszol.
- A fizikai gépről a http://192.168.1.5 szépen válaszol.
- A fizikai gépről és máshonnan sem látszik a sem a htttp://xy.ddns.zz, sem feloldott ip-vel http://xx.236.xx.86
Azt gondolom, a POSTROUTING-gal van a baj, de nem látom.
Kérem szépen a szíves segítségeteket.
- 508 megtekintés
Hozzászólások
A választ nem tudom, de az elejéről ezt hiányolom:
iptables -F # Összes default láncot ürít.
iptables -X # Összes user által létrehozott láncot töröl.
iptables -t nat -F
iptables -t nat -X
ps.: ha a iptables-restore ezt csinálja, akkor nem szóltam :)
- A hozzászóláshoz be kell jelentkezni
Igen, az töröl mindent.
szerk.: pontosabban az utána lévőket állítja be alaphelyzetként.
READY.
▓
- A hozzászóláshoz be kell jelentkezni
Amúgy nekem jónak tűnik, lehet a virtualbox-ban kellene körülnézni:
Virtualbox -> Eszközök -> Beállítások -> Hálózat -> Kiválasztod a hálózatod -> Hálózat Részletei/Szerkesztés -> Port továbbítása
ps: nem használok ilyen célra VB-t, csak miattad néztem meg
- A hozzászóláshoz be kell jelentkezni
Itt a megoldás
- A hozzászóláshoz be kell jelentkezni
Te magad írod válaszként, hogy az sem működik.
Igazából azt szeretném - ahogy gondolom, te is azt akartad - , hogy egy mezei belső IP címet vegyen fel a VB, hogy könnyebben dolgozz vele. Fentebb Oregon is a NAT-on a portitányítást írja a VB-n keresztül. Nekem az egy kicsit fájó megoldás lenne, ezért gondolkodom úgy, mint te anno.
Végül is neked ment vagy nem?
READY.
▓
- A hozzászóláshoz be kell jelentkezni
Igen, azóta is így megy.
A host újraindítása után már működött, de azt csak napokkal később lehetett megtenni. Szégyenlem, de nem írtam oda a topicomhoz, hogy végül jó lett ez a megoldás...
Megteszem most.
- A hozzászóláshoz be kell jelentkezni
Már csak az a kérdésem, hogy az hogy tedd fel a VB-ben a portot 10080-ra mit jelentett neked:
1, A VB konfigurációs felületén NAT szerepel, és ott állítod át a Haladó szekcióban a 127.0.0.1:80-ról a 10.0.2.15:10080-ra?
2, Bridgelt hálózatban a host gépen iptablessel fordítod a 80-as címet a VB-nek kiosztott IP 10080-as portjára?
READY.
▓
- A hozzászóláshoz be kell jelentkezni
1. Lehet ott is, vagy
[code]su user -c "VBoxManage natnetwork modify --netname NatNetwork --port-forward-4 Web_Server:tcp:[]:10080:[192.168.0.5]:80"[/code]
2. NAT-ot használok a guest-en, de a többi stimmel. Iptablessel irányítom a host 80-as portját a VBox 10080-as portjára, a VM-en a webserver a 80-as üörtön figyel.
- A hozzászóláshoz be kell jelentkezni
Szuper, már működik, nagyon szépen köszönöm.
(Kicsit megzavart, hogy quest IP-t megváltoztattad, és a grafikus felületen nem lehet "netname"-et állítani, és nem látszik a mögötte lévő szabály, csak konzolon tudtam kiolvasni.)
Ez még részsiker. Ahhoz, hogy használhatóvá tudjam tenni, meg kellene találnom, honnan van a port-forward rule, amit írsz, és még nem fix a VB-ban a 192.168.15.4-as cím.
A MEGOLDÁS:
Nos, egyelőre ezzel a megoldással működik, de még sok a kérdés:
A fenti iptables leírásban az iptables_restore részt az alábbiak szerint módosítottam:
iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
-I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 10080
-I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 10080
COMMIT
A VB felhasználójával hozzáadtam, az "anyad" nevű hálózatot:
$ VBoxManage natnetwork add --netname anyad --network "192.168.15.0/24" --enable --ipv6 on
Beállítottam a VB-hoz tartozó portátirányítást, avagy, a 80-as portot, amit az iptables-szel 10080-ra tettem, visszaforgattam 80-asra:
$ VBoxManage natnetwork modify --netname anyad --port-forward-4 Web_Server:tcp:[]:10080:[192.168.15.4]:80
A Virtual grafikus felületén Nat hálózat-> Név-> anyad.
Aztán reboot a guestnek. Ezek után a 80-as portot elérem. Még sok a kérdés, de mindenkinek köszönöm még egyszer.
READY.
▓
- A hozzászóláshoz be kell jelentkezni
Aham, az a Web_Server:tcp:[]:10080:[192.168.15.4]:80 akár így is kinézhetne: ize_bigyo:tcp:[]:10080:[192.168.15.4]:80.
Így már értem.
READY.
▓
- A hozzászóláshoz be kell jelentkezni
Bocs, azt gondoltam, a példát már testre tudod szabni.
Itt egy kis segítség: https://docs.oracle.com/cd/E97728_01/E97727/html/vboxmanage-natnetwork…
- A hozzászóláshoz be kell jelentkezni
Testre tudtam szabni, de hogy mi a példa és mi a kötelező, így első ránézésre nem lehet egyértelmű. Tök idegen szoftver, tök idegen eljárása. Az idézett doksit én is megtaláltam, átolvastam.
A segítséged nélkül, biztosan sokkal tovább tartott volna, úgyhogy még egyszer nagyon köszönöm.
READY.
▓
- A hozzászóláshoz be kell jelentkezni
Nagyon szívesen :)
- A hozzászóláshoz be kell jelentkezni
Van egy kis bug benne; egy idő után elhajít minden kapcsolatot. Hiába indítom újra a VM-et, abban a pillanatban, hogy startol, máris jelzi a hibát a dmesg. Egy darabig nem jöttem rá, de aztán arra jutottam, hogy a vboxnetflt modul hibás lehet.
READY.
▓
- A hozzászóláshoz be kell jelentkezni
Na, nem egészen a lentebbi megoldásra gondoltam, mert ez szépen lecsapja az összes más végponton a végeredményben az internetelérést - amúgy innen nézve teljesen logikusan. Tehát a fenti megoldás nem teljesíti azt az alapvető igényt, hogy "emellett minden végponton szabad legyen az Intenetezés".
Sajnos én sem vettem észre, mert nem kellett eddig a végpontokon netelérés.
Ehhez webszerveri proxy átirányítás kell. Én az apache2 mod_proxy modullal oldottam meg, ha lesz egy kis időm, leírom.
READY.
▓
- A hozzászóláshoz be kell jelentkezni