Főoldal

2010. június 28., hétfő

RCS mini hogyan

Biztosan már mindenkivel előfordult hogy konfigolás után működött a rendszer majd hirtelen valami történt és a szolgáltatások akadoznak, a beállítások módosultak. Ez bekövetkezhet a kedves kollégák munkájaként is, de akár a saját figyelmetlenségünk következtében. Megfontolandó ilyenkor egy vátozáskövető rendszer kiépítése, amivel a fontosabb konfigfájlokról készíthetünk lenyomatot. Ha hálózati támogatással szeretnénk használni akkor a CVS az erre alkalmas program, nagyon sokat segíthet ha pl. programozók vagyunk és egy nagy projektben veszünk részt. A CVS segítségével a megváltozott forráskód mindenkihez eljuthat, nem kell kézzel másolgatni, FTP-zni stb. Ha csak egy gépen szeretnénk nyilvántartani a változásokat tökéletes választás az RCS.

Első lépés, telepítsük a programot:

test:~# apt-get install rcs
Csomaglisták olvasása... Kész
Függőségi fa építése
Állapot adatok olvasása... Kész
Az alábbi ÚJ csomagok lesznek telepítve:
rcs
0 frissített, 1 újonnan telepített, 0 eltávolítandó és 5 nem frissített.
Letöltés az archívumokból: 326kB
E művelet után további 606kB lemez-területetet használok fel.
Letöltés:1 http://ftp.bme.hu lenny/main rcs 5.7-23 [326kB]
Letöltve 326kB 42s alatt (7636B/s)
Új csomag kiválasztása: rcs.
(Adatbázis olvasása ... Most 25287 fájl és könyvtár telepített.)
Kicsomagolás: rcs innen: .../archives/rcs_5.7-23_i386.deb ...
Processing triggers for man-db ...
Beállítás: rcs (5.7-23) ...
Ha feltelepítettük hozzuk létre az RCS tárolóját:

test:~# cd /
test:/# mkdir RCS
Ezután vegyük fel a kívánt fájlokat a tárolóba. Ha pl. a /etc könyvtár fájljait akarod figyelni akkor edd ki ezt a parancsot ( az alkönyvtárakat nem veszi figyelembe). Az egész könyvtárat nem ajánlom másolni, néhány fájllal, pl. nekem adott ki ilyen hibaüzit( ez már a co kimenete lesz) A csillag helyébe a fontosabb fájlok neveit helyettesítsd be. Ha lusta vagy mint én, akkor készíts egy szöveges fájlban egy listát a fontos fálokról. Minden sorban legyen egy fájlnév abszolút eléréssi úttal. Ha írsz hozzá egy szöveges fájlból sorokat beolvasó shel scriptet, ami for ciklussal még a sorokat be is helyettesíti a * helyébe, akkor sok időt megtakaríthatsz:


co: RCS/alternatives,v: No such file or directory
co: RCS/amavis,v: No such file or directory
co: RCS/apparmor.d,v: No such file or directory
co: RCS/apt,v: No such file or directory

test:/# cd /etc
test:/etc# ci -i *
Ezután a fűjlokhoz egyenként adhatsz leírást, de szerintem egy passwd nevű fájlról úgy is tudod hogy micsoda xD. Ha . ot ütsz akkor továbbugrik. A fájlt eltávolítja az eredeti helyéről, így tudjuk kikérni:

test:/etc# co *
Ez visszaállítja a fájlokat. Hogy dolgozni is tudjunk rajta kérjük ki lockolva:

test:/etc# co -l *
Ha szerkesztettük a fájlt rakjuk vissza és unlockoljuk:

test:/etc# ci -u *
Most nézzük azt, hogyha gond van mit kellene tenned! Megváltozott mondjuk az rc.local fájlod és a benne lévő tűzfal scripteket is rendesen összedúrták. Valahogyan össze kéne hasonlítanunk:

test:/etc# rcsdiff rc.local
Ez megmutatja a változásokat.

olvass tovább...

2010. június 27., vasárnap

Indítási sciptek létrehozása

