Servidor Debian Squeeze primera parte
Antes de iniciar
La configuración del servidor consiste, básicamente, en la instalación de paquetes de software y de su configuración específica para nuestro sistema.
Cuando un paquete de software es instalado, se genera una configuración básica que ofrece unas funcionalidades relativamente reducidas o limitadas. Algunas de estas funcionalidades quedan inactivas después de la instalación, por motivos de seguridad. Por tanto, para obtener el máximo potencial de un software, es necesario personalizar y afinar su configuración.
Sin embargo, debido a que un pequeño error de configuración puede vulnerar el sistema y hacerlo inútil, siempre deben tomarse en cuenta algunas precauciones antes de alterar cualquier configuración.
Copias de respaldo
El siguiente principio es fundamental, seguirlo le ahorrará dolores de cabeza: nunca altere un archivo sin hacerle antes una copia de seguridad. Por ejemplo, si es necesario alterar el archivo de configuración /etc/network/interfaces, primero deberá hacerse una copia de respaldo del original:
root@server:~# cp /etc/network/interfaces /etc/network/interfaces.ori
En seguida, sí puede editar el archivo:
root@server:~# nano -w /etc/network/interfaces
Pueden contrastarse las diferencias entre el archivo original y el modificado con el comando diff:
root@server:~# diff /etc/network/interfaces.ori /etc/network/interfaces
9,10c9,20
< allow-hotplug eth0
< iface eth0 inet dhcp
---
> #allow-hotplug eth0
> #iface eth0 inet dhcp
>
> # Endereco IP fixo
> auto eth0
> iface eth0 inet static
> address 192.168.1.100
> netmask 255.255.255.0
> network 192.168.1.0
> broadcast 192.168.1.255
> gateway 192.168.1.1
En caso de que pretenda restaurar el archivo original, se puede borrar el archivo modificado y reemplazarlo por el original, así:
root@server:~# rm /etc/network/interfaces
root@server:~# cp /etc/network/interfaces.ori /etc/network/interfaces
¿Qué editor usar?
Los archivos de configuración son, por regla general, archivos de texto. Por esto, pueden ser modificados con un editor de texto.
Los puristas defienden el vi o vim como editor de elección (Debian 6.0 instala de forma predeterminada una versión más liviana de vim, llamada vim.tiny). Una alternativa posible y, eventualmente más amigable, es nano.
Para editar un archivo con vi o vim.tiny basta ejecutar el programa ejecutado con el archivo como argumento. Por ejemplo, para editar el archivo /etc/network/interfaces:
con vi:
root@server:~# vi /etc/network/interfaces
con vim.tiny:
root@server:~# vim.tiny /etc/network/interfaces
Para usar nano se debe emplear la opción -w para evitar la inserción de saltos de línea, cosa que podría ocasionar problemas en un archivo de configuración:
root@server:~# nano -w /etc/network/interfaces
Red local
La red local es un elemento esencial para un servidor. Su configuración es muy fácil.
El diagrama de una red casera
Este manual tiene en mente la integración de un servidor en un red casera típica y cerrada. El acceso a Internet se hace a través de un router/modem ADSL, con un firewall.
El gateway
Un gateway es un dispositivo que posibilita el acceso a Internet a partir de una red interna o intranet. Este dispositivo también filtra o impide los accesos externos a la red interna, formando así una barrera de seguridad (firewall) entre la red interna y la internet.
El router/firewall requiere una dirección IP estática, para que pueda ser fácilmente accesible desde los restantes dispositivos de la red.
En este ejemplo, el nombre router/firewall será gateway.home.lan y el enderezo IP será 192.168.1.1.
El servidor
El servidor Debian, al estar integrado a la red interna, está protegido de accesos indiscriminados e indeseados que provengan de la internet.
El servidor, también requiere una dirección IP estática, de modo que pueda ser fácilmente accesible para los dispositivos restantes de la red. Entre otras tareas, el servidor podrá atribuir de forma automática las direcciones IP a los clientes, así como indicar el acceso a Internet a través del gateway.
En este ejemplo, el nombre del servidor es server.home.lan y la dirección IP es 192.168.1.100.
Los clientes
Los clientes serán todos los dispositivos ligados a la red interna. Su configuración será gestionada por los varios servicios que ofrezca el servidor. El acceso al exterior es hecho exclusivamente a través del gateway, lo que resulta en un ambiente seguro y protegido de eventuales accesos externos mal intencionados.
Dirección IP estática
Objetivo
La instalación de Debian, configura automáticamente la red para obtener una dirección dinámica vía DHCP. Sin embargo, para que el sistema esté configurado como servidor, éste debe tener una dirección IP estática.
Nuestro objetivo es configurar la interfaz de red eth0 con una dirección IP estática 192.168.1.100. También es necesario indicar la dirección del dispositivo de acceso a Internet, el gateway (192.168.1.1). En una configuración casera, este será la dirección estática del router ADSL.
Configuración
La configuración de las interfaces de red está guardada en el archivo /etc/network/interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# allow-hotplug eth0
# iface eth0 inet dhcp
# Static IP address
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
También es necesario indicar la dirección del servidor DNS. En esta configuración, el servidor DNS funciona en el router/modem ADSL, por lo que el parámetro para nameserver debe tener el valor 192.168.1.1, en el archivo /etc/resolv.conf:
domain localdomain
search localdomain
nameserver 192.168.1.1
Ahora debe reiniciarse la interfaz de red para activar la nueva configuración:
root@server:~# ifdown eth0
root@server:~# ifup eth0
Verificación
El comando ifconfig suministra información detallada sobre la configuración de las interfaces de red. La configuración de la interfaz eth0 debe exhibir, los parámetros previamente definidos:
root@server:~# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:84:4c:b2
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe84:4cb2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5657 (5.5 KiB) TX bytes:9091 (8.8 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
También, debe ser posible contactar a servidores en la Internet:
root@server:~# ping -c3 www.debian.org
PING www.debian.org (206.12.19.7) 56(84) bytes of data.
64 bytes from bellini.debian.org (206.12.19.7): icmp_seq=1 ttl=43 time=188 ms
64 bytes from bellini.debian.org (206.12.19.7): icmp_seq=2 ttl=43 time=190 ms
64 bytes from bellini.debian.org (206.12.19.7): icmp_seq=3 ttl=43 time=185 ms
--- www.debian.org ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 185.808/188.217/190.108/1.793 ms
Nombre del sistema
Objectivo
Después de la instalación del sistema, su nombre puede ser alterado.
Configuración
El nombre del sistema, o hostname, está guardado en el archivo /etc/hostname. Este archivo debe contar sólo con el nombre del sistema y no con el nombre completo del dominio:
server
El nombre debe ser atribuido al sistema a partir del archivo recién creado:
root@server:~# hostname -F /etc/hostname
Finalmente, el nombre del servidor debe ser asociado a un nombre completo de dominio y a una dirección IP, en el archivo /etc/hosts:
127.0.0.1 localhost
192.168.1.100 server.home.lan server
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Verificación
root@server:~# hostname --short
server
root@server:~# hostname --domain
home.lan
root@server:~# hostname --fqdn
server.home.lan
root@server:~# hostname --ip-address
192.168.1.100
*******************************************************************************************************************************
Acceso Remoto
En principio, no debe accederse físicamente a un servidor a no ser por razones excepcionales (como la actualización o la reparación de hardware, por ejemplo). La mejor manera de gestionar un servidor es remotamente. Sin embargo, este acceso deber ser hecho de una manera segura, para garantizar que la comunicación no sea interceptada por terceros.
El protocolo ssh
La regla general indica que no se debe acceder físicamente a un servidor, a no ser por razones excepcionales. La mejor manera de gestionar un servidor es con un acceso remoto. Pero, el acceso remoto debe ser hecho de forma segura, para garantizar que la comunicación no sea interceptada por terceros.
El protocolo SSH
Es la solución para garantizar conexiones remotas seguras. ssh es un protocolo de comunicaciones que encripta los datos intercambiados, haciendo virtualmente imposible la violación de la privacidad de la comunicación. El acrónimo ssh viene del inglés: Secure SHell.
El protocolo ssh es muy versátil, cuenta con un software cliente que posibilita el acceso a la línea de comandos, la transferencia de archivos y la creación de túneles seguros con soportes de comunicaciones para otros protocolos.
Clientes SSH
Los clientes ssh se dividen en dos grupos:
Terminal SSH
Es un emulador de terminal que permite acceder de forma remota a la línea de comandos, utilizando el protocolo SSH.
Cliente SFTP
Se trata de un cliente para transferencia de archivos que utiliza el Protocolo de Transferencia Segura de Archivos. Su sigla indica en inglés (Secure File Transfer Protocol (SFTP))
Clientes Linux
openssh-client
este software ofrece utilidades para acceso remoto (cliente ssh), copia de seguridad de archivos (scp) y transferencia segura de archivos (sftp), entre otras.
FileZilla
Cliente SFTP.
Clientes Windows
PuTTY
Terminal SSH.
WinSCP
Cliente SFTP.
FileZilla
Cliente SFTP.
Servidor ssh
Instalación
root@server:~# aptitude install openssh-server openssh-client
Configuración
Todas las configuraciones del servidor ssh se encuentran en el archivo /etc/ssh/sshd_config.
Para configurar el servidor debe indicarse las direcciones donde el servicio debe responder. En este caso serán conexiones ligadas a la dirección 192.168.1.100, a través del puerto 22 y utilizando la versión 2 del protocolo ssh:
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
ListenAddress 192.168.1.100
Protocol 2
#[...]
Por seguridad, se debe desactivar el login como root. on esta configuración, para adquirir los privilegios del root, se debe hacer un login usuario normal y, después, adquirir los privilegios de root. De este modo, prevenimos que el password del root sea objeto de un ataque.
#[...]
# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
#[...]
También se debe verificar que no sean permitidos los logins con contraseñas vacías:
#[...]
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
#[...]
Reiniciar el servicio:
root@server:~# /etc/init.d/ssh restart
Verificación
Clientes Linux
Debe ser posible establecer una conexión ssh a la dirección 192.168.1.100.
La primera vez que la conexión se efectúe, ésta debe ser confirmada, porque el servidor no está registrado en la lista de los sistemas conocidos por el cliente.
fribeiro@laptop:~$ ssh 192.168.1.100
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
RSA key fingerprint is ee:16:b0:c9:1b:ef:b4:64:e1:86:80:f4:36:9f:08:03.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.100' (RSA) to the list of known hosts.
fribeiro@192.168.1.100's password:
Linux server 2.6.32-5-amd64 #1 SMP Fri Oct 15 00:56:30 UTC 2010 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
fribeiro@server:~$ logout
Connection to 192.168.1.100 closed.
fribeiro@laptop:~$
Las conexiones con el login root no serán aceptadas:
fribeiro@laptop:~$ ssh -l root 192.168.1.100
root@192.168.1.100's password:
Permission denied, please try again.
root@192.168.1.100's password:
Permission denied, please try again.
root@192.168.1.100's password:
Permission denied (publickey,password).
Clientes Windows
El acceso a partir de clientes Windows es posible con un programa emulador del terminal que soporte ssh, como Putty:
Obtener privilegios de root
Como el login como root está desactivado, la manera de obtener privilegios de root en una conexión ssh es a través de un usuario común que escala privilegios con el comando su:
fribeiro@laptop:~$ ssh 192.168.1.100
fribeiro@192.168.1.100's password:
Linux server 2.6.32-5-amd64 #1 SMP Fri Oct 15 00:56:30 UTC 2010 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Oct 27 11:01:21 2010 from laptop.home.lan
fribeiro@server:~$ su - root
Password:
root@server:~#
*******************************************************************************************************************************
Reloj del sistema
En un servidor es fundamental asegurarse de que el reloj del sistema funcione correctamente. No sólo porque varios servicios dependan del reloj, sino también porque el reloj puede ser utilizado para sincronizar y poner en punto a los demás equipos.
Fecha, hora y huso horario
Objetivo
Poner en punto el reloj y la fecha del sistema.
Configuración
Uso horario
Es imperativo configurar adecuadamente el uso horario correspondiente al servidor. La información sobre el huso horario se encuentra en el archivo /etc/timezone y puede ser consultada con el comando cat:
root@server:~# cat /etc/timezone
Europe/Lisbon
Para configurar el huso horario, se utiliza el comando dpkg-reconfigure tzdata y se escoge la zona correcta en el menú interactivo:
root@server:~# dpkg-reconfigure tzdata
Un diálogo permite seleccionar la región geográfica:
En seguida, puede señalarse la región o el país donde el servidor se encuentra físicamente localizado:
Luego, el resultado queda registrado así:
Current default time zone: 'Europe/Lisbon'
Local time is now: Wed Oct 27 11:54:26 WEST 2010.
Universal Time is now: Wed Oct 27 10:54:26 UTC 2010.
Fecha y hora
El comando date muestra la fecha actual del sistema:
root@server:~# date
Wed Oct 27 12:00:57 WEST 2010
El comando date también permite poner en punto la hora del sistema manualmente. Para esto se utiliza la sintaxis reducida "date MMDDhhmm":
root@server:~# date 10271201
Wed Oct 27 12:01:00 WEST 2010
Protocolo NTP
El protocolo NTP (Network Time Protocol) se utiliza para mantener en punto el reloj del sistema, sincronizándolo a partir de una red de servidores NTP a través de Internet.
Objetivo
Utilizar la red de servidores NTP para poner en punto el reloj de sistema.
Instalación
root@server:~# aptitude install ntpdate ntp-doc
Utilización
En primer lugar, se debe verificar que el uso horario del sistema esté definido de forma correcta.
Después se puede poner en punto el reloj del sistema, teniendo como referencia uno de los servidores NTP:
root@server:~# ntpdate -u pool.ntp.org
28 Oct 12:09:17 ntpdate[2493]: adjust time server 194.117.9.136 offset -0.030742 sec
Servidor NTP
Objetivo
El protocolo NTP se usa para mantener en punto el reloj del sistema. Esto es posible gracias a su sincronización con otros servidores NTP vía internet.
Instalación
root@server:~# aptitude install ntp ntp-doc
Configuración
Verificar la configuración del uso horario y de la fecha y hora del sistema.
Verificación
El comando ntpq -p permite verificar cuáles son los servidores NTP a los que estamos conectados. Los *, + e - indican respectivamente conexiones exitosas, sincronizaciones en curso y servidores poco confiables.
Esto puede demorar algunos minutos hasta que aparezca la lista y hasta 30 minutos para que ocurra la primera corrección.
root@server:~# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
+ns4.lerfjhax.co 198.60.22.240 2 u 20 64 1 157.121 -20.776 20.808
-ns1.vibit.eu 195.13.1.153 3 u 19 64 1 80.428 25.345 9.081
*68.68.18.78.cus 192.43.244.18 2 u 18 64 1 144.241 -3.047 3.650
+nagios.rack911. 128.138.188.172 2 u 17 64 1 159.292 -4.013 9.109
El servidor NTP está listo para ser utilizado.
Utilización
Para poner en punto la hora y fecha de un sistema cliente, es suficiente con usar el comando ntpdate (ver Protocolo NTP), indicando la dirección del servidor:
root@laptop:~# ntpdate -u 192.168.1.100
4 Feb 22:38:01 ntpdate[15071]: adjust time server 192.168.1.100 offset -0.027193 sec
Espero que les sea de utilidad...
Segunda Parte: http://www.jennettemccurdyhot.blogspot.com//posts/linux/15669973/Servidor-Debian-Squeeze-2.html
Lo volvi a postear porque me lo borraron porque supuestamente no cumplia el protocolo...
0 comments:
Post a Comment