Sziasztok !
Adott egy linuxos gép. Két hálókártya van benne. Az egyik hálózati kártya -eth0- az internet felé megy, onnan dhcp-ről kapja az ip címet.
A másik kártya -eth1- megy a belső háló felé. Arra DHCP-t szolgáltat. Az eth1 ip címe: 10.0.0.2
A feladat az lenne, hogy a 10.0.0.0/24 subneten ülő gépek elérhessék fullban az internetet, korlátozás nélkül.
Amit eddig csináltam:
iptables -F
iptables -X
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A FORWARD -s 10.0.0.2 -p tcp -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp -j DNAT --to-destination 192.168.1.98
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
A 192.168.1.98 az eth0, ez megy ki az internet felé. Ez a cím változik.
A belső hálón ülő gépek mind windows gépek. És nem működik. Tűzfalat még sohasem csináltam, elnézést a bénázásért.
Segítségeteket előre is köszönöm!
- 2164 megtekintés
Hozzászólások
Ez a két sor tuti nem kell bele:
iptables -A FORWARD -s 10.0.0.2 -p tcp -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp -j DNAT --to-destination 192.168.1.98
Inkább:
iptables -A FORWARD -i eth1 -j ACCEPT
- A hozzászóláshoz be kell jelentkezni
Így sem működik
- A hozzászóláshoz be kell jelentkezni
Mi a FORWARD default policy? ACCEPT?
- A hozzászóláshoz be kell jelentkezni
Ill erős kérdés a dns is, ha nem a forward lánc dobja el...
- A hozzászóláshoz be kell jelentkezni
Eljutottam oda, hogy megy a ping. Az internet felé is ki tudok pingetni, de a névfeloldás nem megy. Lehet, hogy a dhcpd.conf-l van a hiba?
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.200;
option routers 10.0.0.2;
}
- A hozzászóláshoz be kell jelentkezni
option domain-name-servers kéne valami megfelelő bejegyzéssel...
- A hozzászóláshoz be kell jelentkezni
Kezdetben 8.8.8.8, 8.8.4.4-el. :)
- A hozzászóláshoz be kell jelentkezni
Nemigen tudom, hogy mit kéne megadni. Próbáltam mind a két kártya címét megadni, hátha továbbítja kifelé. Nem jött össze.
- A hozzászóláshoz be kell jelentkezni
Nyilván egy külső dns szervert első körben. :)
- A hozzászóláshoz be kell jelentkezni
Igen, megadtam egyet. Félig működik.
pl: nslookup www.google.hu
erre visszaadja az ip címet, de az internet explorer nem tudja megnyitni. "Ez a lap nem jeleníthető meg" .
Hmm.
- A hozzászóláshoz be kell jelentkezni
Esetleg még egyszer a konfiguráció:
iptables:
#A = "10.0.0.2" eth1
#KULSO = "192.168.1.98" eth0
iptables -F
iptables -X
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A FORWARD -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
dhcpd:
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.200;
option domain-name-servers 84.2.46.1;
option routers 10.0.0.2;
}
Az nslookup kimegy, az IE nem tud.
- A hozzászóláshoz be kell jelentkezni
Hülye kérdés, de kliens gépen "ipconfig /flushdns" (vagy restart) volt közben? Különben cache-elte a "nincs ip"-t a címhez és ha ugyanazt próbálgatod, nem fog elindulni! (nem egyszer futottam már bele újra és újra :/ )
Az nslookup közvetlen nyúl a DNS-hez, de a kliens progik akkor is a belső cache-t kérdezik.
- A hozzászóláshoz be kell jelentkezni
Ha rá irányítod, akkor nem továbbít. Kell egy forward only nameserver a dobozra, vagy a szolgáltatód dnsét kell terítened.
Ilyenekre egyébként szerintem a dnsmasq jó, benne van a dhcp meg a dns is, jóidő.
- A hozzászóláshoz be kell jelentkezni
A dhcpd konfban a szolgáltató dns ip címe van. Ezért tudja -gondolom- feloldani az nslookup kérését.
Nem tudom, hogy mi az a dnsmasq.
Egyébként a gépet újraindítottam, ürítettem a dns-t is. Az eredmény változatlan.
- A hozzászóláshoz be kell jelentkezni
Annak elvileg jónak kellene lennie imho. Max nézz valami wiresharkot / tcpdumpot, hogy mi nem stimmel, mert ez már inkább exporer csesznek hangzik (proxy nincs beállítva? Vagy nem kéne legyen beállítva?)
A dnsmasq az egy integrált dhcp és dns szerver (meg még PXE, de az most itt nem érdekes), kicsi, könnyű, gyorsan beállítható, és pont ez a célterülete. Főleg olyannak, aki nem nagyon ért hozzá egyszerűbb, mint a fenti rendes isc dhcpd, meg mondjuk egy bind.
De azért ezt illett volna meggugliznod.
- A hozzászóláshoz be kell jelentkezni
Meggugliztam, telepitettem, a helyzet nem változott.
Ha közvetlenül dugom az internetre a gépet, akkor működik. Proxy nem kell. Vírus védelme Symantec Endpoint Protection.
- A hozzászóláshoz be kell jelentkezni
Ahhoz, hogy a helyzet változzon, próbálj kicsit gondolkozni is. Egyrészt nyilván be is kell állítani, másrészt meg mint említettem, abból amit írtál:
- ping megy -> routing / tűzfal jó lesz
- nslookup megy -> dns beállítások jók.
- explorer nem egy -> azzal lesz a baj.
Erre most feltettél a jelenleg már beállított dhcpd helyett egy másikat, és gondolom nem irányítottad rá a dnst.
Ehelyett ha megnéznéd, hogy mikor az exporer próbálkozik, akkor mi történik, az segítene a probléma feltárásában. Vagy pl ha megnéznél egy másik böngészőt. Vagy egy másik protokolt.
- A hozzászóláshoz be kell jelentkezni
Megtörtént a dnsmasq beállítása, nslookup továbbra is jól működik. Feltettem a Firefoxot, azzal sem megy. A wireshark számomra értelmezhetetlen adatot ad. A vírusvédelmet, és a helyi tűzfalat leállítottam.
Ha közvetlenül feldugom az internetre, akkor viszont működik.
Hol nézzem az IE próbálkozását?
- A hozzászóláshoz be kell jelentkezni
A wireshark értelmezhetetlen adatában ;) Esetleg a tcpdumpot a linuxon futtatva annak az értelmezhetetlen adatában :)
Első körben azt kellene látni, hogy a browser által generált forgalomban sikerül e feloldani neki a címet. Szűrhetsz mondjuk a dns protokolra, ahol ha azt látod, hogy megy ki forgalom a gép címéről a beállított dns fele (ami ugye ha most dnsmasq van, akkor 10.0.0.2, vagy mi). Ha ki sem megy, akkor valalmi nagyon furi van. Ha kimegy, de nincs válasz, akkor azt kéne kideríteni, hogy miért. Ezt hasonlóan kellene nézni a linuxos dobozon, csak tcpdumppal.
Esetleg rövidíteni, és a dnsmasqban bekapcsolni valami debug logot, és nézni, hogy mi történik a queryvel. (Ez tán a legegyszerűbb most).
Ha a névfeloldás sikerült, akkor azt kell megnézni a wiresharkban/tcpdumpban, hogy mi történik azzal a kapcsolattal, amit ennek hatására nyit a gép. Itt a forráscím az, amit a gép kapott, a cél meg amit a dns adott vissza. Meg kell nézni, hogy megy-e ki forgalom, jön-e vissza válasz, ha nem, akkor az hol akad el? Már eleve ki se ment a gépről, ki se ment a linuxról, kiment, de semmi válasz nem jött, jött válasz, de elakadt a linuxon. Ilyesmik
- A hozzászóláshoz be kell jelentkezni
Küldj vmi privit, küldök tuti jól működő fw iptables configot.
De ha pingelni lehet kifele a 8.8.8.8-at, akkor mennie kell a http forgalomnak is.
- A hozzászóláshoz be kell jelentkezni
"Küldj vmi privit, küldök tuti jól működő fw iptables configot.
De ha pingelni lehet kifele a 8.8.8.8-at, akkor mennie kell a http forgalomnak is."
Tudom pingetni a 8.8.8.8-t, nslookup is feloldja.
Nagyon megköszönném, ha küldenél:
címre jöhet.
- A hozzászóláshoz be kell jelentkezni
Ment.
De én még ilyet nem láttam, h pingelni tudok kifelé, de mást nem. :)
- A hozzászóláshoz be kell jelentkezni
Még azon filózok, hogy mtu ippeg lehet, bár egy google.comnál furcsa.
- A hozzászóláshoz be kell jelentkezni
Életemben nem kellett még mtu problémával opnom. Nyilván ez is csak szerencse kérdése. Még a ~150 vpn kapcsolatomnál sem, ahol pedig elő szokott fordulni.
- A hozzászóláshoz be kell jelentkezni
150 vpn mellett vagy csak nagyon szerencsés vagy, vagy nem vetted észre ;) (Vagy nem tunnelálgatsz eleget mindenféle szart :) )
Mindazonáltal én sem nagyon gondolnám itt, csak azért jött elő, mert a külső címből, ami szintúgy 192.168 egy kissé gyanús, hogy dupla nat / és vagy egyéb gonoszkodás van az uplinken.
- A hozzászóláshoz be kell jelentkezni
Dupla NAT ???
Az lehet. Teszt környezetben vagyok. Erre nem gondoltam. Holnap kipróbálom élesben.
- A hozzászóláshoz be kell jelentkezni
#KULSO = "192.168.1.98" eth0
Ez egy privát cím, egy az egyben biztos nem routeolódik ki az internetre.
- A hozzászóláshoz be kell jelentkezni
Akkor 99.99%, hogy ez lehet a gond. :)
- A hozzászóláshoz be kell jelentkezni
Ennek önmagában nem kell egyébként gondot okozni, duplán natolni lehet (mint látszik, ping megy is pl), ráadásul ez önmagában még headert sem növel, mert mindenki csak beleturkál, szóval a szabvány mtu-t sem kéne önmagában befojásolja...
- A hozzászóláshoz be kell jelentkezni
Kikerülve a teszt környezetből, működött.
Köszönöm mindenkinek a segítséget !
- A hozzászóláshoz be kell jelentkezni
A Linux Boxon keresztül történő forgalmazás esetén nem elegendő, hogy a tűzfal szabályok engedélyezzék a forgalmat, az Internet felé maszkoljanak - de az is kell, hogy a kernel úgy gondolja, hogy ő router funkciókat is ellát és a hozzá beeső csomagokat ha a címzett más, továbbítsa is! Erre az
echo "1" > /proc/sys/net/ipv4/ip_forward
paranccsal lehet rábeszélni. Tartósabb megoldás is van, de az disztro függő, ezzel együtt ajánlott annak a használata.
A hiba keresésnél a tcpdump is jó barát tud lenni, mert a négy alapdolog azonnal megnézhető:
- a klienstől egyáltalán beesik-e a kérdéses csomag?
- a klienstől megjött csomag kimegy-e a net felé és megtörténik-e a maszkolás?
- megjön-e a válasz a kérésre a net felől?
- a net felől érkező választ beengedi-e a tűfal és továbbítja-e a kliens felé?
Ha mindenre igen a válasz, akkor működik a rendszer - ez az ideális állapot. :-)
Ha bárhol nem a válasz, akkor viszont már az elakadás helyének ismeretében elég jól behatárolható, hogy hol kell keresni a hibát.
- A hozzászóláshoz be kell jelentkezni
Az ipforward be van állítva
- A hozzászóláshoz be kell jelentkezni
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
- A hozzászóláshoz be kell jelentkezni