Está en la página 1de 21

GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005.

Guadeadministracin de
servidoresGnu/Linux.

Copyright (c) 2006 Antonio Becerro Martinez.


Permissionisgrantedtocopy,distributeand/ormodifythisdocument
underthetermsoftheGNUFreeDocumentationLicense,Version1.2
oranylaterversionpublishedbytheFreeSoftwareFoundation;
withnoInvariantSections,noFrontCoverTexts,andnoBackCover
Texts.Acopyofthelicenseisincludedinthesectionentitled"GNU
FreeDocumentationLicense".
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005.

1.INSTALACIONDEDEBIANGNU/LINUX.

Enprimerlugar,vamosarealizarunainstalacinde Debian enunPc.Laversinquevamosautilizar,es Woody


release 4. Si el ordenador tiene instalado previamente otro sistema operativo como Microsoft Windows, lo
conservaremos intacto en su particin. Introducimos nuestro CDRom de Debian, y arrancamos el equipo, poniendo
especialcuidadoenquelaBiosestconfiguradaparaarrancarunCDRomdeinstalacin.Normalmente,solohabrque
situarcomodispositivodearranqueprimarioelCDRom,enlugardeldiscoduro.LosajustesdelaBios,seinicianpulsando
lateclaSupr,duranteelarranquedelordenador.Elapartadoquenecesitamosmodificarsesuelellamar:bootloadero
algosimilar.Entodocaso,ellodependedelamarcayversindelaBiosquetengamos.Hechoesto,seiniciaelprograma
deinstalacinde Debian.Pulsamos F3,enelmenqueapareceacontinuacinelegimosel kernel2.4,yseguimos
todos los pasos de la instalacin (idioma, teclado, etc). Creamos solamente dos particiones, una para la memoria de
intercambio(swap),yotraparaelsistema.DosparticioneseslomnimoparaunsistemaGnu/Linux,aunquepodemos
aadirlasquequeramos.Esmuyhabitualunaparticin/users,paralosusuarios,o/home,oloquequeramos./vary/
data,sonparticioneshabituales,enmuchosservidores.Formateamoslasparticionesnuevasylesasignamoslospuntosde
montajeadecuados.Acontinuacinescogemos:instalarelnucleoylosm dulos.Habitualmente,enelcasodeun
Pc,concomponentescomunes,nonecesitaremosinstalarcontroladoresdedispositivosadicionales.Enestoscasos,el
kerneldisponedesuficienteinformacinparamanejarelhardwareporsimismo.Cuandollegamosalapartadodeelegir
DHCPoBOOTP,noinstalamosniunoniotro.UnservidorDHCP,esaqulquenosasignaunaIPdentrodelrangoque
tengadisponible. Es unaforma deconectarse ainternetpacticamente autmatica. BOOTP esunmtodo diferente,
apropiadoenalgunoscasosconcretos(comolosClusters).Latarjetadered,haceunbroadcasting(unallamadaenbusca
deservidoresdisponibles),yseautoconfigura.Asque,siinstalamoselservidor BOOTP enunamquina,elrestode
mquinas se conectarn solas. Nosotros no vamos a utilizar ni DHCP, ni BOOTP, sino que vamos a configurar
manualmentenuestrosdatosdered.Ennuestrocasosonlossiguientes:

IP:192.168.0.209
Mscara:255.255.255.0
Dominio:hileras.net
Pasarela:192.168.0.100
DNS:192.168.0.254
192.168.1.100
192.168.1.101
nombre:aula9
Pass:nodo50
Direcci n:aula9.hileras.net

Ahora,seinstalaelsistemabase.Despusescogemoshacerelsistemaarracable(Lilo).Nohacemosdiscodearranque.
Noesnecesario,yaquesiemprepodemosutilizareldiscodeinstalacindeDebian,yllegarhastaelpuntodelainstalacin
quenosinterese,parahaceralgncambio,sinrealizarningunaotramodificacin.Mstarde,nospreguntasiqueremos
utilizarGMT.Decimosques.Eslahoradelmeridianodereferencia,queseencuentraenelReinoUnido.Comoalgoritmo
deencriptacindecontraseas,elegimosmd5enlugardeDes,unalgoritmomsantiguo.Nosvaaaparecer,unmensaje
acercadelospeligrosdeutilizarNIS(sistemadecontraseasnolocales).Essolounanotainformativa.Nohayningnerror
en la instalacin. Ante la pregunta: Shadows password, respondemos Yes. Es ms seguro. Esto es, que las
contraseasenlugardeguardarseenlacarpeta: /etc/password (queesundirectorioaccesibleatodoelmundo)se
guardenen:/etc/shadow,queesundirectorioaccesiblesoloporelroot.Naturalmente,lascontraseasvanencriptadas,
encualquiercaso.
Enelsiguientepaso,cuandonospreguntasiqueremosinstalarlospaquetes Pcmcia ledecimosqueno,yaqueno
estamosrealizandolainstalacinenunporttil.Ahoravamosapasaraunapartedelainstalacinmuyimportante:la
configuracindeApt.EsteeselprogramaquegestionalospaquetesenDebian.Eselmejorgestordepaquetesdetodas
lasdistribucionesGnu/Linux.Aptpuedebuscar,instalaryresolverlasdependenciasdecualquierpaquete.deb
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005.

einclusodecdigofuente,desdemltiplesrepositorios.Escmododeutilizar,robustoymuycapz.Elenfoquequehace
Debian deesteprogramaespeculiar.Como apt esmuyflxible,lainstalacinde Debian esminimalista(instalacin
base).Seinstalaloesencialparafuncionar,seconfigura apt,yelrestoyaseinstalaramstarde,amedidaquesea
necesario. Mediante el comando: aptsetup vuelven a salir las pantallas de configuracin de apt, en caso de que
queramosvolveraconfigurarlo.Escogemoscomomediodeinstalacinftp,comoservidorftp:ftp.rediris.comycomo
pasSpain(es).ParainstalarpaquetesenDebianhaymuchosmtodos.Veamosalgunos;

apttar.gztaskselapkgdselect

