Just another site that show you something about the life

Archivo para la Categoría "Infraestructura"

Servidor FTP en Linux Debian

Y seguimos con la configuración de servicios básicos de red sobre Linux Debían.

Vamos a configurar VSFTPD, un daemon de FTP que tiene características de seguridad, y permite la transmisión de datos cifrados.

Primero vamos a instalar el paquete, lo vamos a hacer con el gestor de paquetes de Debían así;

#apt-get install vsftpd


Una vez instalado tenemos que configurar el file /etc/vsftpd.conf. Abrir un nano o VI para editarlo.

nano /etc/vsftpd.conf



Ahora deja basicamente esta configuracion (Es la casí default para que funcione al instante.)

listen=YES
#No permitimos acceso Anónimo!
anonymous_enable=NO
local_enable=YES
write_enable=YES
#Todos los archivos que suben van a ser enmascarados con 0755
local_umask=0755
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#El banner de bienvenida
ftpd_banner=Welcome to xxxx FTP service.
# usa los usuarios locales, van a ser redireccionados a su home 
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
chmod_enable=YES
dirlist_enable=YES


Agregamos la regla FTP en el script del Firewall NetFilter:

iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT


Los usuarios utilizados por vsftp serán los del sistema. Si tenemos que dar de alta usuarios exclusivamente para el ftp, lo adecuado es darlos de alta sin shell de la siguiente forma:

# echo "/bin/false" >> /etc/shells
# adduser usuario --shell /bin/false

Agregamos los usuarios al sistema de la forma habitual usando las especificaciones de grupo y Home Directory que deseemos. Por ejemplo, a continuación voy a agregar un usuario cuyo Home Directory va a ser una carpeta dentro de /var/www/ y con una shell falsa ubicada en /bin/ftp:

#useradd -g FTP -d /var/www/user/ -s /bin/ftp 'usuario'
#passwd 'usuario'
#chmod -R 755 'usuario'
#chown -R 'usuario' /var/www/user/
#chgrp -R FTP /var/www/user/


Ahora solo nos queda reiniciar el servidor FTP y hacer pruebas desde algún cliente;

#service vsftpd restart


Y con esto queda listo un servidor FTP de manera simple y ágil. El servicio se puede adoptar a nuestras necesidades, así que puedes configurarlo de la manera en que lo necesites.

Saludos!

Servidores DNS y WEB sobre Linux Debian

La verdad la instalación de estos dos servicios es bastante simple, sobre todo cuando se trata de Linux Debian; En cuanto al Servicio Web, vamos a instalar un Servidor LAMP (Linux, Apache, MySQL y Php) con una interfaz gráfica y web para administrar la base de datos MySQL, esto se hace  para montar CMS o una pagina web que deba funcionar con una base de datos, ya sea para autenticar usuarios, tener varios formularios, etc. En cuanto al DNS, será estático, debemos registrar los equipos manualmente, mas adelante publicaré un manual de instalación de un DDNS, por ahora nos enfocaremos en estos dos servicios fáciles, básicos, pero importantes;

Ok, empecemos.

Vamos a entrar a la consola de Debian y vamos a actualizar los repositorios, con un apt-get update, esto después de tener los enlaces de los repositorios actualizados según la versión de nuestro Debian, De acuerdo a la versión de Debian actualizaremos lo repositorios en /etc/apt/source.list, luego vamos a instalar nuestro servidor BIND en su versión 9 para las resoluciones de nombres. Vamos a ejecutar;

#apt-get install bind9



Después vamos a configurar BIND, esto lo hacemos primero editando los reenviadores, si es necesario; BIND es un poderoso motor de resolución de nombres, que puede funcionar perfectamente como un servidor DNS para varios controladores de domino y muchas funciones mas, pero en este caso vamos a ver una configuración simple e inicial (por decirlo de alguna manera). Para configurar la IP de los DNS reenviadores vamos a ir al archivo de configuración de named, denominado options, este se encuentra en la siguiente ruta;

#etc/bind/named.conf.options


Vamos a encontrar un archivo así;




