miércoles, 30 de octubre de 2013

Instalación de un Servidor FTP

Instalación
Vamos a panel superior -> Aplicaciones -> Accesorio -> Terminal y entramos como root luego procedemos a instalar los siguientes paquetes.

 # aptitude install proftpd-basic proftpd-doc

Durante la instalación, debe seleccionarse el modo de funcionamiento "standalone"

Configuración

Toda la configuración de ProFTPD queda almacenada en el archivo /etc/proftpd/proftpd.conf.

La instalación está predeterminada para activar el soporte IPV6 de ProFTPD. Como nuestro servidor apenas soporta IPV4, la opción IPV6 debe desactivarse, con el fin de evitar mensajes de error durante el arranque del servicio.

 #[...]
 # Set off to disable IPv6 support which is annoying on IPv4 only boxes.
 UseIPv6                         off
 #[...]

Verificar que el servidor esté configurado como standalone:

 #
 ServerName                      "Debian"
 ServerType                      standalone
 DeferWelcome                    off
 #

Finalmente, reiniciar el servidor ftp:

 # /etc/init.d/proftpd restart

Opciones de seguridad: restricción de accesos

De forma predeterminada, el servidor ProFTPD permite que el usuario navegue por todo el sistema de archivos al que normalmente tiene acceso. Sin embargo ProFTPD permite restringir el acceso a tan sólo una sección de las ramas del árbol de directorios. De esta forma, el cliente queda confinado a estas ramas, y por ende, no puede acceder a ningún recurso por fuera de este ámbito, lo que constituye una opción muy segura.

En el archivo de configuración de ProFTPD, el parámetro DefaultRoot debe indicar el directorio que permitirá el acceso del cliente vía ftp.
Acceso restringido al home del usuario

Para esto, basta con indicar ~ como DefaultRoot en el fichero /etc/proftpd/proftpd.conf:

 #

 # Use this to jail all users in their homes
 DefaultRoot                     ~

 #

Acceso restringido a un directorio específico

En este caso, se restringe el acceso a un solo directorio específico dentro del directorio home. Para esto, debe crearse primero el respectivo directorio, y después modificar la configuración del servidor en el archivo/etc/proftpd/proftpd.conf:

 #
 DefaultRoot                     ~/ftp
 #

En seguida, cada usuario que pretenda acceder vía ftp, debe crear un directorio llamado ftp, en su home:

 $ mkdir ~/ftp

Por último, debe reiniciar el servicio ftp para activar las alteraciones:

 # /etc/init.d/proftpd restart

Para utilizar se puede acceder desde el navegador colocando ftp://IP_Server_FTP y colocando la clave y el usuario de la maquina se puede acceder a la informacion colocada en la carpeta /ftp

Acceso ftp anónimo

Objetivo

El paquete ProFTPD puede configurarse de modo que permita el acceso a usuarios anónimos en nuestra área restringida. Para evitar usos abusivos, el acceso anónimo sólo debe permitir el acceso en modo lectura, prohibiendo cualquier escritura en el área anónima.

Por seguridad, el acceso también debe restringirse al directorio home de ProFTPD, situado en /home/ftp.
Configuración

Debe activarse la sección Anonymous del archivo /etc/proftpd/proftpd.conf:

 #

 # A basic anonymous configuration, no upload directories.

 <Anonymous ~ftp>
  User                          ftp
  Group                         nogroup
  # We want clients to be able to login with "anonymous" as well as "ftp"
  UserAlias                     anonymous ftp
  # Cosmetic changes, all files belongs to ftp user
  DirFakeUser   on ftp
  DirFakeGroup on ftp

  RequireValidShell             off

  # Limit the maximum number of anonymous logins
  MaxClients                    10

  # We want 'welcome.msg' displayed at login, and '.message' displayed
  # in each newly chdired directory.
  DisplayLogin                  welcome.msg
  DisplayChdir                  .message

  # Limit WRITE everywhere in the anonymous chroot
  <Directory *>
    <Limit WRITE>
      DenyAll
    </Limit>
  </Directory>

  # Uncomment this if you're brave.
  # <Directory incoming>
  #   # Umask 022 is a good standard umask to prevent new files and dirs
  #   # (second parm) from being group and world writable.
  #   Umask                             022  022
  #            <Limit READ WRITE>
  #            DenyAll
  #            </Limit>
  #            <Limit STOR>
  #            AllowAll
  #            </Limit>
  # </Directory>

 </Anonymous>

Luego, reiniciar el servicio ftp para activar las alteraciones:

 # /etc/init.d/proftpd restart

