ADMNISTRACION DE SISTEMAS OPERATIVOS
CONFIGURACION DE PROTOCOLOS Y SERVICIOS BASICO DE LINUX
ELABORADO POR
Oscar Yair Montealegre Castillo
Introducción
El siguiente manual tiene como objetivo dar una guía corta pero concisa de los diferentes pasos que hay que seguir para la instalación y configuración de varios de los servicios y protocolos más utilizados normalmente en la administración de un equipo que utiliza Linux en cualquiera de sus versiones, para el caso de este manual hemos utilizado Ubuntu 10.
Servicio FTP FTP: Protocolo de transferencias de archivos. VSFTPPD: Es un servidor de archivos por FTP muy ligero y seguro. Para este punto utilizare el ftp VSFTPD, es un servidor FTP que funciona sobre Linux y es muy sencillo de configurar.
Instalación.
La configuración del servidor FTP requiere del paquete vsftpd. Para esto cargamos una consola y digitamos el siguiente comando:
$ sudo apt-get install vsftpd.
Al instalar vsftpd en el sistema se crean los siguientes archivos y directorios en el sistema:
/etc/init.d/vsftpd: fichero que inicia el servidor ftp. /usr/bin/vsftpd: archivo ejecutable. /etc/vsftpd.conf: es el fichero de configuración del servidor. /etc/ftpusers: fichero que contiene una lista de usuarios que no se podrán conectar al servidor.
Configuración.
El fichero de configuración del servidor se llama vsftpd.conf y se encuentra en el directorio /etc. Para acceder a este fichero digitamos la siguiente instrucción.
$ sudo gedit /etc/vsftpd.conf
Cada regla de configuración viene con un pequeño comentario para guiarnos y ajustarla de acuerdo con nuestras necesidades. Las reglas más importantes de este fichero son las siguientes:
anonymous_enable
Si el valor de esta regla es YES cualquier usuario se puede conectar al servidor dando el nombre de usuario anonymous. Por razones de seguridad se debe poner NO (anonymous_enable=NO)
local_enable
Esta línea indica que si se permite o no el acceso de usuarios locales a sus respectivas carpetas privadas. Si se permite el acceso habría que poner local_enable=YES (local_enable=NO en caso contrario).
chroot_local_user
Permite enjaular a los usuarios dentro de su propio directorio personal. Si en el fichero de configuración aparece chroot_local_user=NO, entonces el usuario tiene acceso a todo el sistema de archivos, en función de los permisos asignados. Cuando un usuario local se conecta y en el fichero de configuración aparece chroot_local_user=YES, entonces enjaulamos a los usuarios dentro de su propio directorio personal, sin posibilidad de acceder a todo el sistema de ficheros. Se mejora por tanto la seguridad.
write_enable
Con esta regla se puede permitir o denegar la subida de ficheros al servidor FTP. Si se permite que los usuarios suban archivos al servidor FTP habría que poner write_enable=YES.
local_umask
Se pueden establecer los permisos con los que quedará el archivo al subirlo al servidor FTP. local_umask=022 indicará que los permisos de los archivos serán 644, es decir, lectura y escritura para el propietario del fichero, y sólo lectura para el grupo y los demás.
anon_upload_enable
Esta
directiva
indica
si
los
usuarios
anónimos
pueden
cargar
archivos
en
el
servidor.
anon_upload_enable=YES permite que los usuarios anónimos puedan subir ficheros.
anon_mkdir_write_enable
Si esta directiva tiene el valor YES se permitirá la creación de directorios en el servidor.
ftpd_banner
Con esta directiva se puede mostrar un mensaje de bienvenida cuando un usuario se conecte al servidor FTP. ftpd_banner=?Mesaje?.
anon_max_rate
Se utiliza para limitar la tasa de transferencia a usuarios anónimos.
En el siguiente ejemplo se limita la tasa de transferencia a los usuarios anónimos a 10Kb/s: anon_max_rate=1024
local_max_rate
Se utiliza para limitar la tasa de transferencia en bytes por segundo a los usuarios locales del servidor.
En el siguiente ejemplo se limita la tasa de transferencia a 10kb/s:
local_max_rate=1024
max_clients
Indica el número máximo de cliente que podrán conectarse simultáneamente al servidor. En el siguiente ejemplo son 5:
max_clients=5
Hay que tener en cuenta que cada vez que se haga un cambio en el fichero de configuración de vsftpd se debe reiniciar el servidor con la siguiente instrucción.
$ sudo /etc/init.d/vsftpd restart
Otras opciones disponibles son stop (parar), reload (recarga), start (inicio).
Configuración TELNET
Telnet: Telecommunication NETwork es el nombre de un protocolo de red que permite conectarse a otra máquina para manejarla remotamente como si estuviéramos sentados delante de ella. El puerto TCP que utiliza el protocolo telnet es el 23. Telnet sólo sirve para acceder remotamente en modo terminal, es decir, sin gráficos, se puede utilizar para:
Arreglar fallos a distancia, de forma remota
Consultar datos a distancia.
Telnet ha tenido y tiene un fuerte uso en sistemas UNIX-LINUX y en equipos de comunicaciones.
Permite abrir una sesión con una máquina LINUX, de modo que múltiples usuarios con cuenta en la máquina, se conectan, abren sesión y pueden trabajar utilizando esa máquina.
Tenemos que tener en cuenta que telnet tiene grandes problemas de seguridad ya que por sí solo telnet no cifra ninguno de los datos enviados sobre la conexión para esta razón hay que buscar una solución a esta debilidad para esto utilizamos el protocolo SSH.
SSH: Secure Shell es el nombre de un protocolo y del programa que lo implementa. Este programa tiene como funciones principales:
Cifra la información antes de transmitirla, autentica la máquina a la cual se conecta.
mecanismos de autenticación de usuarios más seguros.
SSH permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH.
Se utiliza TCP en el puerto 22.
Instalación.
Para utilizar el servicio de telnet en nuestro equipo debemos instalar los siguientes paquetes xinetd, telnetd y shh.
$ sudo app-get install xinetd telnetd.
$ sudo apt-get install openssh-server .
Una vez terminado el proceso de instalación se han instalado los paquetes.
Recordemos que el paquete xinetd es el daemon de telnet y debemos verificar que esté funcionando correctamente antes de empezar a utilizar telnet. Para esta actividad ejecutemos los siguientes comandos.
$ sudo /etc/rc.d/init.d/xinetd stop
$ sudo /etc/rc.d/init.d/xinetd start
$ sudo /etc/rc.d/init.d/xinetd status
Configuración
1. Configurar la dirección IP del equipo, editando el fichero /etc/network/interfaces, mediante el editor gedit con la instrucción:
$ sudo gedit /etc/network/interfaces
De esta manera cada vez que arranque el equipo, la interfaz eth2 estará configurada por defecto con esta dirección IP y no será necesario configurarla cada vez con ifconfig.
2. Reiniciar el servicio de red ejecutando: $ sudo /etc/init.d/networking restart.
3. Iniciar el servidor de Telnet y SSH mediante los comandos $ sudo /etc/init.d/openbsd-inetd restart $ sudo /etc/init.d/ssh restart.
Para editar la configuración del protocolo SSH debemos editar el archivo hosts.deny con la siguiente instrucción.
$ sudo gedit /etc/hosts.deny
Si se dese restringir al accesos de alguna de las redes que tengamos conectadas al PC podemos modificar este archivo y hacer este tipo de configuraci贸n.
Para terminar con la configuraci贸n del protocolo SSH debemos ingresar al siguiente archivo hosts.allow donde configuraremos los pc, redes o rangos de redes a las cuales le permitiremos el acceso para ingresar a este archivo ejecutaremos la siguiente instrucci贸n.
$ sudo gedit /etc/hosts.allow
Para configurar los par谩metros lo podemos hacer de la siguiente forma: sshd: 192.168.1.20 #
permite configurar el acceso a un pc
sshd: 192.168.1* #
permite el acceso a todo un rango
Se pueden seguir agregando parámetros según sea la necesidad de accesos.
Para probar nuestro servicio telnet debemos ejecutar la siguiente instrucción.
telnet localhost
Servidor de DNS
Un servidor de DNS (Domain Name System) es capaz de recibir y resolver peticiones relacionadas con el sistema de nombres. Un servidor de DNS sirve, por tanto, para: 1. Traducir su nombre de dominio en una dirección IP. 2. Asignar nombres a todas las máquinas de una red y trabajar con nombres de dominio en lugar de IPS.
Instalaci贸n.
Lo primero que debemos hacer es poner una direcci贸n IP manual, porque el servidor DNS debe estar siempre localizable en una direcci贸n. Esto se logra ingresando
a conexiones de red donde
configuraremos la IP manual.
Ahora debemos instalar el programa que permite que nuestro PC sea un servidor DNS.
El programa que utilizaremos ser谩 BIND9.
Para instalar el programa, podemos usar el centro de software Ubuntu buscando "Bind9".
O se puede ejecutar la siguiente instrucción para instalar el paquete desde una consola. $ sudo apt-get install bind9 $ sudo apt-get install -f Después de la ejecución de esta instrucciones nos muestra
que el servicio a iniciado llamado Bind9
Configuración.
Para iniciar con la configuración de nuestro servidor DNS editamos el archivo named.conf.local y añadimos el siguiente contenido.
$ sudo gedit /etc/bind/named.conf.local
zone "servidordns.lan" { type master; file "db.servidordns.lan"; };
zone "2.168.192.in-addr.arpa" { type master; file "db.192.168.2"; };
Para comprobar la sintaxis de los archivos de configuración ejecutamos el siguiente comando namedcheckconf, después de haber configurado nuestro archivo debemos crear el db.servidordns.lan en la siguiente ruta /var/cache/bind/, ejecutando la siguiente instrucción podremos crear el archivo. $ sudo gedit /var/cache/bind/db.servidordns.lan. Crear un registro en la zona primaria (búsqueda directa) En el momento en que el editor nos carga el archive debemos incluir las siguientes instrucciones. $ORIGIN servidordns.lan. $TTL 86400 ; 1 dia @
IN 1
SOA
servidor
postmaster (
; serie
6H ; refresco (6 horas) 1H ; reintentos (1 hora) 2W ; expira (2 semanas) 3H ; mínimo (3 horas) ) NS servidor A
servidor 192.168.2.1
Comprobamos la zona que acabamos de crear debemos ejecutar la siguiente instrucción. named-checkzone servidordns.lan /var/cache/bind/db.servidordns.lan
Crear una zona primaria (o maestra) de búsqueda inversa A continuación creamos el archivo /var/cache/bind/db.192.168.2 para la zona inversa e incluimos el siguiente contenido. $ sudo gedit /var/cache/bind/db.192.168.2 $ORIGIN 2.168.192.in-addr.arpa. $TTL 86400 @
IN 1
; 1 dia SOA
servidor
postmaster (
; serie
6H
; refresco (6 horas)
1H
; reintentos (1 hora)
2W
; expire (2 semanas)
3H
; mínimo (3 horas)
NS
servidor.servidordns.lan.
)
1
PTR
servidor.servidordns.lan.
Comprobamos la zona inversa recién creada con la ejecución del comando.
named-checkzone 2.168.192.in-addr.arpa /var/cache/bind/db.192.168.2
Después de haber realizado toda la configuración y haber verificado que cada una de las zonas está bien configurada debemos reiniciar el bind9 para esta tarea debemos ejecutar el siguiente comando. $ sudo service bind9 restart Revisamos el log para comprobar que todo está bien. $ less /var/log/syslog después de haber verificado nuestra configuración debemos edita el archivo resolv.conf para que el servidor DNS pueda resolver las peticiones. $ sudo gedit /etc/resolv.conf Y cambiar el primero de los servidores DNS poa la IP de nuestro servidor nameserver 192.168.2.1 nameserver 8.8.8.8 Probamos nuestro servidor de nombres: $ dig servidordns.lan Probamos la resolución inversa $ dig -x 192.168.2.1 Crear registros Alias El alias nos permitirá asignar varios nombres a una ip para simplificar el manejo con el DNS. Para crear un alias a nuestro servidor DNS demos editar el archivo db.servidordns.lan $ sudo gedit /var/cache/bind/db.servidordns.lan Después de haber editado el archivo podríamos agregar las siguientes líneas al archivo para que el servidor tenga los siguientes alias.
www ftp
IN IN
mail server
IN IN
A CNAME CNAME CNAME
192.168.2.1 www www www
Registros NS, A, CNAME, MX y SPF
Registro NS (name server): indica los servidores de DNS autorizados para el dominio, es decir, a quién tengo que preguntar para saber acerca de los registros de dominio.com.
Registro A (address): indica la dirección IP a la que se debe traducir ese nombre de dominio.
Registro CNAME (canonical name): permite definir alias o nombres de domino equivalentes. Normalmente, se usa para definir subdominios (que casi siempre apuntarán al dominio principal, aunque no es obligatorio).
Registro MX (mail exchange): permite definir a qué servidor se envía el correo electrónico del dominio en cuestión. Cuenta con un campo prioridad, por lo que para un mismo dominio se pueden definir varios registros MX con distinta prioridad, escogiéndose el primero que esté disponible en cada momento.
Registro SPF (sender policy framework): permite definir qué servidores están autorizados para enviar correo electrónico del dominio. Su uso surgió como propuesta para acabar o al menos dificultar el spam (correos no deseados con publicidad, phishing). Normalmente, los spammers envían correo electrónico desde direcciones recopiladas en internet y a direcciones recopiladas en internet, para que sea más difícil identificar el correo como spam. Sin embargo, si el filtro antispam está bien implementado, mirará el registro SPF del dominio del remitente de un correo entrante, y si la dirección IP origen del correo no está entre las admitidas en dicho registro, lo marcará como spam.
Configurar el servicio HTTP
Para iniciar a utilizar el servicio HTTP primero debemos instalar un paquete para este manual utilizaremos apache 2.0.
Instalación.
Para iniciar el proceso de instalación del paquete debemos ejecutar la siguiente instrucción.
$ sudo apt-get install apache2 Después de terminada la instalación debemos iniciar el servicio de apache eso se logra con la siguiente instrucción. $ sudo /etc/init.d/apache2 start
En el momento en que se carga el servidor habitualmente aparece un mensaje de error como el siguiente.
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Para que este error no nos salga debemos entrar a configurar nuestro servidor apache. Configuración. $ sudo gedit /etc/apache2/apache2.conf
Aquí, agregamos el nombre del servidor. Esto debe ser después de la línea donde se define la carpeta root. El archivo queda de la siguiente forma.
# ServerRoot "/etc/apache2" ServerName "nombre servidor" #
Una vez terminada la instalación puedes comprobar que Apache funciona correctamente de la siguiente forma, colocando en tu browser http://localhost o http://127.0.0.1 También existe una herramienta que instala toda una suite para configurar un servidor WEB la cual es XAMPP esta herramienta instala Apache, Mysql, Filezila y Mercury lo mejor de esta herramienta es que tiene unas opciones que guía de una manera muy sencilla y practica al usuario para configurar los servicios de acuerdo a las necesidades. Una de las grandes ventajas de esta suite aparte de su sencillez es el costo cero.
Instalación 1. descargamos en nuestra carpeta personal, la última versión desde su página web. Detectará el Sistema Operativo y la arquitectura (32 o 64 bits). 2. Una vez descargado en nuestra carpeta, lo descomprimimos en el directorio /opt desde una Terminal con el siguiente comando: $ sudo tar xvfz xampp-linux-1.8.0.tar.gz -C /opt
Listo ya está instalado todo el paquete. Ahora crearemos el acceso directo a nuestro nuevo programa para unservidor web con el comando. $ sudo ln -s /opt/lampp/htdocs /home/usuario/Webs Si queremos iniciar manualmente la herramienta lo podemos hacer con el siguiente comando. $ sudo /opt/lampp/lampp start No debe mostrar las siguientes líneas Starting XAMPP for Linux 1.7.4... XAMPP: Starting Apache with SSL (and PHP5)... XAMPP: Starting MySQL... XAMPP: Starting ProFTPD... XAMPP for Linux started.
Sólo queda probarlo para ver que corre perfectamente. Abrimos nuestro navegador y escribimos en la barra de direcciones http://localhost nos debe mostrar la siguiente página.