Introducción.
SSH (Secure Shell, en español: interprete de ordenes seguras) es un protocolo que nos sirve para acceder a una maquina remota a través de la red y estando en otra maquina, parecer que estamos en ella. Un servidor SSH escucha por defecto en el puerto 22.
SSH trabaja de forma parecida a telnet, pero lo hace de forma cifrada, por lo que si interceptan el mensaje y no tienen la contraseña no podrán leer el contenido.
Además de la conexión a otros dispositivos, SSH nos 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.
Instalación del cliente:
# aptitude install openssh-client
Instalación del servidor:
# aptitude install openssh-server
Ficheros de configuración:
Los ficheros de configuración principales se encuentran en el directorio: /etc/ssh y son:
-ssh_config: fichero de configuración del cliente.
-sshd_config: fichero de configuración del servidor.
Configuración del servidor.
Tras la instalación del servidor nos podemos conectar a el. Se instala con los parámetros por defectos y los podemos encontrar en el fichero de configuración sshd_config. Algunas lineas que nos pueden interesar (Muchas lineas están comentadas, para que funcionen tienes que quitar el # y otras no se encuentran y tienes que añadirlas):
-Port: en el especificamos el puerto en el que escucha nuestro servidor, por defecto el 22. Cambiar el puerto evita los ataques automáticos a el puerto 22.
-Protocol: protocolo ssh que utilizamos, es preferible utilizar solo el 2, ya que el 1 es mas inseguro.
-PermitRootLogin: esta opción por defecto esta en yes, no es muy aconsejable conectarse directamente como root, yo aconsejaría ponerla en no.
-MaxAuthTries: en esta linea especificamos el numero de intentos fallidos de autenticación. Si fallas ese numero de veces, te desconectas.
-ListenAddress: dirección en la que escucha el servidor.
-AllowUsers: por defecto están todos los usuarios, si ponemos esta directiva, solo podrán conectarse los usuarios que pongamos separados por espacios.
Tras la modificación de algunos de las opciones anteriores tenemos que reiniciar el servidor para que funcione con ellas:
/etc/init.d/ssh restart
Otros ficheros que tenemos que tener en cuenta a la hora de la seguridad de nuestro servidor son los ficheros /etc/hosts.allow y /etc/hosts.deny.
hosts.deny: este fichero sirve para denegar el acceso, yo por defecto lo tengo todo denegado.
ALL : ALL
hosts.allow: este fichero sirve para permitir el acceso. En nuestro caso solo tenemos que darle acceso a el servidor ssh. Yo le he dado permiso a todas las redes, podríamos ser mas estrictos.
sshd : ALL
Comandos básicos del cliente.
La conexión mas sencilla, seria:
$ ssh usuario@servidor
Si el usuario con el que nos conectamos se llama igual que con el que nos conectamos, podemos omitir el nombre de usuario:
$ ssh servidor
Para conectarnos a un puerto diferente utilizamos la opción -p y el puerto, por ejemplo el 2222:
$ ssh -p 2222 usuario@servidor
Si nos va a hacer falta ejecutar programas que necesitan interfaz gráfica utilizamos la opción -X(es mayúscula):
$ ssh -X usuario@servidor
Copia remota de archivos(SCP).
Esto es muy útil para pasar archivos de una maquina a otra. Para copiar archivos de un servidor (/ruta/archivo) a nuestra maquina (/home/usuario):
$ scp -r -p usuario@servidor:/ruta/archivo /home/usuario
Las opciones -r y -p son opcionales. Su funciones son:
-r: copiado recursivo.
-p: preservar los atributos de los archivos.
También podemos hacerlo al revés y copiar archivos locales a un servidor:
$ scp /home/usuario/archivo usuario@servidor:/ruta/
Utilización de llaves de autenticación.
Lo primero es crear la llave del cliente, para esto, en la maquina del cliente y con el usuario que queremos acceder ejecutamos:
$ ssh-keygen -t rsa -b 2048
Este comando te pregunta donde desea guardar las claves y si quieres ponerle contraseña. Si no le ponemos contraseña cualquiera puede utilizar la clave. Ahora tenemos que enviar la clave a el servidor, ya sea con un USB, DVD, CD... lo que deseen, yo suelo optar por el scp:
$ scp ~/.ssh/id_rsa.pub usuario@servidor:~
Ya tenemos la clave en nuestro servidor, ahora tenemos que agregarla a nuestras claves autorizadas. Para esto ejecutamos (desde el servidor):
$ cat id_rsa.pub >> .ssh/authorized_keys || rm id_rsa.pub
Tenemos que tener la lista de claves bien protegidas:
$ chmod 600 ~/.ssh/authorized_keys
Esto puede ser utilizado cuando queremos que dos servidores automaticen cosas uno del otro, así puede acceder automáticamente.
Montar un sistema de archivos remoto (SSHFS).
Con esta herramienta podemos montar un sistema de archivos, como si estuvieran en nuestra maquina. Lo primero es la instalación:
# aptitude install sshfs
Comprobamos que tenemos cargado el modulo fuse, de no ser asi lo cagamos:
# lsmod | grep fuse
Si no aparece:
# modprobe fuse
Si queremos utilizar esta herramienta con un usuario que no sea el superusuario tendremos que agregarlo al el grupo fuse en el fichero /etc/group. Tras agregarlo cerrar e iniciar sesión de nuevo para que coja los cambios.
Bibliografía:
http://wiki.debian.org/SSH
https://wiki.archlinux.org/index.php/Secure_Shell_(Espa%C3%B1ol)
http://wiki.debianchile.org/SSH#Uso_de_SSH# aptitude install openssh-server
Ficheros de configuración:
Los ficheros de configuración principales se encuentran en el directorio: /etc/ssh y son:
-ssh_config: fichero de configuración del cliente.
-sshd_config: fichero de configuración del servidor.
Configuración del servidor.
Tras la instalación del servidor nos podemos conectar a el. Se instala con los parámetros por defectos y los podemos encontrar en el fichero de configuración sshd_config. Algunas lineas que nos pueden interesar (Muchas lineas están comentadas, para que funcionen tienes que quitar el # y otras no se encuentran y tienes que añadirlas):
-Port: en el especificamos el puerto en el que escucha nuestro servidor, por defecto el 22. Cambiar el puerto evita los ataques automáticos a el puerto 22.
-Protocol: protocolo ssh qu e utilizamos, es preferible utilizar solo el 2, ya que el 1 es mas inseguro.
-PermitRootLogin: esta opción por defecto esta en yes, no es muy aconsejable conectarse directamente como root, yo aconsejaría ponerla en no.
-MaxAuthTries: en esta linea especificamos el numero de intentos fallidos de autenticación. Si fallas ese numero de veces, te desconectas.
-ListenAddress: dirección en la que escucha el servidor.
-AllowUsers: por defecto están todos los usuarios, si ponemos esta directiva, solo podrán conectarse los usuarios que pongamos separados por espacios.
Tras la modificación de algunos de las opciones anteriores tenemos que reiniciar el servidor para que funcione con ellas:
/etc/init.d/ssh restart
Otros ficheros que tenemos que tener en cuenta a la hora de la seguridad de nuestro servidor son los ficheros /etc/hosts.allow y /etc/hosts.deny.
hosts.deny: este fichero sirve para denegar el acceso, yo por defecto lo tengo todo denegado.
ALL : ALL
hosts.allow: este fichero sirve para permitir el acceso. En nuestro caso solo tenemos que darle acceso a el servidor ssh. Yo le he dado permiso a todas las redes, podríamos ser mas estrictos.
sshd : ALL
Comandos básicos del cliente.
La conexión mas sencilla, seria:
$ ssh usuario@servidor
Si el usuario con el que nos conectamos se llama igual que con el que nos conectamos, podemos omitir el nombre de usuario:
$ ssh servidor
Para conectarnos a un puerto diferente utilizamos la opción -p y el puerto, por ejemplo el 2222:
$ ssh -p 2222 usuario@servidor
Si nos va a hacer falta ejecutar programas que necesitan interfaz gráfica utilizamos la opción -X(es mayúscula):
$ ssh -X usuario@servidor
Copia remota de archivos(SCP).
Esto es muy útil para pasar archivos de una maquina a otra. Para copiar archivos de un servidor (/ruta/archivo) a nuestra maquina (/home/usuario):
$ scp -r -p usuario@servidor:/ruta/archivo /home/usuario
Las opciones -r y -p son opcionales. Su funciones son:
-r: copiado recursivo.
-p: preservar los atributos de los archivos.
También podemos hacerlo al revés y copiar archivos locales a un servidor:
$ scp /home/usuario/archivo usuario@servidor:/ruta/
Utilización de llaves de autenticación.
Lo primero es crear la llave del cliente, para esto, en la maquina del cliente y con el usuario que queremos acceder ejecutamos:
$ ssh-keygen -t rsa -b 2048
Este comando te pregunta donde desea guardar las claves y si quieres ponerle contraseña. Si no le ponemos contraseña cualquiera puede utilizar la clave. Ahora tenemos que enviar la clave a el servidor, ya sea con un USB, DVD, CD... lo que deseen, yo suelo optar por el scp:
$ scp ~/.ssh/id_rsa.pub usuario@servidor:~
Ya tenemos la clave en nuestro servidor, ahora tenemos que agregarla a nuestras claves autorizadas. Para esto ejecutamos (desde el servidor):
$ cat id_rsa.pub >> .ssh/authorized_keys || rm id_rsa.pub
Tenemos que tener la lista de claves bien protegidas:
$ chmod 600 ~/.ssh/authorized_keys
Esto puede ser utilizado cuando queremos que dos servidores automaticen cosas uno del otro, así puede acceder automáticamente.
Montar un sistema de archivos remoto (SSHFS).
Con esta herramienta podemos montar un sistema de archivos, como si estuvieran en nuestra maquina. Lo primero es la instalación:
# aptitude install sshfs
Comprobamos que tenemos cargado el modulo fuse, de no ser asi lo cagamos:
# lsmod | grep fuse
Si no aparece:
# modprobe fuse
Si queremos utilizar esta herramienta con un usuario que no sea el superusuario tendremos que agregarlo al el grupo fuse en el fichero /etc/group. Tras agregarlo cerrar e iniciar sesión de nuevo para que coja los cambios.
Bibliografía:
http://wiki.debian.org/SSH
https://wiki.archlinux.org/index.php/Secure_Shell_(Espa%C3%B1ol)
http://wiki.debianchile.org/SSH#Uso_de_SSH
miércoles, 17 de julio de 2013
viernes, 14 de junio de 2013
Instalar Debian Wheezy con Firmware brcm43xx
Un poco de información:
Algunos dispositivos
hardware requieren algo llamado firmware
o microcode, que se debe cargar en el dispositivo antes de poder
funcionar. Es especialmente común en tarjetas de red aunque también
se puede necesitar en otros dispositivos. Algunas tarjetas gráficas
las funciones básicas están disponibles sin hardware adicional pero
algunas funciones avanzadas requieren de la instalación de un
fichero firmware.
En
dispositivos antiguos este firmware estaba almacenado de forma
constante en un procesador EEPROM/Flash en el mismo dispositivo.
Actualmente la mayoría de los dispositivos no integra de esta manera
el firmware, por que tiene que ser cargado por el sistema operativo
En la
mayoría de los casos es no-libre de acuerdo con los criterios
utilizados por el proyecto Debian GNU/Linux y por lo tanto no se
puede incluir en la distribución principal o en el sistema de
instalación.
Para
la instalación del firmware podemos hacerlo de varias maneras:
- Si no es un dispositivo que nos sea de especial necesidad en la instalación, podemos instalar el sistema y tras la instalación añadir los repositorios non-free e instalar los paquetes necesarios.
- También podemos encontrar CD no oficiales que contienen firmware no libre en http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/
- Por ultimo y por la que he optado, podemos preparar un medio extraíble en el que cargaremos nuestro firmware. (Este es el método por el que optado)
Preparación
de la memoria USB:
Es
preferible que la memoria USB que utilicemos este en FAT para
tener menos complicaciones.
Para
obtener el firmware podemos obtenerlos de los repositorios de Debian,
en mi caso, tengo un portátil HP G62 con una tarjeta wifi broadcom y
el paquete que necesitaba es este.
Una
vez que tenemos el paquete descargado, lo descomprimimos y en la ruta
lib/firmware/brcm/ encontraremos dos ficheros con extensión .fw.
Estos dos archivos los tendremos que copiar en la raíz de nuestra
memoria USB.
$ cd Descargas/
$ dpkg-deb --extract
firmware-brcm80211_0.36+wheezy.1_all.deb .
$ cp lib/firmware/brcm/*.fw
/media/miMemoria/
Una
vez que empecemos la instalación en los primeros pasos no saldrá un
cartel preguntándonos si queremos cargar el firmware desde un medio
extraíble.
Seleccionamos
si y listo, ya nos aparecerá nuestra tarjeta de red.
Saludos
y espero que os sea de utilidad.
Bibliografía:
Forma sencilla de crear una memoria USB booteable de Debian Wheezy
Bueno, esto es un corto tutorial para
crear con un solo comando una memoria USB booteable de Debian Wheezy.
Con las memorias USB los CDs y DVDs se
están quedando anticuados y aunque normalmente las distribuciones
estén echas para que se graben en CD si tenemos una memoria USB, nos
ahorraríamos el tener que gastar un CD.
Para la creación de memorias
booteable, hay muchos métodos y programas, pero para mi el más
cómodo y sencillo que he probado, es el que os traigo. En mi caso lo
he hecho con Debian Wheezy, pero supongo que valdrá también para
otras distribuciones.
El método es tan sencillo como tras
tener nuestra imagen ISO descargada, yo me descargue un CD de Debian
Wheezy estable , copiarla
en la raíz de nuestra memoria tal y como hago:
(Antes de esto, tengan en cuenta que
todo lo que contengan en su memoria USB sera borrado)
#
cp Descargas/debian-testing-i386-CD-1.iso /dev/sdx
Con solo este comando tendremos una
memoria USB booteable. Por ultimo tengo que decir que en un ordenador
viejo que tengo no me funciono, pero no se si es por lo viejo que
era, 10 años, o por que tenia un poco estropeada la placa base.
Saludos y espero que os sea de
utilidad.
jueves, 16 de febrero de 2012
CHerokee, autentificación digest
Terminando con cherokee, os traigo
autenticación digest. Esta autenticación es igual que la utilizada
en Apache, es más, necesitamos instalar las apache2-utils.
#
aptitude install apache2-utils
Una vez tenemos instalada estas
herramientas, pasamos a crear el archivo donde se encuentran los
reinos, usuarios y claves de usuarios.
#
mkdir /claves
#
htdigest -c /claves/digest.txt cherokee juanlu
Adding
password for juanlu in realm cherokee.
New
password:
#
chown -R www-data.www-data /claves
Con esto ya tenemos nuestro archivo
creado con un reino, usuario y una clave. Si queremos añadir otro
usuario, al igual que en apache, el comando va sin la opción -c, la
cual se utiliza la primera vez para crear un usuario.
La contraseña se la aplicaremos a
un virtualhost, el cual he hecho anteriormente. Así que para
configurar la contraseña nos vamos a el administrador web de
cherokee y nos vamos a la pestaña vServers. En esta pestaña picamos
sobre el virtualhost que queramos, nos vamos a la pestaña
Comportamiento y le damos a Rule Management. Esta es la ventana que
manejamos para añadir el php.
Ahora tenemos que seleccionar la
regla por defecto e irnos a la pestaña Seguridad. En esta pestaña
seleccionamos el método de autenticación, Fichero Htdigest, y el
metodo, digest. También tenemos que poner donde se encuentra el
fichero con la contraseña, /claves/digest.txt y el reino, cherokee.
Por ultimo le damos a guardar y reiniciamos cherokee.
Ahora si intentamos entrar en el
virtualhost, nos pide usuario y contraseña.
Con esto terminamos la autenticación
digest en cherokee.
Mas sobre cherokee:
Cherokee, instalación y acceso a la configuración en debian squeeze
Cherokee, creación de un virtualhost
Cherokee, ejecución de scripts PHP.
CHerokee, autentificación digest
lunes, 6 de febrero de 2012
Cherokee, ejecución de scripts PHP.
Para ejecutar PHP en cherokee, lo
primero sera instalar phpcgi, no puede ser php normal ya que cherokee
es multi hilos por defecto, en verdad es una mezcla, por lo que no se puede
utilizar php normal.
#
apt-get install php5-cgi
Tras esto tenemos que modificar el fichero /etc/php5/cgi/php.ini y tenemos que descomentar la linea que dice:
# cgi.fix_pathinfo=1
Tras esto nos metemos en el virtual host que queramos y nos vamos a el apartado de Comportamiento. Una vez en este apartado le damos a “Rule Management”.
Ahora para que nuestro sitio pueda
interpretar php, tenemos que darle primero a Nuevo.
Esto nos abrirá una ventana, donde
en el lateral izquierdo tenemos varias opciones, pues nos vamos a el
apartado Lenguajes y seleccionamos PHP. Tras esto le damos a Añadir.
Y nos saldrá otra ventana a la que
le daremos a crear.
Tras esto se nos añade en el panel
de la izquierda una nueva opción. En esta opción si nos vamos a la
pestaña Gestor, podemos elegir que tipo de gestor queremos (FastCGI,
CGI...) yo puse FastCGI, que es el mas rápido.
Tras estos pasos le damos a Guardar y
reinicio Forzado.
A mi a lo primero me saltaba error en
los permisos, así que me fui a la pestaña Seguridad y en la opción
de Permitir desde, puse 0.0.0.0/0.0.0.0. Tras esto, guarde y
reinicie.
Para comprobar, que todo funciona
bien me cree el siguiente archivo:
# cat /var/www/info.php
<?php phpinfo(); ?>
Y aquí esta el resultado.
Suscribirse a:
Entradas (Atom)