Ha elindul a számítógépünk általában a kiszolgáló programok vele együtt elindulnak. Néha szükséges lehet hogy mi magunk is megszabhassuk, miylen program, mikor induljon el. Ezt fogom most bemutatni a pure-ftpd segítségével.
Először is tisztázzuk a linux működési szintjeit:

1 Single-User Mode Does not configure network interfaces, start daemons, or allow non-root logins.[3]
2 Multi-User Mode Does not configure network interfaces or start daemons.[4]
3 Multi-User Mode with Networking Starts the system normally.[5]
4 Not used/User-definable For special purposes.
5 X11 As runlevel 3 + display manager.

Nekünk a 2. runlevel kell, amikor belép erre a linuxunk akkor fogja végrehajtani a scriptet.
Írjuk is meg:

test:~/pure-ftpd-1.0.29# nano /usr/local/sbin/pure-ftpd-start.sh
A fájl tartalma ez legyen:

#!/bin/sh
echo "Pure-Ftpd 1.0.29 indítása..."
/usr/local/sbin/pure-ftpd -b -B -E &
Ha ezzel megvagyunk, állítsunk be hogy futtatható legyen az állomány:
test:~# chmod 700 /usr/local/sbin/pure-ftpd-start.sh
És most jön a lényegi rész: be kell linkelnünk a fenti fájlt az rc2.d könyvtárba. A link neve az alábbi részekből áll: parancs betűjele indítási_prioritás program_neve. Pl. ha a link neve ez S14pureftpd, ez azt jelenti hogy induljon el a program (Start), 14. helyen. A leállításához K néven kell lezdenünk a linket (Kill).

test:~# ln -s /usr/local/sbin/pure-ftpd-start.sh /etc/rc2.d/S14pure
Ha újraindítottuk a gépünket láthatjuk is ahogy elindul a pure-ftpd is. Hasonló módon indíthatunk saját scripteket.
olvass tovább...

A Pure-ftpd

Az ftp szolgáltatást ma is sokrétűen használhatjuk, gondoljunk csak arra amikor a weblapjainkat feltöltjük a webszerverre. FTP-t használ pl. a Rapidshare is. Egy egyszerű, gyors és biztonságos módja a fájlok hálózaton történő átvitelére. A pure-ftpd a biztonságot tartja legjobban szem előtt, ezenkívül jelenleg is támogatott és fejlesztett, elérhető csomagban és forrásként, valamint betartja a szabványokat is. Használhatunk TLS titkosítást, atentikálhatunk SQL és LDAP adatbázisból is, állíthatunk be fel és letöltési arányt, sávszélességkorlátozást, használhatjuk az antiwarez funkciót.
Hozzunk létre egy csoportot és egy felhasználót:

test:~# groupadd _pure-ftpd
test:~#useradd -g _pure-ftpd -d /var/empty -s /etc _pure-ftpd

Telepítsük forrásból, hiszen nagyon egyszerű így is. Először letöltjük a forrást, kitömörítjük, konfiguráljuk és utána installáljuk:

test:~# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.29.tar.gz
test:~# tar -xvzf pure-ftpd-1.0.29.tar.gz
test:~# cd pure-ftpd-1.0.29
test:~# ./configure --with-everything --with-virtualchroot --with-paranoidmsg --with-language=hungarian
test:~# make install-strip

A parancsok kimenetét kihagytam, az egyéb konfigurációs beállítások megtekintéséhez a make -h juthatunk. Ha ezekkel megvagyunk létrejöttek a futtatható állományok a /usr/local/{bin,sbin} alatt. A program elindításához a /usr/local/sbin/pure-ftpd & parancsot kell kiadnunk. Az egyes funkciókat kapcsolókkal állíthatjuk be, amelyeket az & jel elé kell szúrnunk. Itt egy példa:


test:~# /usr/local/sbin/pure-ftpd -b -B -E &
A kapcsolók listája:

