Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guadeadministracin de
servidoresGnu/Linux.
1.INSTALACIONDEDEBIANGNU/LINUX.
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.
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.
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.
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.
3.2.SHELLSCRIPT.
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:
3.3.REDIRECCIONES.
ls 1> listado.txt
salida estandard
Ahora,vamosaescribirelsiguienteshellscript,queguardaremosconel
nombre:prueba2.sh
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005
prueba2,loquehaceeslistartodoslosficherosdentrode/etcyluego
cuentaelnmerodepalabrasquetenga.Antesdeejecutarlo,espreciso
concederletodoslospermisos.
prueba3Loquepretendemoshacerconestescriptescapturartodoslos
procesosapache,seleccionarlosquetenganelnmerodeunusuarioy
matarlos.Dichodeotromodo,queremosexpulsaraunusuariodeapache.
Veamos:
Nota
Elcomando:wget,seutilizaparabuscarmirrors.
GuadeAdministracin deservidoresGnu/LinuxAntonioBecerroMartinez.2005
3.4.ELDEMONIOCRONTAB.
crontab -l # vertareasdelusuario.
crontab -e # editarficherodeconfiguracindetareas.
Estructuradelficherodeconfiguraciondecron
CUANDO QUE COSA> programa,script,comando...
minHorasDiamesdia(semana)
0590231311207(7y0eslomismo)
ejemplo0123**
ejemplo0,3 0,4,5 * * *
*significacualquieraomejordichotodos.
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
find / -name"
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.
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
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.
dsniff
ethereal
snort
etherape
ettercap
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
.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);
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
Estescriptseguardaconelnombre:backup.sh,en/root.Ejecutamoselcomando:crontabe.Estonospermite
configurareldemoniocron.Leindicamoslaperiodicidaddelascopiasdeestaforma:
01***/root/backup.sh
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
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.