Y justo en forwarders, vamos a configurar la IP del reenviador, casi siempre es una IP Publica, aquí esta como una IP de rango de direccionamiento privado porque el DNS fue montado en un Lab, pero por lo general y como lo muestra el comentario del archivo, es la IP del DNS de tu ISP.

Luego en el archivo named.conf.local, del directorio de configuración de BIND vamos a crear los archivos que tendrán la configuración de las zonas y vamos a editar las lineas que definirán como van a resolver las zonas y las rutas especificas donde se van a encontrar estos archivos, vamos con un editor de textos al archivo;

#nano etc/bind/named.conf.local


Aquí vamos a configurar las rutas de los archivos que tendrán la configuración de las búsquedas de zona directa y zona inversa, también el nombre del dominio y el direccionamiento de las mismas.

El orden es, especificar el dominio, si es una zona maestra y la raíz del dominio, e igual para la inversa, solo que no se especifica la raíz del dominio, sino la raíz de direccionamiento, así;




Luego en el directorio de configuración de BIND, vamos a crear esos archivos que nombramos en named.conf.local, y allí de acuerdo a nuestras necesidades vamos a editar las opciones del archivo de configuración, primordialmente le daremos en una linea comentada un nombre a nuestro archivo, según el dominio, esto es opcional, yo siempre lo hago para llevar un control, después vienen las opciones principales, le asignaremos;


En el archivo se deben especificar las lineas de:
*Serial
*Refresh
*Retry
*Expire
*Default TTL

Luego se especifican dentro del archivo los registros de entrada (IN) Name Server (NS), especificamos el nombre de nuestro servidor; ejemplo dns.domain.com y empezamos a consignar cada uno de nuestros equipos, como lo muestra el archivo;




E igual para el fichero de configuración de zona inversa, se diseña y se implementa el mismo proceso, solo que a cada host, ya no se le especificara el registro address (A), si no el registro PTR. asi;




Luego en resolv.conf, el dominio es el que acabamos de crear y la IP puede ser, la asignada a la interfaz o el loopback, cualquiera resuelve bien, y luego reiniciamos el servicio, desde init.d así;

#etc/init.d/restart bind9




Y con esto queda configurado un Server de resolución de nombres simple y  ademas una base para algo mas grande, funcional y adecuado al menos para una red local y una Intranet.

Ahora vamos por el servidor web y la base de datos MySQL, junto con el DNS que acabamos de configurar vamos a hacer pruebas con Joomla, aquí vamos:

Primero vamos a instalar PhpMyAdmin para gestionar la base de datos, esta explicación va a ser la de un servidor LAMP (Linux + Apache + MySQL + Php) simple;

Al instalar PhpMyAdmin, el gestor de paquetes de Debian nos va a instalar Apache2 y Php, esto por que requiere escuchar a través de un servidor web por el puerto 80, para ejecutar la interfaz de web para la administración  de la base de datos, y también instala Php porque en este lenguaje esta escrita la interfaz web, entonces nos ahorramos la instalación de estos dos componentes para el LAMP.

Bien; A la consola ..

Ejecutamos,

#apt-get install phpmyadmin


Ahora vamos a instalar MySQL en nuestro Sistema Operativo, para esto vamos a ejecutar;

#apt-get install mysql-server mysql-client libmysqlclient-dev


Después de instalar MySQL, si vamos a probar Apache y PhpMyAdmin, por lo general, Apache es el único que funciona, ya que ambos trabajan por el puerto :80, aunque con nuestro DNS se pueda crear un subdominio para cada aplicación, vamos a hacer que PhpMyAdmin trabaje por el puerto :8080, esto porque me gusta mas así. bien, para esto lo primero que vamos a hacer es hacer una copia de seguridad del archivo de configuración por defecto del directorio sites-available de Apache, en este caso lo vamos a hacer en el directorio home, del usuario de Debian que yo cree en ese Sistema Operativo, esto no es una practica muy recomendada, lo hice así porque es un Lab, pero las copias de seguridad van en un NAS 😉

#cp /etc/apache2/sites-available/default > /home/debian


