Mostrando entradas con la etiqueta Redes. Mostrar todas las entradas
Mostrando entradas con la etiqueta Redes. Mostrar todas las entradas

domingo, 27 de febrero de 2011

Conectarse por SSH utilizando llaves RSA


Partiremos de la base de que tienes tu servidor SSH configurado y que utilizas un puerto diferente al 22 (que es el puerto por defecto). Un sistema de seguridad más robusto que el de la clave común y corriente es el de las llaves RSA (Rivest-Shamir-Adleman). El sistema consiste en lo siguiente: debes generar dos llaves, una pública y una privada. La llave pública permanecerá en cada servidor al que desees conectarte, mientras que la privada permenece en el equipo desde el que te conectas. La llave pública está a la vista de todo el mundo, mientras que la privada únicamente tú la puedes ver. Obviamente, es necesario tener un par de llaves para cada computador que utilices con este sistema.

Importante: previo a correr este comando asegurate de que existe la carpeta .ssh. Si no existe debes crearla y establecer los permisos correctos:

mkdir ~/.ssh
chmod 700 ~/.ssh

El primer paso es generar tus llaves RSA con el siguiente comando:
ssh-keygen -t rsa

Se te preguntará por la ruta en donde deseas guardar tus llaves y por una clave que se te pedirá cada vez que desees utilizarlas. La razón de crear una clave es proveerte de una seguridad adicional en el caso de que tu llaves RSA sean robadas. La idea de fondo es que si te roban tus llaves cuentes con algunas horas (mientras el ladrón intenta romper tu clave mediante bruteforce) para conectarte a tu servidor por SSH y eliminar tu llave pública.

Si lo deseas, puedes presionar Enter cuando se te pida la clave, de esta forma no se te pedirá una cada vez que te conectes y la conexión se conseguirá de manera automática.

Ahora debes copiar tu llave pública en el servidor:

ssh-copy-id <username>@<host>

Si el usuario es “carlos” y se conecta al servidor “servidor.com” el comando sería:
ssh-copy-id carlos@servidor.com

En caso de que la conexión por SSH se realice utilizando un puerto diferente al 22, por ejemplo el 3333, el comando es el siguiente:

ssh-copy-id “-p3333 carlos@carlos.com”

Finalmente, para conectarte al servidor mediante tu llave RSA debes utilizar el comando:

ssh <usuario>@<host> -p<puerto>
siguiendo el ejemplo:

ssh carlos@host.com -p3333
Se te pedirá que escribas la clave asociada a tus llaves RSA, en caso de que hayas creado una.

Si eres administrador del servidor SSH y deseas que únicamente se realicen conexiones remotas utilizando el sistema de llaves RSA, tienes que deshabilitar la opción de conexión mediante el uso de password. Para ello debes editar tu archivo /etc/ssh/sshd_config y modificar la siguiente línea:
#PasswordAuthentication yes
y modificarla para que quede así:
PasswordAuthentication no

Por supuesto, una vez que deshabilites la autenticación por clave deberás copiar todas tus llaves públicas directamente, ya sea utilizando una unidad USB o algún otro método similar.

Fuentes:
  • https://help.ubuntu.com/community/SSH/OpenSSH/Keys
  • https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication
  • http://jeremy.wordpress.com/2008/05/29/ssh-copy-id-port-different/

viernes, 30 de julio de 2010

Como montar carpetas remotamente con SSHFS


sshfs te permite montar una carpeta con fuse utilizando ssh. La idea es conectarte a un equipo remoto, que posea un servido ssh funcionando, y utilizar fuse para montar localmente en tu sistema una carpeta remota. Este método tiene todas las ventajas de seguridad de una conexión por ssh, mientras facilita la usabilidad propia de fuse a la hora de montar directorios.

Si ya tienes instalado un servidor ssh te puedes saltar la primera parte de esta entrada

1. Instalando un servidor ssh.

