Linux szerver kicsit másképp

Bevezető

Hogy miről is szól ez az írás, elmagyarázom.

Van itthon egy kis Pentium III-as gépem, 600Mhz-es Celeron processzorral, 384Mb rammal, 10Gb tárhellyel, 2x100Mbites hálókártyával, és egy Geforce2-es vga-val, amire mondjuk nem sok szükség lesz. Életképes sávszélességre tettem szert, 16/2, hát gondoltam el kéne már egy letöltő (inkább feltöltő) gép, esetleg egy ftp szerver. Ez a kis gép tökéletes lesz e célra. Viszont nem vagyok egy nagy linux mágus, és barátaim is lehetséges, hogy fogják használni, esetleg szüleim, így mindenképpen számukra is egyszerű elérést és kezelést szerettem volna biztosítani.
Na de, hogy is legyen ez, ugyebár ők nem fognak ssh-val kapcsolódni a szerverhez, és terminálból parancsokkal torrenteket hozzáadni a klienshez, vagy ftp-re fájlokat feltölteni. Hát akkor legyen grafikus gondoltam én. Túrtam pár napig a google-t, és találtam is pár érdekes megoldást.

Elméletben.

Adott 2 gép, szerver és kliens. A szerver amin fut a torrent kliens és az ftp. A kliens ami előtt ülünk és a torrent klienst szeretnénk vezérelni grafikusan. Az előző mondatban a grafikusan van a hangsúly. Az elgondolás a következő, a szerveren fut a torrent kliens, de a grafikus kimene a kliens gépre van továbbítva, tehát a torrent vezérlő ablaka annál a gépen jelenik meg amelyik előtt ülünk. Összességében, amit a szerver gépen futtatunk, legyen az szövegszerkesztő, vagy netán böngésző, az adott kezelő ablakok mind-mind a nagy gépen, aminél ülünk jelenik meg. Jelen esetben én az Azureus-t használok mint torrent klienst, ez a módszer azért is kellett mert a beállításokat, illetve a web ui-t így tudtam telepíteni és beállítani. Tudom, nem kifejezetten erre való, no meg java miatt többet eszik mint egy torrent flux, de annak pedig sql és webszerver is kell. A végfelhasználóknak ott lesz a weben keresztül elérhető kezelőfelület, és az ftp szerveren elérhető mappa, így tudnak torrenteket hozzáadni, és ha kész a letöltés, ftp-n keresztül letölteni, mindent grafikusan, akár böngészőből is.

Szerverem

Szerverem

Lássunk hozzá!

Szerver telepítése, majd ssh-val való elérése.

A kiszemelt szerver gépre egy minimális alaprendszert kell telepíteni, én a szűkös tárhely miatt egy Ubuntu 9.04 szervert telepítettem, a lehető legszükségesebb csomagokkal, de egy szerver verzió tökéletesen megteszi.
Miután az alaprendszer feltelepült, mac cím alapján dhcp szerverrel statikus ip-t állítottam be a szervernek, nálam ez a 192.168.0.102-ő lett, ezt jegyezzük meg.
Ezek után egy ssh szervert kell telepíteni a szerver gépre, hogy betudjunk ssh-ni másik gépről.

sudo apt-get install ssh

Beállítja magát automatikusan.
Majd a másik gépnél, ami előtt ülünk, nyitunk egy terminált, és ssh-val csatlakozunk a szerver géphez.
Ekkor bekel jelentkezni, a szerver telepítésnél megadott jelszóval.
Ha minden rendben van akkor ilyesmit kell látnunk:

ssh szerver.gep.ip.cime
Ami nálam így néz ki:

yolan@geip:~$ ssh 192.168.0.102
yolan@192.168.0.102's password:
Linux server 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:48:10 UTC 2009 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
Last login: Sun Jun 7 14:44:53 2009 from 192.168.0.100
yolan@server:~$

Ez azt jelenti, hogy sikeresen tudtunk csatlakozni, kezdődhet az igazi meló.

Szerver gépen futtatott alkalmazások grafikus felületének küldése, fogadása.

Az egész módszerhez találtam egy mini-how-to-t, ami több tíz oldalnyi tömény angol dokumentáció volt. Itt köszönöm testvéremnek, hogy a lényeget kivadászta belőle, ami 1 sor hozzáadása a megfelelő konfigurációs fájlhoz. Nekem semmit nem kellett tennem, mert megtalálható volt a hozzáadandó sor, de azért leírom.
ssh-val kapcsolódunk a szerverhez (ssh szerver.gep.ip.cime) majd egy konfigurációs fájlt kell szerkeszteni, hogy a szerver gép továbbítsa az adott program grafikus felületét a kliens gépnek.

