Você está na página 1de 13

InstalacindeunservidorconApache,PHP, MySQL,FTPyCorreoElectrnico

Introduccin
EnestedocumentoseexplicacomomontarunservidordeInternetennuestracasa,empresaocolegio,con objetodeusarlocomoservidorweb,servidordecorreo,servidorftp,etc.

Paraqu?
TenerunservidordeInternet(quesirvaweb,correo,etc.)tienevariasventajas: Aprovecharunordenadorantiguooconpocosrecursos Ponerweb'senInternetsinpublicidadysinlimitedeespacio Tenertupropioservidordecorreocontodaslascuentasquequieras Darcuentasdecorreoaquienquieras(sinpublicidadysinlmitedeespacio) Tenertodoslosdatosquequieras(programas,documentos,fotos,etc.)accesibles(pblicamenteo conaccesorestringido)desdecualquierlugardelmundoqueposeaInternet

Desventajas?
Algunasdesventajaspuedenser: Tenerunordenadordedicadoenexclusivaaservidor(siusasunordenadordesfasadonoestalla desventaja) Gastodeluzdeunordenadorencendidolas24horas(sitenemosencuentaquenotendrun monitorconectado,elgastoesmnimo) Gasto econmico: comprar un dominio. Existen dominios gratuitos (aunque la direccin es ms larga),peronoresultaexcesivopagarunos15Eurosanualesporundominioenpropiedad Disponer de una lnea ADSL. Aunque con mdem tradicional sera impensable, la mayora de usuariosdeInternetdisponemos,hoyda,deconexindebandaancha,porloquenosupondraun gastoadicional

HayquetenerIPfija?
EsposibleponerunservidorconIPdinmica,aunquenodispongodeinformacinsobreello.Lasprimeras conexionesdebandaanchaseofrecanconIPfija.LasqueseofertanhoysonconIPdinmica,perose puedesolicitarIPfija(pagandounpocoms)

Requisitos
Dosomsordenadoresenred,dedicandounodeellosexclusivaaservidor. Elordenadorquehacedeservidornonecesitaserun'superordenador'.Porejemploelservidor lubrin.orgestmontadoenunPIIcon266Mhzy128MBdeRAM(recibiendoactualmentecercade 100visitasdiarias) UnaconexinaInternetdebandaancha.EnesteejemploseconsiderarunaconexinADSL Unrouterconfiguradoenmultipuesto. Aunqueexistenotrasconfiguracionesenmonopuesto,eneldocumentoactualseconsideraelcaso demultipuestoprincipalmenteporquepartimosdelabasedeusarcomoservidorunordenadorcon pocosrecursosynoqueremoshacerlentoelaccesoaInternetalrestodeordenadoresdelared. Qutipoderoutereselmsindicado? DebemostenerencuentaqueelservidorlomontaremosbajoLinuxporque: LamayoradeservidoresdeInternetestnmontadosbajoLinux,alcontrariodelosPCsde escritoriodondelamayorasuelencorrerconWindows UsandoLinuxysoftwarelibrenotenemosquegastardineroensoftware

-1

Estamoslibresdevirus Nonecesitaremosdesfragmetar,niformatear,nireiniciardevezencuando(comosuele ocurrirconWindows)porloquenuestroservidorestardisponiblerealmentelas24horas durantelos365dasdelao. Nonecesitamosinvertirenhardwareytenerunordenadorpotente(locualserianecesariosi optsemosporunservidorconWindows)

Portantocualquierrouterdelosdesiemprevale(decadaordenadordelaredvauncablehastael routerydesdeelroutersaleotrocablehastalalneaADSL). Si nos decidimos por un router mixto (los nuevos, que adems de cable son wifi) debemos asegurarnosquelastarjetasderedinalmbricas,quepongamosenlosordenadoresdelared,sean compatiblesconLinux. Undominio. Aunqueexistendominiosgratuitos(deltipomidominio.empresa_que_lo_proporciona.org)esmejor adquirir (por unos 15 Euros anuales) uno en propiedad (del tipo: midominio.org, midominio.es, midominio.com,etc.) UnaIPfija. Aunquenoesimprescindible,sinotienesIPfijadisponesdedosopciones: BuscarinformacinenInternetsobrecmomontarunservidorconipdinmica PreguntaratuproveedordeInternetcuantosubiratucuotamensualsiteasignanipfija