Podemos acceder Al servidor ftp a través de un simple navegador, o utilizando un cliente ftp, como Filezilla
usuario: anonymous
passw: 

Acceso seguro FTPS (TLS/SSL) 

Objetivo
El protocolo ftp se considera inseguro, porque los nombres de los usuarios y sus contraseñas se transmiten como simple texto, es decir, sin protección. Por esto, son fáciles de interceptar por terceros.

Sin embargo, el servidor ProFTPD puede ser configurado de modo que pueda exigir la autenticación a los usuarios, así como la transmisión de datos encriptados con la activación del soporte TLS (Transport Layer Security).

Configuración
De manera predeterminada, la configuración de ProFTPD (ver 4.2.1. ProFTPD), el soporte TLS (mod_tls.c) está desactivado. Su activación tiene dos etapas. Primero se debe configurar el módulo TLS en el archivo de configuración /etc/proftpd/tls.conf Segundo, esta configuración debe incluirse en el archivo principal /etc/proftpd/proftpd.conf.

La configuración del módulo TLS se hace en el fichero /etc/proftpd/tls.conf:
 # 

 <IfModule mod_tls.c>
 TLSEngine                               on
 TLSLog                                  /var/log/proftpd/tls.log
 TLSProtocol                             SSLv23

 #

 # Server SSL certificate. # [...]
 #
 TLSRSACertificateFile                    /etc/ssl/certs/server.crt
 TLSRSACertificateKeyFile                 /etc/ssl/private/server.key.insecure

 #

 # Are clients required to use FTP over TLS when talking to this server?
 #
 TLSRequired                             on

 #

Los certificados usados TLSRSACertificateFile y TLSRSACertificateKeyFile ya fueron generados previamente, en 3.5. Certificados Ssl. La opción TLSRequired on obliga a que los clientes ftp utilicen el protocolo TLS, en caso contrario, la conexión será rechazada. Si esta opción fuera desactivada (TLSRequired off), el servidor aceptará conexiones seguras e inseguras.

Esta configuración debe incluirse en el archivo de configuración principall /etc/proftpd/proftpd.conf:

 # 
  
 #
 # This is used for FTPS connections
 #
 Include /etc/proftpd/tls.conf
  
 # 

Por último, debe reiniciarse el servicio ftp para activar las alteraciones:

 # /etc/init.d/proftpd restart

Utilización

Al servidor ftp puede accederse a través de un cliente ftp que soporte el protocolo TLS, como Filezilla. Para esto, deberá indicarse explícitamente que pretendemos una conexión al servidor ftp explícitamente con TLS

Luego de que se establezca la conexión, aparecerá una ventana donde se muestra el certificado utilizado y se pide que se confirme:
Cuando se acepte el certificado, todas las comunicaciones entre el cliente y el servidor estarán encriptadas y seguras.

lunes, 7 de octubre de 2013

Instalación y Configuración de un Servidor Samba


samba - Servidor de archivos e impresoras tipo LanManager para Unix.
samba-common - Archivos comunes de samba utilizados para clientes y servidores.
smbclient - Cliente simple tipo LanManager para Unix.
samba-doc - Documentación de Samba.

Instalación de samba

Instalaremos los paquetes necesarios para disfrutar del servicio. Para ello ejecutaremos:

Como primer paso procedemos abrir un terminal panel superior -> Aplicaciones -> Accesorios -> Terminal y como root instalamos los siguientes paquetes:

#aptitude install samba smbfs smbclient samba-client samba-common-bin

Configuración de samba

Samba, al igual que casi todas las aplicaciones para Linux, dispone de un archivo de texto para su configuración. Se trata del archivo:

// Archivo de configuración de samba

/etc/samba/smb.conf

se debe especificar el grupo de trabajo o el dominio. Copiamos el archivo de configuración original:

cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.orig


Aunque el archivo de configuración de samba es bastante extenso, para empezar a disfrutar de samba, tenemos que hacer muy pocos cambios. El archivo de configuración se divide en secciones identificadas por un nombre entre corchetes. Hay tres secciones especiales que son [global], [homes] y [printers].


La sección principal es la sección [global] que nos permite configurar los parámetros generales del servicio.
La sección [homes] nos permitirá compartir las carpetas home de cada usuario, para que cada usuario pueda acceder a su carpeta home por la red.
La sección [printers] nos permitirá compartir impresoras.

Para compartir una carpeta, debemos crear una sección nueva. El nombre de la sección, será el nombre del recurso compartido. Ejemplo, si queremos compartir la carpeta /mnt/Canaima y llamar al recurso compartido Canaima, debemos crear una sección llamada [Canaima].

