Rengetek a következő kérdés : Hogyan tudom megosztani a netet? miaz hogy permissoin denies,NAT,forward,maszkolások,iptables stb... A problémákban pedig lelkesen segítenek a tagok egymáson ami nagyon jó,viszont konkrét wiki jellegű leírást (mint pl a grub2-ről [tisztelet az írónak]) nem találtam ezért megpróbálok készíteni eggyet. De előbb egy kis bio:

    3 éve ubuntu 3 éve nyugalom 3 éve stabil,ingyenes gép.Magamat a "Vodafone "digitális kánaám" E220-as fürdőszobai szappan tartóval kezdett internetezni" csoportba sorolnám azóta valami KXXX van, DE ami ebből a lényeg hogy router drága lenne (annyira azért már manapság már nem) a háztartásban 2 PC van és sok wifi képes mobil.Nem volt kérdés ezt meg kell osztani.Mert persze hogy mindenki egyszerre akar netezni és hát jöttek a hosszú fórum olvasások,megjegyezném igen jó eredményekkel :)
A leírás célja az egyszerű felhasználónak könnyen elmagyarázni az internet kapcsolatának megosztását mind LAN és WLAN környezetben. Próbálok minél kevesebb program telepítést belefűzni,értelmesen kifejteni a mondani valóm. Hát az első dolog ahol el kell kezdeni az az ifconfig nevű parancs amit terminálban adunk ki (Alkalmazások/kellékek/terminál vagy [ctrl+alt+t] aki alap gnome alól olvas) A parancs lefut akár milyen jogkiterjesztés nélkül amit pedig kiír a képernyőre az az elérhető hálózati interfészek listálya A következő dolog a sudo ami abban segít hogy a parancs amit kiadunk root (super user,Rend$zergazda) jogaival fusson. Az itt használt parancsok nagy részéhez root jog kell majd de fogok szólni előtte Szügésgünk lesz egy programra rögtön: DNSMASQ arra szolgál hogy a dns kéréseket közvetítse nekünk erről elég enyi is vegyünk elő a terminálünkat és illeszük be a következőt:

sudo apt-get install dnsmasq
gépeljük be a jelszót madj enter (attól hogy nem látszik még beírja :D) meg fogja kérdezni azt is hogy biztosak vagyunk-e a telepítésbe de hát persze (Y/n) Ha valami olyan baja van hogy nem találja akkor nézzünk körül a szoftver források körül,valószínűleg nincs olyan repo amibe benne lenne de erre kicsi az esély. Kicsit részletezném a program beállítását: Aki most ismerkedik annak tudni kell hogy a linux és úgy az ubuntu is a programok töbségének beállításait mindíg egy .conf config fájlban tárolja ami általában az /etc könyvtár alatt található megyiben a dsnmasq települt szerkesszük meg azt a konfig fájlt ahogy nekünk jó terminálba:

