Source: http://docplayer.es/1251204-Tema-10-indice-jose-luis-comesana.html
Timestamp: 2018-02-26 00:09:08+00:00

Document:
TEMA 10 INDICE. José Luis Comesaña - PDF
Download "TEMA 10 INDICE. José Luis Comesaña"
Vicente Cabrera Gallego
1 TEMA 10 INDICE 1.- Esquema básico de red Configuración de la red Configuración de la red cableada Configuración de la red inalámbrica Ficheros de configuración Comprobación iptables Resolución del supuesto práctico DHCP Resolución del supuesto práctico Compartir archivos e impresoras (Samba) Gestión de usuarios Compartir carpetas Compartir impresoras Asistentes de configuración Cliente NFS Compartir una carpeta Configuración del cliente Acceso remoto al sistema SSH Configuración Cliente ssh VNC Cliente Servidor Web Instalar módulo php Configuración Servidor FTP Anexo I.- Configuración de iptables José Luis Comesaña
2 Administración de la red (Linux III) DAW Administración de la red (Linux III). Caso práctico María visita a Juan. -Juan, vamos a mejorar la red de la empresa y para eso necesito que utilices un servidor para que actúe como router y le proporcione a le empresa los servicios más importantes. Encaminamiento y DHCP, y luego le instalaremos más servicios. -Muy bien María, he visto por Internet que Linux funciona muy bien con redes. De hecho su máxima potencia se utiliza para actuar como servidor. Ahora mismo me pongo a configurar el servidor. 1.- Esquema básico de red. Caso práctico Juan se dispone a diseñar la red, pero antes de empezar, va a hacer un esquema de red, ya que este esquema le será de utilidad, para mantener la red y para cuando tenga que hacer cambios en la misma. Con la fuerte expansión que ha tenido Internet se ha generalizado la utilización de redes en las empresas y en nuestros hogares. Hoy en día para un empresa es totalmente necesario disponer de una red interna que le permita compartir información, conectarse a Internet e incluso, ofrecer sus servicios en Internet. En esta unidad aprenderás a configurar el sistema GNU/Linux para convertirlo en un potente router que provea a la red de los servicios necesarios: encaminamiento, DHCP y DNS. Para poder aprender mejor a administrar el sistema nuestro objetivo es configurar la infraestructura de red que se muestra en la siguiente figura y que puede utilizarse en una empresa o domicilio. A la hora de configurar la red hay que tener en cuenta los siguientes objetivos: Configurar iptables para darle acceso a Internet a los clientes de la red interna. Configurar el servidor DHCP para que asigne de forma automática las direcciones que van desde la a la Las demás direcciones las asignará el administrador de la red de forma manual. Además, se dispone de una impresora de red que tiene la dirección MAC (AA:BB:CC:DD:EE:FF) a la que se le quiere asignar siempre la IP Configurar el servidor de nombres para que administre el dominio miempresa.com. Además, se tiene que crear los siguientes registros: y ftp.miempresa.com apuntan a la IP ; mail.miempresa.com es equivalente a y el servidor de correo electrónico se encuentra en mail.miempresa.com. Por último, se configuran los servicios Web y FTP para que la empresa tenga su propio servidor de páginas web y FTP Configuración de la red. Una vez que tienes claro el esquema de red que vas a implementar, el primer paso que debes realizar es configurar correctamente las diferentes interfaces de red de nuestro servidor (que actúa comorouter) y de los clientes. Básicamente existen dos formas de configurar las tarjetas de red de - 2 -
3 Desarrollo de Aplicaciones Web Tema 10 nuestro equipo: manualmente o dinámicamente a través de un servidor DHCP. A continuación se van a ver ambos métodos de configuración Configuración de la red cableada. Para configurar una interfaz de red es necesario asignarle una dirección IP con su respectiva máscara de red. El comando más utilizado para configurar la red es ifconfig (Interface Configuration). Por ejemplo: # ifconfig eth netmask up En este caso estas configurando la interfaz eth0 (primera tarjeta de red detectada) con la dirección IP y con máscara de red El parámetro up indica que la tarjeta debe activarse, pero puede omitirse puesto que al asignarle los parámetros de red la tarjeta se activará por defecto. Para desactivar una interfaz de red ejecuta: # ifconfig eth0 down Para activar una interfaz de red ejecuta: # ifconfig eth0 up Para comprobar la configuración de las interfaces de red ejecuta el comando ifconfig. Tal y como puedes ver en la siguiente figura la interfaz eth0 tiene la dirección (la ha obtenido de forma automática) y la interfaz eth1 tiene la dirección IP Para que el equipo pueda conectarse a una red diferente de la que se encuentra (por ejemplo, Internet) necesita establecer la puerta de enlace. La puerta de enlace es el equipo que permite comunicar varias redes. Por ejemplo, si el equipo se encuentra conectado a la red /24 en la interfaz eth0 y la puerta de enlace es , debes ejecutar el siguiente comando: # route add net 0/0 gw eth0 Si quieres puedes realizar la configuración mediante el entorno gráfico xwindows. Para ello, en el menú Sistema > Preferencias ejecuta la herramienta Conexiones de red Configuración de la red inalámbrica. Desde los sistemas GNU/Linux es posible configurar la red inalámbrica a través del comando iwconfig o a través del asistente de Conexión. Para acceder a la red inalámbrica de forma gráfica, en el menú de herramientas superior, pulsa en el icono de la red inalámbrica y selecciona la red a la que deseas conectarse. Si la red inalámbrica requiere autentificación, indica la contraseña WEP o WPA y pulsa el botón Conectar. Automáticamente, el asistente establece la conexión a la red inalámbrica y muestra en pantalla un mensaje de que el proceso se ha realizado correctamente Ficheros de configuración. El problema de configurar las interfaces de red con ifconfig es que no se guardan los datos de configuración en ningún fichero, al reiniciar el equipo se pierde la configuración. A continuación se - 3 -
4 Administración de la red (Linux III) DAW van a ver los diferentes ficheros de configuración que intervienen en la configuración de la red del equipo. La configuración de las interfaces de red se guarda en el fichero /etc/network/interfaces. Siguiendo el esquema de red propuesto anteriormente, la interfaz de red eth0 es la encargada de conectarse a Internet mientras que la interfaz eth1 pertenece a la red interna. Los parámetros de configuración de eth0 los tiene que facilitar el proveedor de Internet o los puedes obtener automáticamente utilizando DHCP. Fichero /etc/network/interfaces. auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address netmask network broadcast # gateway Aunque lo normal es que eth0 obtenga la dirección IP de forma automática al iniciar el equipo puedes hacerlo manualmente ejecutando: # dhclient eth0 Configuración del nombre del equipo. Para configurar el nombre del equipo hay que modificar el fichero /etc/hostname e indicar el nombre del equipo. Configuración del servidor DNS. Existen dos formas para la resolución de nombres: de forma local o a través de un servidor de nombres (DNS). Para la resolución de nombres de forma local se utiliza el fichero /etc/hosts en donde se guarda el nombre y la dirección IP de las máquinas locales. Por ejemplo: localhost.localdomain localhost Para establecer los servidores de resolución de nombres (DNS) debes editar el fichero /etc/resolv.conf. Por ejemplo: nameserver nameserver Actualizar los cambios. Una vez realizada la configuración del sistema para que se apliquen los cambios en las interfaces de red hay que reiniciar el servicio o hacer un reload ejecutando: # /etc/init.d/networking force-reload Indica la opción incorrecta. En el archivo /etc/resolv.conf se guardan los servidores de nombres. El comando ifconfig es la única forma de configurar la red. En el fichero /etc/network/interfaces se guarda la configuración de las interfaces de red. El servicio DHCP permite obtener la configuración IP de forma automática Comprobación. Para comprobar la conexión a Internet puedes ejecutar el comando ping indicando como parámetro cualquier dirección de - 4 -
5 Desarrollo de Aplicaciones Web Tema 10 Internet. Por ejemplo: $ ping Si al realizar el ping se recibe respuesta entonces la comunicación se está realizando correctamente. Si por el contrario indica que todos los paquetes se han perdido (100% packet loss) debes comprobar la configuración de red o los parámetros de configuración. En la figura anterior puedes ver como el servidor responde correctamente al comando ping. Para comprobar la configuración de la red de forma gráfica es posible utilizar las Herramientas de red. Para ello en el menú Sistema > Administración ejecuta la aplicación Herramientas de red. La aplicación Herramientas de red incluye información relacionada con nuestros dispositivos de red. Permite realizar ping a un determinado host. Incluye la posibilidad de ver el estado de las conexiones de mi equipo, utilizando netstat. Permite utilizar traceroute para ver la ruta entre mi equipo y un equipo remoto. Tiene una pestaña para explorar puertos, que me permite analizar y/o visualizar los puertos que están abiertos o cerrados de un determinado equipo. Tiene una herramienta de búsqueda. Usando finger se puede autenticar los usuarios que están siendo usados en un determinado host de la red. Finalmente con whois se pueden identificar todos los detalles de la adquisición de un determinado dominio iptables. La tecnología de firewall de GNU/Linux ha evolucionado desde sencillos filtros de paquetes lineales hasta los motores actuales de inspección de paquetes de estado. Los núcleos de Linux 2.0 emplean una implementación de reglas de filtrado de paquetes que utilizan tres pilas: INPUT (tráfico de entrada), OUTPUT (tráfico de salida) y FORWARD (paquetes que se reenvían a otro equipo). Los paquetes llegan a la parte superior de las pilas y se filtran a través de las reglas hasta que exista una coincidencia. En este punto, cada paquete se puede aceptar, descartar, rechazar o reenviar. Si el paquete no coincide con ninguna de las reglas, pasa a la directiva predeterminada, que normalmente descarta el paquete. Aunque la capacidad nativa de firewall de los núcleos de Linux 2.0 era más que adecuada para generar firewalls, en la siguiente versión del núcleo 2.2 apareció Ipchains que incorporó nuevas y eficaces características: permite la definición de nuevas pilas y mejora la administración de las reglas de una pila. A partir del desarrollo del núcleo 2.3, los programadores de Linux comenzaron a trabajar en iptables (también llamado netfilter). Iptables mejoró las ventajas de administración de conjuntos de reglas al permitir la capacidad de crear y anular asociaciones de conjunto de reglas con sesiones existentes. Con iptables, el firewall se puede programar para asociar el tráfico devuelto generado a partir de una regla INPUT anterior. El tráfico que entra correctamente en el host puede salir automáticamente del host al ser devuelto, indicando simplemente que genere dinámicamente una regla de devolución. Las ventajas de la tecnología de inspección de paquetes de estado (SPI, State Packet Inspection) no se limitan a la eficacia de las reglas. Ipchains no permite diferenciar la "verdadera naturaleza" del tráfico de la red. Por ejemplo, un firewall ipchains programado para permitir el tráfico FTP de salida también tendrá una regla INPUT asociada para permitir la devolución de paquetes. Si un atacante puede fabricar paquetes FTP devueltos, Ipchains permite su entrada. Con SPI no existe ninguna sesión para asociar estos paquetes falsificados y, por tanto, el firewall los rechazaría
6 Administración de la red (Linux III) DAW Resolución del supuesto práctico. A continuación se va a configurar el cortafuegos para que permita que la red Interna pueda conectarse a Internet. Para establecer que el sistema actúe como router hay que ejecutar: # echo "1" >/proc/sys/net/ipv4/ip_forward Limpia la configuración del cortafuegos: # iptables -F # iptables -t nat -F Indica que la red interna tiene salida al exterior por NAT: # iptables -t nat -A POSTROUTING -s /24 -d 0/0 -j MASQUERADE Se permite todo el tráfico de la red interna y todo lo demás se deniega: # iptables -A FORWARD -s /24 -j ACCEPT # iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A FORWARD -j DROP Guarda la configuración del cortafuegos ejecutando: # iptables-save >/etc/iptables.rules Y modifica el fichero /etc/sysctl.conf para establecer la variable net.ipv4.ip_forward=1. Para comprender mejor iptables se va a realizar una mejora del supuesto en la que la red interna sólo tiene acceso al exterior para ver páginas web (puerto 80/TCP) y para la resolución de nombres (53/UDP y 53/TCP). Además, se va a publicar un servidor web interno que se encuentra en la dirección Limpia la configuración del cortafuegos: # iptables -F # iptables -t nat -F Indica que la red interna tiene salida al exterior por NAT. # iptables -t nat -A POSTROUTING -s /24 -d 0/0 -j MASQUERADE Se permite sólo el tráfico web (80/tcp) y DNS (53/udp y 53/tcp). Todo lo demás se deniega: # iptables -A FORWARD -s /24 -p TCP --dport 80 -j ACCEPT # iptables -A FORWARD -s /24 -p TCP --dport 53 -j ACCEPT # iptables -A FORWARD -s /24 -p UDP --dport 53 -j ACCEPT # iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A FORWARD -j DROP Redirige el tráfico web que entra por la interfaz externa (eth0) al servidor de la red interna: # iptables -t nat -A PREROUTING -i eth0 p tcp --dport 80 -j DNAT -- to :80 Guarda la configuración del cortafuegos ejecutando: # iptables-save >/etc/iptables.rules Finalmente, modifica el fichero /etc/network/interfaces y escribe al final: pre-up iptables-restore </etc/iptables.rules DHCP. El mantenimiento y la configuración de la red en los equipos de una red pequeña es relativamente fácil. Sin embargo, cuando se dispone de una red grande con equipos heterogéneos, la administración y asignación de direcciones IPs así como la configuración de los equipos, se convierte en una tarea compleja de difícil mantenimiento y gestión. Cualquier cambio en la configuración de - 6 -
7 Desarrollo de Aplicaciones Web Tema 10 red, el servidor de nombres, la dirección IP asignada, la puerta de enlace, etcétera, conlleva un excesivo tiempo para ejecutar la tarea. Por otra parte, en entornos con equipos móviles, la gestión y asignación de direcciones supone una tarea compleja que, aunque puede resolverse con la asignación de direcciones IP estáticas, conlleva la asociación fija de una dirección IP al mismo equipo, para evitar conflictos, y la imposibilidad de su reutilización si un portátil no está conectado a la red local en un momento determinado. Éste es el mismo problema que se presenta en el entorno de trabajo de un ISP: o se dispone de un sistema de asignación dinámica y flexible que permita reutilizar las direcciones de tal forma que sólo los equipos conectados en un momento determinado a la red tienen asignada una dirección IP, o se dispone de una dirección IP distinta por cada cliente es inviable con el número de usuario conectados a Internet. El servidor DHCP surge ante la necesidad de realizar la asignación dinámica y automática de las direcciones IP de una red. El servidor DHCP se encarga de gestionar la asignación de direcciones IP y de la información de configuración de la red en general. Para ello, necesita de un proceso (dhcpd) y un fichero de configuración (/etc/dhcpd.conf) que proporciona la información necesaria al proceso. Los datos mínimos que un servidor de DHCP proporciona a un cliente son: dirección IP, máscara de red, puerta de enlace (gateway) y servidor DNS. El protocolo DHCP incluye dos métodos de asignación de direcciones IP: Asignación dinámica. Asigna direcciones IPs libres de un rango de direcciones establecido por el administrador en el fichero /etc/dhcpd.conf. Es el único método que permite la reutilización dinámica de las direcciones IP. Asignación por reservas. Si quieres que un dispositivo o equipo tenga siempre la misma dirección IP entonces la mejor forma es establecer una reserva. Para ello, en el fichero de configuración para una determinada dirección MAC se asignará una dirección IP. Este método es muy útil para aquellos dispositivos que no cambian de dirección IP. Por ejemplo, es deseable que una impresora en red tenga siempre la misma dirección IP ya que si cambia de dirección IP debes configurar nuevamente la impresora en todos los equipos clientes que la utilicen. En el fichero /etc/dhcpd.conf se almacena toda la información referente a la asignación de direcciones IPs a los clientes. Esta información incluye: Rango de direcciones IP a otorgar a los clientes. Asociación fija de direcciones IP a clientes, mediante el uso de la dirección MAC. Periodo de validez de las asignaciones. Servidores de nombres y wins. Si tienen o no autoridad para asignar direcciones IP Resolución del supuesto práctico. En primer lugar, es necesario realizar la instalación del servidor DHCP ejecutando: # apt-get install dhcp3-server Configurar el servidor DHCP para la asignación dinámica de direcciones IP, de tal forma que se preste servicio a la red /24 y, por otro lado, realizar una reserva al portátil con dirección MAC (AA.BB:CC:DD:EE:FF) para que se le asigne siempre la dirección IP Para comenzar con la configuración, debes indicar los parámetros generales del servidor y comunes a los equipos de la red, la información necesaria para que éste sepa cómo comportarse. Así, si el servidor dhcp.ejemplo.es es el que tiene la autoridad sobre la zona, se quiere que el tiempo máximo - 7 -
8 Administración de la red (Linux III) DAW de asignación de una dirección IP sea de una semana (max-lease-time). Para ello el fichero /etc/dhcp3/dhcpd.conf debe tener el siguiente contenido: authoritative; one-lease-per-client on; server-identifier ; default-lease-time ; max-lease-time ; ddns-update-style ad-hoc; Posteriormente, se deben introducir los parámetros generales que se transmitirán a los clientes de la red. La red con la máscara de red tiene como puerta de enlace la dirección IP y quiere utilizar los servidores de nombres y Además, hay que tener en cuenta el rango de direcciones IP que desea asignar por DHCP que en el ejemplo es desde la dirección a la A partir de estos parámetros de configuración debes escribir en el fichero la siguiente configuración: subnet netmask { range ; option subnet-mask ; option broadcast-address ; option routers ; option domain-name-servers , ; option domain-name "miempresa.com"; } Como se desea realizar la reserva de la dirección IP para el portátil con la dirección MAC AA:BB:CC:DD:EE:FF debes añadir las siguientes líneas: host portatil { hardware ethernet AA:BB:CC:DD:EE:FF; fixed-address ; } Para comprobar que la configuración del servidor dhcpd se ha realizado correctamente ejecuta: # dhcpd3 eth1 Siendo eth1 la interfaz de red donde quiere que el servidor dhcpd ofrezca sus servicios. Una vez configurado correctamente el servidor, inicia el servicio ejecutando: # service dhcp3-server start Finalmente, configura el sistema para que se inicie automáticamente el servicio dhcp al iniciar el equipo: # chkconfig dhcp3-server on De esta forma el servidor dhcpd irá asignando automáticamente las direcciones IP a los equipos que se conecten a la red. Para comprobar las asignaciones que se han realizado puedes consultar el fichero /var/lib/dhcp3/dhcpd.leases donde, como puedes ver a continuación, se muestran los datos de cada concesión de dirección IP: Datos más importantes del servicio DHCP. Nombre del servicio: dhcp3-server Fichero de configuración: /etc/dhcp3/dhcpd.conf Concesiones de direcciones: /var/lib/dhcp3/dhcpd.releases Comandos más utilizados: dhcpd3 dhclient Qué función NO realiza el servicio DHCP? Permite que los clientes obtengan la dirección IP de forma automática. Permite realizar reservas de direcciones IP
9 Desarrollo de Aplicaciones Web Tema 10 Permite optimizar las direcciones IP de la red. Permite dar una mayor seguridad. 2.- Compartir archivos e impresoras (Samba). Caso práctico Ana y Juan están cada uno utilizando su ordenador. -Juan, tengo aquí todos los documentos que me pediste pero ocupan mucho espacio y no tengo USB cómo te los paso? -Muy fácil, vamos a compartir una carpeta por red y me lo pasas. -Así de fácil cómo se hace? Samba es el método más utilizado para permitir la integración entre sistemas, ya que permite que los equipos Windows y GNU/Linux puedan compartir carpetas e impresoras entre sí. Samba es una colección de programas que hacen que Linux sea capaz de utilizar el protocolo SMB (Server Message Block) que es la base para compartir ficheros e impresoras en una red Windows. Los posibles clientes para un servidor SMB incluyen Windows y otros sistemas GNU/Linux. Samba esta compuesto por tres paquetes: samba-common (archivos comunes), samba-client (cliente) y samba (que es el servidor). Por lo tanto, los paquetes que necesitas instalar dependen del uso que quieras darle al equipo. Para instalar el cliente y servidor de samba es necesario ejecutar: # apt-get install samba4 smbclient A continuación, inicia el servicio ejecutando: # service samba4 start Para que Samba funcione correctamente primero debes dar de alta los usuarios del sistema y luego configurar los recursos a compartir Gestión de usuarios. Samba realiza una gestión de usuarios independiente a la del sistema operativo. Por esta razón necesitas dar de alta a los usuarios que vayan a utilizar Samba. El comando smbpasswd se utiliza para administrar los usuarios de Samba, y sus contraseñas. La sintaxis del comando es: # smbpasswd -opcion usuario Donde -opcion es la opción a realizar y usuario es el nombre del usuario con el que quieres trabajar. Así por ejemplo, para añadir el usuario juan debes ejecutar el comando smbpasswd -a juan e introducir su contraseña: # smbpasswd -a juan New SMB password: Retype new SMB password: Added user juan. Y para eliminarlo hay que ejecutar: # smbpasswd -x juan Deleted user juan
10 Administración de la red (Linux III) DAW Para poder añadir un usuario en samba éste tiene que existir en el sistema. Para dar de alta un usuario en el sistema utiliza el comando adduser. Para ver todos los usuarios de Samba en las primeras versiones bastaba con ver el contenido del fichero /etc/samba/smbpasswd pero en las actuales versiones los usuarios y contraseñas se guardan en la base de datos de Samba. Para ver los usuarios de Samba debes ejecutar el siguiente comando: # pdbedit -w -L juan:500:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:3527da04c3d767e36c618ed59764bd43:[u 4B661D14: encarni:503:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:0d7f1f2bdeac6e574d6e18ca85fb58a7:[u ]:LCT-4C6569B6: ]:LCT Compartir carpetas. Para compartir una carpeta hay que modificar el fichero de configuración de samba /etc/samba/smb.conf. En la siguiente tabla puedes ver las opciones más importantes para compartir carpetas. El ejemplo más sencillo que se puede realizar es compartir una carpeta de forma pública para todos los usuarios. Para ello añada: [publico] path = /publico public = yes read only = yes Opciones más utilizadas de smb.conf. Opción. Comentario. [ recurso ] Nombre del recurso compartido. browseable Indica si se puede explorar dentro del recurso. Los posibles valores son no y yes. comment Proporciona información adicional sobre el recurso (no afecta a su forma de operar). create mode Especifica los permisos por defecto que tienen los ficheros creados. directory mode Especifica los permisos por defecto que tienen los directorios creados. force user Especifica el usuario propietario que tienen los ficheros y carpetas que se crean. force group Especifica el grupo propietario que tienen los ficheros y carpetas que se crean. guest ok Indica si se permite el acceso a usuarios anónimos. Los posibles valores son no y yes. path Carpeta a compartir. public Indica si el directorio permite el acceso público. Los posibles valores son no y yes. read only Indica que el directorio es sólo lectura. Los posibles valores son no y yes. valid users Indica los usuarios que pueden acceder a la carpeta. Para añadir un grupo entonces hay que poner el nombre del grupo precedido de writable Indica que se puede modificar el contenido de la carpeta. write list Indica los usuarios que pueden modificar el contenido. O si lo prefieres, puedes establecer que el recurso sea accesible solamente por unos determinados usuarios: [miscosas] path = /datos/ comment = Datos y aplicaciones valid users =
11 Desarrollo de Aplicaciones Web Tema 10 Lógicamente los usuarios se han tenido que crear previamente y el grupo master debe existir en el fichero /etc/group. master:x:502:juan,encarni A continuación se amplía el ejemplo pero estableciendo el permiso de escritura para el usuario juan y el permiso de lectura para el usuario encarni y el grupo master. Además, cuando un usuario crea un fichero o carpeta éste se crea en el sistema con un propietario (juan:juan) y unos determinados permisos (770). [miscosas] path = /datos/ comment = Datos y aplicaciones valid users = juan, writeable = yes write list = juan read list = force user = juan force group = juan create mode = 770 directory mode = 770 Cuando se comparte una carpeta es necesario establecer los permisos en el fichero de configuración y en el sistema de ficheros. Para ello puedes utilizar los comandos: chmod, chown y chgrp. Finalmente, para que se apliquen los cambios reinicia el servicio: # service samba4 restart Compartir impresoras. Existen dos formas de compartir las impresoras que se encuentran conectadas al equipo para que las puedan utilizar todos los clientes de la red: a través de la herramienta gráfica system-config-printer o utilizando samba. Existen impresoras con tarjeta de red que permiten a los clientes imprimir directamente sin necesidad de ningún servidor. system-config-printer La herramienta Impresoras, que se encuentra dentro del menú Sistema > Administración, permite compartir las impresoras del sistema de una forma gráfica. Al iniciar la herramienta, el sistema muestra las impresoras activas. Las tareas más frecuentes que se pueden realizan son: Compartir las impresoras a través de Internet. Para que otros equipos puedan utilizar las impresoras del servidor ve al menú Servidor y selecciona Configuración. En la ventana que se muestra activa la casilla Publicar impresoras compartidas y Permitir la impresión desde Internet. Compartir una impresora. Selecciona la impresora que deseas compartir, pulsa el botón derecho, seleccione Propiedades y en la pestaña Control de acceso indica los usuarios que pueden utilizar la impresora. Administrar los grupos de impresión. Permite que varias impresoras formen un mismo grupo, de forma que cuando se envía un trabajo se procese en la impresora que se encuentre disponible
12 Administración de la red (Linux III) DAW Para gestionar los trabajos de la impresora selecciona la impresora, pulsa el botón derecho y selecciona Ver la cola de impresión. En la ventana que aparece permite ver y administrar todos los trabajos de la impresora. Para compartir una impresora hay que añadir en el fichero de configuración de Samba /etc/samba/smb.conf un nuevo recurso siguiendo la siguiente estructura: [printers] comment = All printers path = /var/spool/samba browseable = no printable = yes public = no writable = no create mode = 0700 El acceso a las impresoras GNU/Linux desde Windows funciona de la misma forma que los directorios. El nombre compartido es el nombre de la impresora Linux en el fichero printtab. Por ejemplo, para acceder a la impresora HP_laserjet, los usuarios de Windows deberá acceder a \\smbserv\hp_laserjet. A modo de resumen, en la tabla se muestran los parámetros utilizados en la sección [printers]. Opciones más utilizadas de smb.conf (sección printers). Parámetro. Comentario. comment Proporciona información sobre la sección (no afecta a la operación). path Especifica la ruta de acceso a la cola de impresión o spool (que por defecto es /var/spool/samba). Es posible crear un directorio de spool para Samba y hacer que apunte a él. browseable Como con los directorios raíz, si indica NO se asegura de que sólo pueden ver las impresoras los usuarios autorizados. printable Se debe poner YES, si no se hace así no funcionarán las impresoras. public Si se pone YES, cualquier usuario podrá imprimir (en algunas redes se pone NO para evitar la impresión excesiva). writable Las impresoras no son escribibles, por lo tanto escriba NO Asistentes de configuración. Dado el gran uso que se realiza de Samba para compartir información entre sistemas Windows y GNU/Linux, existen varias interfaces que facilitan el proceso de configuración del sistema. Las interfaces más importantes son: Swat. Es una interfaz web específica para administrar Samba. Para realizar la instalación debes ejecutar: # apt-get install swat Finalmente, inicia el navegador y escribe la dirección y aparece la interfaz de administración de swat. Webmin. Como siempre webmin permite configurar cualquier servicio del servidor. Para acceder al módulo de configuración pulse en Servers. Samba Windows File Sharing. system-config-samba. Por último, también dispones de la herramienta de xwindows para administrar samba. Para instalarla debes ejecutar:
13 Desarrollo de Aplicaciones Web Tema 10 # apt-get install system-config-samba Además, es necesario instalar las siguientes dependencias: # apt-get install gksu python-gtk2 python-glade Cliente. Además de actuar como servidor de ficheros, el equipo puede utilizarse como cliente para acceder a los recursos compartidos que hay en otros servidores. Existen varias formas para acceder desde GNU/Linux a carpetas e impresoras compartidas. La forma más sencilla es mediante dos programas cliente que vienen en la instalación de Samba: smbclienty smbprint. Aunque esta solución funciona, está algo limitada, particularmente en el acceso a ficheros. Smbclient proporciona una forma similar a un servidor FTP para acceder a un recurso remoto compartido. No permite el uso de comandos normales de Unix como cp y mv para manipular los ficheros y, por lo tanto, no permite acceder a los recursos compartidos de otras aplicaciones (a diferencia de los sistemas de ficheros remotos montados con NFS, que aparecen para las aplicaciones GNU/Linux como sistemas de ficheros locales). Este problema se puede evitar montando el sistema de ficheros compartidos samba en GNU/Linux, como se hace con sistemas de ficheros NFS y locales. La forma más sencilla de acceder a un recurso compartido de Samba es montarlo en una carpeta y así poder acceder al contenido del recurso de la misma forma que lo haces con cualquier otra carpeta del sistema. Para montar el recurso primero hay que crear la carpeta donde se va a montar el recurso y luego ejecuta el comando mount. $ mkdir /prueba $ mount -t cifs o user=usuario,pass=contrasena // /recurso /prueba Donde: -t cifs. Indica el tipo de ficheros que se va a utilizar que en este caso es cifs. -o user=usuario,pass=contrasena. Indica el nombre del usuario y la contraseña con la quiere acceder. // /recurso. Indica la dirección IP y el nombre del recurso al que quieres acceder. /prueba. Es el directorio donde se va a montar el recurso compartido. Para ver si se ha montado correctamente el recurso puedes ejecutar el comando mount o entrar en la carpeta y ver su contenido. Para que el recurso se monte automáticamente al iniciar el equipo hay que añadir al fichero /etc/fstab la siguiente línea: // /recurso /prueba cifs rw,username=login,password=pass 0 0 Donde username y password especifican el nombre y la contraseña del usuario con el que acceder al servidor. Datos más importantes del servicio Samba. Nombre del servicio: samba4 Fichero de configuración: /etc/samba/smb.conf Comandos más utilizados: smbpasswd smbclient pdbedit mount Puertos utilizados: 137/UDP, 138/UDP, 139/TCP y 445/TCP
14 Administración de la red (Linux III) DAW
15 Desarrollo de Aplicaciones Web Tema NFS. Caso práctico Ana visita a Juan porque tiene un problema -Juan, tengo que hacer que dos servidores compartan información entre sí y he pensado en utilizar SAMBA tal y como me enseñaste hace poco. Es la mejor opción? -Samba esta pensado para compartir carpetas e impresoras entre equipos Windows. Si ambos equipos son GNU/Linux lo mejor es que utilices NFS que es un servicio mucho más seguro. Mira te enseño a utilizarlo, es muy fácil! NFS (Network File System) es un servicio que permite que los equipos GNU/Linux puedan compartir carpetas entre sí. El servicio NFS se basa en el modelo cliente/servidor de forma que un servidor comparte una carpeta para que los clientes puedan utilizarla. De esta forma, una vez que un cliente monta una carpeta compartida puede utilizarla normalmente; como si se tratara de una carpeta del sistema de ficheros local. Para instalar el servicio nfs debes ejecutar: # apt-get install nfs-kernel-server nfs-common portmap Antes de iniciar la configuración hay que iniciar el servicio ejecutando: # service nfs-kernel-service start Compartir una carpeta. Para indicar los directorios que se desean compartir hay que modificar el fichero /etc/exports de la siguiente forma: <directorio> <IP>(permisos) <IP>(permisos)... Los permisos que se pueden establecer son: rw (lectura y escritura) y ro (lectura). Por ejemplo, para compartir la carpeta /datos para que el equipo pueda acceder en modo lectura y escritura, y el equipo tan sólo pueda acceder en modo lectura se escribe: /datos (rw) (ro) La carpeta se comparte solamente a la IP establecida en el fichero /etc/exports por el usuario nfsnobody. De forma que la carpeta que estas compartiendo tiene que tener los permisos para el usuario nfsnobody. Para establecer los permisos ejecuta: # chmod 660 /datos -R # chown nfsnobody /datos -R # chgrp nfsnobody /datos -R Como el usuario nfsnobody tiene un UID y GID diferente en cada equipo es recomendable asignarle el mismo identificador modificando los ficheros /etc/passwd y /etc/groups tanto en los equipos clientes como servidores. Una vez compartida la carpeta, reinicia el servicio ejecutando: # service nfs-kernel-service restart Configuración del cliente. Para acceder al directorio que comparte el servidor hay que montarlo, ya sea manualmente, o automáticamente al iniciar el equipo. Para montar el sistema de ficheros en el cliente hay que ejecutar:
16 Administración de la red (Linux III) DAW # mount :/datos /prueba Donde: :/datos es la carpeta que se ha compartido en el servidor en el fichero /etc/exports. /mnt/trabajo es la carpeta donde se monta la carpeta compartida. Si deseas montar la carpeta automáticamente al iniciar el sistema, hay que modificar el fichero /etc/fstab añadiendo la siguiente línea: :/datos /prueba nfs rw,hard,intr 0 0 Donde: rw. Indica que se monta el directorio en modo lectura/escritura. Para montarlo sólo en modo lectura escriba ro. hard. Indica que si al copiar un fichero en la carpeta compartida se pierde la conexión con el servidor se vuelva a iniciar la copia del fichero cuando el servidor se encuentre activo. intr. Evita que las aplicaciones se queden "colgadas" al intentar escribir en la carpeta si no se encuentra activa. Datos más importantes del servicio NFS. Nombre del servicio: nfs Carpetas compartidas: /etc/exports Comandos más utilizados: mount Puertos: 2049/TCP y 2049/UDP Qué servicios permite compartir datos con otro equipo Linux? Telnet. Samba. NFS
17 Desarrollo de Aplicaciones Web Tema Acceso remoto al sistema. Caso práctico -Pufff, Hemos puesto el servidor en la planta de arriba y cada vez que tengo que instalar algo tengo que subir a realizar la tarea. Estoy cansada de tantas escaleras! - Por qué no lo haces de forma remota? - Cómo se hace eso? -Muy fácil, nos conectamos por ssh o por vnc al equipo y lo utilizamos directamente desde cualquier ordenador. Cuando terminemos el café, vamos y te enseño. Los servicios más utilizados para acceder de forma remota a un sistema GNU/Linux son: Telnet. Permite acceder al sistema de forma remota de una manera no segura. Open SSH. Permite acceder al sistema por terminal, pero de forma segura ya que se cifran las comunicaciones. VNC. Mientras que los servicios telnet y SSH permiten conectarse al servidor por medio de un terminal, el servidor VNC permite utilizar el servidor utilizando el escritorio instalado en el sistema:gnome o KDE SSH. SSH es un protocolo que permite conectarse de forma segura a un servidor para poder administrarlo. En realidad, es más que eso, ya que se ofrecen más servicios como la transmisión de ficheros, el protocolo FTP seguro e, incluso, se puede usar como transporte de otros servicios. El protocolo SSH garantiza que la conexión se realiza desde los equipos deseados (para lo que usa certificados) y establece una comunicación cifrada entre el cliente y el servidor, mediante un algoritmo de cifrado robusto (normalmente con 128 bits) que se utilizará para todos los intercambios de datos. A continuación vas a ver cómo instalar y configurar el servicio OpenSSH por ser el servidor SSH más utilizado. Al ser SSH el mecanismo más frecuente para acceder a un servidor, OpenSSH se instala por defecto al realizar la instalación del sistema. No obstante puedes realizar la instalación de OpenSSH ejecutando: # apt-get install ssh E iniciar el servicio ejecutando: # service ssh start Finalmente, si deseas que el servicio se ejecute automáticamente al iniciar el sistema ejecutarás: # chkconfig ssh on Para evitar los ataques de fuerza bruta, una de las mejores soluciones es utilizar fail2ban. Si utilizas fail2ban cuando se realizan 5 intentos fallidos de autentificación en el sistema, fail2ban se comunica con el cortafuegos iptables y bloquea tu dirección IP Configuración. El servidor openssh utiliza el fichero de configuración /etc/ssh/sshd_config y normalmente no es necesario modificarlo. Los parámetros más importantes son:
18 Administración de la red (Linux III) DAW Port y ListenAdress. Por defecto el servicio ssh trabaja en el puerto 22 y responde por todas las interfaces del sistema. Los siguientes parámetros permiten cambiar el puerto y la dirección, en las que atenderá peticiones: Port 22 ListenAddress PermitRootLogin. Establece si se permite o no el acceso del usuario root al servidor. PermitRootLogin no AllowUsers. Permite restringir el acceso a los usuarios del sistema. Al utilizar el parámetro AllowUsers indica los usuarios que puedan acceder al sistema. AllowUsers cesar sonia También es posible indicar el equipo anfitrión desde el que pueden conectarse. En el siguiente ejemplo sólo los usuarios cesar y sonia pueden conectarse al servidor desde el equipo AllowUsers Mensajes de entrada y conexión: PrintMotd yes Banner /etc/issue.net Configuración de seguridad y control de acceso: IgnoreUserKnownHosts no GatewayPorts no AllowTcpForwarding yes Uso de subsistemas para otras aplicaciones, como por ejemplo, FTP. Subsystem sftp /usr/lib/openssh/sftp-server Una vez configurado el servidor, para que se apliquen los cambios, debes ejecutar: # /etc/init.d/ssh restart Cliente ssh. Cuando se trabaja con servidores lo normal es administrarlos de forma remota a través de SSH o Webmin. Si utilizas un equipo Linux y quieres conectarte al servidor tan sólo hay que ejecutar: $ ssh <equipo> Donde equipo puede indicar el nombre del equipo o la dirección IP del mismo. Si utilizas Windows y quieres conectarte al servidor en GNU/Linux lo mejor es utilizar la aplicación PuTTY. El comando scp permite copiar ficheros en equipos remotos a través de ssh scp /etc/passwd :/root. Es posible configurar el servidor para permitir la utilización de los comandos ssh y scp sin necesidad de escribir la contraseña. Para más información visita la siguiente página. Datos más importantes del servicio SSH. Nombre del servicio: sshd Fichero de configuración: /etc/ssh/sshd_config Host a los que se les permite el acceso: /etc/host.allow Equipos autorizados para acceder por SSH sin contraseña: $HOME/.ssh/authorized_keys Comandos más utilizados: ssh, scp y sftp Puerto utilizado: 22/TCP
19 Desarrollo de Aplicaciones Web Tema VNC. VNC es un programa con licencia GPL que utiliza el modelo cliente/servidor y permite acceder a un equipo remoto utilizando su entorno gráfico. Para realizar la instalación del servidor vnc debes realizar los siguientes pasos: Instala el servidor de vnc ejecutando: # apt-get install tightvncserver Indica la contraseña del servidor vnc ejecutando el comando: # vncpasswd Ejecuta el siguiente comando para crear automáticamente los ficheros de configuración e iniciar el servicio: # vncserver Datos más importantes del servicio VNC. Nombre del servicio: vncserver Fichero de configuración: /etc/sysconfig/vncservers Comandos más importantes: vncpasswd vncserver Puertos: 6000/tcp, 6001/tcp, 6002/tcp y 6003/tcp Cliente. Para acceder al servidor puede utilizar cualquier cliente VNC. Por ejemplo, en sistemas GNU/Linux puede utilizar Vinagre y en sistemas Windows puede utilizar tightvnc. Vinagre (GNU/Linux). Si quieres acceder desde un equipo GNU/Linux a un servidor VNC, la mejor opción es utilizar el cliente vinagre. Para utilizar vinagre primero debes instalarlo ejecutando. # apt-get install vinagre Ve al menú Aplicaciones, Internet y ejecuta la aplicación Remote Desktop Viewer. Pulsa el botón Connect, indica la dirección del servidor VNC (por ejemplo, :5901) y pulsa Connect para acceder al servidor VNC. tightvnc (Windows). tightvnc es un cliente/servidor VNC que se encuentra licenciado bajo GPL. Para acceder desde Windows al servidor VNC debe realizar los siguientes pasos: Descargarte tightvnc. Instala en el equipo el visor tightvnc. Ejecuta tightvnc Viewer que puedes encontrar dentro del menú de aplicaciones tightvnc. En tihgtvnc Server indica la dirección IP del servidor y el puerto (por ejemplo, :5901). Finalmente, pulsa el botón Connect, introduce la contraseña del servidor VNC establecida durante el proceso de instalación y ya tienes acceso al escritorio del servidor
20 Administración de la red (Linux III) DAW Indica la opción incorrecta. El servicio SSH permite el acceso remoto a través de un terminal. El servicio VNC permite conectarme a un equipo de forma gráfica. El servicio Telnet es seguro. El programa tightvnc permite conectarme a un equipo Windows
21 Desarrollo de Aplicaciones Web Tema Servidor Web. Caso práctico -Para mejorar la imagen de la empresa vamos a tener nuestro propio servidor web. Hasta ahora estábamos utilizando un servidor externo pero como vamos a incorporar muchos nuevos servicios, vamos a utilizar el nuestro. Juan necesito que hagas tú esa tarea. -De acuerdo, pero he visto que hay muchos servidores web Cuál utilizo? -Aunque hay muchos servidores web, con diferencia, el más utilizado es Apache. Así que lo mejor es instalar Apache en el servidor. Además, es muy sencillo y permite realizar un montón de tareas con él. Para instalar el servidor Apache fácilmente desde repositorios ejecuta el comando: # apt-get install apache2 El servicio se inicia automáticamente: # chkconfig apache2 on Para iniciar ahora el servicio: # service apache2 start Una vez instalado, apache publica automáticamente el contenido del directorio /var/www. De esta forma, para publicar una página web debes crearla en dicho directorio. Para acceder a la web principal del servidor escribe en la barra de direcciones o Instalar módulo php. PHP es un lenguaje de programación interpretado por el servidor de páginas web de forma que éstas se pueden generar de forma dinámica. PHP no sólo se utiliza para este propósito, sino que además se puede utilizar desde una interfaz de línea de comandos o para la creación de aplicaciones con interfaces gráficas. En la dirección web oficial del proyecto puedes encontrar una amplia documentación sobre el lenguaje: manuales, sintaxis utilizada, interfaz para la programación de las aplicaciones, etcétera. Para instalar PHP automáticamente ejecuta: # apt-get install php5 Para comprobar que PHP se ha instalado con éxito puedes crear un fichero php y ubicarlo en el directorio raíz del servidor web. Por ejemplo para mostrar toda la información útil disponible y detalles sobre la instalación actual de PHP, edita el fichero /var/www/info.php. # nano /var/www/info.php El contenido del fichero incluye una sentencia para ejecutar la función phpinfo() que permite obtener la información sobre el módulo php. <?php phpinfo();?> Así, al ejecutar el fichero en una petición HTTP el servidor lanza la sentencia y muestra el contenido solicitado, de forma dinámica. Antes de probar a ejecutar este fichero reinicia el servidor Apache: # service apache2 restart
22 Administración de la red (Linux III) DAW Ahora sí, inicia un navegador web y escribe en la barra de direcciones Como puedes ver en la siguiente figura, PHP se encuentra correctamente instalado. Si observas con detenimiento la información mostrada puedes ver, por ejemplo, que trabaja a través de Apache, los módulos actualmente habilitados, etcétera Configuración. La configuración de apache se almacena en el directorio de configuración /etc/apache2. A continuación se van a ver las opciones de configuración más utilizadas para cada uno de los ficheros: /etc/apache2/ports.conf. Permite establecer los puertos de escucha para las comunicaciones http normales (puerto 80) y las comunicaciones seguras https (puerto 443). Listen *:80 Listen *:443 /etc/apache2/apache2.conf. Una de las opciones más importantes es que se puede establecer el usuario y grupo al que pertenecen los procesos que ejecuta el servidor: User www-data Group www-data Apache almacena en la carpeta /etc/apache2/sites-available la configuración de cada uno de los sitios web de apache. Por defecto se encuentran los sitios default y default-ssl. Cada sitio tiene la siguiente estructura: <VirtualHost *:80> ServerAdmin # Servername # comentado en default DocumentRoot /var/www DirectoryIndex index.html default.html </VirtualHost> Donde: ServerAdmin es el correo electrónico del administrador del sitio web. Servername es el nombre FQDN del sitio web. Para el dominio default no se indica ningún nombre, pero para atender peticiones específicas de dominios (por ejemplo, sí se debe establecer. DocumentRoot. Indica la ubicación donde se encuentra las páginas web del sitio. DirectoryIndex. Indica el nombre de los ficheros que envía por defecto el servidor web. Nuevo sitio Por defecto el servidor web publica el directorio /var/www/ para todos los dominios pero es posible personalizar de forma independiente cada dominio. Por ejemplo, para añadir el dominio que se aloja en la carpeta /portales/miempresa hay que crear el fichero /etc/apache2/sites-available/miempresa.com con el siguiente contenido: <virtualhost *:80> ServerName DocumentRoot /portales/miempresa </virtualhost> Activar el sitio # a2ensite miempresa.com Y reiniciar el servidor web # service apache2 restart Lógicamente para que el servidor web atienda un determinado dominio la entrada DNS (por ejemplo, debe apuntar al servidor web
23 Desarrollo de Aplicaciones Web Tema 10 Sitio seguro (https). Con el auge de los negocios en Internet se ha popularizado el uso de comunicaciones cifradas entre los clientes y el servidor Web, siendo la tecnología de encriptación más utilizada el Security Socket Layer (SSL). Para poder utilizar una página segura bajo https hay que realizar los siguientes pasos: Activar el módulo ssl:a1 Activar el sitio default-ssl aunque si quieres puedes crear un nuevo sitio web:a2 Reiniciar el servidor web:a3 Una vez finalizado el proceso, accede a un navegador web y escribe https://ip_servidor. Puedes generar tu propio certificado de seguridad utilizando el comando open-ssl. Para aprender a realizar más operaciones sobre Apache es recomendable que consultes la web ww.adminso.es Por último, para iniciar y parar el servidor web puedes utilizar el comando service de forma que si quieres iniciar el servicio ejecuta: # service apache2 start Además, puedes parar el servicio (stop), reiniciarlo (restart) o volver a cargar la configuración (reload). Datos más importantes del servidor Apache. Nombre del servicio: apache2 (Ubuntu) Fichero de configuración: /etc/httpd/conf/httpd.conf Directorio web: /var/www (Ubuntu) Comandos más utilizados: htpasswd Puertos: 80/tcp y 443/tcp

References: Resolución 
 Resolución 
 resolución 
 resolución 
 resolución 
 Resolución 
 resolución 
 Resolución