Configuracindelrouter
AntesdenadadebemosconfigurarelrouterenmultipuestoycomprobarquetenemosaccesoaInternet desdetodoslosPCsdelared.Elservidorannolohemostocado(seharposteriormente). NuestraredlocalestarconfiguradaconlasIPs: 172.26.0.1 router 172.26.0.2 servidor 172.26.0.3 PC 172.26.0.4 PC ... 172.26.0.x PC Paraconfigurarelrouterenmultipuestopuedesobtenerinformacinen: http://www.adsl4ever.com http://www.adslzone.net http://www.adslayuda.com

Adems,debersmapearalgunospuertosdeformaquelaspeticionesquelleguendesdeInternetsean redirigidasalaipdelservidor.Porejemplo,cuandollegueunapeticindesdeInternetporelpuerto80(que es el puerto que se usa para web) el router redirigir esa peticin al servidor (172.26.0.2) que ser el encargadodeservirlapginawebpedida. Estetrabajo(demapearpuertos)puedehacerseahora,odejarloparadespus,cuandoestinstaladoel servidorwebapacheytengamospginasqueservirypodamosprobarquefuncionael'mapeo'(paralas pruebasnecesitarsaccederalservidordesdefueradeturedlocal).

Preparandolasparticiones
Puestoqueelordenadorservidorserdedicado,nonecesitaremosconservarnirealizarparticionesenel disco duro para otrossistemas operativos. No obstante haremos varias particiones, aunque todas para Linux. Paracrearlasparticioneseneldiscodurodelordenadorquehardeservidor,usaremosunprograma

-2

