Está en la 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:
/

sistemabase(con2GB)

/home

sealojaranlaswebpersonalesdelosusuarios

/var

aqusealojaranlaswebaservir

swap

paraintercambio(unos500MB)

backups

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

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)

ha creado una nueva cuenta de usuario y nos recuerda la necesidad de proteger el servidor
asignandounapasswordalroot.

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

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

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

paraquenopuedasalirdesudirectoriodeinicio

-B

correrensegundoplano

-c 5

nmeromximodeusuariossimultneos

-C 2

nmeromximodeconexionesdesdelamismaIPsimultneos

-d

Logverboso(logueaconbastanteinformacin)

-E

Nosepermitenusuariosannimos

-j

creaeldirectoriorazalosusuariosvirtuales

-n 1000:100

max.1000archivos,:max100megas,cuotadediscoparalosusers(usarquote)

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

También podría gustarte