-0 --notruncate
-1 --logpid
-4 --ipv4only
-6 --ipv6only
-8 --fscharset
-9 --clientcharset
-a --trustedgid
-A --chrooteveryone
-b --brokenclientscompatibility
-B --daemonize
-c --maxclientsnumber
-C --maxclientsperip
-d --verboselog
-D --displaydotfiles
-e --anonymousonly
-E --noanonymous
-f --syslogfacility
-F --fortunesfile
-g --pidfile
-G --norename
-h --help
-H --dontresolve
-i --anonymouscantupload
-I --maxidletime
-j --createhomedir
-k --maxdiskusagepct
-K --keepallfiles
-l --login or :
-L --limitrecursion
-m --maxload
-M --anonymouscancreatedirs
-N --natmode
-o --uploadscript
-O --altlog :
-p --passiveportrange
-P --forcepassiveip
-q --anonymousratio :
-Q --userratio :
-r --autorename
-R --nochmod
-s --antiwarez
-S --bind
-t --anonymousbandwidth
-T --userbandwidth or []:[]
-u --minuid
-U --umask
-v --bonjour
-V --trustedip
-w --allowuserfxp
-W --allowanonymousfxp
-x --prohibitdotfileswrite
-X --prohibitdotfilesread
-y --peruserlimits :
-Y --tls <0:no>
-z --allowdotfiles
-Z --customerproof

Próbáljuk is ki a friss szerverünket! Jelenleg PAM-ből autentikálunk így a felhasználóink máris elérik a home könyvtárukat. Vagy mégtöbbet? Elérhetik az egész fájlrendszert? Egy elegáns mozdulattal szerkesszük a passwd állományunkat és zárjuk a usereket a home könyvtárukba!

A felhasználó passwd beli bejegyzése így nézett ki:

ftpnek:x:1007:1007:,,,:/home/ftpnek:/bin/bash
És miután átírtam:

ftpnek:x:1007:1007:,,,:/home/ftpnek/./:/bin/bash
A trükk a home könyvtár elérési útja mögé illesztett /./ :D

Megemlíteném a program fejlesztésében résztvevő magyarokat, Farkas Jánost, Varga Róbertet és Bánhalmi Csabát.
olvass tovább...

2010. június 13., vasárnap

Postfix UCE Hogyan

Az alábbi linken elérhető egy nagyon jó kis leírás a postfix beépített spam elleni védelméről ráadásul magyarul. Ajánlom mindenkinek az elolvasását:
http://chains.ch/docs/postfix-UCE-HOWTO-hu.html olvass tovább...

Postfix clamavval és amavissal

Már van egy maildires levelező szerverünk, bővítsük vírus és spamszűréssel!

A vírusrtáshoz a calamavot fogom használni, ez egy unix-os vírusirtó alkalmazás. Az adatbázisát önmagától frissíti és ingyenes. Spamszűréshez a sapmassassint telepítem, ez egy nyílt forráskódú Perl nyelven írt program, amely a leveleinket pontozza, és ha elértek egy bizonyos határt akkor SPAM-nek minősíti. A clamav és spamassassin együttes használatához az amavis szűrőre lesz szükségünk.

Telepítsük a clamav, clamav-daemon, amavis, spamassassin csomagokat:

test:~# apt-get install clamav-daemon amavis spamassassin

Most feltelepítettük a vírusirtót és a spamszűrőt, de még nincsenek beemelve a levéltovábbítási folyamatba. Mivel a postfix moduláris felépítésű, akár saját magunk készítette scripteken is átengedhetjük a leveleket. Most az amavis-t kell beemelni, hogy az szűrni tudja a clamavval közösen a vírusokat illetve a spamet a spamassassinnal.

Szerkesszük a master.cf-et! ( a fájl egy részlete, kiemelve az új beillesztendő sorokkal:)

#
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").

# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
#
==========================================================================
smtp inet n - - - - smtpd
-o content_filter=smtp-amavis:[127.0.0.1]:10024

...
smtp-amavis unix - - n - 5 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - - smtpd
-o local_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o strict_rfc821_envelopes=yes

A piros sort a fölötte lévő az alap konfogfájlban megtalálható sor alá kell beszúrni. Ez mondja meg a postfixnek, hogy a loopback címre továbbítsa először a levelet (a 10024-es portra). A zöld rész egyéb beállításokat tartalmaz, később részletezni fogom őket. Ezt a fájl aljára illesszük oda.

