Copyright © 2005 Solucions i Serveis amb Sistemes Open Source (www.s3os.net)
Abstract
Aquest document ens ensenyarà a muntar un servidor de noms de dominis (DNS), servidor de fax, servidor d'adreces ip (DHCP) i servidor d'informació per a la xarxa (NIS) a la mateixa màquina, en aquest cas, a en POP.
Table of Contents
Començarem amb el DNS, en aquest cas utilitzarem la popular aplicació 'bind', Berkeley Internet Name Domain. Com hauríem de saber existeixen DNS primaris i secundaris, els veurem tots dos.
El nostre bind és capaç de servir múltiples dominis, però degut a la simplicitat d'afegir-ne més només explicarem com configurar el primer (s3os.net). D'aquí en endavant simplement haurem de copiar el fitxer de configuració i canviar el nom del domini.
Per instal·lar-lo res més senzill (tingueu en compte les 'flags')...
# USE="ssl ipv6" emerge bind
'ipv6' ens servirà per, en un futur, poder utilitzar el protocol IP versió 6 i 'ssl' serveix per tenir bind compilat per al socket de capa segura, potser més endavant ens serà útil.
El dimoni de bind es diu 'named' i com sempre el trobem a /etc/init.d/named
# /etc/init.d/named start # /etc/init.d/named stop # /etc/init.d/named restart
No cal explicació per a què fa cada comanda ;)
Bind utilitza els següents fitxers:
options {
directory "/var/bind";
// directori de bind per defecte
listen-on-v6 { none; };
// no escoltarà, de moment, el protocol IPv6
listen-on { 192.168.0.4; };
// escoltarà a la interfície especificada
//allow-query {
// 127.0.0.1;
//};
// si volem restringir l'ús squid a unes ip's concretes, descomentem \\
les tres línies anteriors
//query-source address * port 53;
// si tinguessim problemes amb el tallafocs podem descomentar la línia \\
anterior
pid-file "/var/run/named/named.pid";
// nom del fitxer que té el pid (program id) de bind
};
zone "." IN {
type hint;
file "named.ca";
};
// ve per defecte, no toquem res
zone "localhost" IN {
type master;
file "pri/localhost.zone";
allow-update { none; };
notify no;
};
// ve per defecte, no toquem res
zone "127.in-addr.arpa" IN {
type master;
file "pri/127.zone";
allow-update { none; };
notify no;
};
//ve per defecte, no toquem res
zone "la.peixera" IN {
type master;
file "pri/peixera.zone";
allow-update { none; };
notify no;
};
//acabem de definir que som servidors primaris del domini que \\
especifiquem al fitxer ./pri/peixera.zone
//en aquest cas serà per a la nostra LAN
zone "softwarelliure.com" {
type slave;
file "sec/softwarelliure.zone";
};
//acabem de definir que som servidors primaris del domini que \\
especifiquem al fitxer ./sec/softwarelliure.zone
//en aquest cas servirar cap a l'exterior (internet)
zone "s3os.net" {
type master;
file "pri/s3os.zone";
};
//acabem de definir que som servidors primaris del domini que \\
especifiquem al fitxer ./pri/s3os.zone
//en aquest cas servirar cap a l'exterior (internet)
Seguim amb els fitxers per cada domini...
$TTL 1W la.peixera. IN SOA pop.la.peixera. \\ admin.la.peixera. ( ;@ 1D IN SOA pop. root.pop. ( 2002081601 ; serial 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum ; ; 1D IN NS pop. ;* 1D IN PTR pop. la.peixera. IN NS pop.la.peixera. IN A 192.168.0.4 pop IN A 192.168.0.4 xeta IN A 192.168.0.1 peixglobo IN A 192.168.0.2 cangreju IN A 192.168.0.3 petxina IN A 192.168.0.7 bacalla IN A 192.168.0.6 tonyina IN A 192.168.0.20 legolas IN A 192.168.0.23 sardina IN A 192.168.0.21 anchova IN A 192.168.0.22 musclu IN A 192.168.0.5
$TTL 172800 s3os.net. IN SOA pop.s3os.net. admin.s3os.net. ( 2005050501 ; Serial 3600 ; Refresh 1800 ; Retry 2419200 ; Expire 172800 ) ; Negative Cache TTL s3os.net. IN NS pop.s3os.net. s3os.net. IN NS gauntlet.calestietes.com. IN A 213.97.38.203 IN MX 10 mail IN MX 10 correu isildur IN A 213.97.38.203 linode IN A 69.56.173.61 peixera IN A 80.33.93.12 www IN CNAME linode bugs IN CNAME isildur groupware IN CNAME isildur shop IN CNAME isildur smtp IN CNAME isildur pop3 IN CNAME isildur wiki IN CNAME isildur cvs IN CNAME isildur mail IN A 213.97.38.203 correu IN A 213.97.38.203
$ORIGIN . $TTL 172800 ; 2 days softwarelliure.com IN SOA pop.s3os.net. admin.softwarelliure.com. ( 2005042502 ; serial 3600 ; refresh (1 hour) 1800 ; retry (30 minutes) 2419200 ; expire (4 weeks) 172800 ; minimum (2 days) ) NS pop.s3os.net. NS gauntlet.calestietes.com. A 80.33.93.12 MX 10 mail.softwarelliure.com. MX 10 correu.softwarelliure.com. $ORIGIN softwarelliure.com. correu A 80.33.93.12 dns A 80.33.93.12 groupware CNAME dns mail A 80.33.93.12 peixera CNAME dns pop CNAME dns pop3 CNAME dns smtp CNAME dns www CNAME dns
Ja el tenim apunt, el reiniciem i ja podem dir-li a l'empresa a qui hem contractat els dominis que a partir d'ara nosaltres gestionarem el DNS.
# /etc/init.d/named restart
També hem de pensar a afegir la IP d'en POP al fitxer /etc/resolv.conf, d'aquesta manera els podrem 'parlar' amb els nostres peixos ;)
# echo>/etc/resolv.conf "nameserver 192.168.0.4"
Quan instal·lem un s.o., incorporem un nou dispositiu de xarxa... és freqüent que s'intenti connectar a un servidor dhcp perquè se li assigni una adreça IP. El dimoni DHCPD ens farà aquesta funció.
IFACE="eth0" # a quina interfície donarà servei el DHCP DHCPD_OPTS="-q" #opcions per defecte
option domain-name "s3os.net";
# A quin domini pertany
option domain-name-servers pop.s3os.net;
# Qui serà el servidor de dominis (ell mateix)
default-lease-time 600;
# Temps de concessió per defecte
max-lease-time 7200;
# Temps de concessió màxim
authoritative;
ddns-update-style ad-hoc;
# Opcions per defecte, necessàries
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.250;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
# Aquestes quatre opcions no són realment necessàries, però \\
ajuda al servidor
# a entre la topologia de la xarxa
option routers 192.168.0.5;
# Qui serà el router, en aquest cas és la IP interna d'en musclu
option domain-name-servers 192.168.0.4,80.58.0.33,80.58.32.97;
# Servidors de dominis per assignar als clients, per ordre: pop, \\
dns.telefonica.1, dns.telefonica.2
}
###################################################################
# A partir d'aquí estem assignant adreces estàtiques als nostres #
# servidors i a algun 'desktop' només veurem el primer exemple, #
# la resta segueixen el mateix mètode #
###################################################################
host peixglobo {
# Nom de la màquina
hardware ethernet 00:0C:6E:9F:DB:B9;
# Adreça física (MAC address)
fixed-address peixglobo.s3os.net;
# Va a mirar el fitxer de hosts quina adreça li pertany, en aquest \\
cas, a en peixglobo
}
host cangreju {
hardware ethernet 00:04:76:95:98:C7;
fixed-address cangreju.s3os.net;
}
host tonyina {
hardware ethernet 00:11:2F:D2:85:49;
fixed-address tonyina.s3os.net;
}
host legolas {
hardware ethernet 00:08:0D:E6:DB:0C;
fixed-address legolas.s3os.net;
}
host sardina {
hardware ethernet 00:08:0D:5F:6A:67;
fixed-address sardina.s3os.net;
}
host anxova {
hardware ethernet 00:40:05:0D:91:71;
fixed-address anxova.s3os.net;
}
host musclu {
hardware ethernet 00:08:54:09:98:C7;
fixed-address musclu.s3os.net;
}
host petxina {
hardware ethernet 00:08:54:09:98:D4;
fixed-address petxina.s3os.net;
}
host bacalla {
hardware ethernet 00:08:54:09:98:F2;
fixed-address bacalla.s3os.net;
}
127.0.0.1 localhost # Servers 192.168.0.1 xeta.s3os.net xeta 192.168.123.1 peixvolador.s3os.net peixvolador 192.168.0.2 peixglobo.s3os.net peixglobo 192.168.0.3 cangreju.s3os.net cangreju 192.168.0.4 pop.s3os.net pop 192.168.0.5 musclu.s3os.net musclu 192.168.0.6 bacalla.s3os.net bacalla 192.168.0.7 petxina.s3os.net petxina 192.168.0.200 musclu-wan.s3os.net musclu-wan # Desktops 192.168.0.20 tonyina.s3os.net tonyina 192.168.0.21 sardina.s3os.net sardina 192.168.0.22 anxova.s3os.net anxova 192.168.0.23 legolas.s3os.net legolas # Server alias 192.168.0.2 snodftp.s3os.net snodftp
Network Information Server, Servidor d'informació per a la xarxa. Veureu que els paquets necessaris comencen per 'yp', és curiós perquè és com es deia l'aplicació temps enrera, Yellow Pages (les pàgines grogues d'internet)
Aquesta aplicació ens pot arribar a proporcionar molta informació de la nostra xarxa als nostres hosts...
En aquest cas ens centrarem, valgui la xarxaundància, a centralitzar els hostnames i propietats d'usuari (noms, contrasenyes i grups). Com veurem tot seguit dividim l'explicació en dos passos (dues instal·lacions/configuracions), per al servidor i per als clients
La nostra xarxa no és excessivament gran, per aquest motiu s'obviarà l'opció de servidor esclau (slave), només són necessaris per a LANs de més de 500 hosts,aproximadament... aquests no és el cas ;-)
La configuració del servidor és la més simple...
# nano /etc/ypserv.conf # Host : Domain : Map : Security * : * : passwd.byname : port # * : * : passwd.byuid : port
Comentem la línia on apareix 'passwd.byuid', d'aquesta manera li diem que busqui els usuaris per al nom, no per l'uid.
# nano /var/yp/securenets
#hem de treure la següent línia...
0.0.0.0 0.0.0.0
#i posar-hi aquesta, o el corresponent rang de la nostra LAN
#de no fer-ho així deixariém obert el NIS a tothom!
255.255.255.0 192.168.0.0
# nano /var/yp/Makefile
#com ja s'ha dit només volem propietats d'usuari i hosts...
all: passwd group hosts
#comentem la resta
##rpc services netid protocols netgrp mail \
## shadow publickey # networks ethers bootparams printcap \
# amd.home auto.master auto.home auto.local passwd.adjunct \
# timezone locale netmasks
Finalment creem la base de dades del NIS...
# /usr/lib/yp/ypinit -m
# /etc/init.d/ypserv start # /etc/init.d/ypxfrd start # /etc/init.d/rpc.yppasswdd start # rc-update add ypserv default # rc-update add rpc.yppasswdd default # rc-update add rpc.ypxfrd default
'rpc.yppasswdd' és per poder canviar les contrasenyes desde un client NIS (ho veurem més endavant). 'rpc.ypxfrd' és per agilitzar el trànsit a grans xarxes, no està de més engegar-lo.
# cd /var/yp # make
Haurem de repetir l'operació a tots els hosts que volem que estiguin dins el NIS, el nostre conillet d'indies serà en Peixglobo
Necessitem l'aplicació 'ypbind', que és la part client. Veurem que aquest paquet depèn de 'yp-tools', és necessari perquè tot funcioni correctement.
Podem continuar...
# emerge ypbind
# mkdir /var/yp # nano /etc/yp.conf domain s3os.net broadcast o ypserver 192.168.0.4
Primer hem creat el directori on guardarà l'informació rebuda del servidor.
Tot seguit li hem dit qui serà el servidor.
Tot seguit li hem de dir que vagi a buscar els noms de hosts als diferents llocs amb un ordre molt concret: primer al servidor de nis, després al seu fitxer de hosts, i si no troba coincidències, utilitzarà el DNS especificats a /etc/resolv.conf.
# nano /etc/host.conf order nis,hosts,bind multi on
El mateix per als noms d'usuari, contrasenyes, etc.
# nano /etc/nsswitch.conf # /etc/nsswitch.conf: # $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/nsswitch.conf,v \\ 1.4 2002/11/18 19:39:22 azarah Exp $ passwd: nis files shadow: nis files group: nis files # passwd: db files nis # shadow: db files nis # group: db files nis passwd_compat: nis group_compat: nis shadow_compat: nis hosts: files nis dns services: nis [NOTFOUND=return] files networks: nis [NOTFOUND=return] files protocols: nis [NOTFOUND=return] files rpc: nis [NOTFOUND=return] files ethers: nis [NOTFOUND=return] files netmasks: nis [NOTFOUND=return] files netgroup: nis bootparams: nis [NOTFOUND=return] files publickey: nis [NOTFOUND=return] files automount: files aliases: nis [NOTFOUND=return] files
# /etc/init.d/ypbind start # rc-update add ypbind default
# ypcat passwd.byname usuari1:nDJGMjHMVMm4w:1005:442::/home/usuari1:/bin/bash usuari2:$1$idLhsrRc$pQoEOxz9bnhl4NILrflPR/:1002:442::/home/usuari2:\\ /bin/bash usuari3:kGe9Auuo1WeR.:1006:442::/home/usuari3:/bin/bash usuari4:$1$qdG0DFZl$JDP1gYKfEP9wI5riLKJYM1:1003:442::/home/usuari4:\\ /bin/bash usuari5:$1$hPm1HLYD$WYJW206IfoMfYeEzsTkKc/:1001:100::/home/usuari5:\\ /bin/bash usuari6:$1$qOH78kP5$D7Q7ZoeOnJdSlYCRmFIz8/:1004:442::/home/usuari6:\\ /bin/bash # ypcat host.byname 80.59.247.x client1 192.168.0.2 peixglobo.s3os.net peixglobo 192.168.0.6 bacalla.s3os.net bacalla 192.168.0.23 legolas.s3os.net legolas 127.0.0.1 localhost 80.33.93.12 s3os.s3os.net s3os 192.168.0.22 anchova.s3os.net anchova 192.168.0.4 pop.s3os.net pop 192.168.0.23 legolas.s3os.net legolas 192.168.1.200 musclu-wan.s3os.net musclu-wan 192.168.0.3 cangreju.s3os.net cangreju 192.168.0.22 anchova.s3os.net anchova 192.168.1.200 musclu-wan.s3os.net musclu-wan 192.168.0.3 albums.fotocan60.com 192.168.0.2 peixglobo.s3os.net peixglobo 192.168.0.2 snodftp.s3os.net snodftp 192.168.0.1 xeta.s3os.net xeta 192.168.0.6 cvs.s3os.net cvs 192.168.0.2 snodftp.s3os.net snodftp 192.168.123.1 peixvolador.s3os.net peixvolador 192.168.0.20 tonyina.s3os.net tonyina 192.168.0.6 cvs.s3os.net cvs 192.168.0.7 petxina.s3os.net petxina 192.168.0.3 www.softwarelliure.com 192.168.0.5 musclu.s3os.net musclu 192.168.0.21 sardina.s3os.net sardina 192.168.0.1 xeta.s3os.net xeta 192.168.0.3 groupware.softwarelliure.com groupware 192.168.0.20 tonyina.s3os.net tonyina 192.168.0.3 cangreju.s3os.net cangreju 80.59.247.x client2 213.97.38.x loft.elsxukurs.org loft
Les comandes que hem executat han anat a buscar l'informació al servidor de NIS, podem comprobar-ho mirant el nostre fitxer /etc/hosts
peixglobo / # ls -la /etc/hosts.conf ls: /etc/hosts.conf: No such file or directory peixglobo / #
Sembla que el fitxer no existeix... I és que realment no hi és, per tant la informació dels hosts la trobat al NIS ;)
peixglobo / # yppasswd nandelbosc Changing NIS account information for nandelbosc on pop.s3os.net. Please enter root password: Changing NIS password for nandelbosc on pop.s3os.net. Please enter new password: Please retype new password: The NIS password has been changed on pop.s3os.net. peixglobo / #
Perfecte! Primer ens ha demanat la contrasenya de root d'en pop, després la nova contrasenya per l'usuari nandelbosc.
Ja tenim el NIS configurat tant al servidor com als clients, mai més ens haurem de preocupar d'afegir, nous usuaris, hosts, ... màquina per màquina, ara ho tenim tot centralitzat en un sol fitxer
HylaFax, una senzilla, però potent aplicació que ens permet enviar i rebre fax a través de la línia telefònica.
REQUISITS:
Device Drivers ---> Character devices ---> Serial drivers ---> <M> 8250/16550 and compatible serial support [ ] 8250/16550 device discovery via ACPI namespace (4) Maximum number of non-legacy 8250/16550 serial \\ ports [ ] Extended 8250/16550 serial driver options
Amb aquest mòdul és suficient
A diferència de la majoria d'aplicacions, hylafax guarda els fitxers de configuració /var/spool/fax/etc/ enlloc del clàssic /etc/
Així doncs, editem els següents fitxers:
# cd /var/spool/fax/etc/ # nano FaxDispatch SENDTO=FaxMaster; FILETYPE=pdf; # format que s'enviarà els \\ faxos rebuts via mail case "$DEVICE" in ttyS4) SENDTO=frifax;; # els faxs rebuts al port serie \\ 4 s'envien a l'usuari frifax esac # aquest usuari l'hem creat \\ expressament per aquesta tasca # nano config.ttyS4 CountryCode: 34 # codi de país AreaCode: 972 # de regió FAXNumber: "+34 972 271855" # telèfon de la línia DialStringRules: etc/dialrules.europe # fitxer de normes que \\ volem utilitzar SessionTracing: 11 ################################## RecvFileMode: 0600 # DEIXEM LA RESTA DE PER DEFECTE # LogFileMode: 0600 ################################## RingsBeforeAnswer: 1 # depengerà al primer to SpeakerVolume: off # que el volum no molesti MaxRecvPages: 25 # màxim de pàgines que \\ volem rebre per fax # nano hosts.hfaxd localhost 127.0.0.1 192.168.0.* # afegim la xarxa de hosts permesos per \\ utilitzar hylafax
pop etc # faxstat HylaFAX scheduler on snodserver.fritecno.com: Running Modem ttyS5 (+34 972 274419): Running and idle # ok! funcionant! pop etc # faxsend -n -d 972266666 /etc/hosts pop etc # cat xferlog
Existeix un client basat en Tk per a HylaFAX amb suport per rolodex i batch faxing. El podríem utilitzar per comunicar-nos amb el sevidor desde un desktop de manera gràfica i intuitiva, la línia de comandes no sempre és agradable
# emerge tkhylafax $ tkhylafax
Si voleu veure una captura de pantalla...

Donem en POP per acabat