Para instalar un servidor ssh necesitas el paquete openssh-server:
sudo apt-get install openssh-server
La configuración del server ssh se encuentra en el archivo /etc/ssh/sshd_config. Antes de modificarlo es recomendable crear un respaldo:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
Tambien puedes proteger tu respaldo contra escritura:
sudo chmod a-w /etc/ssh/sshd_config.original
Personalmente suelo cambiar siempre el puerto (22) que ssh utiliza para transmitir. Para ello busco la linea que dice:
Port 22
y establezco otro puerto. Esta es una forma de evitar los ataques externos reiterados a tu equipo. No es una medida infalible, efectivamente, nada impide que el puerto que escojas aún así sea víctima de un intento de intrusión. Justamente por ello, lo más importante es no utilizar una clave que sea fácil de descubrir. Finalmente, si verdaderamente te preocupa la seguridad, lo mejor es utilizar llaves ssh (ssh keys). Puedes encontrar la manera de implementar tus llaves ssh aquí.
Una vez que hayas realizado todos los cambios en /etc/ssh/sshd_config obviamente debes guardar los cambios y cerrar el archivo. Basta reiniciar el server para que los cambios se hagan efectivos:
sudo /etc/init.d/ssh restart
Si deseas verificar que todo salió bien puedes conectarte remotamente por ssh escribiendo en el terminal:
ssh nombre_usuario@direccion_equipo_remoto
por ejemplo, si el usuario es carlos, la dirección ip del equipo remoto es 123.45.6.7 y el puerto de transferencia ha sido cambiado a 3333, el comando sería:
ssh carlos@123.45.6.7 -p3333
En caso de que el puerto no haya sido modificado no es necesario incluirlo.


 2. Conectándote por sshfs

Ubuntu trae fuse instalado por defecto, por lo que no es necesario instalarlo. Lo que sí debes hacer es verificar que formas parte del grupo fuse. Puedes agregarte a este grupo escribiendo el terminal:
sudo gpasswd -a $USER fuse
$USER será interpretado por el sistema por el nombre de usuario que utilizas. El siguiente paso es instalar sshfs:
sudo apt-get install sshfs
Y listo, ahora lo único que necesitas es montar la carpeta remota. Suponiendo que deseas montar la carpeta de tu equipo remoto llamada ~/Musica (es una buena idea utilizar sshfs para acceder remotamente a tu colección de música). Para ello creas una carpeta en tu equipo local llamada ~/Coleccion_musica. Luego en el terminal escribes:
sshfs nombre_usuario@direccion_equipo_remoto:~/Musica ~/Coleccion_musica
Si utilizamos los datos anteriormente propuestos quedaría así:
ssshfs carlos@123.45.6.7:~/Musica ~/Coleccion_musica -p3333
Nuevamente, si el puerto no ha sido modificado no es necesario incluirlo. A partir de este momento es posible, a través de tu carpeta local ~/Coleccion_musica, al contenido de tu carpeta remota ~/Musica y, lo mejor de todo, es que lo harás a través de ssh.

En caso de que desees desconectarte puedes utilizar el siguiente comando:
fusermount -u ~/Coleccion_musica
Eso es todo.

Fuentes:
https://help.ubuntu.com/community/SSHFS
https://help.ubuntu.com/community/SSH
https://help.ubuntu.com/community/SSH/OpenSSH/ConnectingTo
https://help.ubuntu.com/9.04/serverguide/C/openssh-server.html
https://help.ubuntu.com/community/SSH/OpenSSH/Configuring
http://eldiabloenlosdetalles.net/2006/08/29/howtocomo-usar-sshfs-para-montar-directorios-con-ssh/

sábado, 9 de agosto de 2008

Conexión wifi en Ubuntu con tarjetas Broadcom bcm43xx

******EDITADO 6 de Octubre de 2011******

Para el caso de Ubuntu 11.04 es necesario instalar manualmente el firmware. El último paso, tras instalar el driver es ejecutar el siguiente comando:

sudo apt-get install firmware-b43-installer


******EDITADO 9 de Marzo de 2009******
Antes de intentar el siguiente método debes verificar que tu tarjeta sea soportada por el driver b43. Para ello escribe en el terminal:
lspci -vnn | grep 14e4

Te aparecerá algo como esto:
05:02.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)

La información relevante es la que se encuentra dentro del paréntesis cuadrado. En mi caso:
[14e4:4318]

Con ese dato revisa la lista en linuxwireless. Si el modelo resulta estar soportado entonces sigue las instrucciones siguientes. Si no lo está, debes utilizar ndiswrapper.
******Fin de la Edición******