Az amavis és calamav együttműködéséhez az kell, hogy a clamav az amavis felhasználója nevében fusson, ennek megfelelően változtassuk meg a jogosultságokat az általa használt könyvtárakon, illetve a konfigurációs állományaiban. A /etc/clamav/clamd.conf fájlban keressük meg a User clamav sort és írjuk át User amavis-ra, a LocalSocketGroup clamavot LocalSocketGroup amavis-ra valamit a freshclam.conf-ban a DatabaseOwner clamav-ot DatabaseOwner amavis-ra. Változtassuk meg néhány könyvtár tulajdonosát:

test:~# chown -R amavis:amavis /var/{run,log,lib}/clamav

Ezzel túl is vagyunk a munka oroszlánrészén, indítsuk újra a postfixet, clamavot, amavist és jöhet a tesztelés! Küldhetünk helyileg is levelet a mailx segítségével, de ha feltelepítettük a courier-pop csomagot akkor akár egy levelezőkliensről is a POP3 protokoll segítségével ( a levelek letöltéséhez kell). Ha minden jól megy hasonlót kell látnunk a /var/log/mail.log fájlban:

Jun 11 17:04:02 test postfix/smtpd[3163]: connect from unknown[192.168.56.2]
Jun 11 17:04:02 test postfix/smtpd[3163]: A71D72603D: client=unknown[192.168.56.2]
Jun 11 17:04:02 test postfix/cleanup[3165]: A71D72603D: message-id="<201006111704.04549.tibi@root-tech.hu>
Jun 11 17:04:02 test postfix/qmgr[2333]: A71D72603D: from=, size=155922, nrcpt=1 (queue active)
Jun 11 17:04:02 test postfix/smtpd[3163]: disconnect from unknown[192.168.56.2]
Jun 11 17:04:02 test postfix/smtpd[3130]: connect from localhost[127.0.0.1]
Jun 11 17:04:02 test postfix/smtpd[3130]: EB2AC26040: client=localhost[127.0.0.1]
Jun 11 17:04:02 test postfix/cleanup[3165]: EB2AC26040: message-id="<201006111704.04549.tibi@root-tech.hu>
Jun 11 17:04:03 test postfix/smtpd[3130]: disconnect from localhost[127.0.0.1]
Jun 11 17:04:03 test postfix/qmgr[2333]: EB2AC26040: from=, size=156314, nrcpt=1 (queue active)
Jun 11 17:04:03 test amavis[1902]: (01902-02) Passed CLEAN, [192.168.56.2] [192.168.56.2] ->
Jun 11 17:04:03 test postfix/smtp[3166]: A71D72603D: to=, relay=127.0.0.1[127.0.0.1]:10024, delay=0.44, delays=$
Jun 11 17:04:03 test postfix/local[3168]: EB2AC26040: to=, relay=local, delay=0.15, delays=0.11/0.02/0/0.02, ds$
Jun 11 17:04:03 test postfix/qmgr[2333]: A71D72603D: removed
Jun 11 17:04:03 test postfix/qmgr[2333]: EB2AC26040: removed

Láthatjuk hogy két levél keletkezett, az egyik amit én küldtem a kliensről, ez át lett passzolva a 127.0.0.1:10024-es portjára és visszakaptunk egy másik leellenőrzött levelet.

olvass tovább...

2010. június 12., szombat

Postfix alapok

A Postfix jelenleg az egyik legmegbízhatóbb, leggyorsabb, legbiztonságosabb és testreszabhatóbb levelező kiszolgáló program. Önmagában ugyan csak SMTP szolgáltatást nyújt, de POP3 és IMAP4 daemonokkal is könnyen kiegészíthető. Autentikáláshoz használhatunk PAM, LDAP, SQL adatbázisokat is. Mivel moduláris felépítésű a levéltovábbítási folyamatba könnyen beemelhetünk kölönböző programokat, scripteket, pl. spamszűrőt, vírusirtót stb... A Postfix képes a levelek Mime fejrészében regexp keresést végezni, így könnyedén kiszűrhetjük a nemkívánatos kiterjesztésű fájlcsatolmányokat. Képes SASL autentikációra ( PAM-ból, LDAP-ból stb...) , TLS-re és még sok apró, de annál lényegesebb funkcióra.
Először egy egyszerűbb, alap telepítést és konfigurálást mutatok be Lennyn.