sudo nano /etc/ssh/sshd_config

Ekkor megnyílik a config fájl, melyben a nyilakkal tudunk navigálni. A vége felé ezt a bekezdést kell megkeresni:

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

Ahol is a kiemelt sor a fontos számunkra, ha benne van akkor szépen CRTL+X-el kilépünk, ha nincs akkor beírjuk és a CRTL+O-val elmentjük.
Így most már továbbítani fogja.
Amennyiben hozzá kellett adni a plusz sort, indítsuk újra a rendszert.

sudo reboot

Nálam a kimenete:

yolan@server:~$ sudo reboot

Szórt üzenet yolan@server feladótól
(/dev/pts/0) ekkor: 16:06 ...

The system is going down for reboot NOW!
yolan@server:~$ Connection to 192.168.0.102 closed by remote host.
Connection to 192.168.0.102 closed.

Azureus telepítése

Első tesztelés.

Bizonyosodjunk meg arról, hogy működik a grafikus felület továbbítása, ha nem működne nem érdemes tovább lépni.
Kapcsolódjunk a szerverhez, viszont használjuk a következő kapcsolót:

ssh 192.168.0.102 -X

Ezután telepítsünk egy kis grafikus órát:

sudo apt-get install x11-apps

Ha ez lefutott, indítsuk el:

xclock

Ha mindent jól csináltunk, egy kis órának kell megjelennie a gépünkön. Örüljünk neki, működik :).

xclock

xclock

A továbbiakban csak feleslegesen foglalja a helyet, töröljük.

sudo apt-get remove x11-apps
sudo apt-get autoremove

Az Azureus telepítése.

Kapcsolódjunk a szerverhez:

ssh szerver.gep.ip.cime -X

Telepítsük az Azureus-t:

sudo apt-get install azureus

Indítsuk el:

azureus

Ekkor elindul az Azureus. A beállításával most nem foglalkoznék, található számos doksi, vagy pm-ben is megkereshettek.

Azureus WebUI telepítése.

Torrent kliensünk már van. Grafikus felületünk is a saját gépünkön a szerveren futtatott programokhoz, de így a futtatáshoz még mindig kell használni a terminált, hogy ssh-val kapcsolódjunk. Ezért telepítsük fel a webes kezelőfelületet.

Az Azureus-t elindítva, és a bővítmények fülön a Bővítmények keresése gombra kattintva, fájlból is telepíthetjük, nekem ez valamiért nem akart működni, így terminálból oldottam meg.
(wget-el közvetlenül ssh-n keresztül a szerverre is letölthető a fájl, és akkor nem kell pendrive-al szórakozni, sajnos ez nekem csak később jutott eszembe)

Töltsük le magát a webui-t innen: [link]
Mentsük le egy pendrive-ra, azt pedig csatlakoztassuk a szerverhez (fizikailag egy usb portra).
Majd ismét ssh-val kapcsolódjunk (már úgy belejöttünk, miért a szervernél guggolva csináljuk).

ssh szerver.gep.ip.cime

Most nem kell a -X kapcsoló.

Hozzunk létre egy mappát, ahova csatolni fogjuk:

sudo mkdir [mappa]

Nálam ez így néz ki:

sudo mkdir /home/yolan/1gb

Nézzük meg, hogy milyen néven szerepel a pendrive-unk:

ls /dev

Majd csatoljuk fel a meghajtót:

Ha 1 vinyónk van, és az egész lemezt felhasználtuk a telepítésnél, akkor a rendszer az sda-n lesz, a pendrive nagy valószínűséggel sdb lesz.

sudo mount [amit csatolunk] [ahova csatoljuk]

Nálam ez:

sudo mount /dev/sdb1 /home/yolan/1gb

Nézzük meg sikerült-e:

ls /home/yolan/1gb
azhtmlwebui_0.7.6.jar

Ha ez a fájl szerepel akkor örüljünk.

Telepítsük kézzel a bővítményt:

sudo mkdir /home/yolan/.azureus/plugins/azhtmlwebui
sudo cp /home/yolan/1gb/azhtmlwebui_0.7.6.jar /home/yolan/.azureus/plugins/azhtmlwebui

Indítsuk újra a rendszert:

sudo reboot

Nálam a kimenete:

yolan@server:~$ sudo reboot

Szórt üzenet yolan@server feladótól
(/dev/pts/0) ekkor: 16:06 ...

The system is going down for reboot NOW!
yolan@server:~$ Connection to 192.168.0.102 closed by remote host.
Connection to 192.168.0.102 closed.