Noobstante,laherramientaquemssesueleutilizaresapt.Enestecursovamosautilizarpreferentemente apt.En
cualquiercaso,enelsiguientepasodelainstalacin de Debian,vaaaparecer tasksel.Esteesunprograma de
instalacindepaquetes,quemuestraunmen,contodoslospaquetesagrupadosdentrodecategoriasmsomenos
genricas,comoXwindowssystemoDesktopenvironment.Siescogemoscualquieradeestas,taskselinstalartodoslos
paquetesasociadosalacategoriaseleccionada. tasksel puedeserejecutadoencualquiermomentodesdeuna shell,
medianteelcomando:tasksel.Ennuestrocaso,escogemos:XwindowssystemyDesktopenvironment,ascomotcltk
(conjuntodelibreriasgrficasesencialesparamuchosprogramas.(Permiten,porejemplo,configurarelkernelenmodo
grfico.)
Seguimosadelante.Elinstaladornosvaapreguntarsiqueremosinstalar exim,elgestordecorreopordefecto,en
Debian.Ledecimosqueno.Ahorallegaelmomentodeconfigurarelsistemagrfico.Seutilizaelsiguientecomando:

dpkgreconfigurexserverxfree86

ElcomandodpkgreconfiguresirveparavolveraconfigurarcualquierpaqueteenDebian.Duranteestaparte,
tenemos que escoger el monitor, la tarjeta grfica, el ratn, el teclado, y cualquier otro perifrico que tengamos.
Naturalmente,tendremosqueconocernuestrohardwaredeantemano.Elhardwareestandarnopresentarningnproblema.
Si tenemos algn perifrico especial, puede ser que tengamos que trabajar algo ms. Hecho esto, nuestra flamante
distribucinDebianestarcompletamenteinstalada.

Veamosahoraunlistadodecomandosparaelgestordepaquetesapt:

aptgetinstallpaquete#Instalapaquete.
aptcachesearchcadenadecaracteres#buscapaquetes.
aptgetupdate#Actualizalalistadepaquetes.
aptcacheshowpaquete#Descripcinmximadepaquete.
aptcachedependspaquete#Muestradependencias.
aptgetinstall/testing#Cambioalaramatesting.
aptgetinstall/unstable#Cambioalaramainestable.
aptgetremovepaquete#Borrapaquete.Dejaficherosdeconfiguracin.
aptgetremovepurgepaquete#Borrapaqueteyficherodeconfiguracin.
aptgetupgradepaquete#Actualizapaquete.
aptgetdistupgradepaquete#Actualizatodoslospaquetesdeladistro.
aptgetsourcepaquete#Descargarcdigofuente.
aptgetbsourcepaquete#Descargarfuenteycompilarloautomticamente
aptgetautocleanpaquete#Eliminaversionesanteriores.

Nota
moreyless,sonpaginadores.Sirvenparamostrarelcontenidodeunficheroenelmonitor,
enformadepantallassucesivas.Muytilparavisualizardocumentosgrandes.
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005.

Nota
Elpid,eselnmerodeunproceso.Eselresultadodeunirp(proceso)eid(identificador).

Porltimo,vamosahacerunostestanuestrosmediosdeinstalacin,enestecasoservidoresftp.Elprogramaquevamos
autilizarsellama:netselect.Enprimerlugar,hayqueinstalarlomediante apt.Vamosaponerapruebalossiguientes
servidores:
ftp.rediris.es
ftp.lnux.co.uk
ftp.sunet.se
ftp.debian.org

Elprograma netselect,devuelveunvalornumricodecadaservidor.Elnmeromsbajo,indicaunarespuestams
rpidaporpartedelservidor.Esinteresantesabercualvamejor,parapoderinstalarlospaquetesquenosinteresen,de
formalomsrpidaposible.

2.APACHE

Elservidorapache,esseguramenteelprogramadesoftwarelibremsconocido.Suxito,radicaensurobustez,ysu
capacidadparasoportarunaenormecantidaddecaractersticasenformademdulos.Suextensa API,permitealos
desarrolladoresampliarsuscapacidadesparahacercasicualquiercosa.Nosotrosvamosainstalarlaversin1deApache.
Existeversin2,perotodavanoseconsideralobastanteestable,enentornosdeproduccin.Utilizaremosunmdulo
adicionaldeencriptacinllamadossl.Demodo,quelaversinsellama:apachessl.
Enprimerlugar,instalamoselprogramamediante:aptgetinstallapachesslElprogramadeinstalacinnosvaa
hacerunpardepreguntas: ServerName y EmailAddress.Laprimeraeslaidentificacindenuestroequipo.En
nuestrocaso:aula9.hileras.net.Comodireccindecorreonoponemosnada.LosficherosdeconfiguracindeDebianse
encuentranen:/etcylosdeApachesslen:/etc/apachesslElarchivodeconfiguracintieneelsiguientenombre:

httpd.conf

TodoloquehayquehacerparaconfigurarApachessl,eseditaresteficheromedianteuneditordetextos.Podemos
utilizarcualquieradeestos:emacs,xemacs,kate,etcsinosdefendemosbienenmododetexto,emacseselmejor
editor,esextensible,configurableyestcompletamenteautodocumentado.Elfichero httpd.conf,estmuycomentado.
Soloestnactivaslaslineasquenoempiezanporelcarcter:#,elrestosoncomentarios.Podemosescribirnuestrospropios
comentarios aadiendolineasprecedidadas por: #.Primero hacemos unacopiadel ficherooriginal httpd.conf.Con
guardarloconotraextensinessuficiente.Cadavezquehagamosuncambio,hayquepararyarrancarelservidorApache.
Estossonloscomandos:

apachesslctlstop #paraApachessl
apachesslctlstart #arrancaApachessl
apachesslctlrestart #parayarrancaApachessl

LomnimoquehayquehacerparatenerunservidorApachefuncionandoeseliminarelcarcter#(comentario)alalinea:/
ServerName,ysustituirServerNameporelnombredenuestroservidor.Enestecasoqueda:/aula9.hileras.net
Paracomprobarsufuncionamientoparamosyarrancamoselservidorapache,yenunnavegadordeinternet,tecleamosesta
url:
https://aula9.hileras.net
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005.

Sienlugardehttps,escribimoshttp,nofunciona.Porelmomento,elpuerto80noestabierto(puertoestandarpara
servidoreshttp)pormotivosdeseguridad.Lapginawebqueapareceenelnavegadorsellama:index.html,ysurutaes:/
etc/www,nosotrospodremoscrearcarpetasnuevasdentrodeldirectorio/etc/wwwparanuestraspginasweb.Sicreamos
unacarpetallamada,porejemplo:empresa1,entonces,laurlser:https://empresa1/aula9.hileras.net.Apache
ssl,asumequelawebdeiniciodecualquiersitiowebdebellamarse:index.html.Comoseve,lainstalacinyconfiguracin
bsicadeApachessl,noesnadadifcil.

Enprincipio,parecebuenaideapersonalizarlapginadeiniciodenuestroservidor.Podemoshacerloeneleditordetexto
queestemosutilizando,oejecutaruneditordehtml,comoQuantaoBluefish.Ahora,vamosaverconunpocomsde
detenimientoelficherodeconfiguracindeApache:httpd.conf.
Losapartadosmsimportantesatenerencuentasonlassiguienteslineas:

Servertypestandalone#arrancaportimismo.
Sisedesea,sepuedehacerqueeldemonioinetd
arranqueelApache.Ventaja:escmodoporqueen
eliniciodelosserviciosderedsetieneApacheactivo.
Desventaja:siinetdfalla,Apachetambinyviceversa.

ServerRoot#ficherosdeconfiguracin.

Timeout300#300sg.(5minutos).Tiempomximo
deunaconexin.Sidurante300sg.elusuarionohace
nada,Apacheledesconecta.Laideaesnoperderancho
debandaenconexinesacabadas.

StartServers5#5procesoshijosencola,como
mximo.Esdecir,5usuarios.

MaxClients150#150usuariossimultneos,como
mximo.

Listen#Eselpuerto.Parahttpnormalmente
esel80.httpsutilizael443.httpsesunprotocolopara
conexionessegurasoencriptadas.

DocumentRoot#Eslarutaalosarchivosdelas
pginasWeb.Pordefecto/etc/www

Errorlog#Eslarutaalficherodeerrores.Pordefecto
/var/log/apachessl/error.logHay7nivelesdeinformacin
deerror,segnsuimportancia:debug,info,notice,warn,
error,crit,alertyemerg.

Vamosaverahoralosenlacesdirectoso Alias.estos,sirvenparaqueunusuariotecleeenla url delapgina,a


continuacindeldominiodenuestroservidor,elnombredeundirectorioyqueselemuestreotrodiferente.Elquenosotros
hayamosdefinido.Paraquesirve?Veamosunejemplo.Supongamosquequeremosquelosusuariosdenuestroservidor
puedanverelcontenidodeldirectorio:/etc.Entonces,parahacerunaliasescribimos:

Alias/configuracion/etc
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

Elusuarioseconectaalaurl:https//aula9.hileras.net/configuraci nyelnavegadorlemuestraelcontenidode/
etc.Estatcnica,puedeservirparahacerunaespeciederudimentarioservidordedescargadeficheros,alestiloftp.En
unacarpetaponemoslosficherosadescargar,hacemoselalias,ycuandolosusuariosseconectenpodrndescargarselos
ficheros.LosAliasse
escribenenelficherohttpd.conf.

Nota
ElpropietariodeApache(porasdecirloeladministrador)eselusuario:wwwdata,del
grupowwwdata,pormotivosdeseguridad.

Ahoravamosahacerun directorioprivado accesiblemedianteloginypassword(usuarioycontrasea)desdeun


navegadordeinternet.Elcomandoparaestaaccines:

htpasswdcrutaadirectorio

Entonces,elsistematepidequeleproporcionesunacontrasea,yquelaconfirmesescribiendoladenuevo.Esto,genera
eneldirectoriopropuesto,unficherollamado:.htaccess.
Esteficheroestoculto(todoslosficherosprecedidosporunpuntoloestnenUnix).Noobstanteeseditableenuneditor
detextocomovi.Veamosquecontiene:
AuthName"Directorioprivado"
AuthTypeBasic
AuthUserFile/etc/apachessl/htpasswd
requireuserantonio

Laprimeralineasimplementeeselnombre.Lasegundaeltipoderestriccinquesevaaaplicar,enestecaso:Basic.La
terceralineaindicalarutaaldirectorioalcualqueramosaplicarlasrestricciones.Finalmente,laltimalineaeselnombredel
usuario,enestecasoantonio.Siqueremoscrearotrousuario,simplementecambiamosantonioporjoseba.Elfichero .
htaccesssiempretienequeestareneldirectorioalcualseaplicanlasrestricciones.

Veamos,acontinuacin,comocrearun VirtualHost.Estosetraduceporalojamientovirtual.Lamejormanerade
entenderloesmedianteunejemplo.Unosamigosquierenalojarennuestroservidorsuweb.Sihiciesemosunacarpeta
nuevaparaellosen/etc/www,tcnicamenteestararesuelto.Sinembargo,nuestrosamigostienensupropiodominio,y
quierenqueseaeste,ynoelnuestroelquesevisualiceenlaurldesupgina.Loquehayquehacer,esunaredireccin.
Losusuariosqueseconectenasudominio,realmentesetienenqueconectaranuestramquina.Loprimeroquehayque
saber,esqueel VirtualHost heredalosparmetrosdeconfiguracingenerales.Realicemosunejemplo.Loprimero,
editamoshttpd.conf,yaadimoselsiguientecontenido:

<VirtualHost192.168.0.209:80>#miservidor
ServerNamewww.miempresa.com#urldelcliente
SSLDisable#modulodeseguridad.Apagado.
DocumentRoot/var/miempresa#rutaadocumentohtml
</VirtualHost>

Hecho esto, cuando los usuarios se conecten a: http://www.miempresa.com, realmente apache mostrara el
contenidode:/var/miempresa.

Apache,tienecapacidadparahacermuchasotrascosas,mediantemdulos.Estossonfragmentosdecdigoqueaaden
funcionalidadesnuevas.Veamosunejemplo:
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

mod_speling#Cuandounusuariocometeunerrorortogrfico,presentaunalistaconlas
lasopcionescorrectasmssimilares.

Paraaplicarestemodulo,editamoselfichero: httpd.conf,buscamoslalinea mod_speling,borramoselcarcter: #,y


aadimos:CheckSpellingOn.Quedaas:

LoadModule speling_module /usr/lib/apache/1.3/mod_speling.so


CheckSpelling On

Siahorahacemosunaprueba,veremoselresultado.Laformamssencillaescometerunerrorapropsito.Porejemplo,
escribimos:http://aula9.hileras.net/indexe(enlugarde:index).Existenmuchosmsmdulosparahacerotrascosas.Se
utilizandelamismaforma.

Bien. Ya tenemos un servidor Apache funcionando, hemos alojado varios sitios Web, instalado mdulos. Ahora,
necesitamossabersinuestroservidorestdandounbuenservicio.Eslobastanterpido?Soportabienunnmeroaltode
conexionessimultaneas?Sufrenlosusuariosdemorasalahoradevisualizarlossitiosquealojamos?Parapoderresponder
aestaspreguntas,esnecesarioinstalaralgunosprogramasespecializadosentestderendimiento.Unbuenprogra
maes:httperfSeutilizaas:

httperfhogserveraula9.hileras.netnumconn5000#Elnmerodelfinalesopcional.
Enestecaso5000conexiones.PodemosponerloquequeramoshastahundirelServidor.

Apache no es fcil de hundir. Es un Servidor muy robusto. Veamos otro programa, esta vez en modo grfico:
Kdesystemguard (esdecir,elguardinde Kde).Puedemostrarmediantevariostiposdegrficas,elestadodela
mquinaentiemporeal.Esdecir,quesevaactualizandosobrelamarcha.Lasconexionessimuladaslanzadasporhttperf,
hantenidounarepercusinenenelrendimientodelordenador:procesador,memoria,etc.Con Kdesystemguard,lo
podemosver.Esbuenaideaejecutaralmismotiempohttperfenunaconsola,cambiandoelnmerodeconexionesyver
comoestoafectaalsistema.Elparmetrotimeoutnmero,compruebaeltiempoderespuesta.Medianteestemtodo,
emulamosconexionesalpuerto80(http),siaadimoselparmetro port443,hacelomismoenelpuerto 443.El
parmetro ssl espara utilizarencriptacin, en lasimulacin. Esteltimoparmetro, obligaaApache aunesfuerzo
notablementesuperior.Veamosunaposibilidadmssofisticada:

wsess=24,6,4
Estoquieredecir:simula24conexiones,enbloquesde6,cada4segundos.

Esteparmetrorompelalinealidad.Conanterioridad,elnmerodeconexiones,yafueranunnmeromuyaltoomuybajo,
sellevabanacabodeunaenuna.wsesspermiteconexionessimultaneas,locualesmuyinteresante,puespodremos
comprobarlacapacidaddenuestroservidoranteunasituacin,muchomscercanaalarealidad.Deestemodo,amedida
queaumentemoselnmero,podremossaberloslmitesdenuestramquina.Estaspruebas,sonesenciales,yaquedelo
contrarionopodramosconfigurar Apache deunaformaapropiada.Esimprescindible saberloquenuestramquina
aguanta,paraeditarelfichero:httpd.confenfuncindenuestrasnecesidadesespecficas.

ConKdesystemguard,podamosverunasgrficasderendimientodelamquina.Estoestabien.Peroseriamucho
msinteresantedisponerdeunosinformes,conlainformacinconcretadecadaconexin(hora,usuario,etc).Paraestose
utilizanestosdosprogramas:
webalizer
analog

Webalizeryanalog,nosinformandelasconexionesrecibidas.Losdatosdeestosprogramassuelenser:IP/hora/
navegador.Webalizerlospresentaenformatohtml,encolor,congrficosydems.analogposeeunfrontendllamado:
fanalog.
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

Losaccesosquenosvanaaparecerenlosinformesdewebaliceryanalog,sonlaspeticionesquehicimospreviamentecon
httperf.

Nota
webalizerdaunerrorconApachessl.Hayqueeditarsuficherodeconfiguracinen/etcy
modificarlocambiandoelnombreapache,porapachessl.

Nota
EnUnix,lasextensionesdelosarchivossonmeramenteinformativas.Elcomandofilesirve
parasaberdequetipoesunarchivo.Noesobligatorioponerextensinalosficheros.

3.SHELLSCRIPT.

Lashell,eselintrpretedecomandosdelamayoradelossistemasUnixosimilaresaUnix.Unscriptesunguin,
esdecirunaseriedeinstruccionesparalaconsolaguardadoenunficherodetextodeextensin:.sh.EnGnu/Linux,esta
tcnica alcanza el nivel de un lenguaje de programacin. Para los administradores de Servidores, los scripts son
herramientas muytiles. Permiten hacer tareas deunaformamuy productiva, ejecutaraplicaciones cuando sedesee,
medianteeldemoniocrontab,etc.Inclusoelsistemaoperativoseiniciagraciasaunscript(initd).
Estecaptulo,sedivideentressecciones:

1Comandos.
2GeneracindeScript.
3Ejecucindeprogramasconperiodicidad(crontab).
Enestapartetambinestudiaremoslosscriptsdearranque.

3.1.COMANDOS.

touch fichero # crea fichero vaco.


ls -la # lista todos los ficheros detalladamente.
-lat # lista todos los ficheros por fechas.
-latr # invierte ordenacin.
-l # Detalles.
mkdir # crea directorio.
rmdir # borra directorio.
cp # copia directorio.
mv # renombra y mueve simultaneamente.
rm # borra directorios vacios.
rm -r # borra directorios llenos.
cat fichero # /head presenta fichero. (con head las 15 primeras)
more fichero # paginar fichero.
tail -f fichero # ver finl de fichero y los cambios que pueda haber
en tiempo real.
echo # devuelve lo que se escribe.
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

ls / wc # se usa -c (caracteres) -w (palabras) -l (lineas).


lista / y muestra palabras y caracteres.
cat # cuenta. Con -head cuenta la cabecera
Con -grep + cadena de caracteres, filtra.

grep + cadena de caracteres # filtra la cadena de caracteres indicada.


grep -r "ServerName" /etc # busca recursivamente ServerName en: /etc
grep -i cadena de caracteres # busca cadena de caracteres y no tengas en
cuenta maysculas y minsculas (-i).

who # quin es el usuario (conectado).


w # quien es el usuario.
last # los ltimos usuarios (estn o no conectados).
lastlog # listado de usuarios y fechas de las ltima
entrada de cada uno.
date # fecha.
top # procesos y estado de la mquina.
ps # procesos activos.
ps aux # todos los procesos
ps aux | grep "apache" | grep -v "grep" |wc
# muestra todos los procesos | filtra apache | selecciona todos menos apache | muestra palabra y
nmero.
kill+N proceso # mata proceso.
kill -9 N proceso # mata procesos resistentes.
file # tipo de fichero
tar donde que # empaqueta fichero.
tar -cf fichero.tar /etc # desempaqueta fichero.tar en: /etc
gzip -9 fichero fichero.gz # comprimir. -9 mxima compresin.
gunzip # descomprimir.
gzip -d # descomprimir.
tar cvzf destino.tgz origen # crear un targz (tarball).
tar xvzf origen.tgz destino # descomprimir.

3.2.SHELLSCRIPT.

Los scripts empiezan por una linea de este tipo:


#! / bin / bash

hora =`date +%H:%M` # hora en formato: 20:29


conectados=`who | wc -l`
echo "A las" $hora "hay" $conectados
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

Los permisos:

-|rw-|r--|r--|
tipo dueo grupo todos

Dosformasdecambiarlospermisos:numricayalfabtica.Sehaceconunnmerode3cifras.laprimeraeseldueo,la
segundaelgrupoylatercerasontodos.Vade1a7.4eslectura(r),2esesescritura(w)y1esejecucin(x).750es:
mximoparaeldueo(7,resultadode4+2+1,5paraelgrupo,y0paratodoslosdems)Elcomandoparadarlosmximos
permisosalusuarioes:

chmod 750 prueba1.sh

chown jorge fichero # cambia los permisos de un fichero al


usuario jorge.

chown jorge:hileras fichero # cambia un fichero a un usuario y adems


lo cambia de grupo.

3.3.REDIRECCIONES.

Esto es, no imprimir en la pantalla sino en la impresora, o en un fichero.

ls 1> listado.txt
salida estandard

ls 1> listado.txt 2>errores.txt


pasa el fichero listado.txt con el nombre errores.txt donde le digamos.

ls 1> listado.txt 2>>errores.txt


pasa el fichero listado.txt con el nombre errores.txt donde le digamos
aadiendo ms texto en la salida.

grep "ServerName" /etc 2>/dev/null


filtra "ServerName" y redireccionalo al agujero negro.
/dev/null es un directorio donde todo lo que se envia desaparece.
Por eso, lo de agujero negro.

Ahora,vamosaescribirelsiguienteshellscript,queguardaremosconel
nombre:prueba2.sh
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

for i in `ls /etc`; do


wc /etc/$i
done

prueba2,loquehaceeslistartodoslosficherosdentrode/etcyluego
cuentaelnmerodepalabrasquetenga.Antesdeejecutarlo,espreciso
concederletodoslospermisos.

prueba3Loquepretendemoshacerconestescriptescapturartodoslos
procesosapache,seleccionarlosquetenganelnmerodeunusuarioy
matarlos.Dichodeotromodo,queremosexpulsaraunusuariodeapache.
Veamos:

ps aux | grep "apache"


Si con el script prueba2 lo intentamos cambiando wc por kill no lo lograremos

ps aux | grep "apache" | awk '{print $2}' $0 # toda la linea


selecciona la segunda columna (desde la izquierda) y lo imprime en la pantalla.

ps aux | grep "apache" | awk '{print "kill -9 " $2}' | sh


seleccionalasegundacolumnaymatalosprocesosapache

cat /etc/passwd | awk -F: '{print $1}'


buscatodoslosusuarios*eimprimelaprimeracolumna.
*estnenelficheropasswd

Vamos a ver ahora si un usuario est conectado. Utilizaremos if

> if [`who | grep "root"`]; then


echo "root esta conectado";
else
echo "root no esta conectado"fi

nice # es el comando para dar prioridades.


renice # es el comando para dar prioridades en marcha.
Parmetros:
-20 # mayor prioridad.
0 # normal.
19 # menor prioridad.

top # ver procesos. La tercera columna es la prioridad.

Nota
Elcomando:wget,seutilizaparabuscarmirrors.
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

3.4.ELDEMONIOCRONTAB.

cron / crontab # demonioparaperiodicidaddetareas.

crontab -l # vertareasdelusuario.

crontab -u ususario -l #vertareasdelususarioquesedesee.

crontab -e # editarficherodeconfiguracindetareas.

Estructuradelficherodeconfiguraciondecron
CUANDO QUE COSA> programa,script,comando...
minHorasDiamesdia(semana)
0590231311207(7y0eslomismo)
ejemplo0123**

ejemplo0,3 0,4,5 * * *

*significacualquieraomejordichotodos.

Cron funciona continuamente. Se puede parar o arrancar pero no es necesario.


El script de arranque se encuentra en: /etc/init. Tambin existe un script para
cron.
Ejercicio.
Almacenarenunarchivotodoslosprocesosyguardarlosenunfichero.
Luegoeliminarelfichero.

ps aux | wc -1 >> /root/process 2>/dev/null


***** ps aux | wc -l >>/root/process 2>/dev/null

tail -f process
busca las ltimas lineas de un fichero hasta que cambie. Con la f es dinmico.
como el fichero process es la salida de cron, tail nos mostrara los procesos
presentes en el sistema. Se actualiza cada segundo. -f cd /root

Nota
dudiskusage#vermemoria.dufichero#vermemoriadefichero.
duh#verenmodohumano.

Ejercicio.
crearunscriptqueseejecutealarrancarlamaquina.
echo
echo
echo GNU/LINUX EL SISTEMA OPERATIVO LIBRE.
lo guardamos en /etc/initd con el nombre arranque.sh
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

pero no vale solamente con esto. Hay que escribir tambin:


update-rc.d arranque.sh defaults para que funcione.
update-rc.d -f arranque.sh remove para que no funcione.

ls |tee listado.txt # a la vez que vemos el listado nos lo imprime en un


fichero llamado listado.txt (que se crea automticamente)

more .bash_history # ver con el paginador more el fichero de historia


de la shell. Hay uno para cada usuario.

more .bashrc # ver con el paginador el fichero de configuracion de la bash.

cat /etc/motd # ver mensaje del dia.

find donde criterios # busquedas segn diferentes criterios.

find / -name"

contr+c # detener busqueda

find /etc/ -name "http*" # busca algo que empieza por http en /etc
el criterio es nombres. Se puede cambiar. Veamos utilizando como criterio el
tamao.

find /etc/ -size +1000k # busca los ficheros que tengan mas de 1000 K.

find /etc/ -size +1000k -name "antoniux" se puede hacer busquedas


con varios criterios al mismo tiempo.

find / -mmin -5 # busca los ficheros ejecutados en los ltimos 5 minutos.

find / -size +100K -exec ls -l {} \;


este significa que lo haga con los resultados

Nota
MicrosoftWindowspuedehacertodoesto.Sinembargo,findllegaunpocomslejos,pues
permitehacerlasbusquedasyrealizar,almismotiempo,algunaaccinconlosficherosen
contrados.

Nota
tee#veryguardarunasalidasimultneamente.
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

4.SEGURIDAD.

Supongamosquesenosolvidalacontraseadelroot.Comopodemosentrarenelsistema?
Existeunapuertatrasera?Sinduda,setratadeunagujerodeseguridad,peroestapuertaexiste.Posiblemente,existe
tambin en todos los sistemas operativos. Es prctico, porque nos soluciona un problema, pero es peligroso, porque
cualquieraquetengaaccesofsicoanuestramquinapuedehacerseconelcontroltotaldelsistema.Veamoscomosehace.
DuranteelarranquedelLilo,introducimoslasiguientelinea:

init=/bin/bashrw
arrancabashconpermisoslecturayescritura.

Estoarrancaenmodotexto.Loprimeroquehacemos,esunacopiadelficherodecontraseas:

cp/etc/shadow/root/shadow

Acontinuacin,editamoselfichero etc/shadow conuneditordetextocomo emacs.Hayqueborrarelsegundo


campo.Elprimeroes:root.Elsegundoeslacontrasea.guardamoselficherodecontraseassobreescribiendoelantiguo.
Ejecutamos el comando: sync (sincronizar) para que el sistema ejecuteloscambios deforma inmediata. Ahora solo
tenemosquereiniciarelordenadornormalmente.Cuandointroducimosellogin,veremosquesesaltalacontraseayentra
enelsistema.Pararestablecerlanormalidad,deberamossabercualeranuestracontrasea.Paraello,vamosautilizarun
programaquesellama: john.Este,busca contraseas,listandolascontraundiccionariointernodelprograma.Este,es
bastantebsico,perosepuedecambiarpormuchosotrosquecirculanporinternet.Dependiendodelacomplejidaddela
contrasea,Johnpuedetardarunospocosinstantesuhoras.Losdiccionariossedescarganpreviamenteenformatotxt,o
comprimidos.Losguardamosenlarutaquequeramosyselaindicamosajohn:

johnwordfile:spanish.txt
cargaeldiccionarioespaol

4. 1.CORTAFUEGOS.

Elcortafuegos,esunprogramaqueconstruye,porasdecirlounmuroalrededordeunaredparaprotegerladeataques
desdeInternet.Elcortafuegos,puedeserunordenadorcompletoounaaplicacindesoftware.Elusodeunamquinaode
un programa depende del trfico implicado. Para un equipo casero, un cortafuegos por software es suficiente. En
Gnu/Linux,sesueleutilizarelprograma:iptables,Freebsdutiliza:ipfwyOpenbsd:pf.Iptablesesunmdulodel
kerneldeGnu/Linux.Losnivelesdeseguridad,oscilanentreelaccesototal,sinaccesoyaccesoaalgunospuertos.La
respuestadelcortafuegos,vaadependerdelasReglasqueutilice.Estassonlosparmetrosdeseguridad.EditarReglasa
manoesmuycomplicado.Normalmenteseutilizanprogramasquenosayudenenestatarea.Losprogramasmsutilizados
son:

Knetfilter
Firestarter
Fwbuilder(frontendparaIptables)

Nota
Principalespuertos:http:80,https:443,ftp:21,smtp:25,pop:110
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

Paraverlospuertosabiertosdeunamquina,seutilizaelprograma:nmap.Esmuysencilloutilizarlo.nmapnombre
delamquina.Elusodeescaneadoresdepuertos,suponeunavulnerabilidadparacualquiersistema.Noesunataque
propiamentedicho,peropuedeprecederlo.Paraevitarunescaneodepuertos,seutilizaelprograma: portsentry.Este
ofrece informacin falsa a nmap. Los puertos que aparecen abiertos no lo estn realmente, o no coinciden los
identificadores.Losparmetrosdeconfiguracindelaccesoseencuentranen:

/etc/login.defs

Estosparmetros,soncosascomoelnmerodedasquesepuedeaccederalsistemaconlamismacontrasea,los
intentosdeloginposibles,eltiempodelogin,etc.Elcomando:faillog,permiteaplicarrestricciones.Veamosunejemplo:

failloguantoniuxm3
Elusuarioantoniuxtiene3intentosdelogin

Elparmetroa,muestradesderoot,losintentosdelogin.

4.2.AUDITORIADESEGURIDAD.

Unaauditoradeseguridad,esunestudiodelasvulnerabilidadesquepuedapresentarunared.Paraello,serealizanunas
pruebas,medianteprogramasespecficos.Unodeestosprogramases: NESSUS.Esunaaplicacinmuycompleta,en
modogrfico.Esnecesarioinstalarlossiguientespaquetes:

nessusd#demonio.
nessus#cliente.
nessuspluging#basededatosdevulnerabilidadesconocidas.

Loprimeroquehayquehacerescrearunusuario.

nessusadduser

Elprogramanosvaahaceralgunaspreguntas.Esconvenienteescogerencriptacin(cipher)ysaltarlasreglas(rules)
mediante:Ctrl+d.Laopcin:onetimepassword,esunacontraseaquesolosenosvapedirlaprimeravezque
ejecutemosNessus.Elcomandoparaelloes:

nessusp

Primero,searrancaeldemonio(nessusd)yluegosearrancaelcliente(nessus).Hechoesto,veremosunaventana
convariaspestaas.Enelapartado: Target selection,escribimos la IP delequipoosunombre.Siescribimosel
nombre,esprecisoactivarelbotn:dns.Aunquetienebastantesmsposibilidadesdeconfiguracin,yapodemosescanear
elequipo.Finalmente,Nessusofreceuninforme.Uncdigodecoloresnosindicaelniveldepeligrosidadencontradoen
cadafuncionalidaddelsistemaoperativo.

Nota
SentryFirewall.LiveCD,alestiloKnoppixenfocadoatemasdeSeguridad.

Nota
Rutaaloslog:tailf/var/log/daemon.log

GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005

4.2.SNIFFER.

Los sniffers, sonprogramasquenosmuestrantodoeltrficoquepasapornuestratarjetadered.Latraduccinde


snifers,esalgoascomohusmeadores.Veamosalgunosprogramas:

dsniff
ethereal
snort
etherape
ettercap

Elprograma ethereal,captura absolutamente todoloquepasaporlatarjetaynoslopresentaenpantalla. Esta


verbosidad,esfinalmenteunproblema.Laverdad,esquelamayoradeltrficononosinteresamucho.Paraquenossirva
paraalgo,esprecisoaplicarlefiltrados.Outilizarotroprograma. dsniff,resumemuchomslainformacin.Ademsel
objetivodedsniff,esbastantemsconcreto:capturarcontraseas.Elprogramaetherape,generaungaficodelared,y
delasrelacionesentrelasdistintasmquinasdelamisma.Sinosconectamosainternettambinaparecenlaspginas.Si
hacemos: ping aotramquina tambinaparecer. Elprograma mscomplejo detodoses: ettercap.Escapzde
capturarpaquetesporlared.Puedeserutilizadoparahacerataques,deltipodehacersepasarporotramquina,oel
llamado:maninthemiddle.Elhombreenelmedio,esdecircolocarseentredosmquinas.

Nota
touchGraph.comVerinternetenmodogrfico.

5.CORREOELECTRONICO.

Vamosainstalaryconfigurarunservidordecorreo.TenemosvariosprogramasenDebianparahaceresto.Elprograma
pordefectoes:exim.Tambinsepuedeutilizar:

Sendmail
qmail
postfix

Sendmail.recibebastantesataques.Qmailesseguro,perobastantedifcildeinstalar.Postfixesunterminomedioentre
ambos,yeselquevamosautilizar.Hayqueinstalartrespaquetes:

postfix
postfixpcre
[postfixdoc]

DurantelainstalacindePostfix,tendremosqueresponderalgunaspreguntas.Escogemosinternet,yleindicamosnuestro
usuario: user@aula9.hileras.net. Para arrancarlo, ejecutamos el comando: postfix start. Las posibilidades del
comandopostfixson:

postfixstart#arrancar.
postfixstop#parar.
postfixreload#reiniciar.
GuadeAdministraci ndeservidoresGnu/LinuxAntonioBecerroMartinez.2005

Paraconfigurarloeditamoselfichero:main.cf,queseencuentraen:/etc/postfix.Esundocumentomuycomentado.
Enelapartado: relayhost= ,nohayningnnombredeunservidorexterno.Estoesloadecuado, sinovamosa
subcontratarelservicio.Enprincipio,nohacefaltamuchomsparapostfixfuncione.Ahora,vamosainstalarunclientede
correoparacomprobarelcorrectofuncionamientodenuestroservidor.Utilizaremos: mutt,unclienteenmodotexto.Lo
primerodetodo,vaasercreardosusuariosnuevosdelsistema,quesevanallamar:prueba1yprrueba2.Paracrearun
usuario,elcomandoes:adduser.Mstarde,enviaremostrescorreos,unodeprueba1aprueba2,otrodeprueba2a
aula6(unordenadordelaredlocal)yotrodeprueba1aunacuentadecorreoenelexterior.Lasrutasaloscorreosson:

/var/mail
/var/spool/mail

Estasdosrutasson.laprimeralarutaaloscorreosrecibidos,ylasegundalacoladeloscorreosqueestnsiendo
enviados.Elcomando:mailqnosmuestraelestadodelacola.Elcomando:sendmailq,fuerzaalsistemaaenviarel
correoinmediatamente.
Ahoravamosapasaralcontrovertidoasuntodelasrestricciones.Lasrestriccionessonmedidasqueseaplicanalservidor
decorreoparaquerechacealgunoscorreospormotivosdeseguridad.Lociertoesqueunapartesignificativadeloscorreos
sonSpam,esdecircorreosnosolicitados.ElSpamdisminuyeelrendimientoglobaldeinternet,minasusposibilidadesde
crecimiento, aparte de ser una molestia para los usuarios. Para hacerle frente se han creado autoridades en internet
capacitadosparaincluiralosservidoresimplicadosenlistasdesospechososdepracticarSpam.Esbastantefcilentraren
unadeestaslistas,peroesmuydifcilsalir.Paracolmo,estaautoridadesincapacitanparaservircorreoalasmquinas
implicadasdurantealgntiempo.Estaslistassonlapesadilladelosadministradoresdeservidores.Ahora,veamoscomose
aplicanlasrestricciones:

Paraaadirunarestriccin,escribimosestaslineasenelfichero:main.cf:

smtp
smtp_server_restrictions=
hash:/etc/postfix/access
reject_unknown_sender_domain
permit_mynetworks

Laruta:/etc/postfix/accesshacereferenciaaunficherodenombre:accessquetenemosqueeditar.

6.MYSQL.

MySQL,esunabasededatosmuypotente,delestilodeaplicacionesprivativascomoOracleoPostgress.Permite
conexionesremotas,conexionesconcurrentes,sistemasdeseguridad,etc.SeutilizahabitualmenteenservidoresWebque
alojensitiosdinmicos,comoforos,tiendasonline,gestoresdecontenidos,etc.Porsupuesto,tambinpuedeutilizarseen
lastpicasbasesdedatoscorporativas.Utilizaunlenguajedesintaxisclaraysencillallamado:SQL.

ParainstalarMySQL,utilizamos,comosiempreapt.Esprecisoinstalarunservidoryuncliente.Duranteelprocesode
instalacintendremosqueresponderalgunaspreguntasdeconfiguracindelprograma.Laprimerapantallaqueaparece,no
esunerror,sinoinformacindeseguridad.Mstarde,tenemosqueelegirsiqueremoseliminarlasbasesdedatosal
desinstalarelprograma.Esmejorcontestarqueno.Finalmente,nosvaapreguntar,siqueremosquearranqueMySQLal
iniciarelsistema.Lomscmodoesrespondersi.

Hechoesto,yahemosterminadolainstalacin.Loprimeroquetenemosquehacerahora,escrearunusuario,yasignarle
unacontrasea.UnusuarioparaMysqlexclusivamente.

mysqladminurootpassword
GuadeAdministraci ndeservidoresGnu/LinuxAntonioBecerroMartinez.2005

Ms adelante, hay que activar el acceso a la red. Para ello, editamos el fichero: my.cnf, que se encuentra en: /
etc/mysql/my.cnf.comentamoslafila: #skipnetwork,queimpidelosserviciosdered.Paraarrancar MySQL
ejecutamos:

/etc/init.d/mysqlrestart

Elejecutable,seencuentraes: /usr/sbin/ ysellama: mysqld.Aunquenormalmentenoutilizaremos elejecutable


directamente.Lastablasseencuentranen:/var/lib/mysql/mysql.Entreotrosficheros,destacanporsuimportancialos
deextensin:

.frm#Estructura.
.myd#Datos.
.myi#Indice.

Enprincipio,unacopiadeseguridadpodraconsistirsimplemente,encopiarestosficheros.Esimprescindiblepararel
servidorprimero. Losinformesseguardanen: /var/log/mysql/ ylosclientes, en: /usr/bin/.Elclientemsbsico,
funcionaenlineadecomandosyeselquevamosautilizar,aunquetambinexistenclientesgrficos.Paraadministrar
rmotamenteMySQL,tambinpuedeutilizarse:webmin.
Elcomandoparaejecutarelclientees:mysqlp.Estecliente,esunaconsolavirtual.Parasalirseescribe:qoexit.
Veamosalgunoscomandos:

SELECTUSER(); #mostrarusuario.
SELECTVERSION(); #mostrarversin.
SHOWDATABASES; #mostrarbasesdedatosenelservidor.
USEnombredebasededatos; #utilizarbasededatos.

Ahora,vamosacrearunabasededatosnueva.Crearemostambinunatabla,yveremoscomoseeditanlosregistros,
comoseaccedealosdatos,etc.Paracrearunabasededatosnueva:

CREATETABLEvideo(
idINTNOTNULLAUTO_INCREMENT,
tituloVARCHAR(200),
autorVARCHAR(64),
PRIMARYKEY(id)
);

Medianteestasinstrucciones,hemoscreadounatablallamada: video,dondelosregistrosseidentifican(id)porun
nmeroqueseincrementarautomticamenteconcadanuevoregistro.Siunregistroeseliminado,sunmeronoser
utilizado por otro. La tabla va a tener las columnas: titulo, y autor, que permimitirn campos de 200 y 64 caracteres
respectivamente.
Paraverlastablasdisponibles,utilizamoselcomando:showtables.Paraversuestructura:describetables.Para
insertarregistrosnuevossehacedelasiguientemanera:

INSERTINTOvideo(titulo,autor)VALUES('ESPARTACO','Kubrik);

Deestamanera,hemoscreadounregistroparalapelcula Espartaco ,ennuestrabasededatosdevdeos.Para


visualizarelcontenidodeunatabla,ynosolamentesuestructura,elcomandoes:

SELECT*FROMvideo

Siqueremoshacer busquedasmsprecisas,tendremosquecomplicarunpocolascosas.Podemosintroduciralgunos
registrosms,yhacerunabusquedade,digamos,todaslaspelculasdeKubrick.
GuadeAdministraci ndeservidoresGnu/LinuxAntonioBecerroMartinez.2005

mysql>SELECT*FROMvideoWHEREautor='Kubrick';

Delamismamanera,podemosbuscarunregistrocompleto,mediantesuidentificador:

mysql>SELECT*FROMvideoWHEREid='7';

Otodoslostitulos,queempiecenporlaletra:P.

mysql>SELECT*FROMvideoWHEREtituloLIKE'P%';

OtodaslaspelculasdeKubrickqueempiecenporlaletra:s.

mysql>SElECT*FROMvideoWHEREtituloLIKE's%'WHEREautor='Kubrick';

Paraeliminarunabasededatos:

DROPDATABASEvideo;

Laorden:mysqldump,sirveparahacerunvolcadodedatos.Desde:/var/lib/mysql

mysqldumpurootpvideo>curso20050426.sql

Esto,redireccionaenunsoloficheroelcontenidode/var/lib/mysql

Tambiensepuedenhacervolcadoscomprimidos.Losparmetrosqueadmitemysqldump,son:
d#soloestructura.
t#solodatos

Ahora,vamosaplantearnosunproblema.Supongamosqueestamosobligadosahacerunacopiadeseguridadcadadaa
lascuatrodelamaana.Nosotrosnotrabajamosporlanoche.Cmolopodramosahacer?Veamos,enprimerlugarel
cdigoyluegolocomentamos:

#!/BIN/SH
forbdin`ls/var/lib/mysql/|grepvmy.cnf`;
do
LABEL=SQL_`hostname`_`date+%y%m%d`_.sql.bz2
mysqldumpurootpnodo50$bd|bzip2>/COPIAS_SEGURIDAD/$LABEL
echovolcada$bd
done

Esteejercicioesmuyinteresante.Laprimeralineaeselencabezamientohabitualdetodoslos scripts de shell. La


segundaestablecelavariable:bdylistaeldirectorio:/var/lib/mysql/yfiltra:my.cnf.Laterceraestableceelnombre
delficherodesalidaenbasealafecha(ao,mes,dia).Laextensindelascopiases:.sql.bz2,esdecir,quelasalidava
comprimida.Lacuartalineaeselcomandodecopiapropiamentedicho(mysqldump),elusuarioysucontrasea.As
como,larutaalacopia.Finalmentelaquintalineaesmsbiendecorativa.Escribeenpantalla:volcadaylabasededatos
quesea.
GuadeAdministraci ndeservidoresGnu/LinuxAntonioBecerroMartinez.2005

Estescriptseguardaconelnombre:backup.sh,en/root.Ejecutamoselcomando:crontabe.Estonospermite
configurareldemoniocron.Leindicamoslaperiodicidaddelascopiasdeestaforma:

01***/root/backup.sh

Otraformadeconfigurar MySQL,esmediante Webmin,unprogramawebcapacitadoparaconfigurarservidores


Linux online. Para ejecutarlo abrimos una sesin en un navegador, como Firefox y de url escribimos:
https://aula9.hileras.net:1000.Laadministracin,serealizaenmodogrfico.Lasdesventajasdeestemtodoson
dos:porunladonoexistelamismaseguridadquealeditarlasconfiguracionesenmodotexto,yporotro,losrefrescosde
pantallapodrancausarproblemas.

7. COMPILACIONDELKERNEL.
En Gnu/Linux,lacompilacindeunnuevoKernelesunaaccinrelativamentecorriente.Enlossistemasoperativos
privativosestetipodecosas,solamentelashaceelfabricante.Dossonlasrazonesfundamentalesparacompilarunnuevo
kernel.Obtenerunmejorrendimientodelamquina,ylograrnuevasprestaciones,normalmentesoportedehardwarenuevo.
Loprimeroquehayquehaceresdescargarelkernelquenosinteresedesdeinternet(www.kernel.org).Sueleestar
comprimidoen.tar.gzoen.bz2.Hayquedescomprimirloeneldirectorio:/usr/src.Creamosunacarpetallamadalinux,
ycopiamosdentrodeellaelkerneldescomprimido.Esbuenaideahacerunenlacesimblico(accesodirecto)aestacarpeta.
Msquenada,paracambiarelnombredelinux,poralgomsconcretoenelenlace.
Paralaconfiguracinpreviaalacompilacin,sepuedenutilizarvariosprogramas.Todotienenlasmismascapacidades.No
sonunosmejoresqueotros.Loquecambia,eslainterfaz.Losmsutilizadosson:

xconfig#Mtodogrfico(precisalaslibreriasQT).
menuconfig#Mtodogrficobasadoenmens(precisanurses).
gconfig#Modotexto(precisaGtk).

Parasaberquekernelestamosutilizandoseutilizaelcomando:unamea,parasabercualesnuestrohardware:lspci.
Lainformacinsobrelamquinaseobtienemediante:
cat/proc/cpuinfo

Comencemos.Elegimosunodelosprogramasdeconfiguracin,porejemplo:menuconfig.Paraejecutarelprograma,
desde:/usr/src/Linux,escribimos:
makemenuconfig

Lacantidaddeparmetros quesepuedenmodificaresenorme. Convienesaber,queunosapartadosserelacionan


automticamenteconotros,detalformaqueparapoderrealizarunaaccin,esprecisohaberrealizadootrapreviamente.
Porejemplo,siqueremosactivarsoporteparaparticionesdemacintosh,primerotendremosqueactivarunmenllamado
sistemasdeficherosespeciales,oalgosimilar.Engeneral,loquesehaceesirseleccionandonuestrohardware:tarjetade
red,tarjetadevideo,etc.Eselmomentodecomprobarsielnuevokernelsoportaalgndispositivoquenopudisemoshacer
funcionarconelkernelanterior.Esimposibledarunarecetaprecisadeloquehayqueactivarono.Esto,vaadependerde
cadaordenadorconcreto.Nohayquetenermiedo.Instalarunnuevokernelnosignificadestruirelantiguo.Finalmente
dispondremosdelosdos,yescogeremosenelLiloarrancarconunooconotro.
Sisalimosde menuconfig,nosvaapreguntarsiqueremosguardarloscambios.Ledecimosques.Yatenemosla
configuracinpreparada.Ahoravamosahaceralgunascomprobacionesantesdecompilar.
GuadeAdministraci ndeservidoresGnu/LinuxAntonioBecerroMartinez.2005

Escribimos:makedep,Estecomandosirveparacomprobarlasdependencias.
Ahora:makeclean,paraborrarposiblesrestosdeotrascompilacionesanteriores.Finalmente:
makebzImage2430

Esteltimocomandoeselquecompila.Elkernelcompiladosevaallamar:bzImage2430,yloencontraremosenla
siguienteruta:/usr/src/linux2.4.30/arch/i386/lib.Unavezquelacompilacindelkernelsehacompletado,hayque
compilartambinlosmdulos.Estosleaadenfuncionalidades.Loscomandosnecesariosson,enprimerlugar: make
modules,yluego: make modules_install.Hechoesto,elkernelestcompletamentecompilado.Peroparapoder
utilizarlohayqueenviarloaldirectorio/boot,queesdondesetienenqueguardarloskernelsconcapacidaddearrancarel
sistema.Tambintenemosquecopiarelfichero:System.mapa/boot.
Porltimo,yasolonosquedaaadirunaentradaenelLiloalnuevokernel.Pareelloabrimoselficherodeconfiguracin
deLiloen:/etc/lilo/lilo.conf,medianteuneditordetextocomoVim.
Lonicoquehayquehaceresaadiralfinldeldocumentodoslineas:

image=/boot/bzImage2430
label=linux2430

Guardamosloscambios,yejecutamoselcomando:lilo,queactualizalaconfiguracin.Yyaestamoslistosparareiniciarel
ordenador.Enlapantalladelliloescogemosnuestroflamantekernelnuevoycruzamoslosdedos.Normalmente,suelenser
capaces dearrancar el sistema. Otra cosa es la conexin a internet, que solo funcionar si se ha configurado
correctamentelatarjetadered.Sialgnapartadonorespondeanuestrasexpectativas,sevuelveaejecutarelprogramade
configuracin(menuconfig)yvolvemosacompilar.

AntonioBecerroMartinez.
littledog@es.gnu.org
Alcobendas.2005.

También podría gustarte