Puesto que editando el archivo smb.conf se pueden configurar más de 300 parámetros, dando lugar a miles de configuraciones, nos limitaremos a analizar los parámetros más relevantes y a la comparación de archivos e impresoras directamente.

Ejemplos:

#Sección global, parámetros generales
[global]
#Nombre del grupo de trabajo
workgroup = soporte

#Las contraseñas se deberán enviar encriptadas 
encrypt passwords = yes

#Samba será servidor wins
wins support = yes

#Nivel y longitud máxima del archivo de registro - Cap the size of the individual log files (in KiB).
max log size = 1000

#Por defecto, lectura y escritura
read only = no
---------------------------------------------------------------------
# Sección homes, carpetas home de usuarios
[homes] 
# Comentario
comment = Carpetas home 

# No explorables
browsable = no 

# Máscara de creación de archivos (rxw------)
create mask = 0700 

# Máscara de creación de carpetas
directory mask = 0700 
---------------------------------------------------------------------
# Sección printers, impresoras
[printers] 
path = /var/tmp 
printable = yes
min print space = 2000

Creación de Carpetas. Editamos la configuración del archivo smb.conf,  colocando en un terminal como root el siguiente comando:

#nano /etc/samba/smb.conf

Al final del archivo agregamos:

[Canaima] 
comment = Carpeta Canaima 
browseable = yes 
writeable = yes 
path = /mnt/Canaima 
valid user = hernandezk 
create mask = 0777 
directory mask = 0777 
public = yes

Se crea la carpeta y se le asignan permisos
mkdir /Canaima --> (Nombre de la Carpeta) chmod 777 /Canaima --> (Nombre de la Carpeta)


Crear usuarios de samba.

Se crean los usuarios
useradd -u 500 nom_usuario
useradd -u 501 nom_usuario2

Comprobamos que los usuarios han sido añadidos correctamente:
# cat /etc/passwd | grep nom_usuario
# cat /etc/passwd | grep nom_usuario2


Añadimos los usuarios nom_usuario y nom_usuario2 a samba
# smbpasswd -a nom_usuario new SMB password: 
# Introduce contraseña Retype new SMB password:
# Introduce contraseña Added user exbian (Repetimos con nom_usuario2)


Comprobamos si hemos añadido correctamente los usuarios:
# pdbedit -L

Comprobamos el /etc/samba/smb.conf con “testparm”:
# testparm
Si aparece “Loaded services file OK” ya tienes tu servidor samba configurado.


Eliminar un usuario de samba

Para eliminar un usuario de samba debemos ejecutar smbpasswd con la opción -x, ejemplo:
// Eliminar un usuario de samba
sudo smbpasswd -x pepe


Inmediatamente el usuario habrá desaparecido de la base de datos de 'usuarios samba' aunque seguirá siendo un usuario de Unix.

Otras opciones de smbpasswd
-d: Deshabilitar un usuario
-e: Habilitar un usuario
-n: Usuario sin password. Necesita parámetro null passwords = yes en sección 'global' del archivo de configuración de samba

-m: Indica que es una cuenta de máquina (equipo)

Para compartir la impresora que tenemos agregada al equipo, entramos en:
# /etc/samba/smb.conf

Y buscamos:
# printing = cups
# printcap name = cups

La descomentamos:
printing = cups 
printcap name = cups

Guarda el archivo de smb.conf y reinicia el servidor de Samba ejecutando:
testparm
/etc/init.d/samba restart

Y eso es todo, ya puedes ir a tu PC Windows y buscar en tu grupo de trabajo las carpetas compartidas de Linux en Samba y además agregar la impresora.

Arrancar y detener servicio samba.
Samba, al igual que todos los servicios en Debian, dispone de un script de arranque y parada en la carpeta /etc/init.d.

Si deseamos iniciar o reiniciar el servidor samba, debemos ejecutar:
// Iniciar o reiniciar el servidor samba
sudo /etc/init.d/samba restart

Este comando reiniciará los dos demonios (procesos residentes) necesarios que necesita samba para su funcionamiento: nmbd y smbd.

Si deseamos detener el servidor samba, debemos ejecutar:
// Parada del servidor samba

sudo /etc/init.d/samba stop

Acceso desde Linux con Cliente Samba

Instalación
El cliente se encuentra en el paquete smbclient instalable con apt-get:
// Instalación del cliente samba

sudo apt-get install smbclient

Instalación de un Servidor Web Apache