gksu gedit /etc/dsnmasq.conf
( a gedit a szöveg szerkesztőnk ide akár mi más is jöhet ha nem kedveljük a gedit-et) A fájt megnyitva elég sok példát találunk benne ki kommentezve (a sor elején # jel) aki tud angolul annak most jó dolga van ugyan is elég érthető az ismertetés. Mielőtt bele kezdenénk a szerkesztésbe el kell dönteni szeretnénk-e DHCP szervert a hálózatunkra vagy nem. Szerény véleményem szerint LAN-ra nem kell DE Wlan-ra viszont kell. Aki nem akar DHCP servert az nem írjon a dnsmasq file-ba!!! (A DHCP server aki nem ismerné anyit csinál ha egy host be akar jönni a hálónka megkönnyítve a dolgot autómatikusan oszt neki címet és mindent mi jó. Így nem kell az ip cím,netmaszk,átjáró,dns szervereket mind beállítani.Othoni LAN-ra a gyorsaság miatt meg a gépek száma miatt nem ajánloma DHCP-t Wlan-ra meg azért ajánlom mert a telón macerás beállítani főleg androidon mert akkor mindenhová azt használná fel eltart 10-15 ms-be mire bejön a hálóba az eszköz de hát ezt fel kell áldozni a kényelem oltárán) Szóval akkor ott tartunk hogy LAN-on nincs dhcp Wlan-on meg van Akkor a konfig fájl A szövegfájl legelejére szújuk ezt be(/etc/dnsmasq):

interface=wlan0        
dhcp-range=192.168.2.101,192.168.2.110,72h
interface=eth0
interface: amin halgatózik jelen esetben ez wlan0 (általában wifi) és eth0 (azaz egyzserű kábeles háló) A leírás elején melítettük meg ifconfig parancsot ahol láttuk a saját interfészkeinket ezeket (eth0,wlan0) ki kell cserélnünk arra mit mi ott látunk,nagy valószínúséggel ugyan az de ez nem biztos. dhcp-range: Amilyen címtartományom belül szertnénk kiosztani a csatlakozni vágyóknak a címeket
    további paraméterek természetesen megadhatók de itt most erre nem bonyolítunk rá plusszba anyit még érdemes tudni hogy így az érkező gépek a 255.255.255.0-ás netmaszkal a saját ip címünket kapjánk mint átjáró jelen esetben nálam 192.168.2.100 és a dns kiszolgáló is ugyan így 192.168.2.100
Ezek a beállítások egy standard netet megosztó felhasználó számára bőven elég akinek mégse az keresse a DHCP-server3 programra mert az profi ilyen téren. A dnsmasq vezérlését (megállítani újraindítani elindítani) a következő képpen tudjuk megtenni: terminál:

sudo  /etc/init.d/dnsmasq {start|stop|restart|force-reload|status}
PL: megállítani

sudo /etc/init.d/dnsmasq stop
Ha valamilyen változtatást végzünk a config (dnsmasq.conf) a fájlon akkor azok csak a progi újraindítása után fognak érvénybe lépni azaz:

sudo  /etc/init.d/dnsmasq force-reload
és így tovább Tegyünk fel hogy fut,beállítottunk mindent DHCP Wlanon static ip meg LANon Akkor lássuk a LANra néző kártyánk ip beállításait itt két út van mind2 ismertetve lessz 1. Egerészve (by Fóti Marvell :D) A jobb felső sarokban a hálózat kezelő vagy a rendszer/beállítások/Hálózati kapcsolatok programot vegyünk elő. szépen meg is jelenik alap értelmezésben a vezetékes fülön álva itt látunk olyat hogy auto ethX hozzunk létre egy új hozzáférési pontot a hozzáadás gombal ot ugorjunk az ipv4 beállításokra majd módszernek válaszzuk a kézi menüpontot katt a hozzáadás gombra És itt adjuk meg kedvelt privát ip-nket pl: 192.168.0.1 hálózati maszk 255.255.255.0 átjáró 0 mert ugye azok mi vagyunk :) mentsünk Ezzel fel van konfigurálva a hálózati adapterünk. 2. lehetőség parancsolva tudni kell hogy ez a módszer nem tartós addig van életben míg a gép nem áll le vagy valami le nem állítja az interface-t. Keressünk meg ismét a terminálunkat és illesszük be: sudo ifconfig eth0 192.168.0.1 netmask 255.255.255.0 természetesen az eth0-át cseréljük le (ha kell) a sajátunkra Tehát akkor interface-ek beállítva dhcp (ha kell) beállítva dns maszkolás beállítva. Jöhet a forwardink vagyis a hálózati gépektől érkező forgalom átírányítása a net felé.már persze ha oda akarnak menni :) erre az iptables programot használjuk ami alap program az ubiban ezt terminálon keresztül értetjük el: {syntaxhighlighter SPEC} sudo iptables -A FORWARD -o ppp0 -i eth0 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -A POSTROUTING -t nat -j MASQUERADE {/syntaxhighlighter} ez a három parancs biztosítja az átírányítást. természetesen az if-eket ki kell cserélni (ppp0 wlan0) ugye a -o az internetre néz jelen esetben ez a modem és a -i eth0 pedig a belső hálózatunkra. na és itt esek gondolkodóba hogy vajon kell-e még valami
    lenne még egy ilyen hogy sudo echo 1 > /proc/sys/net/ipv4/ip_forward ami beleír egy 1-et az alábi fájlba,csak nem tudom hogy ezt az iptables megteszi-e helyettünk vagy sem,de kiderítem.
A wifi élesztése a wlanhoz:itt nem térek ki driver telepítése nekem "usb bedugom és megy"-em van tplink wm321 és nagyon tud :) Ez a módszer a parancsolós mert itt most ez az egyszerűbb. terminál ismét:

sudo ifconfig wlan0 down   
sudo iwconfig wlan0 mode ad-hoc
sudo ifconfig wlan0 192.168.2.100 netmask 255.255.255.0
sudo ifconfig wlan0 up
sudo iwconfig wlan0 essid H
mint látható nálam ez adhoc módban futkározik ez az android nem szereti csak ha cyanogen romunk van ami hála a cm csapatnak van a pengémre:) A beállítások egyértelműek tetszés szerint szabható az ip cím és az ssid Ez a kis kódrészletet érdemes egy fájlba menteni majd futtathatóvá tenni(lentebb kitérek rá hogyan) majd ha ismét szügségünk van erre a beállításra csak lefuttatjuk a scriptet és készis. Ha szeretnénk a wifi-n netezőket is meglepni az internet elérésével akkor kicsit módosítani kell az előző ip tables beállításokat:

sudo iptables -A FORWARD -o ppp0 -i wlan0 -s 192.168.2.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
És ezzel befejeztük a server gépünk beállításait akkor az eddigi háló: NET ---> [ppp0] |(pub.ip) ---SERVER --- (192.168.0.1) -------------| [eth1] kliens(192.168.0.2) ------- --->[ethX] |(pub.ip)---SERVER ---(dhcp 192.168.100.X)- | [wlan0] mobil,PC, megamibevanwifi nincs más hátra mint beállítani a klienst LAN címét ugyanis a dhcp helyettünk dolgozik wlan-on szóval nyomás a kliens: Elővesszük a hálózati kapcsolatok programont és pont mint a szervernél beállítjuk az ip címünket ami pl most legyen 192.168.0.2 mask: 24 (255.255.255.0) és innen változik:
    átjáró: a server ip címe jelen esetlen 192.168.0.1 dns kiszolgálók: ugyan csak a server ip : 192.168.0.1
mentsünk és ha jó a dolog akkor csatlakozzunk vezetéskes hálózat 1-re amennyiben ez nem sikerül nézzük meg újra az ip cím beállításinkat Ha csatlakozik akkor nézzünk hogy ping a hálózat vissza a serverhez

ping 192.168.0.2 *vagy amit beállítottunk ip címet :)
ha van jel akkor örülünk ha nincs akor is mert ez egy nagyon hosszú fejezet volt :P Ha nincs esetleg egy próba:

sudo arp -a
ha van valami ott ip mag mac akkor egy tűzfal miatt nincs pingünk (echo ripli) #a cikk fojtatódik automatizálással és még több hiba ellenőrzéssel nemsokára :) Amennyiben az internet megosztás működik újabb probléma lehet ha esetleg a kapcsoltunk megszakad időközönként ami részemről elég sokszor előfordul és ilyenkor sajnos az iptables szabályaink is megszünnek ugyan is az aktuális interfész "megszűnik" arra az időre amígy újra nem csatlakozik Ennek orvoslására használjuk majd a hálózat kezelő interfész felhúzási szabályát ami nem meglepő módon egy "conf" file.Szóval arról lessz szó hogy mikor újra csatlakozunk a saját kis konfiguráló script beírja az iptables forward szabályokat. És rajta terminál: {syntaxhighlighter SPEC} gksu gedit /etc/network/interfaces {/syntaxhighlighter} Nálam ez most így néz ki:

auto lo
iface lo inet loopback
auto ppp0
iface ppp0 inet ppp
post-up wifirules
auto ppp0: itt a ppp0-t helyettesíts be a saját interface-dre iface ppp0 inet ppp : itt az érdekes az inet ppp nálam ez a point-to-pointot jelent ez a betárcsázó mód itt általában inet dhcp áll azaz a szolgáltató szerverétől kapjuk a címünket post-up: ez az ami nekünk most fontos ugyan is ez a script (wifirules) amit lefut ha az interface újra csatlakozik Erről a scriptről anyitt kell tudni hogy az /etc/network/interface/if-up.d/ könyvtárban legyen. Jelen esetben nálam ugye a /etc/network/interface/if-up.d/wifirules ami lefut Dokumentum az /etc/network/interfacesről : http://www.cyberciti.biz/faq/setting-up-an-network-interfaces-file/ A wifirules script pedig ennyit tartalmaz,itt kénytelen vagyunk egy kis bash programozást is tanulni. A lényege annyi ha a wlan0 interface él és a 192.168.2.100-as a címe akkor adja hozzá az iptables szabályokat Hogy miért? Ha a wifi felhúzzuk ez előzőkben leírt kódrésszel,aztán megszakad a net attól a wifi még működik csak a gépünk nem továbbítja a csomagokat a helyére,azért ha a újra lesz net kapcsolat,akkor hozzáadjuk a szabályokat,és már mehet is a szörfölés wlan-on is. Szóval a wifirules fájl: {syntaxhighlighter SPEC} #!/bin/bash ip addr show dev wlan0 | fgrep -q 'inet 192.168.2.100' if [ $? -eq 0 ]; then sudo iptables -A FORWARD -o ppp0 -i wlan0 -s 192.168.2.0/24 -m conntrack --ctstate NEW -j ACCEPT sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -A POSTROUTING -t nat -j MASQUERADE fi ip addr show dev eth2 | fgrep -q 'inet 192.168.0.3' if [ $? -eq 0 ]; then sudo iptables -A FORWARD -o ppp0 -i eth2 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -A POSTROUTING -t nat -j MASQUERADE fi {/syntaxhighlighter} Ha szügségünk van hasonlóra mentsük ki ezt a kis kódot egy fájlba,majd jobb gomb a filre-ra,jogosultság fül és ott pipáljuk be a fájl futattása programként,azaz tegyük végrehajthatóvá :) Ha minden jól ment akkor amenyiben fel van konfigolva a wlanunk és lessz net kapcsolat is hozzá adódnak a szabályok a script által és mehet a móka :)

a cikk fojtatódik automatizálással és még több hiba ellenőrzéssel nemsokára :) Hmmm, nos, a hiba ellenőrzés nem fog ártani! :)

    gytothHát igen. :-) De kezdjük egy más jellegű hibával.A sudo gedit kerülendő. Helyette a gksu gedit a javasolt.

    gytothHadjad már! Linugz alatt nincsis heje siráselenörzö. (Bár nekem itt eza szerencséttlen Opera mindig alá huz mindent pirossal. Kiba..ottúl idegesitt.)

    gytothIgen sajnos a helyesírás nem az erősségem és a gksu valóban barátságosabb megoldás köszönöm!

    • Udi válaszolt erre.

      zoon81Nem azért használjuk azt, mert barátságosabb, hanem a sudo a grafikus alkalmazások esetén módosíthatja az ICEauthority fájl tulajdonosát. Tehát nem csak ajánlatos azt használni, hanem szigorúan kötelező (segédletben mindenképpen)! Az ilyen nagy lélegzetvételű leírásokat érdemesebb egyből a wikire felrakni, mert ott tematikusan össze lehet rendezni az írásokat, a fórumban vagy lesüllyed vagy mindig felnyomja valaki, ráadásul a wikin mi is tudnánk segíteni az esetleges hibák javításában.

        UdiLátom neked is eszedbe jutott az Ubuwiki. Szinte senki nem hajlandó oda írni, pedig az ilyen leírások ott nagyon jól elférnének. Arról meg nem is beszélve, hogy ott nem kapna letolást a helyesírásért, de még a "szakmai" hibákért sem, mert ami nem tetszik valakinek, azt kijavíthatja ott helyben. (Ez nem azt jelenti, hogy ne írjon helyesen, vagy hogy "marhaságokat" is írhat oda :-) ) De itt például csak kötözködünk vele, javítani nem tudja egyikünk sem a hibákat (az írón kívül).

        UdiVégezd el! Láthatóan menne neked. Vagy a linukszból jobban megélsz?

        • Udi válaszolt erre.

          Dr. SzösziA sztár helyekre (mint pl. a diplomácia és a különböző EU szervezetek) a tudáson kívül rengeteg kapcsolati tőke is kell, ezért oda nehezebb bejutni. Ha pedig nem jön össze, akkor maradnak a multik és a közalkalmazotti helyek, ezeknél meg nem biztos, hogy jobb a meló/fizetség arány, mintha az IT-ben lennék. Amúgy sem a Linuxból élnék meg, hanem a webfejlesztésből, abban talán egy picivel jobbak a karrier kilátások, mint a rendszergazdáknál.

          Ennyivel később: 11 év