test:~# apt-get install postfix postfix-ldap
Csomaglisták olvasása... Kész
Függőségi fa építése
Állapot adatok olvasása... Kész
Az alábbi extra csomagok kerülnek telepítésre:
openssl openssl-blacklist ssl-cert
Javasolt csomagok:
ca-certificates postfix-mysql postfix-pgsql postfix-pcre sasl2-bin resolvconf postfix-cdb ufw
Az alábbi csomagok el lesznek TÁVOLÍTVA:
exim4 exim4-base exim4-config exim4-daemon-light
Az alábbi ÚJ csomagok lesznek telepítve:
openssl openssl-blacklist postfix postfix-ldap ssl-cert
0 frissített, 5 újonnan telepített, 4 eltávolítandó és 4 nem frissített.
Letöltés az archívumokból: 8660kB
E művelet után további 14,1MB lemez-területetet használok fel.
Folytatni akarod [Y/n]? y
Letöltés:1 http://ftp.bme.hu lenny/main openssl 0.9.8g-15+lenny6 [1036kB]
Letöltés:2 http://ftp.bme.hu lenny/main openssl-blacklist 0.4.2 [6338kB]
Letöltés:3 http://ftp.bme.hu lenny/main ssl-cert 1.0.23 [13,1kB]
Letöltés:4 http://ftp.bme.hu lenny/main postfix 2.5.5-1.1 [1224kB]
Letöltés:5 http://ftp.bme.hu lenny/main postfix-ldap 2.5.5-1.1 [48,6kB]
Letöltve 8660kB 51s alatt (167kB/s)

Postfix is now set up with a default configuration. If you need to make
changes, edit
/etc/postfix/main.cf (and others) as needed. To view Postfix configuration
values, see postconf(1).

After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.

Running newaliases
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
Beállítás: postfix-ldap (2.5.5-1.1) ...
Adding ldap map entry to /etc/postfix/dynamicmaps.cf
Azért telepítettem a postfix-ldap csomagot is, mert később szeretnék egy OpenLDAP-ot alá tenni, de ezt akár a slapd telepítésekor is megtehettem volna. Ha feltepeítettük létrejött egy postfix nevű felhasználó és hozzá a csoport, valamint a /etc/psotfix alatt a konfigurációs állományok. A fő konfigfájl a main.cf, a master.cf pedig a modularitás miatt kell. Ismerkedjünk a main.cf-el először. A felépítése az alábbi:

opció = érték
A beállításokat a postfix reload paranccsal tölthetjük újra. A mynetworks rész jelenti azt, hogy milyen IP-kről fogadjon kérést a szervert. Itt feltétlenül legyen ott a loopback interfészünk IP-címe, ill. pl. a belső hálózatunk IP-je. A mailbox_command részt azért kommenteztem ki mert maildir formátumot akarok használni a levelek tárolására. Ez meggyorsítja a levelek elérését, mivel nem egy nagy fájlban csücsül az összes. Lockolható és NFS-en is használható. A home_mailbox = Maildir/ mondja meg hogy Maildirbe kézbesítse a leveleket a postfix. Az alap beállítások még a mailbox mérete, relay host beállítása aki továbbítja a levelünket, a domén, hostnév stb... Mentsük a fájlt, majd postfix reload!
Telepítsünk fel egy levelező klienst, ami létrehozza a legelső maildir könyvtárat a szerverünkön.

test:~# apt-get install mailx


Küldjünk egy levelet a root felhasználónak ( úgysem ő fogja megkapni, hanem a /etc/aliases fájlban definiált user, ha szerkesztjük ezt a fájlt utána ki kell adni a newaliases parancsot).

test:~# ps ax | grep postfix | mailx -s"maildirhez" root