particionadorincluidoenelCDLivedealgunadistribucindeLinux,deformaqueiniciandoelordenador conelCDLiveyantesdeinstalarningnsistemaoperativopodamoscrearlasparticiones. SepuedeusarelprogramaqtpartedincluidoenlamayoradedistribucionesLinux(comoporejemploen elCDLivedeguadalinex2004),elprogramagparted(incluidoenelCDLivedeguadalinex2005)oincluso sepuededescargarelgpartedsloenCDLive(http://gparted.sourceforge.net) Necesitaremosalmenoslassiguientesparticiones: / /home /var swap backups sistemabase(con2GB) sealojaranlaswebpersonalesdelosusuarios aqusealojaranlaswebaservir paraintercambio(unos500MB) paracopiasdeseguridad

Sitodaslasweb'ssondeldueo(root)delservidor,seasignaelmayordeespacioalaparticin/var Sisevaapermitirponerweb'spersonalesalosusuariosdelsistema(alosamigos,oencasodeuncolegio alosprofesores,departamentos,alumnos,etc.)entoncesdebescederleespacioalaparticin/home

Instalandoelsistemaoperativo
Descargar laltima versindeDebian(www.debian.org). SloelCDdeinstalacinmnima180MB, aproximadamente,obien,delacoleccindeCDs,sloelCD#1.

ProcederainstalarDebian.
Introducir CD e iniciar el servidor. Si el servidor no dispone de lector de CD puedes instalarle uno provisionalmente(ydespusdelainstalacinlodesconectas,yaqueelrestodeprogramaslostomarde Internet)oconsultarotrasformasdeinstalacin(desdedisquetes,usb,etc.)enlawebwww.debian.org Duranteelinicionospermiteelegirentreelkernel(ncleo)2.4oel2.6 EsconvenientepulsarF1paraverlasdistintasposibilidades. Teaconsejo:Inicioenmodo'expert26'(modoexpertoncleo2.6) Aparecelalistadepasosdequesecomponelainstalacin: Elegirlenguaje,pas,teclado(PS2oUSB) DetectarymontarelCDROM(cargatodoslosmduloscompatiblesconnuestrohardware) CargandomdulosdesdeelCDROM Configurarlared(DHCP|Manualmente).NotenemosDHCP,elegimosmanualmente:ponemosIP, mascaradered,puertadeenlace(router),DNS Particionado Utilizarcomo:ext3 Formatearla:si Puntodemontaje:/(seusaparainstalarenvariasparticiones)

Instalandoelsistemabase InstalacindeGRUB Traselreinicio: Configuracindelsistemabasedebian Zonahoraria Clavederoot loginypasswddelusuarionormal aptsources:CDROM Configuracindelcorreo:sinconfigurardemomento Fin(sepuedevolveraconfigurartodocon#base-config)

-3

ltimosretoquesinsitu
Hastaahoraestinstaladoelsistemabase,sinentornogrficoyslolospaquetesmnimos.

LosiguienteseracomprobarsihayInternet:wget http://www....(ponemoscualquierpginay veamossiladescarga) Actualizarsources.list # nano /etc/apt/sources.lst deb http://ftp.rediris.es/debian/ stable main deb-src http://ftp.rediris.es/debian/ stable main deb http://security.debian.org/ stable/updates main deb http://security.debian.org/ sarge/updates main contrib non-free # apt-get update (para que actualice base de datos de paquetes)

Instalamoselprimeryltimoprogramadesdeeltecladodelservidor: ssh elcualnospermitir accederdeformaremota. # apt-get install ssh Quiereejecutarelservidorsshd?SI Sinoshemosequivocadoenalgunaopcin,podemosreconfigurarlo: # dpkg-reconfigure ssh

Apagamosmonitor,desconectamostecladoynosvamosanuestroordenadordetrabajo(enred conelservidor). Probemoselssh: # ssh root@172.26.0.2 Tambinpodemos(ydebemos)entrarcomousuarionormalyluegocambiararootencasodeser necesario.Perorecuerdaquestaeslaforma(segura)deentraranuestroservidoryadministrarlo deformaremota Parainstalarelrestodeprogramas,supondremosquehemosentradoalservidorporsshydesde esaconsolateclearemosloscomandos. Comprobamosquetansolotenemosusadosunos200MB
debian: # df S.archivos Bloques de 1K /dev/hde4 9740624 234332 323292 0 debian: # Usado 9011492 323292 Dispon 3% 0% Uso% /tmpfs /dev/shm Montado en

Nosaseguramosqueestninstaladoslocalesygettext(paraelidioma): # apt-get update # apt-get install locales gettext

InstalandoApache
Instalarelservidorwebapache # apt-get update # apt-get install apache2-mpm-prefork apache2-doc apache2-dev Iniciarapache # /etc/init.d/apache2 start Comprobarquefunciona http://172.26.0.2 Hacerquearranquealiniciarelordenador
-4

# update-rc.d apache2 defaults Manejarapache # /etc/init.d apache2 [stop | start | restart...] Aunqueslotardaunossegundosenreiniciarse,lamayoradelasveces,despusdehacercambiosen algnarchivodeconfig.noesnecesarioreiniciarlo,bastaconforzarloareleerlosfilesdeconfiguracin # /etc/init-d/apache2 force-reload

Configurarapache
Elprincipalarchivodeconfiguracindeapachees(endebian): /etc/apache2/apache2.conf Aadimoslalnea: ServerName dominio.es(ejemplo:ServerName lubrin.org) Creamoslacarpeta/var/www/htmldondecolgaremoslaspginasweb: # mkdir /var/www/html Ledecimosaapachequebusquelasweb'sen/var/www/html Paraellomodificamoselarchivo # nano /etc/apache2/sites-available/default NameVirtualHost * ServerAdmin webmaster@localhost DocumentRoot /var/www/html/ Options FollowSymLinks AllowOverride None Options -Indexes FollowSymLinks MultiViews AllowOverride AuthConfig Order allow,deny allow from all # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place # RedirectMatch ^/$ /apache2-default/ Laslneascambiadasson: DocumentRoot /var/www/html/ Options -Indexes FollowSymLinks MultiViews #negamos ndices AllowOverride AuthConfig # por si despus ponemos alguna carpeta con acceso restringido # RedirectMatch ^/$ /apache2-default/ #comentada para evitar que redirija a apahe2.default Actualizamoscambios # /etc/init.d/apache2 force-reload

InstalandoPHP
Instalacin(comomdulodeapache):
# apt-get install php5 # apt-get installlibapache2-mod-php5 Reiniciarapache # /etc/init.d/apache2 restart Configuracin /etc/php5/apache2/php.ini Comprobarque:
-5

register_globals = Off (por seguridad) [siestenOn,lacambiamosyreiniciamosapache: # /etc/init.d/apache2 restart]

Interaccinconapache
Comprobarqueestnhabilitadoslosmdulos: # ls /etc/apache2/mods-enabled/ php5.conf php5.load ...

Comprobarquefuncionaphp
Crearunsencilloarchivo'prueba.php'yponerloen:/var/www/html/apache2-default Despusapuntarconelnavegadora: http://ip_server/apache2-default/prueba.php

InstalandoMySQL
Instalacin
# apt-get install mysql-server-4.1 # apt-get install mysql-client mysql-common Enelprocesodeinstalacinsenosavisardeunaseriedecuestiones:

Informacinsobrelanecesidaddequenuestramquinatengaunnombreen/etc/hosts,quese
ha creado una nueva cuenta de usuario y nos recuerda la necesidad de proteger el servidor asignandounapasswordalroot. Tambin nos informa de que los accesos va red estn deshabilitados por defecto y que para activarlos hay que descomentar la opcin skip-networking del archivo de configuracin del servidordebasesdedatos(/etc/mysql/my.cnf)

Instalarelmdulodeintegracinconapache
# apt-get install libapache2-mod-auth-mysql

InstalarelmdulodeintegracinconPHP
# apt-get install php5-mysql Reiniciarluegoapache # ./etc/init.d/apache2 restart

Configuracindelservidor
/etc/mysql/my.cnf Enlaseccin[mysqld]modificamosunpardelneas: Idioma: language = /usr/share/mysql/spanish Accesodesdelaredlocal: bind-address = IP_local_del_server (por ej. 172.26.0.2) pordefectoesbind-address = 127.0.0.1] Cualquierapuedeaccederalabasededatos,asquedemosaccesosloaroot: # mysqladmin password contrasea Paraacceder: # mysql -u root -p Paraautorizaralusuariomar(passwd:serena)aaccederalabasededatos'prueba': mysql> GRANT ALL ON prueba.* TO mar@localhost IDENTIFIED BY 'serena';
-6

SiqueremosqueaccedadesdecualquierIP: mysql> GRANT ALL ON prueba.* TO mar@'%' IDENTIFIED BY 'serena'; Entoncesparaconectarme,tendraqueteclear: mysql -u mar -h 172.26.0.2 -p mysql>quit [para salir] Ejemplo: mysql> CREATE DATABASE alumnos

PHPMyAdmin
Aunquesepuedeinstalarcon #apt-get install phpmyadmin,mejornosbajamoslaltimaversin establede: http://www.phpmyadmin.net/home_page/ Sepuedelocalizarlaurlexactaybajarladesdeelpropioserver. Nosposicionamosprimeroen/var/www(puesqueremosquesedescargueenesaruta) # cd /var/www # wget http://heanet.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin2.7.0-pl2.tar.bz2 Descomprimimos: # tar -xjvf phpMyAdmin-2.7.0-pl2.tar.bz2 Creamosunenlacesimblico: # ln -s /var/www/phpMyAdmin-2.7.0-pl2 /var/www/html/phpmyadmin Loconfiguramosmodificando(ocreandosinoexiste)elarchivo: /var/www/phpMyAdmin-2.7.0-pl2/config.inc.php Sielarchivonoexiste,usamosel'config.default.php' # cd /var/www/phpMyAdmin-2.7.0-pl2/ # cp config.default.php config.inc.php yentonceseditamosel'inc' # nano /var/www/phpMyAdmin-2.7.0-pl2/config.inc.php Modificamosestaslneas: $cfg['PmaAbsoluteUri'] = 'http://localhost/phpmymdmin/'; $cfg['Servers'][$i]['user']= 'root'; $cfg['Servers'][$i]['password'] = 'contrasea'; [ponemoslacontraseaquepusimoscuandohicimos: # mysqladmin password contrasea] Yapodemosusarlotecleandoenunnavegador: http://localhost/phpmymdmin/ [EnlugardelocalhostdebemosponerlaIPlocaldelserverolapblicasiaccedemosdesdefueradela red] Restringirelacceso(conapache.htaccess)alosusuariosquevayanausarphpmyadmin(porejemplo nosotros) 1 2 1 Comprobarqueexiste/var/www/passwd/.htpasswd(directorioyarchivo)paralascontraseas delosaccesosrestringidos Aadirel'usuario'(nosotros)quetienepermisoparaaccederaphpmyadmin # htpasswd /var/www/passwd/.htpasswd usuario Creamosun archivo .htaccess quepondremos enlacarpeta /var/www/phpmyadmin conel contenido: AuthType Basic AuthName Carpeta restringida
-7

AuthUserFile /var/www/passwd/.htpasswd AuthGroupFile /dev/null Require user usuario 1 1 Decirleaapachequemirelos.htaccesdeesacarpeta Enelarchivo/etc/apache2/apache2.confponemos:AllowOverride AuthConfig Permitirleaapacheleerelarchivo.htaccess # chown www-data:www-data /var/www/phpMyAdmin-2.7.0-pl2/.htaccess

ServidorFTP
Necesitamosunserverftpparapodersubirarchivos,tantorootcomolosusuariosdelsistema. Elijo pure-ftpd por ser rpido, efectivo y seguro (el poco cdigo que tiene hace que sea ms difcil encontrarunbug). http://pureftpd.org/ Parainstalarlodisponemosdedosopciones(binariosofuentes)

opcin1:con#apt-get
# apt-get install pure-ftpd standalone(sivaasoportarmuchasconexiones) inetd(sivaasoportarpocas) *algunasopcionessloestndisponiblesenmodostandalone Sidespusnosarrepentimos: # dpkg-reconfigure pure-ftpd-common

Opciones:
Enlosarchivosdeconfiguracin,enlaruta"/etc/pure-ftpd/conf" Enlugardeunarchivoconvariasopciones,hayvariosarchivos(cadaunoesunaopcin). Losmsimportantesson: AltLog - clf:/var/log/pure-ftpd/transfer.log ChrootEveryone - yes (encajar cada usuario en su directorio personal) IPV4Only - yes MaxClientsNumber - 5 MaxClientsPerIP - 5 MaxDiskUsage - 95 (indica el porcentaje) MinUID - 1000 (no pueden entras usuarios del sistema con menos de este uid en el ftp) NoAnonymous - yes (deshabilita la entrada de usuarios annimos) PAMAuthentication - yes ProhibitDotFilesRead - yes PureDB - /etc/pure-ftpd/pureftpd.pdb Quota - 100 500 (primero n de archivos y despus los megabytes) UserBandwidth - 1000 1000 (primero la subida y despus la bajada) con# pure-ftpd —helpsalentodaslasopciones msayudacon# man pure-ftpd Losreiniciamoscon: # /etc/init.d/pure-ftpd restart

opcin2:instalandodesdelasfuentes
Trasanalizaryprobarambasopcionesmequedoconestasegunda:
-8

Instalacin:
Bajamos las fuentes (de la ltima versin) desde: ftp://ftp.pureftpd.org/pub/pureftpd/releases/ ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.20.tar.gz Nossituamosenlacarpetadondelohemosbajadoydescomprimimos: $ tar -xvzf pure-ftpd-1.0.20.tar.gz Nosposicionamoseneldirectoriocreado: $ cd pure-ftpd-1.0.20 Opcionesdecompilacin: $ ./configure —help elegiremoslassiguientes: —without-inetd Como el servidor lo tendremos como un proceso aparte, no necesitamossoporteinetd —with-puredb Soporteparausuariosvirtuales —with-ratiosSoportepararatiosdesubida/bajada —with-quotasSoporteparacuotas —with-ftpwho Soporteparapoderveralmomentoquienestconectadoyquest haciendo —with-throttlingSoporteparalimitarelanchodebanda —with-language=spanishSoporteparanuestroidioma Portanto: $ ./configure --without-inetd --with-puredb --with-ratios --with-ftpwho --with-throttling --with-language=spanish $ make $ su # make install --with-quotas

Configuracinparausuariosdelsistema
Aadimoslalnea:/bin/false[noolvidadENTER]alarchivo:/etc/shells Alosusuariosdelsistema,lesdaremosespaciowebyaccesoftp,peronoaccesoalsistema: nano /etc/passwd ... usuario:x:1002:100::/home/usuario:/bin/false ... (tambinsepuedeconfigurarlavariableDSHELLenel/etc/adduser.conf) Apachedebeestarconfiguradoparapermitirquelosusuarioscreensusweb'spersonales

Iniciarelserver:
# /usr/local/sbin/pure-ftpd -A -B -c 5 -C 2 -d -E -j -n 1000:100 -A -B -c 5 -C 2 -d -E -j paraquenopuedasalirdesudirectoriodeinicio correrensegundoplano nmeromximodeusuariossimultneos nmeromximodeconexionesdesdelamismaIPsimultneos Logverboso(logueaconbastanteinformacin) Nosepermitenusuariosannimos creaeldirectoriorazalosusuariosvirtuales max.1000archivos,:max100megas,cuotadediscoparalosusers(usarquote)

-n 1000:100

Pararlo:
# killall pure-ftpd Deberamoscrearunscriptparaqueseiniciealarrancarelsistema
-9

Creamosunscriptdenombre'ftpdani'conelsiguientecontenido: #!/bin/bash case "$1" in iniciar) echo "Arrancando pure-ftpd..." /usr/local/sbin/pure-ftpd -A -B -c 5 -C 2 -d -E -j -n 1000:100 ;; parar) echo "Terminando pure-ftpd..." killall pure-ftpd ;; *) echo "Uso: $0 start|stop" exit 1 ;; esac exit 0 tenemosqueponerloen:/etc/init.d/ Noolvidardarlepermisosalscript # chmod 755 ftpdani Ademstecleamos: # update-rc.d ftpdani defaults conlocualseiniciaralarrancarelsistema. Ademselscriptnospermiteiniciarloypararlomediante: # /etc/init.d/./ftpdani iniciar # /etc/init.d/./ftpdani parar

Servidordecorreo
Con nuestro servidor web funcionando, con su portal instalado y nuestros usuarios con sus web's personales (sin lmites de espacio, sin publicidad, sin depender de terceros) se hace necesarios auto concedernosunascuentasdecorreo(quetampocotenganpublicidad,nilmitesyademstodaslascuentas quequeramos). Comoservidordecorreoelijo postfix sobretodoporsuseguridad(laconfiguracinpordefectoyaes bastantesegura).Evidentementenotodosernventajasrespectoatenercuentasdecorreoenhotmail, yahoo,gmail,etc. Paramlasnicasdesventajas(acambiodemsseguridad)son: 1. Acambiodemsseguridadymenosspam,slopodremosusarprogramasdecorreotradicionales (evolution,thunderbird,outlock,etc.)dentrodelaredlocal.Pararecibircorreosisepodrnusar fueradelaredlocal(sepuedeconfigurarelservidordecorreoparapodertambinenviardesde cualquiersitio,peroprefierolaseguridad) 2. Laotradesventajaestenerqueconfigurarlosprogramasantispamyantivirus(aunqueesoes trabajodeladministradordelsistema)

Instalandopostfix
# apt-get install postfix Durantelainstalacinpreguntaalgunosdatos: SitioInternet NINGUNA Nombredecorreo?nuestrodominio(ejemplo:lubrin.org) Forzaractualizacionessncronasenlacoladecorreo?NO Lasdemssepuedendejarpordefecto

Configuracindepostfix
Sepuedeobtenerlaconfiguracinactualtecleando:
- 10

# postconf -n Paramodificarlaconfiguracintenemosqueeditarelarchivo/etc/postfix/main.cf,queesdondese definelamayorpartedelfuncionamientodepostfix. Lasopcionesmsimportantesson: # smtpd_banner = Correo de lubrin.org ESMTP $mail_name (Debian/GNU) siqueremosqueaparezcaunmensaje biff = no # appending .domain is the MUA's job. append_dot_mydomain = no #sinopuedeentregaruncorreo(porejemplo:cuandoelserverquetienequerecibirlo #estuviesecado(expresamoseltiempoqueseguirintentandoentregar:4h,2d,etc.) delay_warning_time = 4h myhostname = mail.lubrin.org #mediantelos'alias'podemosredirigirelcorreo #elarchivo/etc/aliasessecomponedelneasdeltipo: # alias: destino #as,loscorreospara'alias'sernredirigidosa'destino'alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases #cuandomodifiquemoselarchivo/etc/aliaseshayquedecirle #quetenemosnuevosaliasmedianteelcomando(comoroot): # newaliases #myoriginesladireccinqueapareceenelFROM #sepuedeponermyorigin=$midomain obien myorigin = /etc/mailname myorigin = /etc/mailname mydestination = lubrin.org, deb-sotano.lubrin.org, localhost.lubrin.org, localhost relayhost = mynetworks = 127.0.0.0/8 172.26.0.0/24 mailbox_command = procmail -a "$EXTENSION" #tamaodeloscorreosalmacenados[0=sinlmite]mailbox_size_limit = 0 #tamaomximodeunmensaje(con10megasdebierasersuficiente)message_size_limit = 10485760 recipient_delimiter = + inet_interfaces = all #paraintegrarloconamavis(sinoinstalasamavisnoesnecesario)content_filter = smtpamavis:[127.0.0.1]:10024 #ladirectivacontent_filterseusaparaaplicarfiltrosalcorreo #merefieroafiltrosdeltipo:antivirus,antispam,... #otrasdirectivasanitispamydeseguridad

Reiniciarpostfix
Cadavezquemodifiquemoselmain.cfdebemosreiniciarpostfix: # /etc/init.d/postfix [reload|restart] Otroarchivodeconfiguracines/etc/psotfix/master.cf(noesunarchivodeconfiguracindeltipo main.cfquesloseleaaliniciarpostfix,enrealidadesunprogramaqueseejecutaconstantemente). Elmaster.cfnolotocamosaqui

Aadiendousuariosalsistema
Laideadeaadirusuariosalsistema,tienecomofinalidadquelosusuarios:

Dispongandeespaciowebparapublicarsuspginas Tenganaccesovaftpparasubirlosarchivosdesusweb'spersonales
- 11

Dispongandeunacuentadecorreoennuestrodominio(porejemplo:usuario@lubrin.org) No tengan acceso al shell del sistema, de forma que no puedan acceder directamente ni remotamentealalneadecomandos

Tambinseraconvenienteestablecercuotasdeespacioendiscoparalosusuarios,tantoparaelcorreo comoparaelespaciodedicadoawebpersonal.Unamanerafcildeestablecercuotasdediscoparael espaciowebesmedianteelservidordeftp(elinconvenienteesqueseralamismacuotaparatodoslos usuarios).Siqueremoscuotasindividualizadas,tendremosquevalernosdeaquote Puesto que se trata de una red casera con pocos y fiables usuarios, la autenticacin la haremos con /etc/passwd,esdecir,comousuariosdelsistema.Cadausuariodispondrdesuloginypasswordqueles servirtantoparasucuentadecorreocomoparasuespacioweb. Detodasformas,unmtodomssegurodeautenticacinesmedianteLDAP. Respectoalascontraseas,sehabilitarunpluginparaelcorreowebdeformaquelosusuariospuedan cambiarsuscontraseascuandoloconsiderenconveniente.

Aadiendousuarios
Bsicamenteelaadirunusuarioalsistemaconstadevariospasos(aunquesepuedeautomatizarcreando unscript,dandocontenidoa /etc/skel,modificandoel adduser.conf,etc.)Ntesequeexistendos rdenes:useraddyadduserquenosonlomismo(practicarambasparaaprendersusdiferencias). # useradd -m -s /bin/false pepico # passwd pepico # mkdir /home/pepico/public_html # chown pepico:users -R /home/pepico Hemosaadidoalusuario pepico,creandosucarpeta /home/pepico (-m) ydejndolosinshell(-s /bin/false) Enlasegundalnealeasignamosunacontrasea Le creamos la carpeta public_html (encasodequequeramosdarle espacioweb).Noesnecesario crearlelacarpeta /home/pepico/mail puestoquelaconfiguracindenuestrosprogramasdecorreolo harnautomticamente. Enlaltimalneaponemoscomodueoapepicodesucarpetapersonal(/home/pepico)ytodoloque incluya(-R)

Permitiendoweb'spersonalesalosusuarios
Debemosmodificarlaconfiguracindeapacheparaquepermitaquelosusuariostenganweb'spersonales. Seaccederaesaswebpersonalesmediante: http://www.midominio.xxx/~usuario Tambin necesitaremos un pequeo script para quitar el carcter '~', de forma que se pueda acceder mediante: http://www.midominio.xxx/usuario (ejemplo: http://www.lubrin.org/dani) Paraellodebemosactivarenprimerlugarelmdulodeapacheuserdir Losmdulosactivosdeapacheestnenlacarpeta/etc/apache2/mods-enabled/ Portantopodemossabersielmdulouserdirestactivadotecleando: $ ls /etc/apache2/mods-enabled/ cgi.load userdir.conf userdir.load Observamosquetenemosactivoelmdulouserdirelmdulouserdirposibilitaquelosusuariostengan suswebspersonales Sinoqueremosquetenganwebpersonal,desactivamoselmdulo: # a2dismod userdir [apache2 disable modulo userdir] Sinosarrepentimos,paraactivarlo: # a2enmod userdir
- 12

Laswebspersonalestienenqueincluirlasensudirectorio: /home/usuario/public_html/ Sepuedecambiarlacarpetapordefecto:public_htmlporotra.Paraelloselodecimosaapacheensu archivo/etc/apache2/apache2.confmediantelalnea: UserDir public_html quecambiaremospor: UserDir otra_carpeta Sicambiamoslosarchivosdeconfiguracindebemosreiniciarapache: # /etc/init.d/apache2 restart Lacarpeta public_html hayquecrearlaparacadausuario.Ademshayqueasegurarsequeapache tienepermisoparaentrarenesascarpetas. (descomentado el #UserDir public_html) Supongamosqueyahemosdadodealtaalusuariopepe Ahorapepenotendramsqueponersusweb'sensucarpeta/home/pepe/public_htmlyparaverlas desdeInternet: http://dominio/~pepe Cuando'pepe'entreporFTP(consuloginypassword)verqueyahaycreadaunacarpetaensuespacio (public_html)ydebesaberqueloquequierapublicartienequeestardentrodeesacarpeta. Ahora pepe,hacreadosuwebpersonalylehadadolaurlasusamigosparaqueveansuweb,pero resultaquealgunosledicenquenosabenponerel"~",quenoestensusteclados[esecarcterespecial seponeconlacombinacindeteclasAltGr+4].

Quitandoel"gusanillo":"~"
Pondremosunscriptenperlenelarchivo /etc/apache2/httpd.conf, queenDebian,normalmente estavaco,deformaquelosusuariospuedanaccederasuwebmediante:http://dominio/usuario opendir H, '/home/'; my @dir = readdir(H); closedir H; foreach my $u (@dir) { next if $u =~ m/^\./; if (-e "/home/$u/public_html"){ push @Alias, ["/$u", "/home/$u/public_html/"]; } } Adems,paraquefuncione,debemosinstalarelmdulodeperlyreiniciarapache: # apt-get install libapache2-mod-perl2 yreiniciarapache # /etc/init.d/apache2 restart

- 13

Você também pode gostar