Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ConfiguracinServidorFTPCentos7
Autor:PabloAndrsBernabuSoler
EnestaprcticaseinstalaryconfigurarunservidorFTP.Paraello,seseguirnlossiguientes
pasos:
1. PasosPrevios
3. Seguridad
4. Creacindirectorios.CreacindeUsuariosyGrupos
5. Cuotasdedisco
6. Logging
1. PasosPrevios
Configurelastarjetasdereddelservidor:
VLANProduccin: DireccinIP10.XX.99.220
DNSlosservidoresdelaUPV
VLANGestin: DireccinIP10.XX.100.220
VLANStorage: DireccinIP10.XX.200.2220
NombrealamquinaconelnombreftpC.grupoXX.net
ApartirdeentoncesaccedaarealizarlagestinatravsdelaVLANdegestin.Configureel
accesosshsloporlaIPindicadaenlaVLANdeGestin.
Reinicielamquina.
2. InstalacindelservicioFTPyconfiguracin
FTP (File Transfer Protocol) es un protocolo TCP/IP que permite transferir ficheros entre un
servidoryuncliente.CualquierservidorLINUXpuedellegaraserunservidorFTPinstalandoel
softwareapropiado.
LosusuariosdeunsistemapuedenserasuvezusuariosFTP.Cuandolosusuariosaccedenal
servidorFTP,empiezanlasesinensudirectoriohome.
El primer paso que vamos a realizar, va a ser, la instalacin del servicio Very Secure FTP
Daemon(vsftp)enLinuxCentosRedHat7paralacompaagrupoXX.net
Unabuenaprcticaesactualizarlospackages.
root@ftpC ~]# yum -y update
Instalamosvsftpdylospaquetesrequeridos
root@ftpC ~]# yum -y install vsftpd
ElservidorFTPserinstaladoconlossiguientesrequerimientos:
LosusuariosFTPsernusuarioslocales.
SistemasyServiciosenRed
EldirectorioinicialparalosusuariosFTPser/datos/ftp
NavegarporelsistemadeficherosnoestarpermitidoparaningnusuarioFTP.
Elaccesoannimonoestarpermitido.
Los usuarios FTP no pueden entrar al sistema (no pueden acceder mediante login y
password,nopuedenaccedervashell).
Estardeshabilitadoelaccesocomousuarioroot
LamximavelocidaddetransferenciaparalosusuariosFTPserde10Mbps(1.250.000
bps).
El servidor slo escuchar peticiones FTP que lleguen por la VLAN de produccin
(10.XX.99.220)
Paraellodebeestablecerparmetrosdeconfiguracinenelficherovsftpd.conf.Abraelfichero
Aadaalfinaldelmismo:
listen_address=10.XX.99.220 (sloescuchaVLANproduccin)
local_max_rate=1250000 (establecemoslamximavelocidaddetransmisin)
Busque las directivas local_enable y anonymous_enable quite comentarios y verifique que su
atributoeselindicado.
local_enable=YES (habilitausuarioslocales)
anonymous_enable=NO (nopermiteelaccesoannimo)
Paraconseguirquelaconexinalusuariorootestdeshabilitada,hemosdetenerladirectiva
auserlist_enableaYES.Deestaformalosusuariosqueaparecenenelficherovi /etc/vsftpd/user_list,
nosonpermitidos,yaquepordefectouserlist_deny=YES
SistemasyServiciosenRed
Siporelcontrario,quisiramospermitirlaconexinslodelosusuarioslistadosenestefichero,
tendramosqueaadirladirectiva userlist_deny=NO,paraquenoseejecutasepordefectoque
esYES.
Ahoratenemosqueconseguirquenuestrosusuariosnopuedannavegarfueradesudirectorio
asignado.
Enprimerlugar,paraquelosusuariosestnenjauladosensudirectorioFTPladirectiva
chroot_local_user tienequetenerasignadaelvalorde YES.
Losnombresdeusuariosvirtualesqueagregamosalalista /etc/vsftpd/chroot_list sern
aquellosusuariosqueSIpodrnnavegarportodoelsistemadearchivoscuandola
directiva chroot_local_user=YES, por este motivo, slo agregaremos a esta lista los
usuarios que necesitan acceder a todo el sistema de archivos, y a todos aquellos
usuariosvirtualesquenoincluidosenelarchivo chroot_listquedarnbienenjaulados.
(Estaopcinlaactivamosparapermitirlaposibilidaddetenerunosusuariosenjaulados
ono)
Comoresumen:
# Enjaula a los usuarios locales dentro de su propio directorio personal, esta opcin mejora la seguridad.
chroot_local_user=YES
# Permite especificar una lista con los usuarios locales a los cuales
# no se les enjaular cuando la opcin chroot_local_user = YES.
chroot_list_enable=YES
Ademsdebemoscrearelficherochroot_list:
touch /etc/vsftpd/chroot_list
Ydejarlodemomentovaco.
Procedapuesconlainformacinindicadaaconfigurarelservicioftp.
Configureelarranqueautomtico.
systemctl enable vsftpd.service
systemctl start vsftpd
Unavezconfigurado,lomsrecomendableesreiniciarelservidor,conlocualnosaseguramos
queloscambiosquedanaceptadosyfuncionales.
Actividades
Creeeldirectorio/datos/ftp.
Creeunusuariodummyparatestearelservicio(user:dummy,password=pa$$wOrd)
ChequeeelservicioFTPestfuncionandoyescuchandoporlaVLANdeproduccin.
ChequeelaconexindesdeelhostusandoFILEZILLA.
SistemasyServiciosenRed
Cuando creamos el directorio lo hacemos como root y deben usarlo otros usuarios, por ello
cambiamoslospermisosdeldirectorio:chmod R 777 /datos/ftp
Consideraciones:
Paraverificarelserviciopuedeinstalarlasherramientasdered.
ComopodemosobservarenlaprimeralneaescuchavsftpdporlaIP10.0.99.220yelpuerto21.
Paracrearelusuario(busqueeninternetparaentenderelcomandouseradddeCentos):
useradd -d /datos/ftp/dummy -m -s /usr/sbin/nologin -c "Dummy D." dummy
Conellocreamoselusuariodummy.Leindicamosculesessudirectorioyademsquenopoder
hacerlogin.
InstaleenlamquinaclienteFilezilla,previamentedebeinstalarelentornogrfico.
3. Seguridad
En este laboratorio, el estudiante no configura SELINUX. Pase SELINUX a modo Permissive
permanentemente.
Paraello,abraelfichero/etc/selinux/config.ColoqueSELINUX=permissive.
Importante:enunentornodeProduccinesnecesariohabilitartantossistemasdeseguridad
comoseanposiblesconelfindeevitarproblemasdeseguridad.
SistemasyServiciosenRed
Porello,vamosaaprenderenestaprcticalaconfiguracinelfirewallenCentos,loaprendido
aqudebemosaplicarlocuandoinstalemoselrestodeserviciosdelassiguientesprcticas(de
estaformaconsolidaremosloaprendido)
Instaleelfirewall,sinoestuvieseinstalado.Parasabesihayunpaqueteinstaladopuedeusarel
comando:rpm -q [paquete].Ennuestrocaso.
rpm -q firewalld
Parainstalar:
yum -y install firewalld
Actividad
Configure el firewall con las siguientes zonas y servicios permanentemente (borre otros
servicios).Elnombredelainterfacepuedecambiardependiendodelamquinavirtual
Activelainterfacestorage,conlaIP10.XX.200.220
Apliqueloscambiosdeformapermanente:
[root@ftpC ~]# firewall-cmd --reload
Actividades
Chequeelaconfiguracindelcortafuegosenlastresinterfaces:
firewall-cmd --permanent --zone=???? --list-all
ChequeelaconexindesdeelhostusandoFilezilla.
Cargueunficherograndeychequeelavelocidaddesubida.
4. Creacindirectorios.CreacindeUsuariosyGrupos
Consideracionesdelosdirectorios,losusuariosFTP:
Tendrnaccesoprivadoaldirectoriopersonal(mismonombrequenombredeusuario).
Tendrnaccesoaunficherocompartido,conelrestodeusuariosdondecadaunode
ellostendrpermisosdelecturayescritura(directoriosparacompartirdocumentos).
Tendrnaccesoaunficheroconelrestodeusuariosdondecadaunodeellostendr
slo permiso de lectura (directorio de documentos de la compaa: procedimientos,
regulaciones,etc.).
SistemasyServiciosenRed
El sistema tendr 5 usuarios de diferentes departamentos con diferentes permisos sobre los
siguientesdirectorios:
(*)DondeN1,N2,N3correspondealosnombresdelosmiembrosdelgrupodelaprctica,por
ejemplo,PauBernabeupbernabe(comoejemploderesolucin:N1=agonzalez,N2=pbernabe,
N3=nlopez)
Pasosarealizar:
CreacindelosdirectoriosVentas,Mrquetin,yAdministracinen/datos/ftp.
o [root@ftpC /]# cd /datos/ftp/
o mkdir ventas marquetin administracin
Creacindelosgrupos(parapodercompartirdirectorios).
o [root@ftpC /]# groupadd administracion
o [root@ftpC /]# groupadd ventas
o [root@ftpC /]# groupadd mrquetin
Asignarpropietarios.
o [root@ftpC ftp]# chown nobody:administracion administracion/
o [root@ftpC ftp]# chown nobody:ventas ventas/
o [root@ftpC ftp]# chown nobody:marquetin marquetin/
Asignamospermisosyelstickybit:
o [root@ftpC ftp]# chmod 1770 marquetin
o [root@ftpC ftp]# chmod 1770 ventas/
o [root@ftpC ftp]# chmod 550 administracion/
o [root@ftpC ftp]# chmod g+s marquetin/ ventas/ (agregamoselsetgidalgrupo).
Aadimoslosusuariosylosponemosensusrespectivosdirectoriosraz:
o [root@ftpC ftp]# useradd -d /datos/ftp/rvila -s /sbin/nologin rvila
o (aadeelrestodeusuarios)
Asignamoscontraseaalosusuarios:
SistemasyServiciosenRed
o [root@ftpC ftp]# passwd rvila
o Introducimoscomocontraseapa$$wOrd
o (repitaelprocesoparaelrestodeusuarios,mismacontraseaparatodos)
Explorando el archivo /etc/passwd podemos observar si los usuarios se han introducido
correctamente(verlasltimas5lneas).
Parapodernavegarporelrestodecarpetasconpermisosmodificamosestaslneasparaque
quedentalcomoseobservaenlasiguientefigura(quitareldirectoriopersonal)
Asignamoslosusuariosasusgrupos:
o Comovemosenlatablatodospertenecenaadministracin.
o Aadacadausuarioaventasomrquetinsegncorresponda.
o Podemoscomprobarsehanaadidocorrectamente,paraellovemoselfichero
/etc/group(enconcretolaslneas)
Asignamospropietariosalosdirectorios(sinoloson,talcomolohemoshechoalcrear
losusuariosyasonpropietarios).Sinofueseas,
o chown agonzalez:agonzalez agonzalez/
o (hagalosmismoconelresto)
o Tieneclaroporqu?
Damospermisosalosusuarios:
o chmod 770 agonzalez/ jperez/ nlopez/ rvila/ pbernabe/
o Tieneclaroporqu?.
o Elresultadofinaldeberser:
SistemasyServiciosenRed
Actividad
Desde Filezilla, loguee usando diferentes usuarios y compruebe los permisos. Cree algunos
ficheroseintenteborrarlosusandodiferentesusuariosdistintosalpropietario.
5. Cuotasdedisco
Enesteapartadoaprenderemosaconfigurarcuotasdeusodeldisco(usexfs_quotadespusde
queelsistemadeficherosesxfs).Valordecuotasdeusuarios(lmitehard).
Usuario Cuotas
N1 10MB
N2 50MB
N3 200MB
rvila 10MB
jperez 100MB
Importante:
Parapoderdarcuotas,debemostenerunaparticinquelaspermita.Porlotanto,esto
lodeberamostenerloencuentaalhacerlaparticinenelmomentodelainstalacin.
Locorrecto,esdisponerdedispositivosdealmacenajeexternos(redstorage).
En este caso, vamos a aadir al servidor un nuevo disco y asignarle la capacidad de
cuotas.Aprovechandoloyarealizadoeneldirectorio/datos/ftp.
Pasosaseguir:
Apagamoslamquina.
Aadimos un nuevo disco virtual desde VirtualBox. (Tamao 8GB). Les damos de
nombre,porejemplo,datos_ftp.
Arrancamoslamquina.
Montamoselnuevodiscoduroen/datos/ftp.
o DaremosformatoaldiscoylomarcamoscomoLVM
fdisk /dev/sdb
Marcamoslaparticipacincomoprimaria,yeltamao:
Introducimosn.
SistemasyServiciosenRed
Introducimosp.(indicamosparticipacinprimaria).
Presionamosintrodosveces.
MarcamoslaparticincomoLVM:Introducimostyposteriormente8e.
Introducimosw(conloqueaceptamosytendremoselformatorealizado).
Agregamoseldiscoa/datos/ftp.
o pvcreate /dev/sdb1
o vgextend centos /dev/sdb1
o lvcreate l 100%FREE n datos_ftp centos.
Damosformatoxfsaldisco
o mkfs -t xfs /dev/centos/datos_ftp
Creamosundirectoriotemporal.
o mkdir /nmt/datos_ftp
Montamos:
o mount /dev/centos/datos_ftp /mnt/datos_ftp
o Verificamos:mountpoint /mnt/datos_ftp/
o Siobtenemoselmensaje /mnt/datos_ftp/ is not a mountpoint,todoescorrecto.
Unavez,queestmontado,realizamosunacopiadelosdirectorioscreadoshastaahora
yquetenemosen/datos/ftp.
o cp -ax /datos/ftp/* /mnt/datos_ftp/
o Eliminamoseldirectorio/datos/ftp: rm rf /datos/ftp
o Lovolvemosacrear: mkdir p /datos/ftp
o Desmontamosdisco: umount /nmt/datos_ftp.
Modificamosficherovi/etc/fstab
o Aadalalnea:
/dev/centos/datos_ftp /datos/ftp xfs defaults,usrquota, grpquota 0 0
Volvemosamontar.
o mount av
Verificamosqueestmontado:
(Seobservaqueestmontado,verlaltimalneadelafiguraanterior)
Comprobamosen/datos/ftptenemoslosdirectorios.
SistemasyServiciosenRed
YaestamospuesencondicionesdecrearcuotasenlosdirectoriosdedicadosalservicioFTP.
Creamoslascuotasdeusuario:
Verificamoslascuotassoncorrectas.
[root@ftpC ftp]# repquota /datos/ftp/
Actividades
Chequeelascuotasdelosusuarios.
DesdeFilezilla,chequeeelcorrectofuncionamientodelascuotas,transfiriendoficheroscon
menostamaoqueelpermitidoymsgrandequeelpermitido.
Nota:Paracrearficherosdeundeterminadotamao.
dd if=/dev/zero of=archivo.bmp bs=1 count=0 seek=200M
SistemasyServiciosenRed
6. Logging
Pordefecto,elservidorvsftpdescribeloslogsdirectamentealfichero(/var/log/xferlog)
Actividades:
Chequeeloslogsen/var/log/xferlog.
Intenteloguearunusuarioconunpassworderrneoychequeelossiguienteslogs: messagesy
securebuscandoelerror.