Una mejor alternativa para instalar un servidor local, como XAMPP o LAMPP es instalar cada uno de los servicios que ellos poseen por separados de la siguiente manera.
Primer paso vamos a panel superior -> aplicaciones -> Accesorios -> Terminal, entramos como root y procedemos a 


instalar los siguientes paquetes

Los paquetes necesarios son:
apache2 phpmyadmin mysql-server mysql-query-browser mysql-admin php5 php5-gd php-mysql


la instalación de mysql-server mysql-query-browser mysql-admin

#aptitude install mysql-server mysql-query-browser mysql-admin


En el proceso de instalación de mysql-server vas a observar una pantalla donde colocaras la clave del usuario root para iniciar mysql-server y al momento de ejecutar la aplicación de mysql-query-browser mysql-admin deberas colocar los mismos datos usario: root y passw: la clave que colocaste en la instalacion de mysql-server



la instalación de php5 php5-gd php-mysql 

#aptitude install php5 php5-gd php-mysql



la instalacion de apache2

#aptitude install apache2


la instalación de phpmyadmin

#aptitude install phpmyadmin


En el proceso de instalacion de phpmyadmin vas a observar una pantalla donde podrás observar dos opciones se servidro web que deseas reconfigurar automaticamente estas son:

apache2
lighttpd



Donde deberás tildar apache2 (ya que es el servidor local que instalaste) y aceptar.

La proxima pantalla dice: ¿Desea configurar la base de datos para phpmyadmin con <<dbconfig-common>>? Colocamos que si


Las dos pantallas siguientes son para colocar la contraseña del usuario administrador de la base de datos y la contraseña para que phpmyadmin se registre con el servidor de base de datos.(Se recomienda colocar la misma contraseña de la configuración del mysql-server)



Por ultimo se realiza el enlace simbólico del phpmyadmin de la siguiente forma:

#cd /etc/apache2/conf.d/
#ln -s /etc/phpmyadmin/apache.conf
#/etc/init.d/apache2 restart


Listo!!! ya podemos colocar nuestro proyecto en /var/www/ y el mismo sera visualizado mediante un navegador colocando 127.0.0.1/proyecto



Configuracion de Certificado SSL

Objetivo
La adición del soporte ssl al servidor web permite establecer conexiones seguras y encriptadas entre el servidor y el cliente. De este modo, es posible cambiar contraseñas, con la certeza de que éstas no podrán ser interceptadas por terceros.
De esta forma, es posible usar conexiones seguras como base para la implementación de otros servicios como, por ejemplo, un servidor webmail.


Configuración

Durante la instalación de apache2 se crea una configuración para acceso seguro (https). Por tanto, esta configuración debe ser modificada para incluir los certificados auto-firmados generados previamente.
Esta configuración se almacena en el archivo /etc/apache2/sites-available/default-ssl:
 # 
       #   SSL Engine Switch:
       #   Enable/Disable SSL for this virtual host.
       SSLEngine on



       #   A self-signed (snakeoil) certificate can be created by installing

       #   the ssl-cert package. See
       #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
       #   If both key and certificate are stored in the same file, only the
       #   SSLCertificateFile directive is needed.
       SSLCertificateFile     /etc/ssl/certs/server.crt
       SSLCertificateKeyFile  /etc/ssl/private/server.key.insecure


Después, debe activarse el módulo ssl:

# a2enmod ssl
Enabling module ssl.
See /usr/share/doc/apache2.2-common/README.Debian.gz on how to configure SSL and create self-signed certificates.



Run '/etc/init.d/apache2 restart' to activate new configuration!

-------------------------------------
Y el nuevo site también debe activarse:
# a2ensite default-ssl
Enabling site default-ssl.
Run '/etc/init.d/apache2 reload' to activate new configuration!



Finalmente, debe reiniciar el servicio:

# /etc/init.d/apache2 restart
Luego verificamos en el navegador https://localhost

################### NOTA ###################
En caso restaurar el servicio y presentar el siguiente error debe seguir los siguientes pasos:
Error: 
root@canaima:/home# /etc/init.d/apache2 restart
[....] Restarting web server: apache2AH00558: apache2: Could not reliably
determine the server's fully qualified domain name, using 127.0.1.1. Set
the 'ServerName' directive globally to suppress this message

. ok 
Pasos a seguir para solucionarlo:
1.- Ingresa como root a esta ruta:
# Nano / etc/apache2/apache2.conf

2.- Ingresar en la ultima linea del archivo lo siguiente:
ServerName nombre-de-tu-servidor