156
Desplegament d’una infraestructura de sistemes informàtics basada en programari lliure Treball de Final de Carrera: Plataforma GNU/Linux Jordi Mallach Pérez Miquel Àngel Senar Rosell Enginyeria Tècnica d’Informàtica de Sistemes 13 de gener de 2013 c 2013 Universitat Oberta de Catalunya 13 de gener de 2013

Desplegament d'una infraestructura de sistemes informàtics ...openaccess.uoc.edu/webapps/o2/bitstream/10609/... · Instal·lació de Debian GNU/Linux 7.0 wheezy ... Debian GNU/Linux,

Embed Size (px)

Citation preview

  • Desplegament duna infraestructura desistemes informtics basada en programari

    lliureTreball de Final de Carrera: Plataforma GNU/Linux

    Jordi Mallach Prez Miquel ngel Senar RosellEnginyeria Tcnica dInformtica de Sistemes

    13 de gener de 2013

    c 2013 Universitat Oberta de Catalunya 13 de gener de 2013

  • Desplegament duna infraestructura de sistemes informtics basada en programari lliure

    DedicatriaAls meus companys de lequip de sistemes de lInstitut Tecnolgic dInformtica, per aquells 5 anys de treball i

    aprenentatge.A Debian i a la comunitat del programari lliure, per donar-me un espai on aspiracions professionals i comproms social i

    poltic tenen una trobada.A Maria, per la seua pacincia durant tants mesos de lliuraments, exmens i nervis, per animar-me a arribar fins ac.

    A Aran, el nostre primer fill, que va nixer just quan comenava el semestre i a qui he furtat massa temps per completaraquesta memria.

    Resum

    Aquest treball sintetitza amb tot el detall possible, el desplegament dels serveis de xarxa ms importants i comuns perdonar servei a una organitzaci fictcia de tamany mitj, amb uns 40 llocs de treball. Des de la installaci dels servidorsamfitrions fins a la configuraci de totes les mquines virtuals, es descriu tot el que cal fer per, seguint aquest manual,obtenir una infraestructura de sistemes dinformaci amb serveis complets de correu, directori, DNS, web, eines de de-senvolupament, gestor de projectes, i altres, totes basades ntegrament en programari lliure. A ms de la tria de solucionslliures, tamb es posa mfasi en la simplicitat, lleugeresa del programari, facilitat per a fer futures actualitzacions a novesversions del sistema operatiu Debian i el cost monetari ms baix possible.

    ndex1. Introducci

    Aspectes formals del documentMtode de desenvolupamentPlanificaci dels treballs

    2. Installaci de Debian GNU/Linux 7.0 wheezyIntroducciInstallaci bsicaPrimer reinici del servidorConfiguraci de la xarxa

    3. Configuraci dun amfitri dLXCIntroducciServeis de monitoratgeServidor daccs remotServeis per als servidors virtuals

    4. Installaci de contenidors Debian wheezy amb LXCIntroducciCreaci duna mquina virtualConfiguraci de la xarxa dins del contenidorConfiguraci de lAPTUtilitats del sistemaServeis de monitoratgeReconfiguraci i monitoratge de serveis

    5. Configuraci de DNS i DHCP per a una LANIntroducciInstallaci i configuraci del dnsmasqInstallaci configuraci del powerdns-recursor

    Treball de Final de Carrera: Plataforma GNU/Linux 1/6

  • Desplegament duna infraestructura de sistemes informtics basada en programari lliure

    6. Configuraci dun servidor autoritatiu de DNSIntroducciInstallaci i configuraci del servidor primariInstallaci i configuraci dels servidors secundaris

    7. Installaci dun servidor de directori i eines de gestiIntroducciInstallaci dun servidor Samba amb LDAPInstallaci dun servidor de replicaci dLDAPImpressi amb CUPS via SambaInstallaci de GOsaConfiguraci de clients WindowsTutorial de GOsaConfiguraci addicional per a MySQLScripts i utilitats per administrar LDAPApndix: smb.confApndix: gosa.conf

    8. Installaci dun servidor web i servidor intermediari dHTTP inversIntroducciInstallaci dNginxConfiguraci dNginx

    9. Installaci dels serveis de correuIntroducciInstallaci i configuraci de limapd: DovecotInstallaci i configuraci del smtpd: PostfixInstallaci i configuraci del webmail: RoundcubeInstallaci i configuraci del gestor de llistes: MailmanApndix: fitxers de configuraci complets

    10. Installaci i configuraci dun gestor de projectes: RedmineIntroducciInstallaci del RedmineConfiguraci del RedmineConfiguraci de la visualitzaci externa del Redmine

    11. Configuraci i gesti de cpies de seguretat amb rdiff-backupIntroducciInstallaci i configuraci de KunoichiGesti bsica de les cpies de seguretat

    12. Conclussions del projecte13. Glossari14. Bibliografia

    Treball de Final de Carrera: Plataforma GNU/Linux 2/6

  • Desplegament duna infraestructura de sistemes informtics basada en programari lliure

    IntroducciAquest s, sense dubte, un projecte personal. Desprs de catorze anys dusuari de sistemes operatius lliures, i onze coma desenvolupador del projecte Debian, he anat arreplegant moltssimes preferncies en quant a la forma de gestionarservidors basats en GNU/Linux, muntar serveis de xarxa i seleccionar el programari en qu basar aquests serveis.

    Al mn dels sistemes informtics basats lecosistema Windows hi ha ben b poca diversitat: loferta unificada deproductes de Microsoft fa que gaireb tots els dissenys duna infraestructura basada en Windows passen pels mateixosproductes: Active Directory, Exchange, MS SQL Server, Hyper-V, IIS (amb el perms dApache httpd) i la resta detecnologies que conformen la famlia de serveis per a servidors de Microsoft. Aix, la documentaci es troba moltunificada a can Microsoft, i segurament la majoria de desplegaments es fan duna manera molt, molt pareguda, ja queaquestes eines no deixen espai per a grans divergncies.

    El mn GNU/Linux, per, s tot el contrari. Hi ha una gran oferta de distribucions on triar, diferents models dedesenvolupament; opcions amb servei de suport de pagament i altres que deleguen aix a empreses del sector; solucionsfinanades per empreses i altres gestionades totalment des del voluntariat; projectes que publiquen versions amb unacadncia establerta, altres que noms publiquen versions noves quan es considera que el producte s preparat per sortirdel forn.

    A lhora de desplegar un simple servidor web, per exemple, el primer que cal fer s triar el programari, perqu es potemprar el lder indiscutible, Apache, per tamb altres alternatives emergents, lleugeres, simples i funcionals com podenser Lighttpd, nginx o Cherokee. Els motius per triar un o altre son moltes: salut del projecte, facilitat de configuraci,extensibilitat, lleugeresa, requeriments de maquinari. . . De la mateixa manera, es pot triar una soluci de virtualitzacientre molts models existents diferents, cadascun amb els seus avantatges i desavantatges, des de la virtualitzaci total anivell de maquinari, com KVM, a la paravirtualitzaci com Linux-VServer, OpenVZ o Linux Containers.

    Com ja sha mencionat, segurament moltes de les decisions tcniques que es desenvoluparan en aquest documentsn fruit danys de treball i molts costums adquirits. Tot i aix, segurament totes les decisions responen a tres gransraonaments:

    La creaci duna infraestructura que siga barata en termes econmics, mitjanant la tria de programari que, toti no ser el ms conegut, complet i documentat, oferisca absolutament tota la funcionalitat requerida pels nostresusuaris i al mateix temps, tinga un consum de memria i temps de computaci baix. Aix ens permet aprofitar elsservidors amfitrions de la infraestructura per a oferir ms serveis, rebaixant el cost de la infraestructura inicial i elseu manteniment i renovaci, i simplificant lestructura del CPD.

    La installaci i configuraci del programari de manera que facilite la seua mantenibilitat des del punt de vista de lagesti de configuracions del sistema operatiu emprat, i la facilitat de fer actualitzacions a versions noves del sistemaoperatiu respectant les nostres modificacions i personalitzacions.

    La utilitzaci de programari lliure, sempre que aix siga possible, tot i que existisquen solucions igual o msconvenients amb llicncia privativa.

    Tria de programariLa lleugeresa i simplicitat han sigut una de les caracterstiques principals que sha tingut en compte a lhora de triarel programari principal de la nostra arquitectura. Podem dir que la nostra columna vertebral s, sense dubte, DebianGNU/Linux, i el servidor web nginx s el material de construcci bsic ms preciat.

    Debian s una de les grans distribucions de GNU/Linux, un projecte fundat al 1993 que ha anat cosolidant-se alllarg de gaireb vint anys, i ara mateix s la distribuci no comercial ms emprada per a ls com a servidor, i unaseriosa competidora de lhegemnica Red Hat Enterprise Linux. Debian t un gran prestigi al mn dels administradors desistemes GNU/Linux per ser extremadament fiable i fidel a la poltica de no destorbar lusuari. Les versions de Debianeixen cada dos anys aproximadament, per a diferncia dels cicles de llanament fixats en el temps molt comuns en elsltims temps, com fa Ubuntu, en Debian es mantenen fidels a llanar una versi nova quan lequip de desenvolupadors

    Treball de Final de Carrera: Plataforma GNU/Linux 3/6

  • Desplegament duna infraestructura de sistemes informtics basada en programari lliure

    considera que tots els problemes shan corregit i la distribuci s preparada. Com diuen ells, Debian will release whenits ready.

    El programari ms crtic en les infraestructures de xarxa actuals s sense dubte el servidor web, donat que cada vegadams i ms serveis estan migrant daplicacions descriptori a aplicacions basades en web, normalment recolzades per unabase de dades al rerefons. En aquest mbit, Apache s el lder indiscutible en tots els sistemes operatius: Windows,BSD, GNU/Linux o Mac OS X Server. No en va, s un servidor robust, segur i modular, amb suport per servir qualsevoltecnologia de web actual.

    En la infraestructura que hem dissenyat, necessitarem uns quants servidors web, gaireb un per cada mquina virtualque muntarem. Cap daquests servidors tindr unes exigncies tcniques massa grans llevat de la capacitat de servir PHPi fer de servidor intermediari. Desplegar Apache en tots aquests casos elevaria molt la quantitat de RAM necessriaals servidors amfitrions, i seria infrautilitzada ja que noms emprarem funcionalitat bsica dun monstre complex coms Apache. s per aix que hem mirat algunes alternatives com lighttpd i nginx, que han resultat ser tan vlides comApache, per amb un cost computacional i de recursos molt, molt menor. Una instncia per defecte dNginx sol empraruns 2MB de RAM, i ens permet servir, amb dimonis associats, aplicacions via FastCGI, PHP o Python. La configuracis senzilla i clara, est tan b documentada com la dApache i el rendiment s ptim, superant amb escreix Apache enmoltes configuracions. En definitiva, en aquest projecte hem pogut emprar Nginx sense cap problema en absolutamenttots els casos ds, amb uns resultats ptims.

    De manera similar, per a altres serveis hem triat solucions menys conegudes per igual defectives que els lders en elseu sector:

    DNS: en lloc de Bind, el lder en servidors de DNS, hem optat per PowerDNS, que implementa tots els protocolsi tecnologies recents de DNS: DNSSEC, IPv6, etc., a lhora que s capa de treballar de srie amb els fitxers deconfiguraci de zones de Bind, fent molt simple una migraci des duna installaci Bind anterior.

    DHCP: en lloc de ISC DHCP, que t un registre de seguretat prou qestionable, hem optat per la soluci mixta comdnsmasq, que sencarrega de fer de servidor de DHCP per a la xarxa interna, a ms de servir el DNS intern.

    PHP: en totes les configuracions on era necessari installar PHP, sha optat pel seu nou mecanisme FPM, que smolt ms eficient que lantic basat en CGI. Nginx enllaa amb PHP FPM amb FastCGI a travs dun scol Unix,fent que limpacte de ls de FastCGI siga mnim.

    IMAP: Dovecot s un servidor dIMAP molt jove, per amb un ritme de desenvolupament que prompte far queels lders, Cyrus i Courier, es queden en segon pla. s un servidor segur, eficient i totalment modular, i s molt fcildintegrar amb Exim4 o Postfix.

    SMTP: per una vegada, ens hem adherit al lder indiscutible com s Postfix, perqu s lleuger, segur i ms completi a lhora flexible que cap dels seus competidors. A ms, permet integrar altres serveis relacionats com el Mailmano Dovecot duna manera senzilla.

    Aspectes formals del documentLlengua

    En lelaboraci daquest document, sha intentat seguir el model de llengua de Softcatal i TermCAT a lhora de referir-sea tecnologies del mn TIC. Aix vol dir que en la major part dels casos sha intentat cercar el llenguatge consensuat alRecull de termes de Softcatal , i emprar, all on era addient, lestil de la Guia destil de Softcatal. Per exemple, en llocde dir hardware, sha optat pel normatiu maquinari; en lloc de software lliure sha optat per programari lliure, o en llocde socket, sha tractat demprar sempre scol Unix.

    Estructura

    Des del primer moment sha tractat de donar a aquesta memria un format semblant al que empren els materials destudide la UOC: un document individual per cada mdul. Tot i que el resultat daix no s exactament compatible amb els

    Treball de Final de Carrera: Plataforma GNU/Linux 4/6

    http://www.softcatala.org/recull.htmlhttp://www.softcatala.org/wiki/Guia_d%27estil/Guia_2010/Tota

  • Desplegament duna infraestructura de sistemes informtics basada en programari lliure

    requeriments de lestructura de la memria final dels TFC de la UOC, sha decidit continuar amb aquest model perqu lagesti del contingut era molt ms fcil.

    El document final s una composici dels catorze PDF individuals generats pel codi font. Aix t dos inconvenients,que es documenten aqu.

    Per limitacions de la maquetaci del conversor de reStructuredText a Tex (noms admet un ttol per document), no haestat possible fusionar tot el codi font en un sol fitxer .rst al final del procs delaboraci daquesta memria.

    Aix t dos consequncies:

    Els ndex i apndix de cda mdul estan integrats en els mduls, i no al principi i final de la memria, com manalestructura.

    Per subsanar la part de lndex, he escrit a m un ndex redut en aquesta introducci, per aquest manca navegabil-itat amb enllaos ni els nmeros de pgina.

    Els ndex individuals de cada mdul s tenen navegabilitat, per al ser originalment documents PDF individuals, lanumeraci s relativa al fitxer original, i no al document fusionat.

    Format del codi font

    Aquest document sha escrit ntegrament emprant el llenguatge de descripci reStructuredText, posteriorment convertit aPDF amb un dels convertidors inclosos al projecte Python Docutils.

    Aquest format permet escriure el document en un format en text pla molt fcil de generar, per permet fer conversionsa formats rics com OpenDocument (.odt), HTML, PostScript o PDF amb aspecte LaTeX.

    A ms de la facilitat de lescriptura, ls de RST ha perms mantenir tot el codi font daquest projecte de TFC gestionatamb Git, amb la qual cosa sha pogut anar consultant lhistric de canvis en text pla, sense haver de pujar revisions defitxers binaris com els emprats per Microsoft Office o LibreOffice.

    Per donar als documents finals un aspecte amb la imatge corporativa de la UOC, sha creat un estil de TexLive per ala UOC, amb logotip i colors blaus pels encapalaments.

    Mtode de desenvolupamentDarrere daquesta memria hi ha moltssimes hores de treball no plasmades en fulls escrits.

    Moltes hores invertides en el desenvolupament daquest projecte shagen invertit primer en el disseny de la infraestruc-tura que seguidament es proposa, lanlisi dels requeriments i la cerca de les solucions a emprar, ja esmentades en aquestaintroducci.

    Per sense cap dubte, la gran majoria dhores shan invertit en la installaci de mquines virtuals, desenvolupamentde configuracions i la prova de les mateixes, en un procs repetitiu fins trobar una soluci simple i funcional per cadascunade les propostes dels captols segents.

    Aix, per cada servei descrit en la memria sha hagut de:

    Installar una mquina virtual VirtualBox (en el cas de la documentaci per als amfitrions) o LXC (en el cas de lesmquines virtuals) de prova.

    Installar diverses solucions per sotmetre-les a proves i per trobar la soluci preferida.

    Iterar amb diferents versions de la configuraci de la soluci triada, fins arribar a la configuraci desitjada.

    Completar la installaci amb solucions de cpia de seguretat i monitoratge, all on calia.

    Documentar amb detall el procs exacte per arribar a aquest desplegament.

    Segurament el 80% del temps sha invertit en els 4 primers punts, i el 20% restant en lltim, que s le que shaplasmat en aquesta memria.

    Treball de Final de Carrera: Plataforma GNU/Linux 5/6

    http://docutils.sourceforge.net/rst.html

  • Desplegament duna infraestructura de sistemes informtics basada en programari lliure

    Planificaci dels treballsLa planificaci del projecte ha sigut prou senzilla i lgica: primer sha treballat en els fonanents de la infraestructura(els servidors amfitrions), desprs sha buscat una manera de generar una plantilla de mquines virtuals per guanyartemps a lhora de crear-ne noves, i a partir daquest punt sha anat configurant serveis en lordre ms lgic, segons lesdependncies entre ells: DHCP i DNS, LDAP, Samba i gesti de comptes dusuari, accs web, serveis de correu, serveisde desenvolupament i de gesti de projectes i gesti de cpies de seguretat de tot lanterior.

    El resultat daquesta planificaci sn 11 captols on es detalla i justifica la configuraci, desplegament i mantenimentde tots els serveis descrits anteriorment, de manera que, seguint aquest manual, es podria replicar aquesta infraestructurade xarxa, basada en un sistema operatiu modern i amb les darreres versions del programari triat, gaireb a base de copia ienganxa.

    Val a dir que sobvia el captol sobre la valoraci econmica perqu no hi ha massa a dir que no shaja comentat enaquesta introducci. Com no es requereixen llicncies per a la instalaci de tot aquest programari, tota la despesa serla necessria per comprar un servidor amb una quantitat de RAM discreta, i una CPU que no t per qu ser dltimageneraci; unes prestacions aportades per qualsevol PC de gamma mitjana del mercat actual.

    Treball de Final de Carrera: Plataforma GNU/Linux 6/6

  • Installaci de Debian GNU/Linux 7.0 wheezy

    c 2013 Universitat Oberta de Catalunya 13 de gener de 2013

  • Installaci de Debian GNU/Linux 7.0 wheezy

    ContingutIntroducci 1

    Installaci bsica 1Primers passos de la installaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Partici del disc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Completant la installaci bsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    Primer reinici del servidor 3Installaci del servidor de SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Configuraci de lAPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Configuraci de la xarxa 4Nom de les interfcies de xarxa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Dades sobre les diferents xarxes a configurar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Configuraci de la interfcie de loopback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Configuraci de la interfcie daccs a lamfitri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Configuraci de la interfcie daccs a la xarxa pblica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    IntroducciAquest document descriu la installaci dun servidor que funcionar com a amfitri de mquines virtuals basades en LXCi KVM.

    El sistema operatiu empleat ser la versi per a arquitectures Intel o AMD de 64 bits de Debian GNU/Linux. Enconcret emprarem la versi 7.0 de la distribuci (Debian wheezy) i per a realitzar la installaci utilitzarem lltima revisidisponible del debian-installer (en el moment descriure a, sha demprar una versi generada automticament cada diaperqu la versi final encara no sha publicat).

    Per a gestionar les mquines virtuals emprarem libvirt, que s una biblioteca dabstracci de diferents tecnologies devirtualitzaci que funcionen amb el nucli Linux.

    Installaci bsicaEn aquest apartat explicarem com installar des de zero un servidor que funcionar com amfitri per a servidors virtualsLXC i KVM.

    En el cas estndard, totes les installacions es realitzaran emprant la versi de 64 bits de la distribuci per a larquitec-tura amd64.

    Els discos es configuraran per a utilitzar LVM i el sistema de fitxers de les particions ser lext4. Si tingussim msdun disc i no disposarem duna controladora RAID per maquinari, seria convenient configurar la partici dels discs ambRAID per programari, emprant mdadm. Aquest document no entrar en detall per a aquest supsit.

    Primers passos de la installaciPer a installar el sistema emprarem un CD dinstallaci de Debian wheezy que tinga suport per a amd64.

    Les ltimes versions de linstallador per a mltiples arquitectures es poden descarregar des de ladrea:http://cdimage.debian.org/debian-cd/Per a validar aquest document hem emprat la imatge diria que est disponible en la ruta http://cdimage.

    debian.org/cdimage/daily-builds/sid_d-i/20121104-3/multi-arch/iso-cd/ tot i que es po-dria haver emprat qualsevol altre CD amb suport per a amd64.

    1/8

    http://lxc.openvz.org/http://www.linux-kvm.org/http://www.debian.org/http://www.debian.org/releases/wheezy/debian-installer/http://lxc.openvz.org/http://www.linux-kvm.org/http://cdimage.debian.org/debian-cd/http://cdimage.debian.org/cdimage/daily-builds/sid_d-i/20121104-3/multi-arch/iso-cd/http://cdimage.debian.org/cdimage/daily-builds/sid_d-i/20121104-3/multi-arch/iso-cd/

  • Installaci de Debian GNU/Linux 7.0 wheezy

    Una vegada arrancat linstallador anirem contestant a les preguntes. En primer lloc sens preguntar la llengua, elterritori i la disposici de teclat a emprar. Per emprar el sistema en catal per defecte seleccionarem com a llengua lentradaCatalan - catal. Com a territori posem Espanya, Andorra o el que vulguem, i seleccionem la disposici deteclat en Espanyol.

    A continuaci el sistema ens sollicitar que configurem la xarxa; encara que lequip dispose de diverses targetes enaquest pas de la configuraci noms configurarem la primera.

    El primer que prova linstallador s la configuraci usant DHCP. Si en la nostra xarxa disposem dun servidor DHCPlinstallador emprar la configuraci IP obtinguda per aquest mitj. En el cas que no tinguem accessible un servidorDHCP linstallador ens demanar que configurem la xarxa manualment, per al que necessitarem conixer i indicar elvalor de les segents dades:

    Adrea IP del servidor

    Mscara de xarxa

    Passarella o gateway

    Adreces dels servidors de noms

    Desprs de configurar la interfcie de xarxa el sistema dinstallaci ens demanar el nom del servidor (si el DHCPli ha donat un ens suggerir aquest i sin proposar el nom estndard debian), i a continuaci ens demanar el nomde domini (si el servidor DHCP no suggereix un, linstallador mostrar el camp buit per defecte, tot i que sempre srecomanable emprar un, encara que siga fictici).

    Si la xarxa funciona correctament linstallador obtindr lhora dun servidor de xarxa i ens demana que seleccionemla nostra ubicaci.

    Amb aquestes dades bsiques, ser el moment de partir el disc per fer la installaci del sistema operatiu.

    Partici del discAssumirem que noms tenim un disc, o que els mltiples discs estan gestionats per un RAID de maquinari que sencarregadel manteniment del RAID1.

    Per aix, per partir el disc amb suport LVM podem utilitzar el partidor automtic del debian-installer:En la pantalla de partici de discs seleccionarem lopci de particionat guiat que utilitza el disc complet i configura

    lLVM. En la segent pantalla seleccionarem lnic disc del sistema, i seguidament triarem lopci demmagatzemar totsels fitxers en una nica partici. Finalment acceptarem que linstallador escriga els canvis en el disc i configure lLVM.

    En aquest punt estarem llests per a finalitzar, per per deixar espai lliure per fer snapshots del sistema de fitxers, snecessari que el volum lgic del sistema de fitxer no empre tot lespai disponible en el grup de volums. Per canviar aix,seleccionarem lopci Configura el gestor de volums lgics LVM, i suprimirem el volum root, per tornar-lo a crear ambidntic nom i en el mateix grup de volums, per canviant la mida del volum. Concretament, li haurem de donar lespai queens suggereix linstallador, menys uns 5 GB que ser lespai que el gestor de volums tindr disponible per emmagatzemarels deltes temporals del snapshot.

    Una vegada creat el volum eixirem de la configuraci del LVM, seleccionarem el volum nou, i ho configurarem coma sistema de fitxers arrel en format ext4.

    Ara s, estarem preparats per acabar amb la partici i escriure els canvis en el disc.A partir dac linstallador formatar les particions i continuar el procs dinstallaci normal.

    Completant la installaci bsicaDesprs de la partici, el sistema installar el sistema bsic i ens demanar diverses dades addicionals:

    2/8

  • Installaci de Debian GNU/Linux 7.0 wheezy

    1. Creaci dusuaris. El sistema ens demana la clau del superusuari (root) i un usuari addicional.

    Per a la clau del root generarem una contrasenya el ms aleatria possible que emmagatzemarem en algunlloc segur (p. ex. en un fitxer xifrat o en el cap del que fa la installaci) i la introduirem quan linstalladorens la demane.

    Quant a lusuari addicional la veritat s que no s necessari, aix que podem no crear-lo (cancellant la creacii saltant al segent pas de la installaci) o crear un usuari temporal amb una clau aleatria i eliminar-ho enacabar la installaci. Optarem per cancellar el pas i seguint amb el segent.

    2. Selecci de la rplica de Debian, seleccionant primer el pas i desprs la rplica que ms ens convinga (p. ex.ftp.de.debian.org).

    3. Participaci en el popularity contest. Com sexplica en pantalla, el projecte Debian mant un servei quepermet saber quin programari s ms emprat i t ms installacions actives, dades amb les quals s ms fcilrealitzar tasques de neteja de larxiu de programari, decidir quin programari sinstalla per defecte, etc. Lesdades sn annimes i ls dample de banda s mnim.

    En el nostre cas, accedirem a participar, perqu les dades sn molt valuoses per a Debian.

    4. Installaci de tasques: desseleccionarem totes les tasques que apareixen en el tasksel perqu no sinstalleres ms de moment.

    5. Per a acabar installarem el GRUB en el MBR i reiniciarem lequip per a arrancar amb el nou sistema.

    Primer reinici del servidorDesprs de reiniciar el sistema i extraure el CD de linstallador, arrencarem el sistema recn installat, ens identificaremcom lusuari administrador i executarem unes quantes seqncies dinstruccions per poder treballar remotament i com-pletar la installaci bsica del sistema.

    Installaci del servidor de SSHSi anem a treballar en remot comenarem installant lopenssh-server:

    apt-get install openssh-server

    Si volem entrar en el servidor usant claus en lloc de contrasenyes aquest seria el moment adequat per a copiar les clausdels usuaris autoritzats en el fitxer /root/.ssh/authorized_keys.

    NotaA partir daquest punt s recomanable tancar la sessi que tenem oberta en la consola i treballar remotament,ja que a ens permet estar ms cmodes i treballar en un sistema que ens permeta veure la documentaci enpantalla i copiar i enganxar el que vulguem usant el ratol.

    Configuraci de lAPTLa installaci de wheezy deixa el sistema amb una configuraci de fonts dAPT tal i com la necessitem, amb entrades perals origens de paquets general, dactualitzacions de seguretat, dactualitzacions diverses i de backports des de la segentversi de Debian.

    No haurem de tocar aix.Per mantindre el sistema amfitri amb el nombre de paquets estrictament necessari per a la nostra tasca, configurarem

    el gestor de paquets per a que, per defecte, no installe els paquets recomanats:echo APT { Install-Recommends "false"; } > /etc/apt/apt.conf.d/0no_recommends

    3/8

  • Installaci de Debian GNU/Linux 7.0 wheezy

    Configuraci de la xarxaEn el cas ms normal, desprs dinstallar el sistema en el fitxer /etc/network/interfaces tindrem configuratsdos dispositius, linterfcie de loopback (lo) i la targeta de xarxa connectada a la xarxa pblica (*eth0) configurada pera utilitzar DHCP (noms en el cas que tingussim el servei de DHCP disponible en realitzar la installaci, s clar).

    Com volem utilitzar servidors virtuals el ms semblants possibles a sistemes reals tant en el cas de KVM com en elde LXC emprarem bridging per a donar accs a la xarxa.

    En el cas de LXC a suposa emprar dispositius de tipus veth, que t un cost computacional lleugerament majorque les interfcies del tipus venet, per ens proporcionen un interfcie de xarxa prcticament idntic al que emprariaun sistema real, que s el que preferim (en la pgina http://wiki.openvz.org/differences_between_venet_and_veth sexpliquen les diferncies entre tots dos tipus de dispositius).

    En qualsevol cas i abans de comenar a configurar els dispositius ens assegurarem que disposem de suport per aconfigurar els bridges ethernet installant les eines de suport, que en aquest cas es limiten al paquet bridge-utils:

    apt-get install bridge-utils

    Nom de les interfcies de xarxaSi el sistema amfitri disposa de mltiples interfcies Ethernet, els noms ethN seran assignats de forma aleatria, per laqual cosa no tindrem cap garantia que el nom eth0 corresponga a la interfcie de xarxa pblica.

    Ats que durant la installaci tan sols hem configurat una targeta de xarxa, noms hauria daparixer una interfcieEthernet en /etc/network/interfaces, i lexecuci de lordre segent noms hauria de mostrar una lnia:

    grep ^iface eth /etc/network/interfaces

    Si la lnia fa referncia a eth0, la interfcie pblica t el nom correcte.En qualsevol cas, per a assegurar-nos que les targetes tenen el nom dinterfcie desitjat haurem dalterar la configuraci

    de ludev i possiblement modificar /etc/network/interfaces. Comenarem per inhabilitar la interfcie pblicaexecutant:

    ifdown ethN

    On ethN s la interfcie mostrada per lordre grep anterior. Desprs da, editarem el fitxer /etc/udev/rules.d/70-persistent-net.ruleson trobarem per cada targeta una entrada de lestil de:

    # PCI device 0xNNNN:/sys/devices/* (MODEL)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", *ATTR{address}=="NN:NN:NN:NN:NN:NN", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="*eth*", NAME="ethN"

    Amb lajuda del model indicat en els comentaris i les adreces MAC, modificarem els valors de NAME per donar-lia cada targeta el nom dinterfcie desitjat. Una vegada fet a, i si la interfcie pblica no tinguera actualment el nomcorrecte, ho reemplaarem en interfaces executant:

    sed -i s/ethN/eth0/g -i /etc/network/interfaces

    On ethN s la interfcie mostrada per lordre grep anterior.Desprs de tot a ser necessari reiniciar el sistema.

    Dades sobre les diferents xarxes a configurarPer a la installaci que ens ocupa definirem diverses xarxes privades i afegirem interfcies de xarxa per a accedir a ellestant en el sistema amfitri com en els servidors virtuals.

    Les xarxes que anem a utilitzar seran les segents:

    4/8

    http://wiki.openvz.org/differences_between_venet_and_vethhttp://wiki.openvz.org/differences_between_venet_and_veth

  • Installaci de Debian GNU/Linux 7.0 wheezy

    DMZ pblica: xarxa connectada directament a un tallafoc que s el que dna accs a Internet, tots els serveispblics estan accessibles a travs daquesta xarxa. Empra adreces de la xarxa 192.168.1.0/24 i sufix de DNSpubdmz-net.

    Xarxa daccs a lamfitri: xarxa virtual no encaminable que es munta en cadascun dels sistemes amfitrions per aconnectar els servidors virtuals amb el seu amfitri. Empra adreces de la xarxa 172.27.0.0/16 i sufix de DNSvhost-net.

    Opcionalment podrem definir una DMZ privada, que seria una xarxa no accessible des de lexterior que intercon-nectaria els servidors fsics i virtuals emprant adreces de la xarxa 10.0.0.0/8 i sufix de DNS privdmz-net.Tot i que en xarxes ms grans aix seria convenient per protegir els servidors datacs provinents de la mateixa xarxalocal, en el nostre cas assumirem que el risc no s tan gran com per complicar tant la xarxa del projecte.

    NotaEn els punts segents explicarem com anem a configurar els dispositius que anem a emprar en el sistemaamfitri; en la descripci assumirem que hem copiat el fitxer netvars-common.sh al directori $HOME delusuari root; el contingut inicial del fitxer ser el segent:

    # Configuraci de xarxa

    # Dades DMZ pblica# -----------------

    # IP PrefixPUB_IPP="192.168.1"# NETWORK ADDRESSPUB_NET="192.168.1.0"# BROADCAST_ADDRESSPUB_BCAST="192.168.1.255"# NETWORK MASKPUB_MASK="255.255.255.0"# GATEWAYPUB_GW="192.168.1.248"# DNSPUB_DOMAIN="pubdmz-net"

    # Dades xarxa interna (xarxa daccs a lamfitri)# ------------------------------------------------# IP PrefixINT_IPP="172.27"# NETWORK ADDRESSINT_NET="172.27.0.0"# BROADCAST_ADDRESSINT_BCAST="172.27.255.255"# NETWORK MASKINT_MASK="255.255.0.0"# DNSINT_DOMAIN="vhost-net"

    # DADES DE DNS# ------------# EXTERNAL DNS NAME SERVERSDNS_NS="192.168.1.254"

    5/8

  • Installaci de Debian GNU/Linux 7.0 wheezy

    # DNS SEARCH DOMAINSPUB_DNS_SEARCH="$PUB_DOMAIN $PRIV_DOMAIN $INT_DOMAIN"PRIV_DNS_SEARCH="$PRIV_DOMAIN $PUB_DOMAIN $INT_DOMAIN"

    Aquestes variables les utilitzarem per a generar els fragments de configuraci dels diferents interfcies (accs a laDMZ pblica i accs a xarxa daccs al sistema amfitri). Abans dusar-les les carregarem en lintrpret dordres emprantuna instrucci del tipus:

    . ~/netvars-common.sh

    A ms de les variables anteriors en els exemples crearem el fitxer ~/netvars-host.sh en el qual definiremvariables addicionals relacionades amb el sistema amfitri a configurar com les segents:

    # Sufix IP pblica amfitriHOST_PUB_IPS="101"

    # Sufix IP interna amfitriHOST_INT_IPS="0.1"

    I crearem fitxers per configurar els entorns virtuals (VE) amb contingut similar al segent:

    # Identificador del VEVEID="1011"

    # Sufix IP pblica VEVE_PUB_IPS="11"

    # Sufix IP interna VEVE_INT_IPS="$((VEID/256)).$((VEID%256))"

    Configuraci de la interfcie de loopbackPer configurar els dispositius editarem el fitxer /etc/network/interfaces.

    En el cas de la interfcie loopback, no s necessari modificar res. Simplement ens assegurarem que el fragment delfitxer daquesta interfcie tinga un contingut semblant al segent:

    # The loopback network interface# ------------------------------auto loiface lo inet loopback

    Com aquesta interfcie ja estava correctament configurada i activada, no caldr fer res ms.

    Configuraci de la interfcie daccs a lamfitriEn el nostre model de configuraci hem intentat independitzar el funcionament de les mquines virtuals de la xarxaconcreta en la qual sexecuten.

    Per a aconseguir-ho configurem les mquines virtuals perqu accedisquen a determinats serveis emprant servidorsintermediaris (Relay SMTP, servidor intermediari de DNS, servidor intermediari dHTTP, etc.) que estan accessiblesemprant una IP fixa que sassigna al sistema amfitri.

    Lobjectiu s emprar una xarxa interna entre lamfitri i les mquines virtuals que siga igual en tots els servidors i queno sencamine a lexterior. Com es tracta duna xarxa interna les connexions des de qualsevol entorn virtual sempre esfan contra el servidor sobre el qual sexecuta i si es migra a un altre equip les connexions es fan contra el nou amfitri.

    6/8

  • Installaci de Debian GNU/Linux 7.0 wheezy

    La xarxa interna es munta emprant un bridge sobre el dispositiu dummy0, que s un interfcie ethernet virtual quepermet encaminar el trfic en la mquina.

    La IP del bridge ser la 172.27.0.1/16 (triem aquesta xarxa privada per a evitar conflictes amb altres xarxes,per podrem haver triat la xarxa 10.0.0.0/8 perfectament).

    El bridge es dir vhbr0 i la seua configuraci safegir al fitxer /etc/network/interfaces:

    # Sufix IP de lamfitri en la xarxa internaHOST_INT_IPS="0.1"

    # Afegim el valorcat >> /etc/network/interfaces

  • Installaci de Debian GNU/Linux 7.0 wheezy

    # /etc/network/interfacescat >> /etc/network/interfaces /etc/resolv.confecho "search $PUB_DNS_SEARCH" >> /etc/resolv.conffor ns in $(echo $DNS_NS); do

    echo "nameserver $ns" >> /etc/resolv.conf;done

    Per a activar la nova interfcie remotament podem intentar desconfigurar la interfcie eth0 i activar el vmbr0 ambnoms una instrucci:

    ifdown eth0; ifup vmbr0

    de tal forma que si tot va b, la connexi es mantindr i podrem seguir amb el procs.En cas que aquestes instruccions fallen podem entrar per consola i fer el mateix per a verificar que la interfcie vmbr0

    es configura b.En tots dos casos lideal seria que una vegada que sapiem que la interfcie vmbr0 funciona correctament suprimim la

    informaci relativa a eth0 del fitxer /etc/network/interfaces.

    NotaCom a opci alternativa a la reconfiguraci en calent tamb podem suprimir la configuraci deth0 i afegir lade vmbr0 al fitxer /etc/network/interfaces i reiniciar la mquina, de tal forma que la configuracide la xarxa es faa en larrencada i per tant no siga necessari desconfigurar res.

    8/8

  • Configuraci dun amfitri de LXCVersi per a Debian wheezy

    c 2013 Universitat Oberta de Catalunya 13 de gener de 2013

  • Configuraci dun amfitri de LXC

    ContingutIntroducci 1

    Utilitats del sistema 1

    Serveis de monitoratge 2apticron i actualizaci de paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3fail2ban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4monit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    Servidor daccs remot 5

    Serveis per als servidors virtuals 6Servidor de correu de lamfitri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Servidor intermediari HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Servidor intermediari/memria cau per lAPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    IntroducciEn aquesta secci detallarem els passos a seguir per completar la installaci dun servidor dedicat a la virtualitzaciemprant LXC i KVM, seguint el nostre model dinstallaci de serveis.

    Utilitats del sistemaPer comenar installarem unes quantes eines que ens poden resultar tils quan treballem amb els servidors, tot i que nosiguen estrictament necessries.

    La majoria de les utilitats sempraran localment, aix que tot i que sindique el contrari no caldr configurar res.El primer que farem s actualitzar la llista de paquets:

    # apt-get update

    A continuaci executarem les ordres segents per installar els programes:

    # Sistema per executar programes com a un otre usuari: sudoapt-get install sudo

    # Multiplexa sessions de shell i les recupera des dun altre terminal: screenapt-get install screen

    # Editor de text amb afegits i paginador decent: vim vim-scripts lessapt-get install vim vim-scripts less

    # Shell decent: zshapt-get install zsh

    # Eines per a fer cpies remotes i cpies de seguretat: rsync i rdiff-backupapt-get install -o APT::Install-Recommends rsync rdiff-backup

    # Compressors/descompressores tils: bzip2, xz, zip, unzipapt-get install bzip2 xz-utils zip unzip

    Versi per a Debian wheezy 1/10

  • Configuraci dun amfitri de LXC

    # Eina per cercar a quin paquet pertany un fitxer: dlocateapt-get install dlocate

    # Eines per obtenir informaci sobre el maquinari: pciutils usbutilsapt-get install pciutils usbutils

    # Utilitats pel control de fitxers i procesos: file lsof psmiscapt-get install file lsof psmisc

    # Eines per fer proves de xarxa: host netcatapt-get install bind9-host netcat-traditional

    # Utilitat per generar contrasenyes aleatries: pwgenapt-get install pwgen

    # Sincronitzaci del rellotge: openntpd ntpdateapt-get install openntpd ntpdate

    Dels programes installats en la llista anterior, lnic programa que llana un dimoni s openntpd, ja que ha destarsempre actiu per actualitzar el rellotge del sistema. Per defecte, el dimoni no ajustar lhora si la diferncia entre el rellotgei els servidors dhora s de ms de 180 segons. Per evitar aix, afegirem -s als parmetres darrencada per defecte:

    sed -i -es/DAEMON_OPTS="/DAEMON_OPTS="-s / /etc/default/openntpd

    I reiniciarem el servei:

    /etc/init.d/openntpd restart

    NotaRealment aix ltim no hauria de ser necessari si tamb installem el paquet ntpdate, ja que aquest progra-ma ajusta lhora cada vegada que sactiva una interfcie de xarxa, per en qualsevol cas, la redundncia no famal.

    Una vegada installats tots els paquets, executem lordre segent per netejar la memria cau de paquets:

    # apt-get clean

    Serveis de monitoratgePer a controlar diferents aspectes de lamfitri installarem unes quantes utilitats de monitoratge:

    apticron: sistema que actualitza la llista de paquets totes les nits i envia un correu si hi ha actualitzacionspendents.

    collectd: sistema de captura destadstiques del sistema, sintegrar amb una eina tipus rddtool per a generarinformes ds del servidor.

    fail2ban: eina que afegeix regles de tallafoc quan hi ha diversos intents fallits daccs al servidor en diferentsserveis (en el nostre cas ens interessa per lssh).

    monit: sistema de monitoratge local del servidor, ho configurarem perqu supervise lestat dels servidors localsdel host.

    Els paquets sinstallaran com sempre:

    Versi per a Debian wheezy 2/10

  • Configuraci dun amfitri de LXC

    apt-get install apticronapt-get install fail2banapt-get install logcheck logcheck-databaseapt-get install monit

    apt-get install -o APT::Install-Recommends collectd

    En els segents punts descriurem breument com es configuren i empren tots aquests programes.

    apticron i actualizaci de paquetPer defecte, lapticron es configura per actualitzar la llista de paquets diriament i notificar els canvis a lusuari root,per la qual cosa no ser necessari canviar cap parmetre de la configuraci.

    Quan hi ha paquets pendents dactualitzar al nostre sistema, apticron enviar a ladministrador un correu similaral segent:

    Subject: Debian package updates on SERVIDOR

    apticron report [Thu, 02 Nov 2012 15:24:23 +0100]========================================================================

    apticron has detected that some packages need upgrading on:

    SERVIDOR[ 127.0.0.1 AAA.BBB.CCC.DDD ]

    The following packages are currently pending an upgrade:

    libapache2-mod-php5 5.4.4-9php5-cli 5.4.4-9php5-common 5.4.4-9php5-curl 5.4.4-9php5-gd 5.4.4-9php5-mysql 5.4.4-9

    ========================================================================

    ...

    Seguit duna descripci dels canvis en els paquets a actualitzar.Per a fer lactualitzaci, accedirem al servidor indicat com a usuari root i simularem lactualitzaci per comprovar

    que no donar problemes, executant:

    # apt-get -sy dist-upgradeSest llegint la llista de paquets... FetSest construint larbre de dependnciesSest llegint la informaci de lestat... FetSactualitzaran els paquets segents:libapache2-mod-php5 php5-cli php5-common php5-curl php5-gd php5-mysql

    6 actualitzats, 0 nous a installar, 0 a suprimir i 0 no actualitzats.Sha dobtenir 0B/5680kB darxius.Desprs daquesta operaci sempraran 0 B despai en disc addicional.

    Si no es detecta cap anomalia, podem tornar a executar lordre, per suprimint lopci de simulaci -s i deixantlopci per respondre afirmativament a totes les preguntes -y:

    Versi per a Debian wheezy 3/10

  • Configuraci dun amfitri de LXC

    # apt-get -y dist-upgrade

    Tamb s convenient netejar la memria cau de paquets baixats, per evitar que sacumulen i ocupen massa espai aldisc:

    # apt-get clean

    El programa collectd sha installat amb lopci -o APT::Install-Recommends per a garantir-nos quetots els connectors distributs amb el paquet tenen tot el que necessiten per a funcionar. Inicialment deixem el sistemafuncionant amb la configuraci per defecte, deixant per a etapes posteriors la configuraci dels connectors i la generacidinformes emprant les dades adquirides.

    fail2banEn el cas del paquet fail2ban tampoc tocarem res, perqu per defecte monitora lssh, que s la ra principal per laqual sha installat.

    monitLa configuraci del programa monit est en el directori /etc/monit, amb el fitxer principal sent /etc/monit/monitrc.La configuraci per defecte noms inclou els fragments de configuraci presents a /etc/monit/conf.d, que sn en-llaos als fitxers presents en /etc/monit/monitrc.d. Per facilitar futures actualitzacions, evitarem modificar elfitxer principal i farem tot el que necessitem fer a travs de fragments:

    cat > /etc/monit/monit.d/0_main_config

  • Configuraci dun amfitri de LXC

    Per veure lestat dels elements monitorats podem executar lordre segent:

    monit status

    Per acabar, afegirem alguns fitxers per monitorar diferents aspectes del sistema.Per monitorar ls de la partici arrel, crearem el fitxer /etc/monit/monitrc.d/rootfs:

    cat > /etc/monit/monitrc.d/rootfs 85% then alertif inode usage > 85% then alert

    EOFcd /etc/monit/conf.d && ln -s ../monitrc.d/rootfs

    Per rebre alertes quan la crrega del sistema siga alta, crearem el fitxer system_load:

    cat > /etc/monit/conf.d/system_load 4 then alertif loadavg (5min) > 2 then alertif memory usage > 90% for 4 cycles then alertif cpu usage (user) > 70% for 2 cycles then alertif cpu usage (system) > 30% for 2 cycles then alertif cpu usage (wait) > 40% for 2 cycles then alert

    EOFcd /etc/monit/conf.d && ln -s ../monitrc.d/system_load

    I per activar-les, executarem lordre:

    monit reload

    O reiniciarem el servei sencer:

    /etc/init.d/monit restart

    En apartats posteriors saniran afegint altres fragments de configuraci per monitorar els serveis a mesura que vaninstallant-se.

    Servidor daccs remotEl servidor dssh (incls en el paquet openssh-server) est installat en lamfitri des de la installaci bsica i nos necessari modificar la seua configuraci, llevat que es vulga canviar el port per defecte o fer que escolte nicamenten part de les adreces IP del servidor. En aquest cas modificarem el fitxer /etc/ssh/sshd_config per a canviarel valor de la directiva Port o afegir entrades de tipus ListenAddress en les quals especificarem les adreces IP i elport que vulguem.

    Per a monitorar el servidor emprant monit generarem un fitxer amb un fragment de configuraci que deixarem en/etc/monit/monit.d/:

    cat > /etc/monit/monit.d/sshd

  • Configuraci dun amfitri de LXC

    I tornarem a carregar la configuraci del monit:

    monit reload

    Serveis per als servidors virtualsPer a simplificar la configuraci dels servidors virtuals i permetre la mobilitat dels mateixos entre diferents servidors fsicsanem a installar una srie de serveis de suport (bsicament servidors intermediaris) en tots els sistemes amfitrions.

    Per a accedir a aquests serveis els servidors virtuals empraran la IP 172.27.0.1, que sempre estar associada alamfitri en el qual sestiga executant el sistema virtualitzat.

    La idea s que la xarxa 172.27.0.0/16 mai sencamina fora dels sistemes amfitrions i quan un servidor virtualestableix connexions amb ladrea 172.27.0.1 est connectant amb serveis que sexecuten en el seu amfitri, per laqual cosa quan migremos un sistema a un nou amfitri les connexions sestabliran contra un servidor disitint a loriginal.

    En els punts segents comentarem alguns dels serveis de suport que anem a installar i com els anem a configurarperqu servisquen als nostres propsits.

    Servidor de correu de lamfitriEn la installaci de lamfitri es va incloure un servidor de correu (postfix), tot i que es va deixar sense configurar.

    Volem que en tots els nostres servidors (amfitri i virtuals) hi haja installat un servidor de correu per a enviar elscorreus generats localment i, en el cas de lamfitri, per a reexpedir els correus dels servidors virtuals.

    Com el fitxer /etc/postfix/main.cf encara no existeix ho crearem ara; lnica cosa que necessitem saber enaquest moment s si anem o no a utilitzar un relay SMTP. Si el nostre provedor de serveis dInternet recomana emprarun relay del mateix ISP, assignarem la seua adrea IP o nom de DNS a la variable de lintrpret RELAYHOST perqu esreemplace pel seu valor en el fitxer. En cas contrari definirem la variable com a buida perqu no sutilitze cap relay anivell global:

    RELAYHOST=""cat > /etc/postfix/main.cf

  • Configuraci dun amfitri de LXC

    Aquest fitxer ser el mateix per a tots els servidors que utilitzen el mateix relay SMTP i no permet lenviament demissatges locals (sassumeix que tots els missatges aniran dirigits a usuaris de servidors remots).

    El servidor escolta en ladrea de loopback i en la IP 172.27.0.1, de manera que tots els servidors virtuals allotjatsen la mquina poden accedir al mateix i emprar-ho com relayhost (la xarxa 172.27.0.1/16 est inclosa en la variablemynetworks).

    Als correus generats localment que no tinguen domini en el From: o en el To: sels afegir el sufix @localhost.localdomain,que desprs ser reescrit en el fitxer /etc/postfix/canonical_maps.regexp.

    Grcies a ls daquest fitxer de reescriptura, la configuraci principal del servidor ser idntica per a tots els servidorsi noms haurem deditar aquest fitxer per a saber don vnen els missatges, encara que en general tamb es podr saberquina s la mquina dorigen consultant les capaleres dels missatges i el nom associat als emissors dels missatges, quenormalment sobt del camp GECOS.

    Per a reescriure les adreces dels missatges generats localment i les dels missatges que vnen dels servidors virtualsperqu senvien a usuaris del domini definit en la variable MAIL_DOMAIN emprarem el segent fitxer /etc/postfix/canonical_maps.regexp:

    HOST_NAME="$(hostname -s)"MAIL_DOMAIN="virtual.organitzacio.cat"

    cat > /etc/postfix/canonical_maps.regexp /etc/postfix/canonical_maps.regexp

  • Configuraci dun amfitri de LXC

    Tornant a lamfitri, si no disposem dun servidor de correu per al MAIL_DOMAIN i volem reenviar els missatges ausuaris remots, podem configurar dominis virtuals afegint el fragment segent al fitxer /etc/postfix/main.cf:

    cat >> /etc/postfix/main.cf /etc/postfix/virtual

    I actualitzarem les taules:

    postmap /etc/postfix/virtual

    Amb aquesta configuraci tots els correus dirigits al domini senviarien a lusuari [email protected];lnic problema amb aquest model s que hem de verificar que el servidor de correu al que anem a enviar-li els missatgesels accepta (si el domini no s real i apareix en una adrea From: hi ha servidors que rebutgen el missatge per a evitarlentrada de SPAM); a ms, si ens inventem el domini i en la destinaci es produeixen rebots no ho detectarem, ja quening acceptar aquests correus.

    Per resoldre aix, es donar dalta en el DNS el nom virtual.organitzacio.cat i es configurar el servidorde correu de lempresa perqu gestione aqueix domini (com ja hem dit, en la nostra configuraci habitual el que femgeneralment s redireccionar tots els usuaris del domini a una llista de correu).

    A partir dac, el servidor estar configurat i podrem tornar a iniciar el servei:

    /etc/init.d/postfix restart

    Per monitorar el postfix amb el monit, generarem un fitxer amb un fragment de configuraci que deixarem en/etc/monit/monitrc.d:

    cat > /etc/monit/monitrc.d/postfix

  • Configuraci dun amfitri de LXC

    Amb la configuraci per defecte el servidor escolta en totes les interfcies de xarxa i noms permet laccs des deladrea de loopback; perqu escolte noms en la IP que ens interessa i permeta laccs des dels servidors virtuals ajustemen /etc/tinyproxy/tinyproxy.conf un parell de directives perqu el servidor escolte en la IP interna i permetalaccs des de les mquines virtuals:

    Llisten 172.27.0.1Allow 172.27.0.0/16

    Una vegada hem afegit aquestes dues opcions podem tornar a iniciar el servei, i ja es podr emprar el servidor inter-mediari posant com a URL ladrea http://172.27.0.1:8888/:

    /etc/init.d/tinyproxy restart

    NotaAquest servidor no fa caching, per com la nostra infraestructura s xicoteta, segurament no ens cal. Una al-ternativa amb memria cau s el conegut Squid, molt ms pesat i complet, massa per a les nostres necessitats.

    Noms resta monitorar el servidor amb el monit:

    cat > /etc/monit/monitrc.d/tinyproxy

  • Configuraci dun amfitri de LXC

    Amb aix, noms quedar configurar els servidors per a que empren el servidor intermediari, la qual cosa farem creantun fitxer en /etc/apt/apt.conf.d:

    cat > /etc/apt/apt.conf.d/90local-proxy /etc/monit/monitrc.d/apt-cacher

  • Installaci de contenidors Debian wheezyamb LXC

    c 2013 Universitat Oberta de Catalunya 13 de gener de 2013

  • Installaci de contenidors Debian wheezy amb LXC

    ContingutIntroducci 1

    Creaci duna mquina virtual 1

    Configuraci de la xarxa dins del contenidor 2

    Configuraci de lAPT 2

    Utilitats del sistema 2

    Serveis de monitoratge 3

    Reconfiguraci i monitoratge de serveis 3Servidor daccs remot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Monit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Servidor de correu del contenidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    IntroducciEn aquest document explicarem com crear plantilles de mquines virtuals amb LXC i com les emprarem per crearmquines virtuals emprant les utilitats dadministraci dLXC per a la lnia dordres.

    Tamb mencionarem els aspectes ms importants de la configuraci bsica dels servidors virtuals per a que funcionensegons el model de xarxa que hem definit, per tenint en compte que moltes parts de la configuraci seran idntiques a lesde lamfitri, com per exemple la configuraci dels serveis de monitoritzaci i les eines addicionals. Una vegada shajaacabat aquesta configuraci bsica, noms quedar pendent la installaci dels serveis finals i principals que sallotjaranen el servidor virtual recent installat.

    Creaci duna mquina virtualHi ha moltes maneres de crear el contenidor LXC inicial que ens servir de plantilla. Per comoditat i facilitat, ens basaremen una de les eines ms simples disponibles al conjunt deines de suport de LXC: lxc-create:

    lxc-create -n template -t debian

    El script de creaci ens preguntar la versi de Debian que volem emprar (7.0 wheezy) i si volem la variant de 32 o64 bits (seleccionarem 64 bits). Seguidament, ens preguntar quins fonts dAPT volem configurar. En el nostre cas, ensinteressa tindrels tots disponibles, incloent-hi Proposed updates, que per defecte no est marcat. Finalment, sens oferirla selecci de la rplica de Debian, que podem establir a ftp.de.debian.org com ja es va suggerir a la installacidel servidor amfitri, i les seccions de Debian a habilitar (noms ens interessa main). La resta de valors poden acceptar-seamb els valors per defecte (interfcie de xarxa, MAC autogenerada, contrasenya de root...).

    Una vegada introduts tots els valors, el script emprar debootstrap per generar un chroot i la configuraci delcontenidor. A partir dac, haurem de fer els canvis per adequar aquest servidor base a les necessitats de la nostra in-fraestructura, installant la monitoritzaci i serveis addicionals.

    Amb el servidor resultant, ser molt fcil crear nous servidors a partir de la plantilla: noms ser qesti dexecutarun script que far una cpia del chroot de la plantilla, i aplicar una srie dexpressions sed per reemplaar el nom delservidor, la seua IP i generar una MAC nova.

    Moltes de les personalitzacions, canvis i modificacions que es faran a partir daquest punt es poden fer directament ed-itant el sistema de fitxers, prenent com arrel del sistema virtual el directori /var/lib/lxc/template, o senzillamentarrencant el servidor, i accedint-hi a una consola emprant lxc-console.

    1/5

  • Installaci de contenidors Debian wheezy amb LXC

    Configuraci de la xarxa dins del contenidorLa configuraci de la xarxa dels servidors virtuals ser, a grans trets, exactament igual que la que vegerem en el captolde la configuraci dels amfitrions.

    Els nics valors que canviaran al fitxer /etc/network/interfaces seran la IP i el nom de la interfcie (alamfitri empravem br0, ac es tracta de la interfcie exportada mitjanant el bridge, amb nom eth0).

    Una vegada tinguem el fitxer amb els valors de xarxa desitjats, podem aplicar els canvis executant el script dinici:

    /etc/init.d/networking restart

    Configuraci de lAPTAbans dinstallar cap paquet addicional modificarem la configuraci dapt per fer els mateixos canvis que ja vam fer amblamfitri: anullarem la installaci per defecte dels paquets recomanats, ls de la memria cau de paquets i afegirem ala configuraci de pinning dAPT aquells paquets de larxiu de backports que puguen fer falta.

    Per afegir el parmetre de configuraci que controla la installaci de paquets recomanats, noms hem dafegir unfitxer a /etc/apt/apt.conf.d:

    echo APT { Install-Recommends "false"; } > /etc/apt/apt.conf.d/0no-recommends

    Com a lamfitri vam configurar lapt-cacher, tamb afegirem un fitxer de configuraci per a que els paquetsempren aquest servei en mode grup:

    cat > /etc/apt/apt.conf.d/90local-proxy

  • Installaci de contenidors Debian wheezy amb LXC

    apt-get install zsh

    # Eines per a cpies remotes: rsync rdiff-backup backupninjaapt-get install -oAPT::Install-Recommends "yes" rsync rdiff-backup backupninja

    # Compresors/descompresors tils: bzip2, zip, unzipapt-get install bzip2 zip unzip

    # Eines per cercar a quin paquet pertany un fitxer: dlocateapt-get install dlocate

    # Utilitats per al control de fitxers i procesos: file lsof psmiscapt-get install file lsof psmisc

    # Eines per fer proves de xarxa: host i netcatapt-get install bind9-host netcat-traditional

    # Utilitat per generar claus aleatries: pwgenapt-get install pwgen

    Una vegada installats els paquets executarem el segent per, de nou, netejar la memria cau local de paquets:

    apt-get clean

    Serveis de monitoratgePer controlar diferents aspectes del servidor virtual installarem unes quantes utilitats de monitoratge: apticron,fail2ban, logcheck i monit.

    La configuraci i posada en marxa de tots ells s idntica a la descrita al captol de configuraci dels amfitrions, per laqual cosa no caldr tornar a explicitar-la ac.

    Reconfiguraci i monitoratge de serveisLa plantilla que hem generat inclou alguns servidors dels quals ens interessa modificar la seua configuraci per defecteper adequar-la a les nostres necessitats.

    En els punts segents descriurem els ajustos a realitzar en la configuraci dalguns dels serveis ja installats i indicaremcom generar els fragments de configuraci del monit perqu se supervise el seu funcionament.

    Servidor daccs remotLa configuraci per defecte del servidor dSSH ens val, per no est de ms mencionar que, segons el model dautenticaciper SSH, potser ser interessant inhabilitar les entrades emprant contrasenya, noms permetent ls de claus SSH, perminimitzar el risc dentrades no autoritzades mitjanant atacs amb keyloggers o de fora bruta.

    Monit

    El que s haurem de fer s afegir el fragment de configuraci de monit al fitxer /etc/monit/monitrc.d/ssh, comja vam veure a la configuraci de lamfitri:

    check process ssh with pidfile /var/run/sshd.pidstart program = "/etc/init.d/ssh start"stop program = "/etc/init.d/ssh stop"

    3/5

  • Installaci de contenidors Debian wheezy amb LXC

    if failed port 22 protocol ssh then restartif 5 restarts within 5 cycles then timeout

    I tornarem a carregar la configuraci del monit amb:

    monit reload

    Servidor de correu del contenidorPer defecte, el servidor virtual shaur installat sense incloure un servidor de correu, o potser sha arrossegat la installacide lExim4 durant la installaci de paquets addicionals. Com ja vam veure, el nostre servidor de correu preferit s Postfix,aix que en primer lloc linstallarem amb:

    apt-get install postfix

    La configuraci pot estar no generada, o haver-se generat amb una configuraci genrica.La reemplaarem per una totalment nova, molt pareguda a la que vam crear per lamfitri, amb alguns canvis im-

    portants: sestablir el smarthost a la IP de lamfitri, que sencarregar denviar-ho al servidor de correu de la nostraxarxa, i inhabilitarem el correu local completament. A ms, la configuraci dels canonical_maps estar lleugeramentmodificada per generar un patr dadreces que ens permeta identificar de quin servidor virtual i allotjat en quin servidoramfitri prov un missatge.

    Assumint les variables emprades en la configuraci de la xarxa de lamfitri, farem:

    RELAYHOST="$INT_IPP.$HOST_INT_IPS"cat > /etc/postfix/main.cf

  • Installaci de contenidors Debian wheezy amb LXC

    VHOST_NAME="$(hostname)"cat > /etc/postfix/canonical_maps.regexp

  • Configuraci de DNS i DHCP per a una LANVersi per a Debian wheezy

    c 2013 Universitat Oberta de Catalunya 13 de gener de 2013

  • Configuraci de DNS i DHCP per a una LAN

    ContingutIntroducci 1

    Installaci i configuraci del dnsmasq 1Monitoritzaci del servei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Installaci i configuraci del powerdns-recursor 3

    IntroducciEmprarem tres tipus de servidors a la nostra infraestructura:

    Per als dominis interns i el DHCP sutilitzar el dnsmasq, que s un servidor de noms lleuger que a ms serveixper a gestionar el DHCP de la xarxa interna.

    Sha triat aquest servidor perqu una vegada configurat afegir noves mquines al DNS i al DHCP s tan senzill comeditar un fitxer (un per al DNS i un altre per al DHCP).

    Aquest servidor noms estar accessible des de la xarxa interna i en principi no es replicara de manera automtica,ja que no podem tenir dos servidors de DHCP primaris actius al mateix temps.

    Per a servir als usuaris (dns recursivo) es podria emprar el mateix dnsmasq, per com volem tenir redundncia shaoptat per utilitzar el programa pdns_recursor que s un servidor de DNS lleuger que fa caching en memria,la qual cosa redueix considerablement el trfic de DNS cap als servidors de dns interns i externs i permet configurardiferents servidors per a dominis concrets (les peticions dels dominis interns aniran al dnsmasq, si tenim algunservidor autoritatiu per a altres dominis externs se li demanar la informaci directament als servidors autoritatiusi la resta se sollicitar als DNS arrels, encara que es podrien configurar com forwarders els servidors de DNSproporcionats pel provedor daccs a Internet.

    Si volem disposar de servidors autoritatius per a dominis daccs pblic usarem el powerdns sense recursor(noms servir dominis per als quals s autoritatiu). Inicialment usarem el backend que treballa contra fitxers detipus bind en el servidor primari i per als servidors secundaris usarem el backend basat en sqlite3 perqu esmantinga sincronitzat de manera automtica (configurarem el primari com supermaster dels secundaris).

    Installaci i configuraci del dnsmasqComenarem intallant el servidor:

    apt-get install dnsmasq dnsmasq-base

    I copiem en /etc/dnsmasq.conf la configuraci descrita en el siguiente fitxer:

    # ==============================# Configuration file for dnsmasq# ==============================

    # Never forward plain names (without a dot or domain part)domain-needed

    # Dont read /etc/resolv.conf, we are going to use this server as autoritative# and it is not going to forward anythingno-resolv

    Versi per a Debian wheezy 1/4

  • Configuraci de DNS i DHCP per a una LAN

    # Add local-only domains here, queries in these domains are answered# from /etc/hosts or DHCP only.local=/pubdmz-net/

    # Listen for DHCP and DNS requests on the given addresses.listen-address=127.0.0.1listen-address=192.168.1.10

    # Bind only on the interfaces we are listening onbind-interfaces

    # Set this (and domain: see below) if you want to have a domain# automatically added to simple names in a hosts-file.expand-hosts

    # Set the domain for dnsmasqdomain=organitzacio.cat

    # Five minutes (300 seconds) TTL for local recordslocal-ttl=300

    # Set the MX Recordsmx-host=organitzacio.cat,mail.organitzacio.cat,5

    # -------------# DHCP Settings# -------------

    # DHCP pool: from 192.168.1.68 to 192.168.1.85, reserve IPs for 3 hoursdhcp-range=192.168.1.68,192.168.1.85,255.255.255.0,3h

    # Read static mappings from /etc/ethersread-ethers

    # DHCP Options# ------------

    # Subnet mask == /24dhcp-option=1,255.255.255.0

    # Default route: gateway de la xarxadhcp-option=3,192.168.1.248

    # Default dns servers (ens)dhcp-option=6,192.168.1.11

    # Set the default time-to-live to 12hdhcp-option=23,12h

    # Broadcast addressdhcp-option=28,192.168.1.255

    # Set the limit on DHCP leases to 16*256 (all the addresses of the

    Versi per a Debian wheezy 2/4

  • Configuraci de DNS i DHCP per a una LAN

    # 192.168.0.0/20 network)dhcp-lease-max=4096

    # Set the DHCP server to authoritative modedhcp-authoritative

    Aquesta configuraci no resol adreces recursivament i assumeix que les adreces de DNS sobtenen del fitxer /etc/hostsde la mquina.

    A ms, la configuraci defineix un rang dinmic per al DHCP i utilitza el fitxer /etc/ethers per assignar sempreles mateixes adreces IP a les adreces MAC conegudes.

    Per evitar haver de definir el domini organitzacio.cat per a les entrades d/etc/hosts canviem la configu-raci de /etc/nsswitch.*conf invertint lordre del servei hosts:

    hosts: dns files

    Aix, els servidors de nom cercaran primer en /etc/resolv.conf i desprs en /etc/hosts, retornant lesadreces de la xarxa local si no sespecifica el domini.

    Idealment, no necessitarem que el servei de DNS escoltara en ms interfcies que en lo, per com el DHCP s hadestar accessible des de la xarxa pblica (per a donar servei a tots els equips de la xarxa), el dnsmasq escolta en una IPdedicada (192.168.1.10) i la resta de serveis usaran una altra IP, ja que no pot haver-hi dos servidors usant el mateix portTCP en la mateixa IP.

    Monitoritzaci del serveiPer monitoritzar el servei, afegirem la configuraci en /etc/monit/monitrc.d/dnsmasq i lenllaarem a /etc/monit/conf.dcom fem habitualment:

    # Check dnsmasqcheck process dnsmasq with pidfile /var/run/dnsmasq.pid

    group dnsstart program = "/etc/init.d/dnsmasq start"stop program = "/etc/init.d/dnsmasq stop"if 5 restarts within 5 cycles then timeout

    Installaci i configuraci del powerdns-recursorHo installem:

    apt-get install pdns-recursor

    Per defecte el fitxer de configuraci del pdns-recursor permet utilitzar el servidor en mode recursiu i escolta en laIP 127.0.0.1; com en el nostre cas aquesta IP est ocupada, modificarem el contingut de /etc/powerdns/recursor.confper a ajustar els valors de les variables local-address i forward-zones-file (la variable allow-from no latoquem perqu el valor per defecte permet la connexi des de rangs dadreces IP privades, que sn els que utilitzaremnosaltres).

    El valor de la primera variable ser el de la IP pblica del servidor:

    local-address=192.168.1.11

    I forward-zones-file ser:

    forward-zones-file=/etc/powerdns/recursor.forward-zones-file

    Versi per a Debian wheezy 3/4

  • Configuraci de DNS i DHCP per a una LAN

    Les lnies del fitxer /etc/powerdns/recursor.forward-zones-file assignen a un nom de domini unallista de de servidors de DNS autoritatius per al mateix; en el nostre cas usarem aquest fitxer per a definir els servidors perals dominis interns i els externs que servim nosaltres.

    El contingut inicial del fitxer llistar els dominis interns perqu els resolga el dnsmasq:

    cat > /etc/powerdns/recursor.forward-zones-file

  • Configuraci dun servidor autoritatiu deDNS

    Versi per a Debian wheezy

    c 2013 Universitat Oberta de Catalunya 13 de gener de 2013

  • Configuraci dun servidor autoritatiu de DNS

    ContingutIntroducci 1

    Installaci i configuraci del servidor primari 1

    Installaci i configuraci dels servidors secundaris 2

    IntroducciSi volem disposar de servidors autoritatius per a dominis daccs pblic usarem el powerdns sense recursor (nomsservir dominis per als quals s autoritatiu). Inicialment usarem el rerefons que treballa contra fitxers de tipus bind enel servidor primari i en els servidors secundaris usarem el rerefons basat en sqlite3 perqu es mantinga sincronitzat demanera automtica (configurarem el primari com supermaster dels secundaris).

    Installaci i configuraci del servidor primariAquest document explica com installar i configurar el powerdns per funcionar com a servidor de noms primari i secundaride diversos dominis.

    Com no configurarem molts dominis, el servidor principal utilitzar el rerefons bind (s el que llegeix un fitxernamed.conf similar al de bind9) i els secundaris utilitzaran el rerefons basat en sqlite3.

    Per a installar el servidor principal necessitarem noms un paquet:

    apt-get install pdns-server

    Com anem a utilitzar la replicaci mestre/esclau habilitarem el seu s en els servidors corresponents i configurarem alservidor principal perqu permeta que els servidors secundaris obtinguen les zones.

    El fitxer /etc/powerdns/pdns.d/pdns.local del servidor primari ser:

    # Bind to ens IP addresslocal-address=192.168.1.11

    # Do queries from the same IPquery-local-address=192.168.1.11

    # Enable mastermaster=on

    # Enable AXFRdisable-axfr=no

    # Allow transfers from ns01.pubdmz-net, organitzacio.cat, ...allow-axfr-ips=192.168.1.11 1.2.3.4

    # Use the bind backendlaunch=bindbind-config=/srv/powerdns/bind/named.conf

    En aquest fitxer especificarem les adreces IP perqu el powerdns est installat en un servidor virtual amb ms dunaIP.

    El fitxer /srv/powerdns/bind/named.conf contindr el segent:

    Versi per a Debian wheezy 1/3

  • Configuraci dun servidor autoritatiu de DNS

    options {directory "/srv/powerdns/bind/domains";recursion no;minimal-responses yes;

    };

    # Organitzaci.catzone "organitzacio.cat" { type master; file "organitzacio.cat"; };

    I el fitxer /srv/powerdns/bind/domains/organitzacio.cat contindr una descripci de la zona:

    $TTL 3600$ORIGIN organitzacio.cat.@ SOA ns.organitzacio.cat. root.ns.organitzacio.cat. (

    2008021300 ;serial (version)10800 ;refresh period (3 hours)3600 ;retry interval (1 hour)604800 ;expire time (1 week)3600 ;default ttl (1 hour)

    )@ NS ns.organitzacio.cat.@ NS ns2.organitzacio.cat.@ MX 10 mail.organitzacio.cat.organitzacio.cat. A 1.2.3.4www.organitzacio.cat. A 1.2.3.4[...]

    Cada vegada que vulguem afegir una zona editarem el *named.conf per afegir la referncia al fitxer de zona icrearem aquest mateix fitxer.

    Cada vegada que editem una zona incrementarem el serial (emprant el format AAAAMMDDVV, on AAAA s lany, MMel mes, DD el dia i VV la versi dins del dia) i avisarem al servidor executant lordre::.

    pdns_control reload

    Si volem forar lenviament de notificacions sobre un domini farem:

    pdns_control notify DOMINIO

    Per llanar notificacions per tots els dominis configurats, farem:

    cd /srv/powerdns/bind/domains/for d in *; do pdns_control notify $d; done

    Installaci i configuraci dels servidors secundarisPer installar el rerefons que implementa sqlite3 farem el segent:

    apt-get install pdns-backend-sqlite3

    La configuraci es far en el fitxer /etc/powerdns/pdns.d/pdns.local, que ens quedar com el segent:

    # Enable slave mode (we will be running a superslave)slave=on

    # Use sqlite3 backendlaunch=gsqlite3gsqlite3-database=/srv/powerdns/sqlite3/pdns.db

    Versi per a Debian wheezy 2/3

  • Configuraci dun servidor autoritatiu de DNS

    Una vegada copiada la configuraci crearem la base dades:

    mkdir -p /srv/powerdns/sqlite3sqlite3 /srv/powerdns/sqlite3/pdns.db

  • Installaci dun servidor de directori i einesde gesti

    Versi de per a Debian 7.0 wheezy

    c 2013 Universitat Oberta de Catalunya 13 de gener de 2013

  • Installaci dun servidor de directori i eines de gesti

    Resum

    Aquest mdul descriu com realitzar una installaci basada completament en programari llibre que actue com con-trolador primari de domini de Windows amb perfils itinerants, compartici de fitxers, servei dimpressi i administracivia web, de manera que siga capa de reemplaar un servidor dActive Directory.

    ContingutIntroducci 2

    Parmetres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Installaci dun servidor Samba amb LDAP 3Requeriments del servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Servidor LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Monitoratge de slapd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Cpia de seguretat dLDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    Configuraci i s de clients dLDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6s dLDAPS i/o STARTTLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    Servidor Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Monitoratge de Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    Ajustos de slapd per a Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Preparaci del directori amb smbldap-tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Llistat dusuaris (NSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Autenticaci dusuaris (PAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Configuraci de Samba per a LDAP i PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Compartici de carpetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    Installaci dun servidor de replicaci dLDAP 13Canvis necessaris en el servidor provedor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    Creaci de lusuari synchro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Activaci de syncrepl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    Configuraci dun servidor consumidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Configuracions prvies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Buidat del servidor consumidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Configuraci de la replicaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Comprovacions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    Impressi amb CUPS via Samba 19Requeriments del servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Configuraci de Samba per a CUPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    Monitoratge de CUPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Com afegir una impressora a CUPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    Installaci de GOsa 21Requeriments del servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Installaci del servidor web i GOsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Ajustos de slapd per a GOsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Configuraci dNginx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    Monitoratge dNginx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Configuraci inicial del GOsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    Versi de per a Debian 7.0 wheezy 1/43

  • Installaci dun servidor de directori i eines de gesti

    Personalitzaci del GOsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    Configuraci de clients Windows 28Requeriments del client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Com afegir una estaci al domini Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Com afegir una impressora al domini Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    Tutorial de GOsa 29Creaci dusuaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Revisi, modificaci i eliminaci dusuaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Plantilles dusuaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Treball amb grups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Modificaci dels atributs propis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Treball com a usuari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33s de la llibreta dadreces (Addressbook) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    Configuraci addicional per a MySQL 34Monitoratge de MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Cpia de seguretat de MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Configuraci de phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    Scripts i utilitats per administrar LDAP 35

    Apndix: smb.conf 35

    Apndix: gosa.conf 37

    IntroducciAmb el muntatge descrit en aquest mdul es pretn aconseguir una soluci de servei de directori, que treballe com acontrolador primari de domini (PDC) de Windows amb possibilitat de perfils itinerants i administraci via web, ambserveis de compartici de fitxers i impressores.

    La installaci es realitzar en un contenidor virtual dedicat basat en LXC, en qu sinstallaran els serveis dLDAP,Samba i les seues eines dadministraci i gesti via web.

    La soluci present es basa en les segents aplicacions lliures:

    Samba per a la gesti del domini

    OpenLDAP per a les bases de dades dusuaris, grups i equips

    CUPS com a servidor dimpressi

    GOsa per a ladministraci via web

    Debian com sistema operatiu

    LXC com soluci de virtualitzaci

    Versi de per a Debian 7.0 wheezy 2/43

    http://www.samba.org/http://www.openldap.org/http://www.cups.org/https://oss.gonicus.de/labs/gosa/http://www.debian.org/http://lxc.sourceforge.net/

  • Installaci dun servidor de directori i eines de gesti

    ParmetresCerts valors emprats en el manual dependran dels valors escollits en el moment de la installaci. Aquests valors apareix-eran com els parmetres segents, i hauran de ser substituts pels seus respectius valors reals quan apareguen:

    #ADMIN_MAIL#: Adrea existent de correu corresponent a ladministrador del sistema (en el nostre cas [email protected]).

    #MAIL_DOMAIN#: Dominio de correo (per nosaltres, organitzacio.com).

    #MAIL_SERVER#: Servidor de correu deixida (mail.organitzacio.cat).

    #ORG_NAME#: Nom de la organitzaci (Organitzaci).

    #LDAP_BASE#: Base de les consultes LDAP (en el nostre cas, dc=organitzacio,dc=cat).

    #LDAP_ADMIN_PW#: Contrasenya de ladministrador LDAP.

    #PDC_NAME#: Nom de DNS curt del servidor PDC (ldap).

    #PDC_SERVER#: Nom de DNS complet del servidor PDC (ldap.organitzacio.cat).

    #DOMAIN#: Domini Windows (p.ej. ORGANITZACIO).

    #DOMAIN_ADMIN_PW#: Contrasenya de ladministrador del domini Windows.

    #HOME_DRIVE#: Unitat on els usuaris Windows veuran el seu directori personal del servidor (H:).

    #GOSA_ADMIN_PW#: Contrasenya de ladministrador de GOsa.

    Installaci dun servidor Samba amb LDAPAquesta secci descriu com installar un controlador primari de domini (Primary Domain Controller, PDC) de Windowsemprant la suite Samba sota Debian GNU/Linux, amb un magatzem LDAP dusuaris, grups i sistemes proporcionat perun servidor OpenLDAP.

    Gran part daquesta configuraci es basa en The Linux Samba-OpenLDAP Howto en LDAP + Samba PDC + PAM/NSSon Debian Lenny HOWTO, i en LDAP for Rocket Sciencists.

    Requeriments del servidorUn PDC amb Samba no necessita massa memria per funcionar; amb 512 MiB de RAM hauria de ser suficient. Pel querespecta al disc, el que ms ocupar seran les dades dels usuaris (directoris personals i perfils de Windows), que pot seruns pocs megabytes o molts gigabytes, depenent de quants usuaris de lempresa necessiten emprar Microsoft Windowsper desenvolupar la seua tasca professional. Per a la installaci base no hauria de ser necessari ms d1 GiB de disc.Quant ms espai addicional es dispose, ms dades podran emmagatzemar els usuaris.

    Atenci!s molt recomanable que el PDC tinga el seu nom (#PDC_SERVER#) registrat al DNS.

    A partir daquest punt sassumir que disposem dun servidor amb una configuraci bsica preparada i que ens trobemdins daquest amb una sessi de root.

    Servidor LDAPComenarem per installar el servidor slapd del projecte OpenLDAP perqu Samba tinga accessible la base de dadesLDAP. Per a a executarem:

    # apt-get install slapd ldap-utils

    responent de la manera segent les preguntes formulades:

    Versi de per a Debian 7.0 wheezy 3/43

    http://www.samba.org/http://www.openldap.org/http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/http://edin.no-ip.com/blog/hswong3i/ldap-samba-pdc-pamnss-debian-lenny-howtohttp://edin.no-ip.com/blog/hswong3i/ldap-samba-pdc-pamnss-debian-lenny-howtohttp://www.zytrax.com/books/ldap/

  • Installaci dun servidor de directori i eines de gesti

    Omit OpenLDAP server configuration? No DNS domain name: #LDAP_BASE# en format de domini DNS, organitzacio.cat per a dc=organitzacio,dc=cat Organization name: #ORG_NAME# Administrator password: #LDAP_ADMIN_PW# Database backend to use: HDB Do you want the database to be removed when slapd is purged? No Move old database? Yes Allow LDAPv2 protocol? No

    Si algunes preguntes no apareixen, reconfigurarem el paquet slapd executant:

    # dpkg-reconfigure slapd

    Tot i no ser necessari a la nostra configuraci, indicarem al servidor LDAP que empre un xifratge MD5 compatible ambshadow per a les contrasenyes. Per fer aix, afegirem el segent snippet LDIF al servidor, amb leina ldapmodify:

    dn: cn=configreplace: olcPasswordCryptSaltFormatolcPasswordCryptSaltFormat: $6$%.86s

    dn: olcDatabase={-1}frontend,cn=configreplace: olcPasswordHasholcPasswordHash: {CRYPT}

    # ldapmodify -Y EXTERNAL -H ldapi:/// -f snippet.ldif

    NotaAquest canvis estan en format LDIF, seguint el comportament per defecte de slapd en Debian des de laversi squeeze, que empra el nou model dinmic de configuraci cn=config.

    Per incrementar la seguretat del servidor LDAP, tancarem laccs sense xifrat a les connexions remotes, i nomshabilitarem les consultes des daltres equips usant SSL. Aix, configurarem slapd perqu escolte peticions sense xifrara la interfcie de xarxa local1 i en un scol Unix2 (per a aquelles aplicacions que puguen usar-ho, ja que va ms rpid),establint el valor segent en /etc/default/slapd:

    SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///"

    Crearem, amb certtool de GnuTLS, un certificat autosignat per emprar amb el servidor dLDAP:

    # certtool --generate-privkey --outfile ldap.organitzacio.cat.key# certtool --generate-self-signed --load-privkey ldap.organitzacio.cat.key --outfile ldap.organitzacio.cat.pem

    Ms endavant shauria de crear un signat per una entitat certificadora reconeguda, o per una entitat certificadora localacceptada a tots els sistemes de loficina, per de moment aquest far la seua feina.

    NotaSha creat el certificat amb GnuTLS perqu usant un certificat normal creat amb OpenSSL donava problemesamb OpenLDAP, que usa les biblioteques de GnuTLS.(Durant el procs de revisi de la documentaci he arribat a la conclusi que aix probablement s un prob-lema del tipus de representaci Base64 que empra OpenSSL per defecte, i es podria haver solucionat senzil-lament transformant el certificat creat per OpenSSL amb certtool.) altre.)

    Versi de per a Debian 7.0 wheezy 4/43

  • Installaci dun servidor de directori i eines de gesti

    A ms, afegirem el segent a cn=config, per a que el servidor carregue el certificat del xifratge:

    dn: cn=configadd: olcTLSCipherSuiteolcTLSCipherSuite: NORMAL-add: olcTLSCertificateFileolcTLSCertificateFile: /etc/ldap/ssl/ldap.organitzacio.cat.pem-add: olcTLSCertificateKeyFileolcTLSCertificateKeyFile: /etc/ldap/ssl/ldap.organitzacio.cat.key-add: olcTLSVerifyClientolcTLSVerifyClient: never

    # ldapmodify -Y EXTERNAL -H ldapi:/// -f tls.ldif

    Per comprovar que el servei LDAP est executant-se correctament, configurarem les utilitats LDAP establint els valorsde BASE i URI en /etc/ldap/ldap.conf:

    # MY_LDAP_BASE=#LDAP_BASE## sed -e s/^#BASE[[:space:]].*/BASE "$MY_LDAP_BASE"/ \

    -e s|^#URI[[:space:]].*|URI ldapi://| \-i /etc/ldap/ldap.conf

    Una vegada fet a podem executar ldapsearch, que ens hauria de mostrar almenys les entrades de la nostrabase LDAP i el seu administrador, que hauria de tenir el nom distingit (Distinguised Name o DN, lidentificador LDAP)cn=admin,#LDAP_BASE#.

    Monitoratge de slapd

    Per a que Monit supervise lexistncia del dimoni slapd crearem el fitxer segent en /etc/monit/monit.d/slapd,per desprs enllaar-ho a ../conf.d com de costum:

    check process slapd with pidfile /var/run/slapd/slapd.pidgroup databasestart program "/etc/init.d/slapd start"stop program "/etc/init.d/slapd stop"if failed port 389 protocol ldap3

    with timeout 30 secondsthen restart

    if failed unixsocket /var/run/ldapi protocol ldap3with timeout 30 secondsthen restart

    if 5 restarts within 5 cyclesthen timeout

    I executarem:

    # monit reload

    1Aplicacions que noms es comuniquen via TCP/IP amb el servidor LDAP: smbldap-tools, GOsa.2Aplicacions que poden comunicar-se via scol UNIX amb el servidor LDAP: ldap-utils, libnss-ldapd, libpam-ldap.

    Versi de per a Debian 7.0 wheezy 5/43

  • Installaci dun servidor de directori i eines de gesti

    Cpia de seguretat dLDAP

    Tot i que la intenci era emprar backupninja per fer una cpia de seguretat completa de les dades del nostre slapd,la darrera versi daquest til programa de cpies de seguretat encara no suporta el format de configuraci cn=config.

    Donat aix, emprarem una soluci ms senzilla per no tan elegant: ens limitarem a installar un treball de cron quefaa un slapcat i escriga leixida en un fitxer diriament:

    0 2 * * * slapcat > /var/backup/slapd-$(date -I)

    Configuraci i s de clients dLDAPCom hem vist anteriorment, el mnim que necessitem configurar perqu un client empre el servidor que acabem dinstallarser generar un fitxer /etc/ldap/ldap.conf amb el contingut segent:

    BASE dc=organitzacio,dc=catURI ldap://ldap.organitzacio.cat

    s dLDAPS i/o STARTTLS

    Si volem emprar connexions de tipus LDAPS o STARTTLS, haurem dobtenir els certificats dels servidors LDAP. El mscmode seria generar un fitxer amb els certificats pblics de tots els servidors LDAP a emprar i deixar-lo accessible desde la web:

    mkdir /etc/ldap/ssl/cd /etc/ldap/ssl/wget http://ldap/ldap-servers.pem

    Per emprar connexions LDAPS, el fitxer /etc/ldap/ldap.conf haur de tindre laspecte segent:

    BASE dc=organitzacio,dc=cat URI ldaps://ldap.organitzacio.cat TLS_CACERT /etc/ldap/ssl/ldap-servers.pem

    Per emprar STARTTLS el fitxer /etc/ldap/ldap.conf quedar aix:

    BASE dc=organitzacio,dc=catURI ldap://ldap.organitzacio.catTLS_CACERT /etc/ldap/ssl/ldap-servers.pem

    I