Ok, vamos a concatenar el archivo apache.conf  de  PhpMyAdmin

#cat /etc/phpmyadmin/apache.conf > /etc/apache2/sites-available/default




Hacemos una copia del archivo default de sites-available y lo nombramos default1, y en esta vamos a crear el sitio virtual por el puerto :8080, que es por donde va a trabajar PhpMyAdmin, simple:


Ahora vamos a “conectar” el sitio virtual de Apache que acabamos de crear, el sitio por defecto “default” por lo general esta en estado “Enabled” , pero el default1 esta en sitios disponibles, no en sitios conectados, solo debemos ejecutar sobre el directorio sites-available el comando a2ensite (Apache2-enable-site)la archivo default1;

#a2ensite default1



Después de esto forzamos un reinicio de Apache y hacemos un netstat;

#etc/init.d/apache2 force-reload



#netstat -an | grep :80




Y con esto tenemos el LAMP básico;

Las pruebas con Joomla! son bastante simples; solo debemos crear un registro en el DNS para nuestro sitio web, un archivo en Sites-Available y copiar todo el directorio de Joomla! al directorio que alojará todos los sitios web de Apache, que por lo general está en /var/www, pero esto lo podemos cambiar, ya sea por seguridad o porque no nos gusta. Luego entramos al navegador y al consultar nuestra IP, o el nombre del registro que le creamos en el DNS a nuestro sitio, nos debe devolver la interfaz gráfica de instalación de Joomla!, y es todo, instalamos, configuramos y tenemos un CMS simple en nuestra Intranet. La complejidad de esta, dependerá de las necesidades de la red, pero para una configuración inicial, lo que hay en esta entrada te va a servir.


Una Solución Libre para Gestion de Redes ..

Se que es dificil, sobretodo en el entorno empresarial, confiar la información que es el activo mas importante, a infraestructuras basadas en software libre, porque siempre hay que ser ,,, no sé, digamos “pesimistas” y tener siempre presente todo lo malo que puede pasar, entonces al no tener soporte, empieza a crecer el miedo, y confian todo a un software o una infraestructura que les pueda garantizar un respaldo si llegase a ocurrir algun daño .. Es Normal !! Pero esta entrada es mas que para resaltar eso, subrayar algunas alternativas bastante estables, que he tenido la posibilidad de probar, que pueden perfectamente reemplazar, y con creces, a cualquier software privativo o de pago.

Pues, en el mundo de las redes se necesitan bastantes herramientas para poder mantener un alto performance y establecer un rendiminento continuo de toda la plataforma tecnologica, Asi que Empecemos por la gestión; Para mantener un inventario de todos los equipos, como es su comportamiento, cuantos y cuales recursos de red estan ocupando, se requiere un software sofisticado de Administración, ya sea que trabaje con SNMP o simplemente con un agente instalado en cada equipo, que te entregue graficos, estadisticas, posibles eventualidades, posibles fallos .. Parece mucho pedir para un software “Gratis”, pero hay dos poderosas herramientas que funcionan de maravilla y son Zenoss core y Zabbix.

Iniciemos con Zenoss Core IT, es un poderoso software escrito en Python que se puede configurar con una base de datos MySQL, es sin lugar a duda uno de los mas conocidos, y de los mas potentes, Zenoss core te entrega de una manera ordenada todo el iventario, el funcionamiento y el comportamineto de la red, en tiempo real, aqui esta un Cheat Sheet de Zenoss (en inglés);

Despúes viene Zabbix, que es muy parecido a Zenoss, pero este tiene una interfaz grafica diferente, es bastante estable, funciona con un agente que se instala en cada estacion de la red, la verdad no quita casi nada de los recursos del equipo, y detecta automaticamente los dispositivos activos como Switch, Routers, Firewall, etc .. Aqui hay un Sheet de Zabbix;

Pues espero que las prueben, mas adelante estaré subiendo Manuales y Videotutoriales, aunque en la pagina oficial de estas dos herramientas, se encuentra toda la documentación .. Gracias .. !

Nube de etiquetas