Azureus varázslat

Teszteljük le, hogy működik-e minden amit eddig csináltunk.

Kapcsolódjunk, és indítsuk el az Azureus-t:

ssh -X 192.168.0.102
azureus

Az Azureus-ban nyissuk meg az Eszközöket, azon belül a Beállításokat, a bal listában a Plugineket, ha mindent jól csináltunk ott kell lennie a HTML Web UI-nak :).
Állítsuk be tetszésünk szerint.

Klikk rám a nagy képért.

A varázslat.

Mivel az Azureus indításnál grafikus felületet akar létrehozni, így amikor az ssh kapcsolatot bontjuk, a grafikus felület, ami ugyebár továbbítva volt az asztali gépre, megszűnik, így az Azureus leáll. Ezt ki kell küszöbölni.
Először is, a grafikus felületet le kell cserélni egy konzolosra, majd egy szkripttel vagy spéci indítási paranccsal démonként a háttérben tud maradni az ssh kapcsolat bontása után is. Nem mennék bele részletesen mit miért, csináljuk és jó lesz :)

Töltsük le ezt a két fájl-t: [link] [link]

Másoljuk őket egy pendrive-ra, majd dugjuk bele a szerver seggébe, és végezzük el a következőket:

Csatoljuk fel a pendrive-ot:

sudo mount [amit csatolunk] [ahova csatoljuk]

Nálam ez:

sudo mount /dev/sdb1 /home/yolan/1gb

Másoljuk át a 2 fájl-t:

sudo cp [amit másolunk] [ahova másoljuk]

Nálam a következők:

sudo cp /home/yolan/1gb/commons-cli.jar /home/yolan/.azureus
sudo cp /home/yolan/1gb/log4j.jar /home/yolan/.azureus

Nyissuk meg a következő mappát mappát:

cd /home/felhasznalo.neved/.azureus/

Nálam:

cd /home/yolan/.azureus/

Gépeljük be az alábbi parancsot és futtassuk:

java -jar Azureus2.jar --ui=console

Így lett egy konzolos felületünk, most már csak a "démonizálás" van hátra.

Nyissuk meg a következő mappát mappát:

cd /home/felhasznalo.neved/.azureus/

Nálam:

cd /home/yolan/.azureus/

Gépeljük be az alábbi parancsot és futtassuk:

java -jar Azureus2.jar --ui=console >/dev/null 2>&1 </dev/null &

Így elindul az Azureus (és vele a web ui) a háttérben, és ha bontjuk a kapcsolatot akkor is élve marad. Juppí :).

FTP szerver belövése

ProFTPd telepítése

Az Azureus működik, lehet vele töltögetni. No de a letöltött fájlokat valahogy még a végfelhasználók gépére is le kell tölteni. Ezért van szükségünk egy ftp szerverre.
Kipróbáltam párat, egyedül a proftpd-be tudtam életet lehetni, de ahogy olvasgattam, ez az egyik legjobb. Kapcsolódjunk a szerverhez és használjuk a -X kapcsolót.

Telepítsük a proftpd-t:

sudo apt-get install proftpd

Válasszuk a Standalone telepítést:

Standalone

Beállítja magát, majd el is indul.

A személyre szabott beállítását én még a konfig fájlt szerkesztésével tettem meg, majd rátaláltam egy grafikus adminisztrációs felületre, ami több mint jó.

Telepítsük a grafikus felületet:

sudo apt-get install gadmin-proftpd

Majd indítsuk:

gadmin

A megnyíló ablak szerintem teljesen átlátható, felhasználókat adhatunk meg, nekik a jogaikat a saját mappájukra, a szerver beállításait is itt tudjuk személyre szabni, például az ftp szerver neve, stb.

Az Azureus-ban én a letöltési helynek megadtam egy mappát, nálam ez a Downloads volt, az ftp szerverben pedig megadtam egy felhasználót akinek az ftp-n elérhető mappája a Downloads mappa lett. Így az ftp szerverre bejelentkezve, máris a Downloads mappát nyitotta meg. Írási, olvasási és törlési jogokat adtam a felhasználónak, így le tudtam vele tölteni ftp-ről a fájlokat, és utána törölni.

Gadmin Servers

Servers fül

Gadmin Users

Users fül

További képek a gadmin ablakairól: [link]

Egyéb

Megfigyelés:

A szerver gép megfigyelésére én telepítettem egy hőmérsékleteket figyelő alkalmazást, ami közvetlenül a terminálba írja ki az adott hőmérsékleteket, feszültségeket.
Szerintem érdemes telepíteni, ehhez ssh-val kapcsolódjunk a szerverhez, most is használjuk a -X kapcsolót, majd telepítsük a programot:

sudo apt-get install lm-sensors

Majd indítsuk el:

sensors

Ekkor a terminálba megjelenik a kimenete.

A szerver terheléséhez az uptime parancson kívül szerettem volna egy komolyabb programot használni, így feltelepítettem a conky nevű monitor programot.

sudo apt-get install conky

Majd futtattam:

conky

A megjelenő ablakban sok fontos dolog leolvasható. A proci terhelése, a ram terhelése, a fel és letöltési sebesség, a rendszer üzemideje, a háttértár(ak) kihasználtsága. A megjelenített dolgok természetesen bővíthetőek a konfigurációs fájl szerkesztésével, google-n pár kattintás és van doksi.
Mivel a conky is grafikus felületet hoz létre, így az ssh kapcsolat bontása után bezárul.

A conky mellett vagy azon kívül lehet használni a free parancsot, ami mint a sensors a terminálba adja meg a kimenetét. Listázza a szabad ram mennyiségét, a swapot ugyanígy.

Fogyókúra:

A szerver mivel nem futtat grafikus környezetet, és a bootolás autómatikus, majd boot után már ssh-zhatunk is be rá, így felesleges bele a vga, így azt ki is szerelhetjük ne fogyasszon és fűtsön feleslegesen. Ugyanígy vagyunk az egérrel és a billentyűzettel, nem kellenek, ki velük. Optikai meghajtó sem kell, se monitor. Kaptunk egy csupasz gépet, monitor nélkül, billentyűzet nélkül, végében egy (kettő, +) hálózati kábellel. Édesanyám furcsán nézett rá és rám mikor kifejtettem, hogy én bizony azon dolgozok :). Még a vinyót is kiszerelhetjük, ha van elég sok pendrive-unk. A rendszer 1 gb-re simán felmászik, onnantól pedig rajtunk függ, hogy mekkora tárhely kell nekünk. Persze figyeljünk arra, hogy az alaplap tudjon usb-ről bootolni, az enyém nem tud :(.

Végszó

Hiányosság

Először is elnézést a képekért, szerettem volna saját képeket fotózni, illetve azokat beilleszteni, de a routerem meghalt, így megvagyok lőve. Ha van rá igény, akkor ahogy tudom kicserélgetem a képeket.

Tapasztalatok, tippek

Remélem nem nagyon tömény, és valamennyire érthető egy teljesen kezdő számára is.
Ezen lépések követésével felállítható egy ilyen szerver. A beállításokat grafikusan tudjuk elvégezni, ha bármit akarunk állítgatni az Azureusban, simán ssh-val bejelentkezve a -X kapcsoló használatával indítva az azureust, azureus, teljes kezelőfelületet kapunk, miközben a háttérben él a démon kliens is. Ilyen utólagos állítások után érdemes újraindítani a rendszert, hogy életbe lépjenek a beállítások.

Tudom, nem egy seed szerver, külön felhasználókkal, nekik egyenként saját klienssel, mappával és egyéni jogokkal, de otthonra, illetve pár barát között megosztani szerintem felesleges is.

Az Azureus WebUI-ja pár perc használat után átlátható, teljesen egyszerű. Egy total commanderrel vagy egyéb ftp kliensel a szerverhez való csatlakozást elmagyarázni pár perc. Ha a bejelentkezés után nem listázná a mappát, akkor érdemes a passzív módot kikapcsolni. Illetve tűzfal mögött a 21-es és 20-as portok kinyitása. Ha passzív módot szeretnénk használni akkor a passzív porttartomány megadása, és kinyitása, továbbítása fontos lépés.

Regisztrálhatunk például a myip.hu oldalon, így az ott regisztrált címre lesz átirányítva a külső ip-nk, így ha változna az ip címünk, a szolgáltatások továbbra is elérhetőek lesznek.

Az Azureus WebUI elérési címe

A külsö ip-nk : megadott port, tehát pl 89.230.23.45:4321. A WebUI portját az Azureuson belül tudjuk megadni, és router/tűzfal esetén mindenképp nyissuk ki a portot, és továbbítsuk a szerver gép belső ip-jére.

Az ftp szerver elérési címe

A külső ip címünk. Ha böngészőből is szeretnénk elérni, akkor érdemes az anonymus bejelentkezést engedélyezni, vagy a böngészőnkben beállítani a passzív módot (ki/bekapcsolni).

Hibák előfordulhatnak, kérem privátban jelezzétek és javítom. Köszönöm, hogy elolvastad, remélem lesz akinek tudtam segíteni, vagy netán belevág egy ilyen projektbe.