Ez elküldi a ps ax | grep postfix parancs kimenetét a root felhasználóhoz társított felhazsnálónak. Nézzük meg a home könyvtárát és az új levelét! Ha meglestük, töröljük a levelet, majd a maildir könyvtárat másoljuk a /etc/skel alá. Így ha egy új felhasználót hozunk létre akkor automatikusan létrejön a maildir könyvtára. Ha POP3 vagy IMAP4 protokollokon is el akarjuk érni a postfixet, telepítenünk kell a courier-pop illetve courier-imap csomagokat.

Folytatás következik!

olvass tovább...

2010. június 7., hétfő

DNS tutorial


Első komolyabb bejegyzésemként a DNS-ről és a Bind9-ről szeretnék egy kicsit többet beszélni. Ahogy lesz időm, kiegészítem még, jelenleg ez egy működőképes leírás
Először egy kis elméleti alapozás a programról és a DNS-ről általánosan:

DNS alapok



Amikor beírunk egy címet egy alkalmazásba (pl. internetböngésző), akkor az alkalmazás meghív egy ún. resolver() könyvtári eljárást aminek a paramétere a cím. Ezt elküldi a beállított DNS szervernek, ami a saját adatbázisából megpróbálja feloldani a név-IP hozzárendelést. Ha ez sikerül akkor visszaküldi UDP csomagban az adott névhez tartozó IP címet.Ha nem sikerül, akkor a fölötte álló DNS szervert kérdezi meg, hátha ő tudja. Ez a folyamat egészen elhaladhat a root szerverekig, amikből összesen 13 van, A-M-ig jelölve. Minden root szerver elsődleges ( ún. top level) doménekért felel és „csak” annyit tudnak, hogy a DNS faszerkezetében melyik ágon kell elindulni hogy megkapjuk az IP-címet.




A DNS szervereknek lehetnek saját körzeteik, ezeket zónáknak hívjuk. A zónák rekordokból épülnek fel, ezek közül a legfontosabbak:

SOA A hatókör kezdete, ez az első rekord
A A név-IP cím hozzárendelésekre használjuk
NS Az adott zónáért felelős DNS szerverek nevét tartalmazza
MX Az adott zónába tartozó leveleket egy számítógépre irányítja
PTR A reverz zónában IP-hez rendel nevet
CNAME Kanonikus neveket rendelhetünk egy géphez, így több néven is elérhetjük
TXT Megjegyzéseket helyezhetünk el
SRV Erőforrás rekord
HINFO Az adott gépről adhatunk leírást






A névkomponensek maximálsan 63, a teljes név pedig 253 karakternyi lehet. Az angol ABC betűin kívül még használhatjuk a „-”-et illetve a számokat. Amikor tudjuk egy számítógép IP-címét, de a nevére vagyunk kíváncsiak, akkor fordított névfeloldást végzünk. Ekkor van szükségünk a reverz zónafájlra és a PTR rekordokra. A reverz zóna neve a kiszolgált hálózat IP címének azonosítójának változatlan oktetteiből épül fel, úgy hogy az oktetteket visszafelé írjuk fel és a végéhez illesztjük az „in-addr.arpa” szabványos kifejezést.
Ahhoz hogy saját zónákat üzemeltessünk tudnunk kell néhány fontos dolgot. Törvényileg szabályozva van, hogy minden körzethez tartoznia kell másodlagos névszervernek is, ráadásul másik hálózatban, más fizikai helyen és nagyon ajánlott másik internetszolgáltatónál
elhelyezni ( a legjobb ha másik AS-ben is van). A másodlagos névszervernek nincsenek saját zónái, azokat az elsődleges szerverről másolja le. Ha véletlenül kiesik a master szerverünk, akkor a másodlagos kit tudja szolgálni a kéréseket addig míg az első helyreáll.
Az elméletről ennyit, most jöjjön egy kis gyakorlati példa:

DNS beállítása debianon



Adott egy domén, legyen root-tech.hu és hozzá egy hálózati cím pl. 192.168.56.0/24. A telepítést és konfigurálást Debianon mutatom be, a többi disztribúción is nagyon hasonlóak a lépések. DNS szerverként a Bind9-et alkalmazom, de több választásunk is lehet, pl.pl djbdns, Xyria stb..., természetesen ezeket máshogy kell konfigurálni.