Es conocida la dificultad que existe para conectarse por wifi si se tiene una tarjeta Broadcom bcm43xx, algo que ocurre, por ejemplo, con quienes tienen un laptop modelo Compaq Presario V2000, que viene con una tarjeta Broadcom 4318. Si tienes dudas respecto a que tu tarjeta corresponda a este modelo puedes escribir en la consola:
lspci | grep Broadcom\ Corporation

Debieras obtener un resultado similar a este:
0000:05:02.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
(El número del modelo puede cambiar, lo importante es que sea de la linea BCM43xx)

El problema con este tipo de tarjetas es que el driver que instala Ubuntu por defecto no funciona. La forma más fácil que conozco para solucionar este problema es instalar el paquete b43-fwcutter. Lo puedes instalar desde la consola escribiendo:
sudo apt-get install b43-fwcutter

Se descargará el firmware automáticamente, sólo debes aceptar cuando se te pregunte. Una vez instalado el paquete debes reiniciar el sistema. Lo primero que notarás es que el LED del wifi se encenderá, además, al principio puede que no veas la red inalámbrica, pero es un problema fácil de solucionar. Tienes que configurarla manualmente, especificando el nombre de la red, el tipo de encriptación y la clave de acceso en caso de existir. Con esto te conectarás sin problemas y de ahí en adelante podrás ver las redes automáticamente.


Editado: Es posible que sea necesario tener el paquete linux-restricted-modules instalado para que este método funcione.

miércoles, 9 de julio de 2008

Cómo ver el ip local y MAC Adress de tu computador, así como la default via a tu router en Ubuntu

Averiguar tu ip, default via y Mac Adress es posible de varias maneras:

1. Comando ip
Si escribes en el terminal:
ip -s route
Te mostrará algo como esto:
192.168.0.0/24 dev eth0 proto kernel scope link src xxx.xxx.x.xxx
169.254.0.0/16 dev eth0 scope link metric 1000
default via yyy.yyy.y.y dev eth0
En donde xxx.xxx.x.xxx es tu ip local e yyy.yyy.y.y tu default via para conectarte con el router.
Default via = gateway, puerta de enlace.

2. Comando route
Para ver tu default via escribe en el terminal:
route
Verás algo como esto:
Tabla de rutas IP del núcleo
Destino Pasarela Genmask Indic Métric Ref Uso Interfaz
192.168.0.0 * 255.255.255.0 U 1 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth0
default yyy.yyy.y.y 0.0.0.0 U G 0 0 0 eth0
Tu default via será el número yyy.yyy.y.y que se ve en la tabla frente a default.

3. Comando ifconfig
ifconfig te permite averiguar, entre otras cosas, tu ip local y tu MAC Adress. Si escribes en el terminal:
ifconfig

Verás una información como esta:

eth0      Link encap:Ethernet  direcciónHW 00:c0:9f:d1:53:94
ARRIBA DIFUSIÓN MULTICAST MTU:1500 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupción:18 Dirección base: 0xa000

lo Link encap:Bucle local
inet dirección:127.0.0.1 Máscara:255.0.0.0
dirección inet6: ::1/128 Alcance:Anfitrión
ARRIBA LOOPBACK CORRIENDO MTU:16436 Métrica:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:0
RX bytes:960 (960.0 B) TX bytes:960 (960.0 B)

En donde el número inmediatamente después de inet dirección es tu ip local y el número después de direcciónHW corresponde a tu MAC Adress.

4. Para ver a los demás: arp
En caso de que quieras ver los ip del resto de los computadores conectados a tu red, junto a sus correspondientes MAC Adress, puedes utilizar el comando arp. Al escribir arp en el terminal obtendrás algo parecido a esto:

Dirección                TipoHW  DirecciónHW         Indic Máscara         Interfaz
laptop ether aa:aa:aa:aa:aa:aa C eth0
xxx.xxx.x.x ether bb:bb:bb:bb:bb:bb C eth0

Las ip corresponden a los valores que aparecen bajo la columna Dirección y las MAC Adress a los valores bajo DirecciónHW. No verás la ip ni la MAC Adress de tu equipo, pero sí verás las ip y MAC Adress del resto de los equipos conectados a tu misma red. En este caso el computador desde donde se ejecutó el comando arp está conectado a la red cableada (LAN). Por esta razón, al equipo laptop, conectado a la red inalámbrica (Wireless LAN), no podemos verle la ip, mientras que al segundo equipo listado, que sí está conectado a la red cableada, sí podemos verlo.