4. Tolosaldea TLHI
3
Software eta Hardware librea
SOFTWARE LIBREA
SARRERA
Software librea, kode askeko softwarea da, hau da; askatasunez erabili, kopiatu, aldatu,
birbanatu eta saldu daitekeen softwarea da.
Askotan, software librea dohainikako softwarearekin identifikatzen da, baina hori ez da horrela.
Normalean, software librea dohainik izaten da, baina ez beti. Beraz, software bat librea izateak ez
du esan nahi dohainik dela, bere iturri kodea askea dela baizik, eta hau ordaintzekoa edo dohainik
izan daiteke. Horregatik, software librea eta dohainikako softwarea bereizi egin behar dira.
Software librea aspalditik da ezaguna, eta horrelako software asko dago munduan, geroz eta indar
gehiago hartzen ari dena.
Kode askeko sistema eragileen artean, GNU/Linux sistema eragilea dugu adibiderik ezagunena,
baina askoz gehiago daude. Sistema eragile hau da sistema eragile askeen artean gehien erabiltzen
dena, horregatik da ezagunena, eta Windows eta Mac OS bezalako ordaintzeko sistema
eragileetara gehien gerturatzen dena.
Gaur egungo smartphonetan gehien erabiltzen den sistema eragilea Android da, eta hau ere
software librea da, GNU/Linux sistema eragilean oinarrituta dagoelako, hain zuzen ere, Linux
nukleoa erabiltzen du.
Beraz, oso garrantzitsua da software librea gaur egun, eta honi esker, aurrerakuntza handiak egin
daitezke, edozeinek hobetu dezakeelako beste baten egindakoa, eta hori oso aberasgarria da.
Gainera, enpresa askotan software askea erabiltzeari ekin diote, ordaintzeko programen lizentziak
oso garestiak direlako, eta dohainik den software libreari esker, diru asko aurreztu dezakete.
Nire proiektuaren atal honetan, software librearen adibide bezala, kode askeko posta zerbitzari bat
egingo dut, kode askeko posta bezeroa erabiltzen duena.
5. Tolosaldea TLHI
4
Software eta Hardware librea
Beraz, Linux makina batean posta zerbitzari bat instalatu eta konfiguratuko dut. Hau, eskuz egingo
dut, behar den elementu bakoitza banan-banan instalatuz.
Posta zerbitzarian asko sakonduko dut, hau da, ez dut bakarrik posta zerbitzari bat jarriko eta listo,
honen aukera ezberdinak aztertuko ditut, eta baita segurtasunaren aldetik ere.
Hasieran, sare lokalean egingo dut, DNS zerbitzari lokalarekin, baina gero, interneten atzigarri
jarriko dut, eta horretarako dauden aukera ezberdinak aztertu.
Posta bezeroan ere sakondu egingo dut. Lehenengo, posta bezero sinple bat instalatuko dut
bezeroek korreoa bidali eta irakurri ahal izateko, eta gero, nire posta bezero propio bat ere
programatuko dut, PHP lengoaian. Horretarako, XHTML lengoaiaren bidez web orria diseinatuko
dut, eta CSS bidez itxura emango diot.
Beste alde batetik, posta bidali eta irakurtzeko erabiltzen diren protokoloak ere aztertuko ditut, eta
nire posta zuzenean protokolo hauek erabiliz ere probatuko dut, posta zerbitzuak maila baxuan
nola funtzionatzen duen ikusteko.
Atal hauek landuko ditut:
Posta zerbitzari lokala
DNS lokala
Posta zerbitzaria interneten
Posta bezeroa
Posta bezero propioa
Erabiltzaileak
Posta zerbitzariaren izena Soidal izango da, beraz, domeinu lokala “soidal.net” izango da, eta
interneteko domeinua, “soidal.no-ip.org”.
1- POSTA ZERBITZARIA
Posta zerbitzari bat, sareko aplikazio bat da, internet edo intraneteko makina zerbitzari
batean kokatua dagoena.
Posta zerbitzariaren bidez, erabiltzaile ezberdinen artean mezuak bidali daitezke.
Posta zerbitzu batean, partaide ezberdinak daude:
MTA → Mail Transfer Agent (Korreoa Transferitzeko Agentea) → Korreoa bidaltzeko
Mailbox zerbitzaria (mezu kutxa) → Korreoa gordetzeko
6. Tolosaldea TLHI
5
Software eta Hardware librea
LDAP zerbitzaria → Erabiltzaileentzako
Posta bezeroa → Korreoa irakurri eta bidaltzeko
Posta zerbitzua posible izan ahal izateko, protokolo hauek erabiltzen dira:
SMTP → Korreoa bidaltzeko → 25 portua
IMAP → Korreoa irakurtzeko → 143 portua
POP3 → Korreoa irakurtzeko → 110 portua
SSL → Protokolo segurua
TLS → Protokolo segurua. SSL-ren ondorengoa.
Berez, nahikoa dira SMTP eta IMAP edo POP3 protokoloak, hauen bidez, korreoa bidali eta
irakurtzea posible delako, baina, hauek ez direnez guztiz seguruak (ez delako zifraketarik egiten),
konexioak seguruagoak izateko, SSL edo TLS protokoloak gehitzen zaie, beraz, biak batera
erabiltzen dira, adibidez:
SMTP + SSL → 465 portua
IMAP + SSL → 993 portua
POP3 + SSL → 995 portua
Posta zerbitzarian, SMTP protokoloaren bidez korreoa bidaltzen da, igorletik hartzailera.
Korreo hau, MTA-ren bidez garraiatzen da helbidera, eta hartzailearen Mailbox-en gordetzen da.
Hau, zifratu gabe bidaltzen da, testu hutsean, beraz, 3.pertsona batek datu paketea lortzen badu,
informazioa erraz irakurri ahal izango du, baina SMTP protokoloari SSL edo TLS protokolo segurua
gehituz gero, konexioa zifratu egiten da.
Hartzaileak korreo hau irakurtzeko, IMAP edo POP3 protokoloen bidez bere Mailbox-era
konektatzen da, eta mezua deskargatzen edo zuzenean irakurtzen du.
7. Tolosaldea TLHI
6
Software eta Hardware librea
IMAP bidez irakurtzen badu, zerbitzarian dagoen mezua online irakurtzen du, baina POP3 bidez
irakurriz gero, mezua zerbitzaritik deskargatzen da bezerora, eta zerbitzarian ezabatu egiten da.
Hau ere, zifratu gabe egiten da, beraz, ez da oso segurua, baina SSL edo TLS protokoloak gehituz
gero, konexioa zifratzen da.
MTA ezberdinak daude: Postfix, Sendmail, Courier, Zimbra...
Posta bezeroak ere: Squirrelmail...
IMAP eta POP3 protokoloak erabiltzeko zerbitzuak ere: Dovecot (dovecot-imapd, dovecot-pop3d),
Courier (courier-imap, courier-pop3)...
Beraz, IMAP eta POP3 protokoloak erabiltzeko, protokolo hauentzako
zerbitzuak instalatu behar dira.
Nire posta zerbitzarian, hauek erabiliko ditut:
MTA: Postfix
Posta bezeroa: Squirrelmail eta Soidal Mail (Nirea)
IMAP: courier-imap
POP3: courier-pop3
Honetaz gain, posta zerbitzari batek MX motako erregistro bat erabiltzen du. Hau, DNS zerbitzari
batean erregistratzen da, eta honek, posta zerbitzariaren IP helbidera apuntatzen du, hau da, posta
zerbitzaria non dagoen esaten du.
1.1- POSTA LOKALA
Lehenengo, posta zerbitzari lokala jarriko dut, hau da, posta zerbitzua sare lokal batean
jarriko dut. Beraz, sare lokaleko erabiltzaileek bakarrik erabili ahal izango dute posta zerbitzaria.
1.1.0- ZERBITZARIA
Lehenengo eta behin, posta zerbitzari bezala erabiliko dudan ordenagailua aukeratu dut.
Horretarako, nire etxeko ordenagailu bat hartu dut, eta bertan Ubuntu sistema eragilea instalatuko
dut.
Ubuntu sistema eragilea aukeratu dut, GNU/Linux-en kasuan ez delako beharrezkoa Ubuntu
zerbitzari bereziak erabiltzea, adibidez Ubuntu Server, hasieran UNIX sistema zerbitzarientzako
perntsatuta zegoelako, beraz, Ubuntu Server bezalako sistema eragilea erabili ordez, Ubuntu
normal bat erabili dezaket, eta hau zerbitzari bezala prestatu beharko dut.
8. Tolosaldea TLHI
7
Software eta Hardware librea
Beraz, nire etxeko ordenagailua hartu dut, karakteristika hauek dituena:
Plaka: Asrock ALiveNF7G
CPU: AMD Phenom II x4 940
RAM: 2 x 2 GB DDR2
Txartel grafikoa: Sapphire AMD Radeon HD 6850 1GB DDR5
Disko gogorra: 1 x Seagate 500 GB
Elikadura iturria: 500 W
Beraz, ordenagailu honetan Ubuntu sistema eragilea instalatzeko, lehenengo disko gogorra
formateatu eta partizioak egiteari ekin diot.
1.1.0.1- PARTIZIOAK EGIN
Disko gogorrak 500 GB dituenez, hau partizionatu egingo dut, hau da, atal logikoetan
banatuko dut. Horrela, Ubuntu sistema eragilea datuetatik banatu ahal izango dut, beraz,
aurrerago sistema izorratzen bada, ez ditut datuak galduko, eta banatuta daudenez, sistemak
erroreak izateko aukera gutxiago izango ditu.
Ubuntu sistema eragilearentzako 60 GB utziko dut, programa ezberdinak instalatuko ditudalako,
eta sistemak nahikoa edukiera izatea nahi dudalako.
Gainera, Ubuntu distribuzioa GNU/Linux sistema eragilea denez, Swapping-a egingo dut.
Swapping-a, disko gogorraren zati bat RAM memoria bezala erabiltzea da, hau da, memoria logikoa
da. Honi esker, RAM memoria gutxi duten ordenagailuetan, gehiago izatea lortu dezakegu, eta
RAM memoria gainezka dagoenean, Swap-erako memoria erabiliko da. Horretarako, partizio bat
Swap moduan egingo dut. Honen tamaina, RAM memoriaren araberakoa da.
Askoren ustez, Swap-erako utzi behar dugun tamaina, RAM memoriaren bikoitza da, baina hau,
UNIX sistemetan izaten zen, RAM memoria oso txikia zen kasuetan, baina GNU/Linux sistemetan ez
da horrela, beraz, erregela hau jarraituko dugu:
1 GB RAM baino gutxiagoko sistemetan: RAM-aren edukiera bera (adb; 512 MB RAM, 512
MB Swap)
1 GB eta 4 GB RAM arteko sistemetan: RAM edukieraren erdia (adb; 2 GB RAM, 1 GB Swap)
4 GB RAM baino gehiagoko sistemetan: 2 GB RAM.
Beraz, nire ordenagailuak 4 GB-eko RAM memoria duenez, Swap partizioari 2 GB utziko diot,
horrekin nahikoa izango delako.
Horrela, sobratzen den guztia datuentzako utziko dut, hau da, 438 GB (500 GB – 60 GB – 2 GB).
9. Tolosaldea TLHI
8
Software eta Hardware librea
Hau jakinda, partizioak egiten hasi nahiz. Horretarako, Hiren's Boot 10.10 erreminta erabili dut.
Hau, abioko sistema berezi bat da, sistema administratzeko eta kontrolatzeko programa ezberdinak
dituena. Hau CD batean edo abio USB batean grabatu dezakegu.
Nire kasuan, CD batean grabatu dut. Horretarako, Nero Express programa erabili dut. Honekin,
Hiren's Boot 10.10 abio sistemaren ISO motako irudia grabatu dut CD-an, abio CD batean bihurtuz.
Gero, abio CD hau ordenagailuan sartu dut, eta berrabiarazi egin dut. Hau pizten ari zela, F10 tekla
sakatu dut hainbat aldiz, eta abioko menuan CD-Rom-etik arrankatzeko aukeratu dut. Beraz,
ordenagailua Hiren's Boot-ekin arrankatu dut.
Disko gogorrean partizioak egiteko, Acronis Disk Director Suite programa erabili dut. Hau, Hiren's
Boot-en disko gogorra kudeatzeko tresnen atalean dago.
Behin programan sartuta, zeuden partizioak ezabatu ditut, eta disko gogorreko espazio librea
aukeratuz, partizio berriak egin ditut:
Ubuntu: ext3, 60 GB, primarioa
Datuak: NTFS, 438 GB, logikoa
Swap: Linux Swap, 2 GB, primarioa
“Apply” sakatu eta aldaketak aplikatu dira. Bukatzeko, programatik atera naiz.
1.1.0.2- UBUNTU INSTALATU
Disko gogorra partizionatu ondoren, Ubuntu sistema eragilea instalatu dut. Horretarako,
Ubuntu 12.04 sistema eragilearen ISO irudia grabatu dut CD batean, Nero Express programarekin.
Gero, Hiren's Boot-ekin egin dudan moduan, ordenagailua CD honetatik arrankatu dut, eta horrela,
Ubuntu sistema eragilearen instalatzailean sartu naiz.
Bertan, “Instalar Ubuntu” aukeratu dut, eta instalazioa konfiguratu dut. Ubuntu 60 GB-eko
partizioan instalatzeko aukeratu dut. Nire erabiltzailea eta pasahitza aukeratu ditut:
Erabiltzailea: erik
Pasahitza: ******
Ordenagailuaren izena ere adierazi dut: erik-pc
Erlojua konfiguratu ondoren, instalatzen hasi da.
Minutu batzuen ondoren, Ubuntu instalatu da, eta CD-a atera ondoren, ordenagailua berrabiarazi
dut.
10. Tolosaldea TLHI
9
Software eta Hardware librea
1.1.0.3- UBUNTU KONFIGURATU
Behin Ubuntu instalatuta, hau konfiguratzeari ekin diot, nire erabiltzailearekin sesioa hasiz.
1.1.0.3.1- Sistema eguneratu
Lehenengo, Ubuntu sistema eragilea eguneratu dut. Horretarako, Ubuntu-ren
errepositorioak eguneratu ditut, eta gero eguneraketa hauek instalatu ditut. Errepositorio hauek,
“apt-get” pakete kudeatzaileak aplikazio eta programak instalatzeko erabiltzen duen pakete
zerrenda da.
Beraz, terminalean edo kontsolan sartu naiz, “Control+Alt+T” teklak sakatuz. Gero, super
erabiltzaile bezala logeatu naiz, agindu honekin:
sudo -s
Ondoren, super erabiltzailearen pasahitza sartu dut.
Errepositorioak eguneratzeko agindu hau erabili dut:
apt-get update
Gero, eguneraketa hauek instalatzeko:
apt-get upgrade
Horrela, errepositorioak eguneratu eta eguneraketak instalatu dira.
1.1.0.3.2- Sarea konfiguratu
Sistema eguneratu ondoren, sarea konfiguratu dut. Hau, estatikoki konfiguratu dut, eta ez
DHCP bidez, zerbitzaria izango delako, eta bere sareko konfigurazioa estatikoa izatea komeni
delako, hau da, aldatzen ez dena.
Sarea konfiguratzeko, “interfaces” fitxategia editatu dut, “nano” editorearen bidez:
nano /etc/network/interfaces
Bertan, informazio hau jarri dut:
auto eth0
iface eth0 inet static
address 192.168.1.30
11. Tolosaldea TLHI
10
Software eta Hardware librea
netmask 255.255.255.0
gateway 192.168.1.1
Fitxategia gordetzeko “Control+o” sakatu dut, eta ixteko “Control+x”.
Aldaketa hauek aplikatzeko, sarea berrabiarazi dut:
/etc/init.d/networking restart
Horrela, sarea konfiguratu da, “eth0” interfazea erabiliz. Honi, “192.168.1.30” IP helbidea eman
diot, eta “/24”-eko maskara jarri diot. Ate-bide bezala routerraren helbidea jarri dut, “192.168.1.1”.
DNS helbidea konfiguratzeko, “resolv.conf” fitxategia editatu dut:
nano /etc/resolv.conf
Bertan, Google-eko DNS helbidea adierazi dut:
nameserver 8.8.8.8
Honekin, sarea konfiguratuta gelditu da.
1.1.0.4- WEB APLIKAZIO ZERBITZARIA
Proiektu honen helburua posta zerbitzari bat egitea da, baina honen barruan posta
bezeroak erabiliko ditut, eta hauek web aplikazioak dira. Beraz, zerbitzari honek web aplikazioak
ere zerbitzatuko ditu, eta horretarako, posta zerbitzaria izateaz gain, web aplikazio zerbitzaria ere
izan behar da.
Web zerbitzari bat, web aplikazioak zerbitzatzen dituen zerbitzaria da. Honek, hiru elementu ditu:
Web zerbitzaria: Apache, Internet Information Services...
Zerbitzariaren aldeko lengoaia ulertuko duen modulua: PHP, Perl, Python...
Datu baseak kudeatzeko sistema (DBKS): MySQL, PostgreSQL...
Nire kasuan, web zerbitzari bezala Apache erabiliko dut, zerbitzariaren aldeko lengoaia PHP, eta
DBKS bezala MySQL. Hiru elementu hauek instalatzeko, XAMPP (Windows) eta LAMPP (Linux)
bezalako paketeak daude, baina ez ditut instalatuko, hauen instalazioa ez delako oso sendoa,
horren ordez, elementu bakoitza banan-banan instalatuko dut.
1.1.0.3.1- Apache
Lehenengo, Apache web zerbitzaria instalatuko dut. Horretarako, agindu hau erabili dut:
12. Tolosaldea TLHI
11
Software eta Hardware librea
apt-get install apache2
Horrela, Apache2 web zerbitzaria instalatu da, eta honek funtzionatzen duela probatzeko, Apache-
ren horri nagusian sartu naiz, web nabigatzailean nire zerbitzariaren helbidea jarriz:
http://192.168.1.30/
Horrela, Apache-ren Index orri nagusian sartu da, beraz, hau ondo dago.
1.1.0.3.2- PHP
Apache instalatu ondoren, PHP lengoaia ulertuko duen modulua instalatu dut, eta honekin
batera, Apache-rekin lotzeko paketeak:
apt-get install php5 libapache2-mod-php5
Horrela, PHP5 eta behar diren liburutegiak instalatu dira.
Ondoren, Apache berrabiarazi dut:
/etc/init.d/apache2 restart
Horrela, aldaketak aplikatu dira.
1.1.0.3.3- MySQL
Azkenik, MySQL datu baseak kudeatzeko sistema instalatu dut, eta Apache eta PHP-rekin
lotzeko paketeak ere:
apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
Honekin, MySQL DBKS-a instalatu da, eta Apache eta PHP-rekin lotu da.
Azkenik, Apache web zerbitzaria berrabiarazi dut:
/etc/init.d/apache2 restart
Honekin, web aplikazio zerbitzaria erabiltzeko prest dago, baina oraingoz ez dut erabiliko, beraz,
momentuz horrela utziko dut, geroago erabiltzeko.
Horrela, zerbitzaria prest dago posta zerbitzariarekin hasteko.
13. Tolosaldea TLHI
12
Software eta Hardware librea
1.1.1- DNS
Posta zerbitzari batek, domeinuak erabiltzen ditu mezuen trukaketa egiteko. Hau da, posta
helbide bakoitza, domeinu baten barruan dago.
Adibidez, Hotmail konpainiako posta helbide bat badugu, “adibidea@hotmail.com”, “@”
karakterea arte dagoena izena izango da, erabiltzailearena, eta ondorengoa, domeinua izango da,
kasu honetan, “hotmail.com” domeinua. Beraz, “adibidea” erabiltzailea “hotmail.com”
domeinuaren erabiltzailea izango da, eta ezin dira bi izen berdin egon domeinu berean.
Beraz, posta zerbitzari batek domeinu baten beharra du, eta hori posible izateko, DNS zerbitzaria
behar da aurretik.
DNS zerbitzari batek, IP helbide eta izenen arteko trukaketa egiten du, errazagoa delako domeinu
izenak erabiltzea IP helbideak baino.
Kasu honetan, DNS zerbitzariaren bidez, gure postarako domeinua erregistratuko dugu, beraz, nire
posta zerbitzariak “Soidal” izena duenez, “soidal.net” domeinua sortuko dut.
DNS zerbitzari hau, sare lokalean edo interneten egon daiteke. DNS-a sare lokalean badago, posta
zerbitzariko helbideak bakarrik sare lokal horretan izango dira ezagunak, baina interneten ez,
beraz, Hotmail edo Gmail bezalako posta zerbitzari batetik ezingo ditugu mezuak bidali gurera, eta
beraiek ere ez dituzte gureak onartuko. DNS-a interneten badago berriz, posta zerbitzaria
interneten erabili ahal izango dugu.
Kasu honetan, lehenengo DNS lokala jarriko dut nire zerbitzarian.
Erabiliko dudan DNS zerbitzaria “bind9” izango da, Linux sistema eragilerako.
1.1.1.1- DNS INSTALATU
Bind9 DNS-a instalatzeko, terminalean agindu hau exekutatu dut:
apt-get install bind9
Horrela, ”apt-get” pakete kudeatzailearen bidez bind9 DNS-a instalatu da zerbitzarian.
1.1.1.2- DNS KONFIGURATU
DNS-a instalatu ondoren, konfiguratu egin dut. Bertan, “soidal.net” domeinua sortu dut.
Domeinu honetan, host-ak (ekipoak) eta MX erregistro bat erregistratu ditut.
Bi hauek, nire zerbitzariko IP helbidea izango dute, bertan egongo direlako.
DNS-ko konfigurazio fitxategiak /etc/bind direktorioan daude, beraz, bertako fitxategiak editatu
14. Tolosaldea TLHI
13
Software eta Hardware librea
ditut.
1.1.1.2.1- Domeinua sortu
Domeinua sortzeko, “named.conf.local” fitxategia editatu dut, “nano” editorearen bidez,
agindu honekin:
nano /etc/named.conf.local
Bertan, domeinua sortzeko, zona berri bat sortu dut, “soidal.net” izenekoa. Horretarako, hau idatzi
dut fitxategian:
Fitxategia gorde dut “Control+o” sakatuz, eta bertatik ateratzeko “Control+x” erabili dut.
Horrela, “soidal.net” zona sortu dut, eta honen konfigurazio fitxategia /etc/bind/db.soidal dela
esan diot, gero sortuko dudana.
Gainera, zona honek master bezala funtzionatzen du, hau da, zona nagusia da.
1.1.1.2.2- Domeinua konfiguratu
Zona berria sortu ondoren, aipatu dudan “db.soidal” DNS konfigurazio fitxategia sortu dut.
Horretarako, “db.local” fitxategia erabili dut, beraz, fitxategi hau direktorio berean kopiatu dut,
baina “db.soidal” izenarekin.
Fitxategia kopiatzeko, “cp” agindua erabili dut:
cp /etc/bind/db.local /etc/bind/db.soidal
Domeinua konfiguratzeko, “db.soidal” fitxategia editatu dut:
nano /etc/bind/db.soidal
Bertan, “soidal.net” domeinua konfiguratu dut, informazio hau gehituz:
15. Tolosaldea TLHI
14
Software eta Hardware librea
Bertan, “soidal.net” domeinua sortu dut. Domeinu nagusia dela adierazteko, “SOA” jarri dut.
Gainera, domeinuaren ondoren, “.” karakterea jartzen da.
Honen barruan, domeinuari buruzko informazioa konfiguratu dut. Domeinuaren serie zenbakia
“1000” jarri dut, eta hau ezin da berdina izan bi domeinuetan. Gainerako parametroak
defektuzkoak utzi ditut.
NS (Name Server) erregistro bat ere erregistratu dut, “ns.soidal.net”. Honek, DNS adierazten du.
Gainera, “ns” host-a 192.168.1.30 IP helbidean dagoela esan diot, hau da, nire makinan. Host hau
erregistratzeko, “A” erabili dut, honek, host-a dela adierazten du.
MX erregistro bezala “mail.soidal.net” erregistratu dut, eta “mail” host-a ere 192.168.1.30 IP-an
dagoela esan diot. MX erregistro honen lehentasun maila 10 dela ere adierazi dut. Hau erabiltzen
da, MX motako erregistro bat baino gehiago daudenean, adibidez posta zerbitzari bat baino
gehiago badaude, mailarik txikiena duen MX erregistroa erabiltzeko. Beraz, maila txikieneko MX
erregistroak apuntatzen duen posta zerbitzaria erabiliko da defektuz, eta honek ez badu
funtzionatzen, hurrengo MX erregistroak apuntatzen duen posta zerbitzaria erabiliko da.
Azkenik, “www” host-a ere zerbitzariaren IP-an dagoela esan diot, web zerbitzariarena.
1.1.1.2.3- Berbideratzaileak
Nire DNS-an domeinu guztiak ez direnez erregistratuta egongo, berbideratzaile bat gehitu
diot.
Horretarako, “named.conf.options” fitxategia editatu dut:
nano /etc/bind/named.conf.options
Bertan, Google-ren DNS-a gehitu diot, “options” atalean informazio hau jarriz:
16. Tolosaldea TLHI
15
Software eta Hardware librea
options {
forwarders
{
8.8.8.8;
};
};
Horrela, bezero batek nire DNS-ra jotzen duenean, lehenengo bertan begiratuko da domeinua
ezagutzen duen, eta ez badu ezagutzen, 8.8.8.8 DNS-ra berbideratuko da.
1.1.1.3- DNS BERRABIARAZI
DNS-a instalatu eta konfiguratu ondoren, DNS zerbitzua berrabiarazi dut, aldaketak
aplikatzeko:
/etc/init.t/bind9 restart
Horrela, nire DNS zerbitzua berrabiarazi eta domeinua martxan jarri da.
1.1.1.4- ZERBITZARIAN BERE DNS-a JARRI
DNS-a martxan dugula, gure zerbitzariak hau erabiltzeko, zerbitzariaren sareko
konfigurazioan adieraziko diogu.
Lehenengo, zerbitzariaren DNS-a aldatu dut, bere propioa erabiltzeko, eta ez beste bat.
Horretarako, “resolv.conf” fitxategia editatu dut:
nano /etc/resolv.conf
Bertan, zerbitzariaren IP-a eta domeinua jarri ditut:
nameserver 192.168.1.30
search soidal.net
17. Tolosaldea TLHI
16
Software eta Hardware librea
Horrela, posta zerbitzariak kanpoko DNS bat erabili ordez, bere DNS propioa erabiliko du.
1.1.1.5- BEZEROETAN ZERBITZARIAREN DNS-a JARRI
Ordenagailu bezeroetan ere, DNS-a aldatu dut, zerbitzariarena jarriz.
Ubuntu bezeroetan, zerbitzariaren berdina egin dut, “resolv.conf” fitxategia editatuz, eta
informazio bera jarriz.
Baina Windows bezeroetan, kontrol paneletik aldatu dut:
Inicio --> Panel de control --> Redes --> Conexión Ipv4 --> Propiedades --> Propiedades
Ipv4
Bertan, zerbitzariaren DNS-a jarri dut:
DNS: 192.168.1.30
Horrela, bezeroetan DNS-a konfiguratuta dago, kanpoko bat erabili ordez, zerbitzariarena
erabiltzeko.
Honekin, DNS-a konfiguratuta eta martxan dago, eta domeinua ere badugu, beraz, DNS-aren atala
bukatuta dago.
1.1.2- MTA
DNS-a sare lokalean instalatu ondoren, MTA (Mail Transfer Agent) edo Korreoa Garraiatzeko
Agentea instalatu dut.
MTA-ak SMTP protokoloaren bidez posta zerbitzari batetik beste posta zerbitzari batera edo berera
korreoa bidaltzen du, hau da, mezua igorletik hartzailera garraiatzen da.
MTA ezberdinak daude: Postfix, Sendmail, Courier...
Nire posta zerbitzarirako, Postfix erabiliko dut.
18. Tolosaldea TLHI
17
Software eta Hardware librea
1.1.2.1- POSTFIX INSTALATU
Postfix MTA instalatzeko, agindu hau exekutatu dut terminalean:
apt-get install postfix
Horrela, Postfix MTA instalatu eta konfiguratzeko eskatu dit.
1.1.2.2- POSTFIX KONFIGURATU
Postfix instalatzean, konfiguratu egin behar da, gure domeinuaren korreoa tratatzeko.
Beraz, Postfix-en atal ezberdinak konfiguratu ditut:
Korreo konfigurazioa: Interneteko gunea
Korreo sistemaren izena: soidal.net
Administrari eta postmasterrarentzako korreo ontzia: root
Korreoa baimentzeko beste helbideak:
19. Tolosaldea TLHI
18
Software eta Hardware librea
soidal.net, Ubuntu, localhost.localdomain, localhost
Korreo ilaran eguneraketa sinkronoak indartu? Ez
Sare lokalak:
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Procmail erabili entrega lokalerako? Bai
Postontziaren tamaina limitea: 0
20. Tolosaldea TLHI
19
Software eta Hardware librea
Helbide lokalen hedadura karakterea: +
Erabiltzeko interneteko protokoloak: ipv4
Horrela, Postfix konfiguratu dut nire domeinuari dagokionez. Konfigurazioan ez dut
“mail.soidal.net” MX erregistroa adierazi, “soidal.net” domeinua baizik, baina honek, automatikoki
detektatuko ditu domeinuaren MX erregistroak.
Postfix berriro konfiguratu nahi bada, agindu hau erabili daiteke:
dpkg-reconfigure postfix
Beraz, domeinuan edo DNS-an aldaketaren bat egiten badugu, Postfix berriro konfiguratu ahal
izango dugu.
21. Tolosaldea TLHI
20
Software eta Hardware librea
1.1.3- KORREOA IRAKURTZEKO PROTOKOLOAK
Erabiltzaileek zerbitzarian dagoen korreoa irakurri ahal izateko, zerbitzaritik mezuak
irakurtzeko edo deskargatzeko protokoloak behar dira. Horretarako, protokolo hauek erabiltzen
dituzten zerbitzuak instalatu ditut.
Lehen esan bezala, korreoa irakurtzeko bi protokolo erabiltzen dira: IMAP eta POP3.
IMAP protokoloak korreoa zerbitzaritik irakurtzen du online, baina
POP3 protokoloak, korreoa deskargatzen du bere makinara, eta zerbitzaritik ezabatzeko aukera du.
Bi hauetatik zein erabiliko den, bezeroak erabilitako korreo bezero aplikazioaren araberakoa da;
Outlook, Gmail, Zimbra Client...
IMAP eta POP3 protokoloentzako erreminta ezberdinak daude: Dovecot
(dovecot-imapd, dovecot-pop3d), Courier (courier-imap, courier-pop3)...
Nik, Dovecot erabiliko dut, beraz, IMAP protokoloarentzako “dovecot-imap” paketea eta POP3
protokoloarentzako “dovecot-pop3” paketeak instalatuko ditut.
1.1.3.1- DOVECOT INSTALATU
Dovecot-en bi pakete hauek instalatzeko, agindu hau exekutatu dut terminalean:
apt-get install dovecot-imapd dovecot-pop3d
Horrela, “dovecot-imapd” eta “dovecot-pop3d” paketeak aldi berean instalatu ditut zerbitzarian.
1.1.3.2- DOVECOT KONFIGURATU
Dovecot instalatu ondoren, konfiguratu egin dut. Horretarako, “dovecot.conf” fitxategia
editatu dut:
nano /etc/dovecot/dovecot.conf
Bertan, bi lerro hauek gehitu ditut:
protocols= pop3 pop3s imap imaps
mail_location= mbox:~/mail:INBOX=/var/mail/%U
Horrela, IMAP eta POP3 protokoloak gaitu ditut, eta erabiltzailearen korreoa /var/mail direktorioan
gordetzeko esan diot, erabiltzailearen izena duen karpetan, “%U” parametroak uneko
erabiltzailea adierazten duelako.
22. Tolosaldea TLHI
21
Software eta Hardware librea
1.1.3.3- DOVECOT BERRABIARAZI
Dovecot instalatu eta konfiguratu ondoren, Dovecot zerbitzua berrabiarazi dut, aldaketak
aplikatzeko:
/etc/init.d/dovecot restart
Horrela, Dovecot zerbitzua martxan jarri da, eta IMAP eta POP3 protokoloak erabiltzeko aukera
dago nire posta zerbitzarian.
1.1.4- ERABILTZAILEAK SORTU
Posta zerbitzua erabiltzeko, erabiltzaileak sortuta egon behar dira. Erabiltzaile hauek,
zuzenean zerbitzarian lokalki sortu ditzakegu, edo bestela, LDAP zerbitzari bat erabili dezakegu
bertan erabiltzaileak sortzeko. LDAP zerbitzari hau, posta zerbitzari berean edo beste zerbitzari
batean egon daiteke.
Baina praktika honetarako, erabiltzaileak posta zerbitzari lokalean sortuko ditut, LDAP datu-baserik
erabili gabe, ez delako beharrezkoa kasu honetan.
Beraz, bi erabiltzaile sortu ditut posta zerbitzarian, “adduser” aginduarekin. Lehenengo, “user1”
erabiltzailea sortu dut:
adduser user1
Horrela, “user1” erabiltzailearen pasahitza eta izen osoa eskatu dizkit:
Introduzca la nueva contraseña de UNIX: user1
Nombre completo: user1
Ondoren, “user2” erabiltzailea sortu dut:
adduser user2
Kasu honetan, horrela konfiguratu dut:
Introduzca la nueva contraseña de UNIX: user2
Nombre completo: user2
Honekin, “user1” eta “user2” erabiltzaileak sortu dira posta zerbitzarian, eta hauek posta zerbitzua
erabili ahal izango dute.
23. Tolosaldea TLHI
22
Software eta Hardware librea
1.1.5- TELNET BIDEZ PROBATU
DNS-a instalatuta eta konfiguraturik, MTA instalatuta eta konfiguraturik, korreoa irakurtzeko
protokoloak erabiltzen dituzten zerbitzuak instalaturik eta zerbitzarian erabiltzaileak sorturik
egonda, posta zerbitzua funtzionatzeko prest dago.
Posta zerbitzariak ondo funtzionatzen duela probatzeko, posta bezero bat instalatu aurretik, Telnet
zerbitzuaren bidez probatu dut.
1.1.5.1- KORREOA BIDALI
Lehen esan bezala, korreoa bidaltzeko SMTP protokoloa erabiltzen da. Hau, Telnet
zerbitzuaren 25.portua da.
Telnet zerbitzua, sareko programa bat da, erabilera asko dituena. Portu ezberdinak erabiliz,
erabilera ezberdinak ematen dizkiogu.
Telnet programa, defektuz instalatua dago Windows eta Linux makinetan. Hala ere, bi Telnet
programa daude, bezeroa eta zerbitzaria. Nik, Telnet bezeroaren bidez probatuko dut posta
zerbitzua.
Hala ere, Telnet bidez korreo bat bidaltzean, normalean, posta zerbitzari gehienek mezu hau “nahi
ez ditugunen erretiluan” gordetzen dituzte, jatorria ezin delako ziurtatu.
SMTP protokoloak 25.portua erabiltzen duenez, Telnet programa 25.portuan erabiliko dut.
Beraz, Telnet programaren bidez posta zerbitzura konektatu naiz, eta bertatik, “user1”
erabiltzailearekin “user2” erabiltzaileari korreo bat bidali diot; SMTP protokoloko sintaxia erabiliz.
SMTP protokoloa erabiltzeko sintaxia edo aginduak hauek dira:
HELO --> Zerbitzariari zure domeinua zein den esateko.
Adb: HELO domeinua.net
MAIL FROM: --> Jatorria.Nondik bidaltzen den korreoa. Hau ez da ziurtatzen, beraz, SMTP
protokolo hutsarekin segurtasun falta dago, korreo anonimoak bidali daitezkeelako, hau da,
identitate bat ordeztu dezakegu.
Adb: MAIL FROM: host@domeinua.net
RCPT TO: --> Helbidea. Korreoa norentzako den.
Adb: RCPT TO: host@domeinua.net
24. Tolosaldea TLHI
23
Software eta Hardware librea
DATA --> Korreoaren gorputza hasteko. Edukia.
Subject: --> Korreoaren gaia.
. --> Korreoaren gorputza bukatzeko. Honekin, behin “Enter” tekla sakatuta, korreoa
bidaltzen.
Esan beharra dago, agindu hauetariko bakoitza exekutatzeko, “Enter” tekla sakatu behar dela.
Beraz, lehenengo terminalean sartu naiz, eta Telnet bidez konektatu naiz “mail.soidal.net”
helbidera 25 portuan. Horretarako, agindu hau erabili dut:
telnet mail.soidal.net 25
Horrela, posta zerbitzarira konektatu naiz. Ikusten den bezala, “mail.soidal.net” helbidea erabili
dut, hau delako posta zerbitzuaren MX erregistroa, hau da, posta zerbitzariaren helbidea da;
192.168.1.30. Gainera, honen ondoren 25 portua jarri dut, aginduaren sintaxiak horrela eskatzen
duelako, portua bukaeran jartzea. Defektuz, 23.portua erabiltzen da, beraz, ezer jarriko ez banu,
23.portua erabiltzen arituko nintzen, eta ez dut hori nahi.
Behin posta zerbitzarian konektatuta, SMTP protokoloaren aginduen bidez “user1”
erabiltzailearekin korreoa bidali diot “user2” erabiltzaileari:
HELO soidal.net
MAIL FROM: user1@soidal.net
RCPT TO: user2@soidal.net
DATA
Subject: Telnet bidez proba
Kaixo user2, hau posta Telnet bidez probatzeko da.
.
25. Tolosaldea TLHI
24
Software eta Hardware librea
Horrela, lehenengo, posta zerbitzariarekin identifikatu naiz, nire domeinua “soidal.net” dela
adieraziz.
Gero, korreoa “user1@soidal.net” erabiltzaileak bidaltzen duela esan diot. Beraz, hori izango da
helbideak ikusiko duena, baina lehen esan bezala, hau ez da zehatza, SMTP protokoloak ez duelako
probatzen, beraz, edozein jarrita ere, ez du esan nahi egia denik. Hau da, jatorri bezala
“obama@whitehouse.com” jarri dezakegu, eta helbideak hori jasoko zuen. Esan beharra dago,
identitatea ordeztea legez kontrakoa dela, honekin, SMTP protokolo hutsaren segurtasun falta
adierazi nahi dut.
Ondoren, mezua “user2@soidal.net” erabiltzailearentzako dela esan diot.
Gero, korreoaren gorputza idatzi dut, gaia era edukia idatziz.
Azkenik, korreoaren gorputza amaitu dela adierazi dut “.” karakterearen bidez.
Horrela, korreo hori bidali da, eta Telnet zerbitzuaren konexioa ixteko, “quit” agindua erabili dut:
quit
Honekin, korreo hau posta zerbitzarian gorde da, /var/mail/ direktorioko helbidearen fitxategian;
“user2”
Beraz, korreoa ondo gorde dela ikusteko, fitxategi hori ikusi dut:
nano /var/mail/user2
26. Tolosaldea TLHI
25
Software eta Hardware librea
Bertan, korreoa gordeta geratu dela ikusi dut, beraz, korreoa ondo bidali da.
1.1.5.2- KORREOA IRAKURRI
Posta zerbitzaritik korreoa irakurtzeko, IMAP edo POP3 protokoloak erabiltzen dira.
Beraz, protokolo hauen bidez, lehen bidalitako korreoa irakurri dut.
1.1.5.2.1- IMAP
Lehenengo, IMAP protokoloaren bidez irakurri dut korreoa. IMAP protokoloak, zerbitzarian
dagoen korreoa online irakurtzen du, hau
da, deskargatu gabe.
IMAP protokoloak, 143.portua erabiltzen du, beraz, kasu honetan ere, Telnet bidez posta
zerbitzarira konektatu naiz, baina oraingoan, 143.portua erabiliz, eta IMAP protokoloaren aginduen
bidez irakurri dut korreoa.
IMAP protokoloaren sintaxia hau da:
. LOGIN --> Erabiltzailea logeatzeko.
Adb: . LOGIN erabiltzailea pasahitza
. LIST --> Karpeta edo direktorioak listatzeko.
Adb: . LIST “” “*”
. STATUS --> Korreo kopurua ikusteko.
Adb: . STATUS INBOX (messages) --> Mezu kopuru totala ikusteko.
. STATUS INBOX (unseen) --> Irakurri gabeko mezu kopurua ikusteko.
27. Tolosaldea TLHI
26
Software eta Hardware librea
. SELECT --> Karpeta aukeratzeko.
Adb: . SELECT INBOX
. FETCH --> Korreoekin lan egiteko. Aukera ezberdinak daude:
. FETCH lehenengoa:azkena FLAGS --> Korreoen zerrenda era
Flag-ak ikusteko.
Adb: . FETCH 1:3 FLAGS
. FETCH korreo_zenb (body[header.fields (subject)]) -->
Korreo konkretu baten gaia ikusteko.
Adb: . FETCH 3 (body[header.fields (subject)])
. FETCH korreo_zenb rfc822.text --> Korreoaren edukia ikusteko.
Adb: . FETCH 3 rfc822.text
. LOGOUT --> Sesioa ixteko.
Ikusten den bezala, IMAP protokoloaren aginduak ez dira SMTP protokoloaren aginduak bezala,
sintaxia ezberdina da. Gainera, agindu bakoitzaren aurretik “.” karakterea eta hutsune bat jarri
behar da. Kasu honetan, erabiltzailearekin logeatu beharko gara, eta pasahitza behar dugu, beraz,
beste baten kontuan sartzea ez da hain erraza.
Beraz, lehenengo Telnet bidez konektatu naiz posta zerbitzarira, 143.portua erabiliz:
telnet mail.soidal.net 143
Ikusten denez, agindua aurrekoa bezalakoa da, aldatzen den gauza bakarra portua da, baina hau
oso garrantzitsua da, honek adierazten duelako zein protokolo erabiltzen dugun.
Horrela, posta zerbitzarian konektatu naiz IMAP protokoloaren bidez, eta korreoa irakurtzeko,
IMAP protokoloaren sintaxia erabili beharko dut.
Beraz, lehen bidalitako korreoa irakurtzeko, “user2” erabiltzailearekin logeatu naiz, eta 12.korreoa
irakurri dut:
. LOGIN user2 user2
. LIST “” “*”
. STATUS INBOX (messages) --> 12
. STATUS INBOX (unseen) --> 1
28. Tolosaldea TLHI
27
Software eta Hardware librea
. SELECT INBOX
. FETCH 12 (body [header.fields (subject)])
. FETCH 12 rfc822.text
. LOGOUT
Horrela, “user1” erabiltzaileak bidalitako korreoa irakurri dut posta zerbitzarian.
Lehenengo, “user2” erabiltzailearekin logeatu naiz bere pasahitza erabiliz. Horrela, ondo sartu da.
29. Tolosaldea TLHI
28
Software eta Hardware librea
Gero, karpetak listatu ditut, eta ondoren, “INBOX” karpetako (mezuen erretilua) irakurri gabeko
mezuen kopurua listatu dut, eta guztira 12 mezu daudela erantzun dit. Gainera, irakurri gabeko
mezuen kopurua ere ikusi dut, eta mezu bat dago irakurri gabe.
Ondoren, INBOX karpeta aukeratu dut, hau da, mezuen kutxatila.
Beraz, “user1” erabiltzailearen korreoa 12.a denez, 12.korreoaren gaia irakurri dut, eta mezua ere
irakurri dut.
Azkenik, “user2” erabiltzailearen saioa itxi dut, eta Telnet konexioa itxi.
Honekin, posta zerbitzariak ondo funtzionatzen duela frogatu dut, korreoa ondo bidali eta irakurri
daitekeelako.
1.1.5.2.2- POP3
POP3 protokoloak, IMAP-ek ez bezala, posta zerbitzaritik deskargatzen du korreoa, eta gero,
mezu hau zerbitzaritik ezabatzeko aukera dago.
POP3 protokoloak, 110.portua erabiltzen du, eta honen sintaxiak, IMAP protokoloaren antzeko
egitura du, baina aginduak ezberdinak dira.
POP3 protokoloaren sintaxia hau da:
USER --> Erabiltzailea.
Adb: USER erabiltzailea
PASS --> Erabiltzailearen pasahitza.
Adb: PASS pasahitza
STAT --> Korreo kopurua ikusteko.
LIST --> Korreoak listatzeko; kopurua + tamaina.
RETR --> Korreo konkretu irakurtzeko.
Adb: RETR korreo_zenb
DELE --> Korreo konkretu bat ezabatzeko. Mezua markatzen du, eta sesioa ixtean ezabatzen
da.
Adb: DELE korreo_zenb
QUIT --> Erabiltzailearen sesioa ixteko.
30. Tolosaldea TLHI
29
Software eta Hardware librea
Beraz, Telnet zerbitzuaren bidez posta zerbitzarira konektatu naiz
110.portua erabiliz:
telnet mail.soidal.net 110
Horrela, posta zerbitzarira konektatu naiz, eta “user1” erabiltzaileak “user2” erabiltzaileari
bidalitako korreoa irakurri dut, agindu hauek erabiliz:
USER user2
PASS user2
LIST
RETR 11
DELE 11
QUIT
Honekin, lehenengo “user2” erabiltzailearekin logeatu naiz, bere pasahitza sartuz.
Gero, korreo kopurua listatu dut, eta 11 daudela erantzun dit.
Ondoren, 11.mezua irakurri dut, eta “user1” erabiltzaileak bidalitakoa da.
31. Tolosaldea TLHI
30
Software eta Hardware librea
Bukatzeko, 11.mezua posta zerbitzaritik ezabatu dut, eta “user2” erabiltzailearen sesioa itxi dut.
Honekin, posta zerbitzariak ondo funtzionatzen duela ziurtatu dut, eta korreoa irakurtzeko bi
protokoloek ondo funtzionatzen dutela.
1.1.6- POSTA BEZEROA
Posta zerbitzariak ondo funtzionatzen duela probatu dut, SMTP, IMAP eta POP3 protokoloak
Telnet bidez erabiliz korreoak bidali eta irakurri ahal izan ditudalako.
Hau, posta zerbitzaria probatzeko egin dut, baina gero, erabiltzaileek posta bezero bat erabiliko
dute korreoa bidali eta irakurtzeko, Telnet bidez egitea oso astuna delako erabiltzaileentzako.
Posta bezeroak web aplikazioak edo aplikazio lokalak izan daitezke. Web aplikazioak ez dira
instalatu behar, eta web nabigatzaile bidez atzitzen dira. Hauek, bakarrik zerbitzarian instalatzen
dira.
Aplikazio lokalak berriz, ordenagailu bezero bakoitzean instalatu behar dira.
Nik, web aplikazioa erabiliko dut, sinpleagoa eta erosoagoa delako posta bezeroa nire posta
zerbitzarian bakarrik instalatzea, bezero bakoitzean instalatu behar izatea baino.
Posta bezero ezberdinak daude; Squirrelmail, Zimbra Client, Mozilla Thunderbird...
Nire kasuan, Squirrelmail posta bezeroa erabiliko dut. Squirrelmail PHP lengoaian programatutako
kode askeko webmail aplikazio bat da. Honek funtzionatu ahal izateko, PHP soportea duen posta
zerbitzaria behar da, eta gainera, SMTP eta IMAP zerbitzariak behar ditu. Nire posta zerbitzariak
ezaugarri hauek betetzen dituenez, erabiltzeko aukera dut.
1.1.6.1- SQUIRRELMAIL INSTALATU
Squirrelmail posta bezeroa instalatzeko, agindu hau erabili dut:
apt-get install squirrelmail
Horrela, Squirrelmail posta bezeroa instalatu da nire posta zerbitzarian, baina erabiltzen hasi
32. Tolosaldea TLHI
31
Software eta Hardware librea
aurretik, konfiguratu egingo dut.
1.1.6.2- SQUIRRELMAIL KONFIGURATU
Squirrelmail posta bezeroak nire posta zerbitzaria erabili ahal izateko, konfiguratu egin
behar da.
Honek, bi era ditu konfiguratzeko; alde batetik, /etc/squirrelmail/ direktorioko “config.php”
fitxategia editatu dezakegu eskuz, edo bestela, “squirrelmail configure” script-a erabiliz. Script hau,
Squirrelmail instalatzean sortzen da, eta Squirrelmail konfiguratzeko testu bidezko asistente erraz
bat erakutsiko digu.
Nik, Squirrelmail “config.php” fitxategia editatuz konfiguratu dut, beraz, agindu hau erabili dut:
nano /etc/squirrelmail/config.php
Bertan, lerro batzuk editatu ditut, nire domeinua jartzeko, eta posta zerbitzariaren ezaugarri
orokorrak jartzeko.
$org_name=”Soidal”; #Elkarte izena
$org_title=”Soidal Posta”; #Titulua
$provider_uri='http://www.soidal.net'; #Hornitzailearen helbidea
$provider_name='Soidal'; #Hornitzailearen izena
$squirrelmail_default_language=”es_ES”; #Hizkuntza; Erdara
$domain='soidal.net'; #Domeinua
$trash_folder='INBOX.Zakarrontzia'; #Zakarrontzia karpeta
$sent_folder='INBOX.Bidaliak'; #Bidalitakoen karpeta
$draft_folder='INBOX.Borradoreak'; #Zirriborroen karpeta
Aldaketak egindakoan, fitxategia gorde dut “Control+o” tekla sakatuz, eta fitxategia itxi dut
“Control+x”-rekin.
Aldaketa hauek aplikatzeko, Apache web zerbitzaria berrabiarazi dut:
/etc/init.d/apache2 restart
Horrela, Apache berrabiarazi eta Squirrelmail konfiguratuta geratu da.
33. Tolosaldea TLHI
32
Software eta Hardware librea
Hala ere, hizkuntza ez da aldatu ingeleratik erdarara.
1.1.6.3- SQUIRRELMAIL PROBATU
Squirrelmail posta bezeroa probatzeko, web nabigatzaile bidez sartu naiz web aplikazioan,
posta zerbitzariaren helbidea jarriz:
http://mail.soidal.net/mail
Ikusten den bezala, DNS-ko MX erregistroa erabili dut, zerbitzariaren IP helbidearen ordez, eta
“mail” gehitu dut bukaeran, Squirrelmail posta bezeroan sartzeko.
Horrela, Squirrelmail posta bezeroaren logeatzeko orria agertu zait.
1.1.6.3.1- Korreoa bidali
Lehenengo, “user1” erabiltzailearekin “user2” erabiltzaileari mezu bat bidaliko diot, beraz,
“user1” erabiltzailearekin hasi dut saioa:
Name: user1
Password: user1
“Login” sakatu eta logeatu egin naiz.
Bertan, “user2@soidal.net” erabiltzaileari korreoa bidaltzeko, “Compose” sakatu dut, eta korreoa
idatzi dut:
To: user2@soidal.net
Subject: Kaixo user2!
Kaixo, hau proba bat da.
34. Tolosaldea TLHI
33
Software eta Hardware librea
“Send” sakatu eta mezua bidali da.
Azkenik, “user1” erabiltzailearen saioa ixteko, “Sign out” sakatu dut.
1.1.6.3.2- Korreoa irakurri
Orain bidalitako korreoa irakurtzeko, “user2” erabiltzailearekin logeatu naiz Squirrelmail
posta bezeroan:
Name: user2
Password: user2
Horrela, “user2” erabiltzailearen kontuan sartzean, “user1@soidal.net” erabiltzailearen korreoa
ikusi dut, eta honen gainean klik eginez, irakurri egin ahal izan dut.
35. Tolosaldea TLHI
34
Software eta Hardware librea
Beraz, Squirrelmail posta bezeroak ondo funtzionatzen du, mezuak ondo bidaltzen eta irakurtzen
dituelako.
1.1.7- POSTA BEZERO PROPIOA
Orain arte posta bezero bezala, Squirrelmail web aplikazioa erabili dut, baina hau, ez dut nik
egin, beste norbaitek programatu du, eta software askea denez, nik ere erabili dezaket.
Baina orain, nik egingo dut nire posta bezero propioa. Hau ere, web aplikazio bat izango da, eta
hiru programazio lengoai erabiliz eginda egongo da:
• HTML: Posta bezeroaren web orrirako.
• CSS: Web orriari itxura emateko.
• PHP: Bezeroarekin elkar eragina izateko. Honekin, posta mezuak irakurri eta bidali ahal
izango dira, posta zerbitzariarekin komunikatuz.
Posta bezeroaren interfazea sinplea izango da, bi atal egongo dira; batean erabiltzaileak mezua
bidaltzeko aukera izango du, bere korreo helbidea, hartzailearena, mezuaren gaia eta mezuaren
gorputza adieraziz, eta beste atalean, erabiltzaileak korreoa irakurtzeko aukera izango du, bere
korreoa, pasahitza eta korreo zenbakia adieraziz.
1.1.7.1- HTML
HTML lengoaiaren bidez, web orriaren interfazea diseinatu dut, bi atalak banatuz. HMTL
orri nagusiak, “index.php” izena du, eta hau /etc/var/www/posta direktorioaren barruan sortu dut.
Beraz, bi formulario sortu ditut, bat korreoa bidaltzeko eta bestea korreoa irakurtzeko. Formulario
hauetako bakoitza, PHP orri batekin lotuta dago; “korreoa_bidali.php” eta “korreoa_ikusi.php”.
Beraz, posta zerbitzuaren erabiltzaileak formulario hauetako bakoitzean datuak sartzean, “Bidali”
sakatu ondoren datu hauek PHP orrietara bidaliko dira, eta bertan tratatuko dira, posta zerbitzarira
bidaliz.
36. Tolosaldea TLHI
35
Software eta Hardware librea
“index.html” orriaren kodea hau da:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> Soidal posta </title>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
<link rel="stylesheet" type="text/css" href="estiloa.css" />
</head>
<body>
<table class="taula"> <!-- 2 zutabeko taula; korreoa irakurtzea eta korreoa bidaltzea
banatzeko -->
<tr> <!-- Lehenengo lerroa -->
<td id="td_logoa">
<a href="index.html"> <img src="irudiak/posta.gif" id="logoa" alt="Logoa" /> </a>
</td>
<td id="td_titulua">
<font id="titulua"> Soidal Posta </font> <!-- Izenburua -->
</td>
</tr>
</table>
<table class="taula">
<tr> <!-- Bigarren lerroa -->
38. Tolosaldea TLHI
37
Software eta Hardware librea
<input type="text" name="gaia" /> <br />
Mezua
<input type="text" name="mezua" />
</p>
<input type="submit" value="Bidali" />
</form>
</td>
</tr>
</table>
</body>
</html>
Ikusten den bezala, bi taula daude, bat izenburu eta logoarentzako eta bestea korreorako.
Korreoaren taulan, bi zutabe daude. Ezkerreko zutabean korreoa irakurtzeko formularioa dago, eta
erabiltzaile baten korreoa irakurri ahal izango dugu. Eskuinekoan berriz, korreoa bidaltzeko
formularioa dago, beste erabiltzaile bati mezu bat bidaltzeko.
1.1.7.2- CSS
CSS lengoaiaren bidez, HTML orriari itxura eman diot; kolorea, letra mota, tamaina...
Sortu dudan CSS orria “estiloa.css” da, eta HTML orrian adierazi dut honen helbidea.
Horrela, HTML orrian edukia eta itxura banatu ditut, eta aurrerago, itxura aldatu nahi badut,
nahikoa izango da CSS orria aldatzearekin.
“estiloa.css” orriaren kodea hau da:
body {background-color:lightblue;
color:blue;
font-size:18px;
font-family:Courier;
font-weight:bold;
39. Tolosaldea TLHI
38
Software eta Hardware librea
text-align:center;}
#logoa {height:140px;
width:140px;}
#titulua {color:red;
font-size:80px;
font-weight:bold;
font-style:italic;}
.taula {border:0px;
width:1250px;}
#td_logoa {width:180px;}
#td_titulua {width:1070;}
Kode honen bidez, HTML orriari itsura ematen diogu, adibidez, fondo urdina, letra tamaina… Taula
eta zutabeei ere itsura ematen die.
1.1.7.1- PHP
Esan dudan bezala, bi PHP orri sortu ditut, bat korreoa bidaltzeko “korreoa_bidali.php” eta
bestea korreoa irakurtzeko korreoa_irakurri.php”.
Horrela, erabiltzaileak korreoa bidaltzeko ataleko formularioan datuak sartzen baditu, informazio
hau “korreoa_bidali.php” orriak tratatuko du, eta korreoa irakurtzeko formularioan sartuz gero,
“korreoa_irakurri.php” orriak tratatuko du.
Beraz, PHP lengoaiaren bidez erabiltzaileak sartutako datuak jaso eta posta zerbitzarira bidali ditut.
PHP lengoaiak baditu funtzio berezi batzuk korreoa bidali eta jasotzeko, baina nik, Telnet
zerbitzuaren bidez egin dut, sistemako aginduen bidez. Hau da, lehen, Telnet bidez korreoa
irakurtzen eta bidaltzen ikasi dut, baina interfaze grafikorik gabe, eta hori erabiltzailearentzako ez
da erosoa, baina orain, hau interfaze grafikora pasatuko dut. Horrela, erabiltzaileak bidalitako
informazioa jaso eta sistemarekin komunikatuko naiz, Telnet zerbitzuarekin, horrela, informazio
hau Telnet zerbitzuaren
bidez posta zerbitzariarekin komunikatzeko erabiliko dut.
Beraz, korreoa bidaltzeko SMTP protokoloa erabiliko dut, eta korreoa irakurtzeko POP3 protokoloa.
Horrek esan nahi du, erabiltzailearen korreoa bidaltzeko, Telnet zerbitzua 143.portuan erabiliko
dudala, eta korreoa irakurtzeko 110.portua.
“korreoa_bidali.php” orriaren kodea hau da:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
41. Tolosaldea TLHI
40
Software eta Hardware librea
$da=fwrite($fp, $data, strlen($data));
$su=fwrite($fp, $subject, strlen($subject));
$me=fwrite($fp, $mezua, strlen($mezua));
$pu=fwrite($fp, $puntua, strlen($puntua));
$qu=fwrite($fp, $quit, strlen($quit));
echo $norena." zure mezua ondo bidali zaio ".$norentzako." -ri!";
echo '<p> <a href="index.html"> Soidal-era bueltatu </a> <p>';
}
else{
echo 'Konexioak huts egin du!<br>';
}
fclose($fp);
?>
</body>
</html>
Ikusten den bezala, PHP barruan, kontsolako aginduak erabiltzen dira, eta honen bidez, posta
zerbitzariarekin konexioa ireki dut, SMTP protokoloan, 25.portuan, eta Telnet aginduak bidaliz,
korreoa bidaltzen da.
“korreoa_ikusi.php” orriaren kodea hau da:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> Korreoa ikusi </title>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
<link rel="stylesheet" type="text/css" href="estiloa.css" />
</head>
43. Tolosaldea TLHI
42
Software eta Hardware librea
?>
</body>
</html>
Kasu honetan ere, kontsolako aginduen bidez posta zerbitzarirako konexioa ireki dut, baina kasu
honetan, POP3 protokoloaren bidez, 110.portutik. Gero, POP3 protokoloaren sintaxia erabiliz,
Telnet-eko aginduekin erabiltzailearen mezuak irakurri daitezke.
1.2- POSTA INTERNETEN
Orain arteko posta zerbitzariak bakarrik nire sare lokalean funtzionatzen du. Baina
hemendik aurrera, posta zerbitzaria interneten atzigarri egotea nahi dut.
Horretarako, bi era daude; eskuz konfiguratzea (NAT+IP finkoa+Domeinua) edo domeinu dinamiko
bat erabiltzea (No-IP, DynDNS, erositakoa...).
Eskuz eginez gero, NAT erregela batzuk definitu behar dira routerrean, nire IP publikoa posta
zerbitzariaren IP pribatura bideratzeko. Gainera, bideraketa ezberdinak egin behar dira, posta
zerbitzariak erabiltzen dituen zerbitzu guztientzako.
Gero, IP publiko hau aldatu egiten denez, No-IP bezalako zerbitzua erabili behar da, nire IP publikoa
aldatzen denean, hau eguneratzeko.
Azkenik, domeinu publiko bat behar da, IP publikora apuntatzeko, hau da, DNS lokalean
definitutako domeinu lokalak ez du balio, lehen esan dugun bezala, domeinu lokala ez delako
atzigarria interneten, ez delako ezaguna nire sare lokaletik kanpo. Beraz, domeinu hau interneten
atzigarri dagoen DNS zerbitzari batean erregistratuta egon beharko da. Bertan, posta zerbitzarira
apuntatzen duen MX erregistroa ere definituko dut.
Domeinua interneteko web gune batean erostean, bideraketa guztiak ere egiten dira, baina berak
egiten du automatikoki.
Nire kasuan, No-IP zerbitzua erabiliko dut nire domeinua erregistratzeko.
1.2.1- NO-IP
Normalean, gure etxeko IP publikoa (gure interneteko zerbitzariak emandakoa; Telefonica,
44. Tolosaldea TLHI
43
Software eta Hardware librea
Ono...) dinamikoa izaten da, hau da, denborarekin aldatu egiten da.
Baina zerbitzari bateko IP publikoa, estatikoa izatea komeni da, bestela, IP hau domeinuarekin
lotzean, IP-a aldatzean, domeinuak ez du funtzionatuko.
IP publikoa estatikoa izateko, ordaindu egin behar da, baina horren ordez, DNS dinamiko bat
erabiliko dut. Horretarako, esan dudan bezala, No-IP zerbitzua aukeratu dut.
No-IP zerbitzua, DNS dinamikoa eskaintzen duen dohaineko zerbitzua da.
Honen bidez, nire IP publikoa erregistratuko dut bertako domeinuaren barruan (no-ip.org), hau da,
“no-ip.org” domeinuaren azpi-domeinu bat izango da, eta aurrerago, IP-a aldatzen bada, honek
automatikoki eguneratuko du, beraz, ez dut eskuz egin behar aldi bakoitzean.
Horrela, No-IP-rekin, bi gauza lortuko ditut; domeinu izen bat eta DNS dinamikoa.
Lehenengo, No-IP zerbitzuan domeinua sortuko dut, kontu bat sortuz, eta gero Ubuntu
zerbitzarian, No-IP zerbitzuaren bezeroa instalatuko dut.
1.2.1.1- NO-IP KONTUA SORTU
Lehenengo, No-IP-ko kontu bat sortu dut. Horretarako, No-IP-ren web orrian sartu naiz:
http://www.no-ip.org
Bertan, kontua sortzeko:
Sign Up --> Create Your No-IP Account
Horrela, nire kontua konfiguratu dut:
Username: erikdiez
Email: erikantton@hotmail.com
Password: ******
Bertan, “Hostname” atalean, “Create my hostname later” aukeratu dut, horrela, nire host izena
gero sortuko dut.
Honekin, nire kontu berria sortu dut No-IP zerbitzuan.
45. Tolosaldea TLHI
44
Software eta Hardware librea
1.2.1.2- Host-a sortu
Lehenengo, nire host nagusi bat sortu dut. Horretarako, host-en atalean sartu naiz:
Hosts/Redirects --> Hostname Information
Bertan, sortuko dudan host berriaren informazioa sartu dut:
Host izena: soidal.no-ip.org
Host mota: DNS Host (A)
IP Helbidea: 79.155.20.48
“Add host” sakatu eta host-a erregistratu da.
1.2.1.3- MX erregistroa sortu
Aurretik aipatu bezala, MX erregistro bat posta zerbitzaria apuntatzen duen erregistro bat
da. Lehen, nire DNS lokalean sortu dut, baina orain, No-IP zerbitzuan sortuko dut, nire host-arekin
batera.
MX erregistroa sortzeko:
Hosts/Redirects --> Mail Options
Bertan, MX erregistroa eta honen lehentasuna konfiguratu dut:
MX Erregistroa: mail.soidal
MX Lehentasuna: 5
46. Tolosaldea TLHI
45
Software eta Hardware librea
“Add host” sakatu eta MX erregistroa gehitu da. Honek, 5-eko lehentasuna du, baina kasu honetan,
MX erregistro bakarra dagoenez, ez du inporta. Baina aurrerago beste posta zerbitzari batentzako
MX erregistro bat erregistratuko banu, 10-eko lehentasuna jarriko nion, horrela, lehenengo 5-eko
lehentasuneko posta zerbitzaria erabiliko da, baina honek arazoren bat izanez gero, 10-eko
lehentasuneko MX erregistroak apuntatzen duen posta zerbitzaria erabiliko da.
Horrela, No-IP zerbitzuan kontu bat sortu dut, eta bertan nire host-a erregistratu dut, eta host
honek nire IP publikora apuntatzen duenez, web nabigatzailean “soidal.no-ip.org” helbidea jarrita,
nire makinan sartuko da, nire IP publikoa jarri behar izan gabe.
Beraz, web nabigatzaile bidez nire web zerbitzariko web orria ikusteko, web nabigatzailean helbide
hau jarri beharko da:
http://soidal.no-ip.org
Eta posta zerbitzarian sartzeko:
http://soidal.no-ip.org/mail
Hala ere, nire IP publikoa aldatzen bada, host honek ez du funtzionatuko, beraz, hau automatikoki
eguneratzeko, No-IP DUC programa erabiliko dut.
47. Tolosaldea TLHI
46
Software eta Hardware librea
1.2.1.4- NO-IP DUC
No-IP DUC (Dynamic DNS Update Client) programa, DNS dinamikoa eguneratzeko programa
bezeroa da.
Hau, nire posta zerbitzariaren ordenagailuan instalatuko dut, eta horrela, nire IP publikoa aldatzen
bada, nire host-aren IP helbidea eguneratuko da.
1.2.1.4.1- Deskargatu eta instalatu
No-IP DUC programa nire Ubuntu zerbitzarian instalatuko dut, beraz, Linux-erako bertsioa
deskargatu dut terminaletik, agindu hauek erabiliz:
cd /usr/local/src/
wget http://www.noip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
make install
Horrela, No-IP DUC programaren paketea deskargatu dut eta ondoren paketea erauzi dut. Azkenik,
instalatu egin dut.
1.2.1.4.2- Konfiguratu
No-IP DUC programa instalatzearekin batera, nire No-IP-ko kontu eta host-arekin
konfiguratu dut, zuzenean atera zaidanarekin:
Please enter the login/email string for noip.com: erikantton@hotmail.com
Please enter the password for user 'erikantton@hotmail.com': ******
Please enter an update interval: [30] 30
Do you wish to run something at successful update? [N] (Y/N) N
Horrela, No-IP DUC programa instalatu dut, eta “soidal.no-ip.org” host-arekin lotu da
automatikoki, host hori bakarrik dagoelako lotuta nire kontura, eta host hau 30-eko interbalo batez
eguneratuko da.
Gainera, “no-ip2.conf” konfigurazio fitxategia sortu da:
/usr/local/etc/no-ip2.conf
48. Tolosaldea TLHI
47
Software eta Hardware librea
Horrez gain, No-IP DUC bezeroa aurrerago konfiguratu nahi bada, agindu hau exekutatu daiteke
terminalean:
/usr/local/bin/noip2 -C
1.2.1.4.3- Exekutatu
No-IP DUC programa exekutatzeko, agindu hau exekutatu dut terminalean:
/usr/local/bin/noip2
Horrela, No-IP DUC programa martxan jarri da atzeko plano batean, eta “soidal.no-ip.org” host-
aren IP-a eguneratzen arituko da hemendik aurrera.
1.2.2- PORTUEN BERBIDERAKETA
“soidal.no-ip.org” host-ak, nire routerraren IP publikora apuntatzen du, hau da, ez du nire
ordenagailuaren IP pribatura apuntatzen, beraz, posta zerbitzaria oraindik ez dago atzigarri
internetetik.
Nire routerrean NAT sistema erabiltzen dut, sare lokaleko ordenagailu guztiek IP publiko bera
erabili ahal izateko, beraz, NAT erregela batzuen bidez egingo dut.
NAT erregelak, NAT sisteman portuen berbideraketa egiteko erabiltzen diren erregelak dira, IP
helbide eta portu bat beste IP
helbide eta portu batera bideratzeko. Kasu honetan, nire IP publikotik IP pribatura egingo ditut
bideraketak.
Beraz, lau zerbitzuentzako portuak berbideratu ditut:
Web (80), SMTP (25), IMAP (143), POP3 (110)
80.portua, Squirrelmail posta bezeroan sartzeko behar dut, web zerbitzarian dagoen web
aplikazioa delako. 25.portua korreoa bidaltzeko behar dut, eta 143 eta 110 portuak korreoa
irakurtzeko.
Hau egiteko, routerraren administrazio panelean sartu naiz; web nabigatzailean ate-bidearen
helbidea jarriz, eta 8000.portua erabiliz:
http://192.168.1.1:8000
Bertan, logeatu egin naiz:
User: 1234
49. Tolosaldea TLHI
48
Software eta Hardware librea
Password: ********
Administrazio panelean egonda, portuen berbideraketaren atalean sartu naiz:
Advanced --> Port Forwarding
Bertan, lau zerbitzuen portuak bideratu ditut nire zerbitzariaren IP helbide pribatura; 192.168.1.30.
Horretarako, “Add” sakatu eta bideraketa erregela berria egin dut:
WAN Konexioak: PVC:8/36
Zerbitzua: Web Server (HTTP)
IP Helbidea (Host izena): 192.168.1.30
Gero, sarrera eta irteerako portuak eta protokoloa aukeratu ditut:
Kanpoko Hasierako Portua: 80
Kanpoko Bukaerako Portua: 80
Protokoloa: TCP
Barruko Hasierako Portua: 80
Barruko Bukaerako Portua: 80
Ikusten den bezala, sarrerako portua 80.a da, Apache Web zerbitzariak erabiltzen duena, beraz,
erabiltzaileek 80.portua erabiliko dute Squirrelmail posta bezeroan sartzeko, hau da, ez dute
portua adierazi behar, hau defektuzkoa delako. Portu honen irteera, 80.a da, hau da, portu bera.
Irteerako portua, kasu honetan 80.a izan behar da, Apache Web zerbitzariak erabiltzen duelako,
ezin dut nahi dudana jarri (ez badut Apache-tik aldatzen), baina sarrerako portua, nahi dudana
erabili dezaket, eta ezberdina jarriz gero, nire zerbitzariak benetaz erabiltzen duen portua
50. Tolosaldea TLHI
49
Software eta Hardware librea
ezkutatzea lortuko nuke, baina kasu honetan, ez dut hori egingo, bestela, erabiltzaileek portua
adierazi beharko zuten
nire web orrira sartzeko.
“Apply” sakatu eta 80.portuaren (Web zerbitzaria) erregela berria gehitu da.
Ondoren, berdina egin dut beste portuekin. Beraz, horrela geratu da:
Horrela, posta zerbitzariak erabiltzen dituen zerbitzu guztien portuak berbideratu ditut nire IP
publikotik zerbitzariaren IP pribatura.
Honekin, nire posta zerbitzari martxan dago, eta internetetik atzigarri dago, beraz, edozein
saretatik erabili daiteke.
Baina posta zerbitzurako erabiltzen DNS-a, zerbitzariaren DNS lokalekoa da, non “soidal.net”
domeinua dagoen.
Beraz, posta zerbitzari honek bakarrik domeinu horretarako funtzionatuko du, hau da, ezingo da
korreoa bidali beste posta zerbitzari batzuetara (Hotmail, Gmail...), ezta beste posta zerbitzarietatik
korreoa jaso, hauek ez dutelako “soidal.net” domeinua ezagutzen, ezta “mail.soidal.net” MX
erregistroa ere.
Beraz, hau konpontzeko, Postfix posta zerbitzaria eta Squirrelmail bezeroa berriro konfiguratu
beharko ditut, No-IP zerbitzuan sortutako host eta MX erregistroarekin.
1.2.3- POSTFIX REKONFIGURATU
Postfix posta zerbitzaria berriro konfiguratzeko, agindu hau exekutatu dut terminalean:
dpkg-reconfigure postfix
Bertan, Postfix aurreko aldian bezala konfiguratu dut, baina domeinua eta MX erregistroa aldatuz,
eta No-IP zerbitzuan sortutakoak erabiliz; “soidal.no-ip.org”:
Nombre del sistema de correo: soidal.no-ip.org
Otros destinos para los cuales aceptar correo:
51. Tolosaldea TLHI
50
Software eta Hardware librea
soidal.no-ip.org, Ubuntu, localhost.localdomain, localhost, hotmail.com, gmail.com
Horrela, Postfix errekonfiguratu dut, nire No-IP-ko host berria erabiliz.
1.2.4- SQUIRRELMAIL REKONFIGURATU
Squirrelmail posta bezeroa ere berriro konfiguratu dut No-IP-ko host berriaren arabera,
agindu honekin:
nano /etc/squirrelmail/config.php
Bertan, aldaketa hauek egin ditut:
$provider_uri='http://soidal.no-ip.org/';
$domain='soidal.no-ip.org';
Hau egin ondoren, Apache web zerbitzaria berrabiarazi dut:
/etc/init.d/apache2 restart
Horrela, Apache web zerbitzaria berrabiarazi eta Squirrelmail bezeroa eguneratu da, “soidal.no-
ip.org” host-era egokituz.
1.2.5- POSTA PROBATU
Postfix eta Squirrelmail errekonfiguratu ondoren, posta zerbitzariak funtzionatzen duela
probatu dut.
Horretarako, posta zerbitzuan sartu naiz, Squirrelmail bezeroan, baina kasu honetan, No-IP
zerbitzuko host-aren helbidea erabiliz:
http://soidal.no-ip.org/mail
Bertan, “user1” erabiltzailearekin logeatu naiz, eta “user2@soidal.no-ip.org” erabiltzaileari korreo
bat bidali diot.
Gero, “user2” erabiltzailearekin hasi dut saioa, eta mezua ondo jaso du, beraz, posta zerbitzuak
funtzionatzen du.
52. Tolosaldea TLHI
51
Software eta Hardware librea
Azkenik, hau bera internet bidez ere probatu dut, nire sare lokaletik kanpo atzituz, eta beste mezu
bat bidaliz, eta oraingoan ere ondo funtzionatu du, beraz, posta zerbitzariak eta bezeroak ondo
funtzionatzen dute, bai sare lokalean eta baita interneten ere.
Honekin, posta zerbitzariaren atala bukatu dut.
2- ZENBAKIEN JOKOA
Software librearekin jarraitzeko, oraingo honetan kode askeko zenbakien joko bat
programatuko dut erdi mailako C lengoaian.
Hau, Ubuntu sistema eragilea duen ordenagailu batean egingo dut. Testu huts batean idatziko dut,
eta Ubuntu sistema eragileak duen “gcc” (GNU Compiler Collection) konpilagailua erabiliz
konpilatuko dut.
C lengoiaia, erdi mailako programazio lengoiai da, baina maila altuko beste programazio lengoaien
estruktura antzekoak erabiltzen ditu, eta aldi berean, maila baxuko ezaugarri asko ditu.
C lengoaian sortutako programek, “.c” luzapena izango dute, eta hauek konpilatzean, luzapena
galduko dute.
2.1- AZALPENA
Joko honen helburua, 0-100 arteko zenbaki bat asmatzea izango da. Zenbaki hau, ausaz
sortuko du programak, eta aldi bakoitzean desberdina izango da, sistemaren orduaren araberakoa
izango delako.
Zenbaki hau asmatzeko, erabiltzaileak 6 saiakera izango ditu, eta hasieran eta saiakera bakoitzaren
ondoren, erabiltzaileari zenbat saiakera geratzen zaizkion esango dio programak. Gainera, saiakera
bakoitzaren ondoren, programak bilatzen ari garen zenbakia sartutakoa baino txikiagoa edo
handiagoa den esango dio.
Erabiltzaileak zenbakia asmatuz gero, zoriondu egingo zaio, baina bestela, 6 saiakerak agortu
baditu, galdu egin duela esango dio, eta zenbakia zein zen erakutsiko zaio.
2.2- PROGRAMAREN KODEA
Programa idazteko, lehenengo “zenbakia.c” fitxategia sortu dut:
nano /home/erik/C/zenbakia.c
53. Tolosaldea TLHI
52
Software eta Hardware librea
Bertan, kode hau idatzi dut:
#include <stdio.h> //stdio.h liburutegia inportatu, irakurri eta idazteko
#include <stdlib.h> //stdlib.h liburutegia inportatu, ausazko zenbakientzako
#include <time.h> //time.h liburutegia inportatu, denbora erabiltzeko
void main()
{
int x,zenb,saiakerak; //Zenbaki osoen aldagaiak definitu
saiakerak=6;
srand(time(NULL)); //rand() funtziorako erroa definitu denboraren arabera, aldakorra
izateko
x=rand()%101; //Ausazko zenbakia sortu, 0-100 artean
printf("Sartu zenbaki bat 0-100 artean. 6 saiakera dituzun"); //Instrukzioak pantailan
inprimatu
scanf("%i",&zenb); //Zenbaki oso bat irakurri eta zenb aldagaian gorde
while (zenb!=x && saiakerak>0) //Ez badu zenbakia asmatu eta saiakerak dituen
bitartean
{
if (zenb<x) //Sartutako zenbakia txikiagoa bada
{
printf("X zenbakia HANDIAGOA da. Saiakerak=%i n",saiakerak-1); //Bilatzeko
zenbakia handiagoa dela esan eta saiakerak adierazi
}
else if (zenb>x) //Sartutako zenbakia handiagoa bada
{
printf("X zenbakia TXIKIAGOA da. Saiakerak=%i n",saiakerak-1); //Bilatzeko zenbakia
txikiagoa dela esan eta saiakerak adierazi
}
saiakerak--; //Saiakeren aldagaia eguneratu
if (saiakerak!=0) //Saiakerak ez baditu agortu
{
scanf("%i",&zenb); //Zenbaki berri bat irakurri
}
}
if (saiakerak==0) //Saiakerak agortu baditu
54. Tolosaldea TLHI
53
Software eta Hardware librea
{
printf("Galdu egin duzu! Zenbakia %i zen. n",x); //Galdu egin duela adierazi
}
else //Zenbakia asmatu badu
{
printf("Asmatu duzu! Zenbakia %i da. n",x); //Irabazi egin duela adierazi
}
}
Beraz, lehenengo, “#include” sententziarekin programak erabiliko dituen liburutegiak inportatuko
ditugu. Kasu honetan, hiru liburutegi erabiliko ditugu, eta ikusten den bezala, liburutegien luzapena
“.h” da.
“stdio.h” liburutegia, sarrera estandarretik (teklatua) irakurri eta irteera estandarrean (pantaila)
idatzi ahal izateko erabiliko dugu.
“stdlib.h” liburutegia, ausazko zenbakiak sortzeko erabiliko dugu, hau da, “rand()” funtzioa erabili
ahal izateko.
“time.h” liburutegia denborarekin lan egiteko erabiliko dugu, kasu honetan, “time()” funtzioa
erabiltzeko.
“main()” metodo nagusia da, eta honen barruan doa kode nagusi guztia.
Lehenengo, “x” (bilatzeko zenbakia), ”zenb” (sartutako zenbakia) eta “saiakerak” (saiakerak
zenbatzeko) aldagaiak definitzen dira.
Hasieran, saiakeren balioa 6 izango da, 6 saiakera dituelako.
Gero, ausazko zenbakia sortzeko, “rand()” funtzioa erabiltzen dugu, eta 101 zenbakiarekin modulua
eragiketa egitean, 0-tik 100-ra arteko zenbakiak hartuko ditugu. Hala ere, honen aurretik, “rand()”
funtzioaren erroa definitzen dugu “srand()” funtzioaren bidez. Honen balioa, sistemaren orduaren
araberakoa izango da, “time()” funtzioa erabili dugulako. Horrela, programa bakoitzean sortutako
ausazko zenbakia ezberdina izango da, erro desberdina duelako, bestela, beti zenbaki bera sortuko
zuen.
Ondoren, erabiltzaileari zenbakia sartzeko eskatzen zaio, eta gero, zenbaki oso hau “zenb”
aldagaian gordetzen da.
Horrela, zenbaki hau ez bada bilatzen ari garena eta saiakerak 0 baino gehiago diren bitartean,
sartutako zenbakia bilatzen ari garena baino handiagoa bada, hau adieraziko zaio, eta txikiagoa
bada ere, adierazi egingo zaio. Gainera, zenbat saiakera geratzen zaizkion ere adieraziko zaio.
Honen ondoren, saiakeren kontagailua eguneratu egingo da, saiakera bat gutxiago izanik, eta
saiakerak 0 baino gehiago badira, zenbaki berri bat irakurriko da.
Azkenik, erabiltzaileak zenbakia asmatu duen edo ez jakiteko, “if” sententzia bat erabiltzen da. “if”
sententzia honetara ailegatu bada, bi arrazoirengatik izan daiteke; zenbakia asmatu duelako, edo
saiakerak agortu dituelako. Beraz, saiakeren kontagailua 0 bada, zenbakia ez duela asmatu dakigu,
55. Tolosaldea TLHI
54
Software eta Hardware librea
eta beraz, galdu egin duela adieraziko zaio, eta zenbakia zein zen ere esango zaio.
Baina saiakerak 0 baino gehiago badira, zernbakia asmatu duela esan nahi du, beraz, asmatu egin
duela esango zaio, eta zenbakia zein den ere.
2.3- PROGRAMA KONPILATU
“zenbakia.c” fitxategia sortu ondoren, gorde egin dut, eta hau konpilatzeko, GNU/Linux
sistema eragileek ekartzen duten “gcc” konpilagailua erabili dut.
Programa konpilatzeko, agindu hau exekutatu dut terminalean:
gcc zenbakia.c –o zenbakia
Horrela, “zenbakia.c” fitxategia hartu, eta “-o” parametroaren bidez “zenbakia” fitxategia irteerako
fitxategi bezala sortu dut.
2.4- PROGRAMA EXEKUTATU
Jokoa exekutatzeko, lehenengo jokoaren direktorioan sartu naiz:
cd /home/erik/C
Gero, programa exekutatzeko, agindu hau erabili dut, horrela exekutatzen direlako C programa
guztiak:
./zenbakia
Horrela, jokoa exekutatu da terminalean. Bertan, partida bakoitzaren ondoren, programa ixten da,
eta berriro jolasteko, berriro exekutatuko dugu programa.
Ikusten den bezala, programa exekutatzeko agindua Arduino IDE exekutatzeko berdina da, hau ere
C lengoaian programatuta dagoelako.
2.5- SOFTWARE LIBRE BIHURTU
Orain arte egin dudan joko hau, ez da software librea, ez dudalako interneten publikoatu,
baina nire intentzioa hau software askea izatea da.
Programa bat kode askekoa izateko, honen kodea nonbaiten publikatuta egon behar da, edozeinek
kode hau erabili, aldatu eta hobetu ahal izateko.
Beraz, programa hau interneten publikatuko dut, edozeinek erabili ahal izateko.
56. Tolosaldea TLHI
55
Software eta Hardware librea
Hau, “Sourceforge” web gunean publikatuko dut. Web gune honek, kode askeko software asko
dauka, eta bertatik programa hauek deskargatzeko aukera dugu. Baina horrez gain, softwarea
igotzeko aukera ere badugu, eta hori da egingo dudana.
2.5.1- KONTUA SORTU
Lehenengo, “Sourceforge” web gunean erabiltzaile berria sortu dut. Horretarako, web orri honetan
sartu naiz:
https://sourceforge.net/user/registration
Bertan, informazio honekin sortu dut kontua:
Horrela, nire erabiltzailea sortu dut.
2.5.2- PROGRAMA PUBLIKATU
Programa publikatzeko, web orri honetan sartu naiz:
http://sourceforge.net/
Bertan, publikazio atalean sartu naiz:
Publish Publish Your Existing Project
Gero, proiektuaren izen eta helbidea aukeratu ditut:
57. Tolosaldea TLHI
56
Software eta Hardware librea
“Create” sakatu eta proiektua sortu da.
Proiektuaren informazioa sartu eta proiektua gorde da.
Gero, nire proiektu berri honen orrian sartu naiz:
https://sourceforge.net/projects/zenbakiaasmatu/
Bertan, “Files” atalean sartu naiz eta “Add File” sakatu dut. “Examinar” sakatu eta “zenbakia.c”
fitxategia aukeratu dut.
Gero, “Upload” sakatu eta fitxategia igo da. Azkenik, “Done” sakatu dut.
Horrela, nire jokoa Sourceforge web gunean igota geratu da:
Programa hau deskargatu ahal izateko, web orri honetan sartuko gara:
https://sourceforge.net/projects/zenbakiaasmatu/files/
Bertan, “zenbakia.c” fitxategiaren gainean sakatu eta fitxategia deskargatuko da:
58. Tolosaldea TLHI
57
Software eta Hardware librea
Orain bai dela programa hau software librea, eta edozeinek erabiltzeko aukera izango du.
59. Tolosaldea TLHI
58
Software eta Hardware librea
HARDWARE LIBREA
SARRERA
Proiektuaren atal honetan, hardware librea landuko dut, azkenaldian indar handia hartu
duena. Aspalditik software librea ezaguna zen, baina orain, hardware librea ere indarra hartzen
hasi da.
Hardware librea, zehazpen eta eskema diagrama askeko hardwarea da, hau da, nola eginda dagoen
jakitea posible da, eta hau eraldatzea ere. Beraz, software librea bezala da, baina softwarea izan
ordez, hardwarea, horregatik deitzen zaio hardware librea. Baina kasu honetan,
Software librearekin gertatzen den bezala, hardware askea izateak ez du esan nahi kodea dohainik
dela, hau da, ez da nahastu behar hardware librea eta dohaineko hardwarea, kasu batzuetan
ordaindu egin behar da.
Normalean, hardware eta software librea batera doaz, beraz, hardware librea, eskema askeko
hardwareari aplikatutako software librea dela esaten da.
Beraz, software librearen bidez hardware dispositiboak programatu eta maneiatu ditzakegu.
Hardware libreari dagokionez, proiektu asko daude honen inguruan; bideo-kontsolak, robotak,
plaka kontrolagailuak...
Proiektu honetan Raspberry Pi ordenagailua eta Arduino Uno plaka kontrolagailua landuko ditut.
Hauek, hardware libreko dispositiboak dira, beraien eskema eta egitura askea delako.
Alde batetik, banan-banan landuko ditut, beraien aplikazioak landuz, eta gero, bi hauen
elkarketaren bidez proiektu ezberdinak egingo ditut.
3.1- RASPBERRY PI
Raspberry Pi tamaina txikiko plakako eta kostu baxuko ordenagailu bat da, Erresuma Batuan
Raspberry Pi Fundazioa-k garatuta, eskoletan konputazioen zientzia bultzatzeko intentzioarekin.
Hala ere, denborarekin Raspberry Pi ordenagailua oso ezaguna bihurtu da, eta helburu horretaz
60. Tolosaldea TLHI
59
Software eta Hardware librea
gain, beste hainbat helburuentzako erabilia izan da, berarekin egindako proiektuak koste baxua
suposatzen dutelako.
Gainera, ordenagailu hau hain txikia izateak, proiektu ezberdinetarako erabili ahal izatea
suposatzen du; telebista adimendunak egiteko, globo aerostatikoak, robotak, kafe makina
adimendunak, NAS zerbitzariak...
Proiektu honetarako erabili dudan Raspberry Pi-a, B modeloa da, 512 MB-eko RAM memoria
duena.
Beraz, Raspberry Pi makinarekin proiektu ezberdinak egingo ditut, baina lehenengo, hau martxan
jarri behar da.
3.1.1- EZAUGARRIAK
Raspberry Pi ordenagailuaren ezaugarriak ondorengoak dira:
Socket: Broadcom BCM2835
CPU: ARM 1176JZF-S 700 MHz
GPU: Broadcom VideoCoreIV 1080p30
RAM: 512 MB
USB portuak: 2
Bideo sarrerak: MIPI CSI (Kamera modulorako)
Bideo irteerak: RCA, HDMI, DSI
61. Tolosaldea TLHI
60
Software eta Hardware librea
Audio irteerak: 3,5 mm-ko konektorea, HDMI
Sarea: 10/100 Ethernet RJ-45
Kontsumoa: 700 mA, 3,5 W
Elikadura iturria: 5 V (Micro-USB edo GPIO)
Ikusten den bezala, bere ezaugarriak ez dira oso indartsuak, plaka euslea oso txikia delako, baina
ezaugarri batzuk oso onak dira, adibidez, definizio altuko bideoa erreproduzitzeko gai dela.
Gainera, oso kontsumo baxua du, beraz, zerbitzari bezala erabiltzeko oso ondo dago.
3.1.2- FUNTZIONAMENDUA
Raspberry Pi-k ordenagailu normal batek bezala funtzionatzen du, elikadura iturritik energia
jaso ondoren piztu egiten da, eta disko gogorretik arrankatzen du, bertan dagoen sistema eragilea
kargatuz. Kasu honetan, disko gogorra SD memoria bat izango da.
Raspberry-k bi bideo konektore dituenez, bi pantaila motara konektatu dezakegu, HDMI pantaila
batera edo VDI? Pantailara. Errazena HDMI bidez konektatzea da, honek, bideo eta audioa ematen
dizkigulako, eta horrela ez dugu audioko irteera erabili behar.
Hala ere, edozein ordenagailu bezala, pantailarik gabe erabili dezakegu, urrutiko kontrolaren bidez,
beste ordenagailu batetik kontrolatuz.
3.1.3- MARTXAN JARRI
Raspberry Pi makina martxan jarri ahal izateko, hiru elementu gehiago behar ditugu; SD
memoria bat, sistema eragilea eta elikadura iturri bat, adibidez telefono mugikor baten
kargadorea.
Beraz, Raspberry Pi-a martxan jartzeko, lehenengo SD memoriaren barruan sistema eragile bat
sartu beharko dugu, eta gero SD memoria hau Raspberry Pi-n sartuko dugu. Azkenik, kargadorea
konektatuko dugu, eta hau automatikoki piztuko da. Ondo piztu bada, lehenengo Raspberry-ko led
gorri bat piztuko da, eta behin sistema eragilea kargatzean, beste led guztiak piztuko dira. Baina
gaizki arrankatu badu, led gorria bakarrik piztuko da.
3.1.3.1- ELIKADURA ITURRIA
Elikadura iturri bezala, normalean gaur egungo smartphone baten kargadorea erabiltzen da,
Mini-USB irteera duena, baina orokorrean Mini-USB irteera duen edozein dispositiboren
kargadorea erabili daiteke, adibidez MP3 erreproduktore batena.
62. Tolosaldea TLHI
61
Software eta Hardware librea
Kargadoreak gutxienez 5W eta 700mA eman behar ditu, baina 1000 mA baino gehiagokoa izatea
komeni da, makina ondo elikatzeko. Gutxiagokoa bada, arazoak egon daitezke.
Nire kasuan, nire Xiaomi MI2S smartphone-aren kargadorea erabili ditut, 5 V eta 1200 mA ematen
dituena.
3.1.3.2- SD MEMORIA
SD memoriez gain, MicroSD memoriak ere erabili daitezke, baina MicroSD-SD adaptagailu
bat beharko dugu. Hala ere, bi hauen kasuan, memoria Raspberry Pi makinarekin bateragarria izan
behar da, SD memoria guztiak ezin ditugulako erabili.
Bateragarriak izatea, beraien ezaugarrien menpe daude; fabrikatzailea, mota, tamaina, modeloa,
klasea...
Gure SD memoria bateragarria den jakiteko, web orri hau erabili dezakegu:
http://elinux.org/RPi_SD_cards
Bertan, Raspberry Pi-rekin bateragarriak diren SD memorien zerrenda dago, denborarekin
eguneratzen joaten dena, beraz, bertan begiratu dezakegu gure SD memoria bateragarria den ala
ez. Hala ere, ez daude SD memoria guztiak, beraz, gurea ez bada agertzen, probatu egin beharko
dugu, eta gainera, gero SD memoria hau zerrenda honetan gehitzeko aukera dugu.
SD memoria ez bada bateragarria, Raspberry Pi-k ez du arrankatuko, led gorri bat piztuko da
bakarrik, beraz, beste SD memoria bat beharko dugu.
Nire kasuan 8 GB-eko Sony Micro SD HC memoria erabili dut, eta hau Micro SD-SD adaptagailu
batekin erabili dut.
3.1.3.3- SISTEMA ERAGILEA
Raspberry-a martxan jartzeko hurrengo pausoa, SD memorian sistema eragile bat sartzea
da. Kasu honetan, Raspberry Pi-n ezin dugu edozein sistema eragile erabili, adibidez Ubuntu bat.
Beraz, Raspberry Pi makinarako egindako sistema eragile bat erabili beharko dugu. Hauetako
gehienak beste GNU/Linux sistema eragiletan oinarrituta daude, adibidez Raspbian (Debian),
Pidora (Fedora)...
Gainera, sistema eragile hauen irudiak ez dira “.iso” motakoak, “.img” motakoak baizik.
Sistema eragile hauek, internetetik deskargatu ditzakegu, software librea direlako, adibidez,
Raspberry Pi-ren web gune ofizialetik:
http://www.raspberrypi.org/downloads/
63. Tolosaldea TLHI
62
Software eta Hardware librea
Bertan, sistema eragile ezberdinak daude, eta gure beharren arabera hautatu beharko dugu:
Raspbian: Debian-en oinarritutako distribuzioa.
Pidora: Fedora-n oinarritutako distribuzioa.
OpenElec: XBMC media zentroa.
RaspBMC: XBMC media zentroa.
Risc OS: Linux ez den bestelako distribuzioa.
Arch Linux: Linux distribuzio arina.
Hala ere, beste web gune batzuetan ere sistema eragile gehiago daude, adibidez Retropie. Hau,
Raspbian-en oinarritutako distribuzioa da, bideo kontsola ezberdinen emuladoreak dituena.
Sistema eragile hauetako bat deskargatu ondoren, paketea erauzi eta “.img” artxiboa izango dugu.
Beraz, hurrengo pausoa sistema eragilea SD memorian instalatzea izango da.
3.1.3.3.1- Windows
Windows sistema eragilea erabiltzen ari bagara, lehenengo, SD memoria ordenagailuaren
SD slot-ean sartuko dugu, eta ez badu SD slot-ik, SD-USB adaptadore bat erabili dezakegu.
Gero, SD memoria FAT32 fitxategi sisteman formateatu behar izango dugu, horretarako,
dispositiboa aukeratuko dugu saguaren eskuineko botoia sakatuz, eta “Formatear” aukeratuko
dugu.
SD memoria formateatu ondoren, Win32DiskImager programaren bidez sistema eragilearen irudia
SD memorian grabatuko dugu. Programa hau, web orri honetatik deskargatu dezakegu:
http://sourceforge.net/projects/win32diskimager/
Behin paketea deskargatzean, erauzi egingo dugu, eta programa administrari moduan exekutatu.
Bertan, sistema eragilearen irudia aukeratu beharko dugu, eta SD memoriaren dispositibo letra.
Azkenik, “Write” sakatu eta irudia kopiatu arte itxarongo dugu.
Behin irudia grabatzean, programa itxi eta SD memoria aterako dugu.
3.1.3.3.2- Linux
Linux sistema eragilearen kasuan, ezin dugu Win32DiskImager programa erabili, beraz,
beste era batera egin beharko dugu. Horren ordez, bi aukera ditugu, ImageWriter ingurune
grafikodun programaren bidez grabatzea edo “dd” aginduaren bidez egitea.
64. Tolosaldea TLHI
63
Software eta Hardware librea
Bi kasuetan, lehenengo SD memoriaren dispositibo izena zein den jakin behar dugu, horretarako,
muntatutako dispositiboak listatuko ditugu agindu honen bidez:
df -h
Bertan, gure SD memoria /dev/sdc1 bezalako izen batekin agertuko da.
Gero, SD memoria formateatu egin beharko dugu. Horretarako, terminalean agindu hau erabili
dezakegu:
mkdosfs -I -F32 /dev/sdX
Hurrengo pausoa, irudia SD memorian grabatzea izango da. Horretarako, ImageWriter programa
erabiltzen badugu, hau Ubuntu-ren software zentrotik deskargatu ahal izango dugu. Programa hau
administrari bezala arrankatuko dugu.
Bertan, sistema eragilearen irudia hautatuko dugu, eta gero SD dispositiboa. “Write to device”
sakatu eta irudia kopiatuko da.
Baina horren ordez “dd” agindua erabiltzen badugu, agindu hau erabiliko dugu:
dd bs=4M if=2014-01-07-wheezy-raspbian.img of=/dev/sdc1
Ikusten den bezala, “if” atalean (sarrera) sistema eragilearen izena jarri dugu, eta “of” atalean
(irteera), SD dispositiboa.
Behin irudia kopiatzean, SD memoria prest izango dugu erabiltzeko.
Beraz, SD memoria Raspberry Pi-n sartuko dugu, eta kargadorea konektatuko dugu. Lehen esan
dugun bezala, ondo egin badugu, Raspberry-ko led guztiak piztuko dira, eta gaizki egin badugu,
bakarrik led gorria.
Beraz, sistema eragilea kargatuko zaigu, eta bertan, sistema konfiguratu ahal izango dugu.
3.1.3.4- URRUTIKO KONTROLA
Raspberry Pi-a kontrolatzeko, gehienetan urrutiko kontrolaren bidez egiten da, eta hori bi
eratara egin dezakegu; interfaze grafikoarekin edo gabe.
Hala ere, hau sistema eragilearen araberakoa da, baina orokorrean guztietan berdin egin daiteke.
3.1.3.4.1- SSH
Raspberry Pi-ra SSH bidez interfaze grafikorik gabe konektatzea erarik errazena da.
65. Tolosaldea TLHI
64
Software eta Hardware librea
Lehenengo, Raspberry Pi-ko sistema eragilean SSH zerbitzaria instalatu beharko dugu. Horretarako,
agindu hau erabiliko dugu:
apt-get install openssh-server
Horrela, Raspberry Pi-n SSH zerbitzaria izango dugu, eta Linux-eko SSH bezero batetik
konektatzeko, Raspberry-aren IP helbidea erabiliko dugu:
ssh erabiltzailea@IP
Adibidez, Raspbian sistema eragilean:
ssh pi@192.168.1.32
Horrela, erabiltzailearen pasahitza sartu ondoren, Raspberry-a SSH urrutiko kontrolerako protokolo
seguruarekin kontrolatu ahal izango dugu Linux makina batetik. Windows bezeroen kasuan, Putty
programa erabili ahal izango dugu, Raspberry-aren IP-a, erabiltzailea eta pasahitza sartuz.
3.1.3.4.2- Ingurune grafikoa
Raspberry Pi-aren urrutiko kontrola ingurune grafiko bidez egiteko, erreminta eta protokolo
ezberdinak daude; VNC, xrdp...
Nire kasuan, VNC protokoloa erabiliko dut. Horretarako, erreminta ezberdinak daude, baina nik,
Tightvncserver VNC zerbitzaria erabiliko dut.
Horretarako, Tightvncserver instalatu dut Raspberry-n:
apt-get install tightvncserver
Instalatu ondoren, martxan jarri behar da, agindu honekin:
vncserver :1
Horrela, VNC zerbitzaria martxan dago. Beraz, bertara konektatzeko, VNC bezero bat erabiliko
dugu.
Linux-en kasuan, Remmina erreminta erabili dezakegu. Hau, urrutiko kontrolerako Linux sistema
eragileek defektuz ekartzen duten erreminta da, protokolo ezberdinak onartzen dituena.
Kasu honetan, VNC protokoloa erabiltzen dudanez, Remmina ireki eta horrela konfiguratuko dut:
66. Tolosaldea TLHI
65
Software eta Hardware librea
“Conectar” sakatu eta konexioa irekiko da. Kasu honetan, Raspberry-aren IP helbidea adierazi
dugu, eta VNC protokoloaren defektuzko portua erabili dut; 5901.
3.1.5- PROIEKTUAK
Behin gure Raspberry Pi-a martxan dagoela, proiektu ezberdinak egin ditzakegu. Nire
kasuan, proiektu ezberdinak egitea pentsatu dut, eta hemen azalduko ditut.
3.1.5.1- WEBCAM ZERBITZARIA
Raspberry Pi-rekin egin dudan lehenengo proiektua, webcam zerbitzari bat izan da,
segurtasun kamera bat izango balitz bezala.
Horretarako, Logitech markako web kamera bat erabili dut.
3.1.5.1.1- Raspbian instalatu
Hau egiteko, Raspbian sistema eragilea erabili dut, beraz, Raspbian sistema eragilearen
irudia grabatu dut nire SD memorian. Hau, Linux makina batetik egin dut, beraz, SD memoria
bilatzeko, lehen aipatutako agindu hau erabili dut:
df -h
67. Tolosaldea TLHI
66
Software eta Hardware librea
Honen bidez, SD memoria /dev/sdc1 dela ikusi dut.
Gero, SD memoria formateatzeko, agindu hau exekutatu dut:
mkdosfs -I -F32 /dev/sdc1
Azkenik, Raspbian sistemaren irudia grabatu dut:
dd bs=4M if=2014-01-07-wheezy-raspbian.img of=/dev/sdc1
Beraz, SD memoria atera eta Raspberry Pi-n sartu dut, eta kargadorea konektatzean sistema
eragileak arrankatu du.
Bertan, logeatzeko Raspbian sistemaren defektuzko erabiltzailea eta pasahitza erabili ditut:
Erabiltzailea: pi
Pasahitza: raspberry
Beraz, Raspbian sistema erabili ahal izan dut, kontsola moduan, baina ingurune grafikoa
kargatzeko, agindu hau erabili dut:
startx
Honekin, Raspberry Pi martxan dago Raspbian sistema eragilearekin.
3.1.5.1.2- Raspbian konfiguratu
Raspbian sistema eragilea instalatu ondoren, hau konfiguratu egingo dut, aldaketa batzuk
eginez.
Raspbian konfiguratzeko, agindu hau exekutatu dut:
raspi-config
Bertan, lehenengo fitxategi sistema handitu dut, lehenengo aukera hautatuz:
1- Expand Filesystem
Horrela, sistemak hobeto funtzionatuko dugu. Hau, 4 GB baino gehiagoko SD memoriekin egingo
dugu.
Gero, erabiltzailearen pasahitza aldatu dut:
2- Change User Password
Bertan, nire pasahitza berria sartu dut
68. Tolosaldea TLHI
67
Software eta Hardware librea
3.1.5.1.3- Raspbian eguneratu
Raspbian sistema ere eguneratu dut, horretarako, lehenengo errepositorioen zerrenda
eguneratu dut:
apt-get update
Gero, eguneraketa hauek instalatu ditut:
apt-get upgrade
Azkenik, Raspbian-en eguneraketa agindu hau ere exekutatu dut:
rpi-update
Horrela, Raspbian sistema eragilea eguneratuta geratu da.
3.1.5.1.4- Sarea konfiguratu
Raspbian sistema eragilea konfiguratu eta eguneratu ondoren, sarea konfiguratu dut.
Honen kasuan, IP helbide estatiko bat eman diot, zerbitzari moduan funtzionatuko duelako, beraz,
IP helbidea beti berdina izatea komeni da.
Sarea konfiguratzeko, “interfaces” fitxategia editatu dut:
nano /etc/network/interfaces
Bertan, informazio hau idatzi dut:
auto eth0
iface eth0 inet static
address 192.168.1.32
netmask 255.255.255.0
gateway 192.168.1.1
Horrela, “eth0” interfazea konfiguratu dut estatikoki, “192.168.1.36” IP helbidea emanez, eta “/24”
69. Tolosaldea TLHI
68
Software eta Hardware librea
maskara jarri diot. Gainera, ate-bide bezala routerraren helbidea jarri dut, “192.168.1.1”.
Fitxategia gordetzeko “Control+o” sakatu dut, eta hau ixteko “Control+x”.
Ondoren, sarea berrabiarazi dut:
/etc/init.d/networking restart
Horrela, sarea berrabiarazi da, eta Raspberry Pi-k sareko konfigurazio berria hartu du.
3.1.5.1.5- Web kamera konektatu
Web kamera martxan jartzeko, Raspberry-a berrabiarazi dut, eta hau piztearekin batera
kamera konektatu dut USB portu batera, horrela, Raspberry-ak hasieratik detektatuko du kamera.
Kamera konektatu ondoren, Raspberry-k ondo detektatu duela frogatu dut, horretarako, agindu
hau erabili dut:
lsusb
Agindu honekin, USB dispositibo guztiak listatu ditut:
Ikusten den bezala, web kamera lerro honetan agertzen da:
Bus 001 Device 003: ID 046d:082b Logitech, Inc.
Beraz, web kamera ondo detektatu du sistemak.
Hala ere, web kamera zerbitzariarekin hasi aurretik, kamerak Raspberry Pi-n funtzionatzen duela
frogatu dut. Horretarako, “Luvcview” programa erabili dut. Hau, web kamera erabili ahal izateko
erreminta sinple bat da.
Luvcview terminaletik instalatu dut agindu honekin:
apt-get install luvcview
Programa instalatu ondoren, exekutatu egin dut, terminalean hau idatziz:
70. Tolosaldea TLHI
69
Software eta Hardware librea
luvcview
Horrela, web kameraren grabazioa ikusi ahal izan dut, beraz, honek ondo funtzionatzen du.
3.1.5.1.6- libv4l-0 liburutegia instalatu
Ondoren, Raspberry Pi-k kamera dispositiboarekin hobeto funtzionatzeko, “libv4l-0”
liburutegia instalatu dut. Hau, ez da guztiz beharrezkoa, baina gomendagarria da, eta web kamera
batzuen kasuan, hau gabe ez du ondo funtzionatuko.
Nire kasuan, gero bideo streaming-a egiteko erabiliko dudan programak web kamerarekin ondo
funtzionatzeko instalatu dut.
“libv4l-0” liburutegia instalatzeko:
apt-get install libv4l-0
Horrela, liburutegia instalatu da.
3.1.5.1.7- Motion instalatu
Motion, Linux sistema eragilerako web kamera erabiltzeko programa da, bideoa
mugimendu detektorea. Honek, bideo streaming-a egitea ahalbidetzen digu, hau da, web kamerak
grabatutakoa sarean ikusgai egon ahal izatea, intranet edo interneten. Gainera, mugimendua
nabaritzen duenean, irudiak eta bideoa gordetzen hasten da, eta hauek ordenagailuan gordetzen
dira.
Hau, kode askeko softwarea da, eta C lengoaian programatuta dago.
Motion programa instalatzeko agindu hau erabili dut:
apt-get install motion
Horrela, programa instalatu da, baina orain konfiguratu egingo dut, nire kameraren arabera.
3.1.5.1.8- Motion konfiguratu
Motion programa konfiguratzeko, “motion.conf” eta “motion” fitxategietan aldaketak egin
ditut.
Lehenengo, “motion.conf” fitxategia editatu dut, Motion programaren konfigurazio fitxategia:
nano /etc/motion/motion.conf
71. Tolosaldea TLHI
70
Software eta Hardware librea
Bertan, aldaketa hauek egin ditut:
daemon on #demoinioa aktibatu
webcam_port 605 #Webcam streaming-erako portua
webcam_localhost off #Webcam-a bakarrik Raspberry-n ikustea desgaitu; sarean
atzigarri izateko.
control_port 8080 #Webcam-a konfiguratzeko portua
control_localhost off #Webcam-a bakarrik Raspberry-n konfiguratzea desgaitu; sarean
konfiguragarria izateko
Fitxategia gorde eta itxi egin dut.
Ondoren, “motion” fitxategia editatu dut:
nano /etc/default/motion
Bertan, aldaketa hau egin dut:
start_motion_daemon yes #Motion-en demonioa hasieran aktibatzeko
Fitxategi hau ere gorde eta itxi egin dut.
Horrela, Motion konfiguratu dut, eta programa hau Raspberry Pi-a arrankatu ondoren hasiko da
martxan.
Aldaketa hauek aplikatu daitezen. Motion zerbitzua berrabiarazi dut:
service motion restart
Horrela, aldaketak aplikatu dira eta Motion programa erabiltzeko prest dago. Kasu honetan,
Motion zerbitzua berrabiarazi dut, baina hau hasi eta gelditu ere egin daiteke.
Motion zerbitzua hasteko:
service motion start
Motion zerbitzua gelditzeko:
service motion stop
72. Tolosaldea TLHI
71
Software eta Hardware librea
Hurrengo pausoa, bideo streaming-a martxan jartzea izango da.
3.1.5.1.9- Streaming-a hasi
Motion programa eta web kameraren bidez bideoa sarean ikusgarri egin ahal izateko,
“motion” agindua erabiliko dugu.
Motion zerbitzuak bideoa soilik grabatu nahi badugu, agindu hau erabiliko dugu:
motion
Baina bideoa grabatzeaz gain, irudiak atera eta gordetzea ere nahi badugu, “-n” parametroa
gehituko diogu:
motion -n
Horrela, irudiak ere gordeko dira, baina hau ez da oso gomendagarria, argazki asko gordetzen
direlako, eta gehienetan ez da beharrezkoa. Hala ere, “motion” agindua soilik erabiltzen badugu
ere, argazkiak gordetzen dira mugimendua detektatzean, eta ez denbora guztian, eta hau hobea
da, disko gogorreko leku gutxiago okupatzen dugulako.
3.1.5.1.10- Motion nabigatzailetik konfiguratu
Motion programa “motion.conf” fitxategiaren bidez konfiguratzeaz gain, saretik ere
konfiguratu dezakegu. Horretarako, web nabigatzailean Raspberry-aren IP helbidea eta
konfigurazio portua jarri behar ditugu:
http://192.168.1.36:8080
8080 portua erabili dut, lehen konfigurazio fitxategian jarri dudalako.
Bertan, interfaze grafiko bidez Motion programa konfiguratu eta aldaketak egin ahal izango ditugu.
3.1.5.1.11- Streaming-a ikusi
Motion programak grabatutako bideoa ikusi ahal izateko ere, web nabigatzaile bidez egingo
dugu. Kasu honetan ere, Raspberry-aren IP helbidea erabiliko dugu, baina orain streaming-erako
konfiguratu dugun portua:
http://192.168.1.36:605
Ikusten den bezala, 605 portua erabili dut, lehen konfigurazio fitxategian azaldu dudalako.
Denak ondo funtzionatzen badu, web kameraren grabazioa ikusi ahal izango dugu, eta honen