Szóval kezdjük is, bind9 telepítése:
test:~# apt-get install bind9
Ezután állítsd le amíg konfigurálod:
test:~# /etc/init.d/bind9 stop


Debianon a beállításokat tartalmazó könyvtár a /etc/bind. Itt több fájlt is látsz, ami db.-vel kezdődik az zónafájl, van ami kulcsokat tárol és vannak a named-del kezdődik, azok a konfig fájlok.
Ha saját zónákat szeretnél akkor a named.conf.local-t kell először szerkesztened valahogy így:

//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "root-tech.hu" {
            type master;
            file "/var/cache/bind/db.root-tech.hu";
};


zone "0.168.192.in-addr.arpa"
           type master;
           file "/var/cache/bind/db.56.168.192.in-addr.arpa";
};



A zone tagokkal kezded dekralálni a zónák nevét. A type szóval megadhatod a zóna típusát ami elsődleges szervereknél master, másodlagosaknál slave... Ha slave zónák lennének, akkor egy master szervertől kérnéd le a zónafájlokat. Ezt másodlagos dns szervereknél szokták alkalmazni. A file paraméter a zónafájl helyét adja meg, hivatkozhatsz rá abszolútan, vagy relatívan is. Az alsó zónáról pár szót: A nevéből látszik hogy ez egy reverse zóna ( az in-addr.arpa egy szabványos név, minden reverz zóna nevéhez oda kell illeszteni), ez azért kell hogy IP alapján névre tudj keresni. Mivel ez egy C osztályú cím, ebből az első 24 bit az állandó ( mert ha egy hálózatban vannak a gépek akkor a hálózat címük nem változik csak az állomásazonosító), ezért az utolsó oktettet el kell hagyni, hogy a PTR rekordok az értékeikkel kiegészíthessék őket.Pl. 1 a zóna nevével kiegészítve ezt adja: 10.56.168.192.in-addr.arpa . Ebből már látszik a normális ip-címe ami 192.168.56.1. Bővebben erről még a zóna fájloknál írok.
Ha beállítottad a named.conf.local-t, akkor jöhetnek a másolós dolgok. A db. empty fájlt kell átmásolni az named.conf.local-ban a file paraméternél deklarált nevekkel. Itt most db.root-tech.hu és db.56.168.192.in-addr.arpa. Tehát másolod és megadod hogy ezen a néven másolja át a /var/cache/bind alá. Ha ezzel is megvagy, akkor szerkeszteni kell őket. Először a db.root-tech.hu-t nézzük:

; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 86400
@ IN SOA test.root-tech.hu. root.localhost. (
2010060401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS test.root-tech.hu.
test IN A 192.168.56.1
root-tech.hu. IN MX 10 test
www IN CNAME test

A fájlban a kukac jel a zónát jelenti. A SOA rekord tartalmaz információkat a zónáról, sorrendben a gép nevét, a szerverért felelős személy e-mail címét és a Serial, Refresh, Retry, Expire, Negative Cache TTL értékeket.
A Serial egy sorszám, amelyet módosítanunk kell ha megváltoztattuk a zónafájlt. Érdemes „emberi” számokat hazsnálni, nálam ez a mai dátum megtoldva a 01-el. Ennek akkor van fontos szerepe, ha van másodlagos névszerverünk, mert az ebből az értékből tudja hogy újra le kell-e kérnie a zónafájlt.
A Refresh egy másodpercekben megadott érték, a másodlagos névszerverek ennyi időközönként kérik le a Serial értékét. Ha nem sikerül a lekérdezés, akkor a Retry-ben szereplő idő leteltével próbálkozik újból.
Az Expire a zóna adatainak érvényességét jelenti, ennyi ideig szolgáltatja a másodlagos névszerver a zóna rekordjait.
A Negative Cache TTL a hibás lekérdezések tárolásának ideját jelenti másodpercben.

A következő fontos dolog az a rekordok általános felépítése és típusa.

Név Élettartam Osztály Típus Érték
Az élettartam mező elhagyható.

Az IN az osztályt jelenti, szinte mindig ezt használjuk. Ha a név után nem írunk pontot, akkor a bind hozzáilleszti a névhez a zóna nevét, ezért nem írtam oda a www-hez és az ftp-hez sem. Ha pontot teszek a végére, akkor nem illeszti mögé, ilyenkor ki kell írni az FQDN nevét! (FQDN- Teljesen minősített körzetnév: a gép teljes neve, a végére pontot szokás írni)
Nézzük a reverse fájlt:



; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 86400
@ IN SOA test.root-tech.hu. root.localhost. (
2010060401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS test.root-tech.hu.
1 IN PTR test.root-tech.hu.



Ebbe már nem túrtam bele annyira, csak a PTR rekordot vettem fel ami az test.root-tech.hu gépre mutat( az IP címe ebből adódik hogy 192.168.56.1 ) és átírtam a localhostot . Itt vigyázz hogy ha nevet írsz akkor írd ki az FQDN nevét és zárd le ponttal, különben valami ilyesmit kapnál : test.56.168.192.in-addr.arpa :D

Most jöhet a named.conf.option-s szerkesztése, az ebben a fájlban tárolt beállítások minden zónára érvényesek amit kezelsz ( ha finomítani akarsz akkor a named.conf.local-ban az adott zónánál kell beszúrni a beállítást)!



A legfelső nameserver kifejezés után a loopback címed szerepeljen!
Most indítsd el a Bind9 et:
/etc/init.d/bind9 start
Ha hiba nélkül indult akkor jó, különben a syslog-ba írná be hogy mi a baja. Szintaktikai hibák szoktak lenni, figyelj oda hogy a tagokat pontosvesszővel kell lezárni ( kivéve ha a tagot kapcsoszárójel követi). És a kapcsoszárójel bezáró tagját is ;-el zárjuk. Ha olyan hibaüzenetet kapnál hogy a fájlnak nincs vége, akkor valószínűleg lemaradt egy aposztróf lezárása.
Ezután ellenőrizd hogy feloldja-e a neveket a bind. 3 féle dologgal szoktuk teszteni, a dig-gel, nslookup-al és a host-tal.
Próbáld a dig et először:
test:~# dig www.root-tech.hu

; <<>> DiG 9.5.1-P3 <<>> www.root-tech.hu ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16922 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.root-tech.hu. IN A ;; ANSWER SECTION: www.root-tech.hu. 86400 IN CNAME test.root-tech.hu. test.root-tech.hu. 86400 IN A 192.168.56.1 ;; AUTHORITY SECTION: root-tech.hu. 86400 IN NS test.root-tech.hu. ;; Query time: 2 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Fri Jun 4 20:25:25 2010 ;; MSG SIZE rcvd: 83 <
A válasznál figyelni kell hogy kitől jön a válasz, ha a loopback címről akkor jó, és ha visszaadta az IP-t akkor működik (figyeld majd az ANSWER részt is, ha 0 akkorvalami gond van, ha legalább 1 akkor viszont jó :) )
Üdv. Tibi
olvass tovább...

2010. június 6., vasárnap

Kezdetként...

Üdv!

Az új blogom legelső bejegyzését olvashatjátok. A legfőbb témáim az IT témakörből kerülnek majd ki, főleg a linux lehetőségeinek bemutatására koncentrálva. Magamról annyit, hogy egy 19 éves fiú vagyok, akit nagyon érdekel az IT. Sokat foglalkoztam a linuxxal többek között a suli szerverein is így önállóan tettem szert sok tapasztalatra. Néhány számomra érdekesebb és fontosabb hálózati, kiszolgáló oldali alkalmazásról fogok írni, akár több "fejezetben" is. Ne aggódjatok, a sületlenségeket megpróbálom mellőzni az írásaimból, de az építő kritikákat akármikor szívesen fogadom! Jelenleg egy szakközépiskola technikusi osztélyába járok mint hálózattelepítő- és üzemeltető, de már beadtam a felvételimet első helyen a BME-VIK mérnök informatika szakát megjelölve. Most van a vizsgaidőszak, de szerencsére nem kell izgulnom, erről később még írok. Itt köszönném meg egy jóbarátom és évfolyamtársam, Tiger munkáját akinek a blog bannerét, designját és a nevét is köszönhetem.

Üdvözlettel,
Tibi olvass tovább...