martes, 29 de mayo de 2012

Servidor FTP con VSFTPD sobre CentOS

En esta pequeña guía se mostrara la instalación de un servidor FTP con usuarios virtuales.

La plataforma es CentOS 6.2

Datos:
IP del FTP : 172.16.0.84

El proceso sera sencillo, comenzamos instalando el programa

# yum install vsftpd -y

Editamos el archivo /etc/vsftpd/vsftpd.conf

# vi /etc/vsftpd/vsftpd.conf

background=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
virtual_use_local_privs=YES
write_enable=YES
pam_service_name=vsftpd-virtual
xferlog_file=/var/log/vsftpd.log
user_sub_token=$USER
local_root=/var/www/html/$USER
anon_root=/var/www/ftp
chroot_local_user=YES
hide_ids=YES
listen=YES
listen_port=21
ftp_data_port=20
pasv_min_port=65500
pasv_max_port=65535
connect_from_port_20=YES
local_umask=022
max_clients=20
max_per_ip=10
secure_chroot_dir=/usr/share/empty


Guardamos los cambios y listo ahora falta la creación de usuarios ....

Elabore un pequeño script para la creación de los usuarios ... lo llamaremos ftpadduser

# vi /usr/local/sbin/ftpadduser


#!/bin/bash
if [ -z "$1" ]; then
        echo "Ingrese el usuario ..."
        exit 1
fi
if [ -z "$2" ]; then
        echo "Ingrese la clave ..."
        exit 1
fi
echo "$1" >> /opt/virtual-users.txt
echo "$2" >> /opt/virtual-users.txt
db_load -T -t hash -f /opt/virtual-users.txt /etc/vsftpd/virtual-users.db
mkdir /var/www/html/$1
chown -R ftp:ftp /var/www/html/$1

Listo ejecutando ese script se podra crear las cuentas FTP

Ahora debemos ver el selinux, podriamos deshabilitarlo pero por temas de seguridad lo conservamos(Enforcing) y ejecutamos lo siguiente

setsebool allow_ftpd_full_access on
setsebool ftp_home_dir on

Ahora el servidor FTP ya esta operativo ... En nuestro Firewall(iptables) haremos el respectivo NAT

Dentro de nuestro script de iptables, cargaremos algunos módulos

#Definiendo variables
IPT="/sbin/iptables"
EXT_IP="IP Externa"
FTP="172.16.0.84"

# Cargando módulos 
...
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
...

#Realizando el NAT

$IPT -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 20:21 -m state --state NEW,ESTABLISHED,RELATED -j DNAT --to-destination $FTP
$IPT -A FORWARD -d $FTP -p tcp --dport 20:21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -s $FTP -p tcp --sport 20:21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Listo ... con esto ya debería estar operativo al 100% ... se entiende que falta el enmascaramiento en el script del firewall ...
 


Servidor de correo Zimbra sobre Centos 6

En mi trabajo por temas de licencia me pidieron instalar un servidor de correo bajo Linux, por temas de facilidad de administracion se escogio la version OpenSource de Zimbra.

Para esto en mi red, ya se contaba con un Active Directory y servidor DNS en el mismo equipo, escogi Cent0S 6.2 de 64 bits como plataforma para la instalacion de Zimbra, la version de Zimbra que use es 7.2

Datos:

  • IP del AD : 172.16.0.33
  • Dominio: mydominio.com
  • IP de Zimbra: 172.16.0.55
  • Hostname de Zimbra: mail.mydominio.com

Pasos iniciales:
  1. En el servidor DNS se creo el registro MX apuntando a mail.mydominio.com
  2. En el archivo hosts del Linux se puso lo siguiente:
cat /etc/hosts

127.0.0.1 localhost.localdomain localhost
172.16.0.55 mail.mydominio.com mail

Desactivamos el selinux

vi /etc/sysconfig/selinux
SELINUX=disabled

Comentamos la siguiente seccion dentro del archivo sudoers

vi /etc/sudoers
#Defaults    requiretty

Instalacion de dependencias:

yum install -y perl bind-utils sysstat nc file sudo

Luego de descomprimir el archivo tar.gz, ingresamos al directorio y ejecutamos lo siguiente:

[root@mail zcs-7.2.0_GA_2669.RHEL6_64.20120410002025]# ./install.sh --platform-override

De aqui solo queda responder las preguntas ...

Le damos Y a modificar la plataforma ...

En una seccion me sale la siguiente pregunta
Change domain name?[yes]

Esto debido a que detecta como dominio lo siguiente: mail.mydominio.com

Le respondo que si (Y) y pongo mi dominio

Change domain name?[yes] Y
mydominio.com

Listo .. el resto es terminar de responder algunas preguntas que hara .. de hecho habra que ponerle una clave para el acceso del admin ...

Luego de esto accedo:

https://mail.mydominio.com:7071/zimbraAdmin/


Cuando voy a la seccion de Mail Queues ... me sale algunos mensajes de error, las cuales las he resuelto gracias a este blog http://blog.spanger.org/?p=501

Por ahora estoy creando los usuarios tanto en el servidor de correo como en el Active Directory para la validacion. Para esto sigo los siguientes pasos:
  • Seleccionar el dominio, debajo de Domains
  • Ir a la seccion de Autenticacion
  • Configure Autenticacion
  • Escoger external active directory
  • Pongo la IP 172.16.0.33
  • En username pongo administrator@mydominio.com, ingreso la clave y ya esta ....
Luego de esto hago lo siguiente:
  • Server Settings 
  • MTA  
  • Dentro de MTA Trusted Network, dejo lo siguiente: 127.0.0.1/32 172.16.0.55/32
Por ahora lo he dejado asi ... ya estare haciendo mas ajustes y mas cosas que las ire publicando ....