jump to navigation

Virtual Hosting con Apache2 4 noviembre, 2009

Posted by Fredy Ruiz Ondre in Apache2.
add a comment

Esta es una configuracion de un servidor web con Apache2 que maneja multiples dominios en el mismo servidor, esto es conocido como virtual hosting basado en nombres. Esta configuracion esta hecha en SLES 10 SP2

Instalamos el servidor Apache2 y creamos los directorios donde estaran ambos sitios web.

# yast -i apache2
# mkdir /srv/www/web1
# mkdir /srv/www/web2

Despues de crearar ambos directorios y los respectivos html, empezamos a configurar el apache,  para ello editamos el archivo listen.conf

# vim /etc/apache2/listen.conf


NameVirtualHost *:80

Ahora nos ubicamos en el directorio /etc/apache2/vhosts.d/ y editamos las .conf para ambos sitios web.

# cd /etc/apache2/vhosts.d/
# cp vhost.template web1.conf
# cp vhost.template web2.conf

La configuracion minima por cada pagina debe ser la siguiente:

# vim web1.conf

<VirtualHost *:80>
ServerAdmin fruiz@grupopalomino.com.pe
ServerName http://www.grupopalomino.com.pe
DocumentRoot /srv/www/web1
ErrorLog /var/log/apache2/www.dominio1.com-error_log
CustomLog /var/log/apache2/www.dominio1.com-access_log combined
<Directory “/srv/www/web1”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Del mismo modo la pagina web2  …

Listo ahora iniciamos el servicio apache

# rcapache2 start

Anuncios

Tareas programadas en GNU/Linux 3 noviembre, 2009

Posted by Fredy Ruiz Ondre in Comandos GNU/linux.
add a comment

Me ha pasado que a veces olvido la sintaxis, talves sea porque no la uso muy seguido por eso decidi poner esta mini-guia, no es mi idea explicar todo a cerca del cron de GNU/Linux, solo pondre algo basico que me permita recordarlo.

Opciones del crontab:

  • l: lista las tareas programadas por el usuario
  • e: permite editar el fichero crontab del actual usuario
  • r: el actual fichero crontab sera elimnado
  • u: especifica el nombre del usuario para el cual se ejecutar la tarea

Si queremos programar una tarea ejecutamos ‘crontab -e’, estando logeados como root

# crontab -e

Listo, una ves ejecutado el comando editamos nuestra tarea programada, de acuerdo a la siguiente sintaxis:

*   *   *   *   *   lo_que_queremos_ejecutar
|   |   |   |   |
|   |   |   |   |__Dia de la semana (0-6, Sun-Sat) Domingo=0=7, Lunes=1, ..
|   |   |   |
|   |   |   |__Mes (1-12, Jan-Dec) Enero=1, Febrero=2 ..
|   |   |
|   |   |__Dia del mes (1-31)
|   |
|   |__Hora (0-23)
|
|__Minuto (0-59)

Tener presente donde van el dia de la semana tambien se puede poner ‘Sun’ en lugar de ‘0’ y asi sucesivamente. Tambien donde van los meses, puede ir ‘Jan’ en lugar de ‘1’ y asi …..

La barra (/) permite especificar intervalos en los rangos. Por ejemplo, si hablamos de horas, 6-10/2 significa que el comando se ejecutará a las 6, 8 y 10 horas. Si hablamos de minutos, */3 significa cada 3 minutos.

Los ejemplos serian de las siguientes maneras:

0  6-10/2   *   *   *  lo_que_queremos_ejecutar
*/3   *   *   *   *   lo_que_queremos_ejecutar

Si quisieramos que algo se ejecute a las 20 y tambien a las 23 horas seria de la sisguiente manera:

00   20,23   *   *   *   lo_que_queremos_ejecutar

    Bueno con esto basta para recordar ….

    HotSpot con chillispot y Freeradius 2 noviembre, 2009

    Posted by Fredy Ruiz Ondre in Wi-Fi.
    6 comments

    Un hotspot es una zona de cobertura de Wi-Fi, es decir esta ubicado en un punto normalmente un lugar publico donde irradia la señal y  la gente puede salir a internet conectandose inalambricamente a la central de manera gratuita o previo pago.

    En esta ocasion vamos a configurar un hotspot usando chillispot instalandolo sobre CentOS 5, la autenticasion sera a traves del un servidor Radius, nosotros usaremos freeradius, todo esto vamos a instalarlo en un mismo servidor.

    red_wifi_1

    Instalaremos las herramientas necesarias

    # yum install freeradius openssl php httpd mod_ssl

    Descargamos el paquete chillispot

    # wget http://www.chillispot.info/download/chillispot-1.1.0.i386.rpm
    # rpm -Uvh chillispot-1.1.0.i386.rpm

    Una ves que instalemos lo necesario vamos a configurarlo, empezamos a configurar el chillispot editando el archivo chilli.conf

    [root@ns ~]# vim /etc/chilli.conf


    net 172.16.0.0/24
    dns1 200.48.225.130
    domain http://www.dominio.com
    radiuslisten 127.0.0.1
    radiusserver1 127.0.0.1
    radiusauthport 1812
    radiussecret contraseña1
    radiusnasid nas01
    dhcpif eth1
    uamserver https://172.16.0.1/cgi-bin/hotspotlogin.cgi
    uamhomepage https://172.16.0.1/spot
    uamsecret contraseña2
    uamallowed 172.16.0.1

    Siguiendo con la configuracion del chilli

    # cp /usr/share/doc/chillispot-1.1.0/hotspotlogin.cgi /var/www/cgi-bin/
    # chown apache.apache /var/www/cgi-bin/hotspotlogin.cgi
    # chmod 700 /var/www/cgi-bin/hotspotlogin.cgi

    Ahora instalamos el soporte TUN/TAP necesario para el funcionamiento de chilli. Esta interface virtual creada tun0 se comunicará con la interface eth1 para autenticar los usuarios, para ello editamos  el archivo modprobe.conf agregando lo siguiente:

    # vim /etc/modprobe.conf

    alias char-major-10-200 tun

    # modprobe tun

    En la documentacion del chilli /usr/share/doc/chillispot-1.1.0/ hay un script para el firewall, bueno yo lo modifique ya que yo uso un proxy con Squid, quedando de la siguiente manera:

    #!/bin/sh
    IPT=”/sbin/iptables”
    EXTIF=”eth0″ # Interfaz externa
    INTIF=”eth1″ # Interfaz interna

    $IPT -F
    $IPT -F -t nat
    $IPT -F -t mangle

    $IPT -P INPUT DROP
    $IPT -P FORWARD ACCEPT
    $IPT -P OUTPUT ACCEPT

    $IPT -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

    $IPT -A INPUT -i $EXTIF -p tcp -m tcp –dport 22 –syn -j ACCEPT
    $IPT -A INPUT -i $EXTIF -j REJECT

    $IPT -A INPUT -i $INTIF -j DROP

    $IPT -A INPUT -p tcp -m tcp –dport 80 –syn -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp –dport 443 –syn -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp –dport 3128 –syn -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp –dport 22 –syn -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp –dport 3990 –syn -j ACCEPT

    # Redireccionar al squid
    $IPT -t nat -A PREROUTING -i tun0 -p tcp –dport 80 -j REDIRECT –to-port 3128

    $IPT -A INPUT -p icmp –icmp-type echo-request -j ACCEPT
    $IPT -A INPUT -i lo -j ACCEPT
    $IPT -A FORWARD -i $INTIF -j DROP
    $IPT -A FORWARD -o $INTIF -j DROP

    $IPT -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

    Obviamente esre script es algo basico, pero este post no trata de iptables asi que lo dejamos tal cual, ahora activamos el forwarding

    # vim /etc/sysctl.conf

    net.ipv4.ip_forward = 1

    Hecho esto nos dedicamos al servidor radius, para ello nos ubicamos en el directorio raddb

    # cd /etc/raddb/
    # vim clients.conf

    client 127.0.0.1 {
    secret          = contraseña1
    shortname       = localhost
    nastype     = other
    }

    Editamos las cuentas de usuarios

    # vim users

    fruiz   Auth-Type := Local, User-Password == “clave”

    Antes de iniciar los servicios debemos tener en cuenta la dirección IP de la interfaz eth1 el cual  debe ser 0.0.0.0 pero debe estar activa

    # ifconfig eth1 0.0.0.0 up

    # /etc/init.d/chilli start
    # /etc/init.d/radiusd start
    # /etc/init.d/httpd start

    red_wifi_2

    En la consola podemos ejecutar lo siguiente para ver si la autenticacion al servidor radius esta bien configurada

    # radtest fruiz clave localhost 1645 contraseña1

    Sending Access-Request of id 65 to 127.0.0.1 port 1812
    User-Name = “fruiz”
    User-Password = “clave”
    NAS-IP-Address = 255.255.255.255
    NAS-Port = 1645
    rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=65, length=71
    Service-Type = Framed-User
    Framed-Protocol = PPP
    Framed-IP-Address = 172.16.0.170
    Framed-IP-Netmask = 255.255.252.0
    Framed-Routing = Broadcast-Listen
    Filter-Id = “std.ppp”
    Framed-MTU = 1500
    Framed-Compression = Van-Jacobson-TCP-IP

    Ahora como ultimo paso, nos ubicamos en el directorio /var/www/html y editamos una pagina que sera la de bienvenida, y ahi ubicamos un link que apunte al chilli para poder realizar la autenticacion

    # cd /var/www/html/
    # mkdir spot/
    # cd spot/
    # vim index.html

    Aqui editamos nuestra pagina de bienvenida en donde debe haber un link que apunte a http://172.16.0.1:3990/prelogin, pondre parte de mi humilde html donde enlaza para la autenticacion

    <a href=”http://172.16.0.1:3990/prelogin”>Click aqui para acceder</a>

    Luego de realizar nuestra pagina de bienvenida, guardamos los cambios y empezamos a probar, para esto desde una maquina cliente accedemos a la red, el chilli nos debería asignar un IP de manera automática y cuando abramos un navegador nos debe mostrar nuestra pagina de bienvenida, en dicha pagina le demos clic en “Click aqui para acceder” deberá mostrarnos la siguiente ventana para poder autenticarnos.

    chillispot

    Interfaz Web para Voicemail – Asterisk 1 noviembre, 2009

    Posted by Fredy Ruiz Ondre in Asterisk.
    1 comment so far

    Esta es una pequeña configuracion de como instalar una interfaz web para ver los mensajes de voz que son enviados por nuestra central Asterisk, esta interfaz es un cgi que viene dentro de las fuentes de Asterisk.

    Antes vamos a instalar algunas dependencias necesarias.

    # yum -y install php httpd perl-DBI

    Hecho esto, ahora nos ubicamos en el directorio donde estan las fuentes del asterisk que hemos instalado.

    # cd /usr/src/
    # cd asterisk-1.4.22/
    # make webvmail
    # cd /var/www/cgi-bin/
    # chmod 755 vmail.cgi

    En el archivo vmail.cgi ingresamos nuestro contexto por defecto, en mi caso Internal, con esto cuando ingresemos a la web no sera necesario que pongamos voicemail@context en el login.

    # vi vmail.cgi

    $context=”Internal”;

    Configuremos el httpd para poder acceder al webvmail, en el archivo cgi.conf ingresamos la linea siguiente.

    # vi /etc/httpd/conf.d/cgi.conf

    AddHandler cgi-script .cgi

    #service httpd restart

    Ahora imaginemos que nuestro archivo voicemail.conf este configurado de la siguiente manera.

    [Internal]
    101 => 5678,Fredy Ruiz,user@dominio.com

    Entonces, accedemos a http://ip_asterisk/cgi-bin/vmail.cgi y nos logearemos con nuestros datos.

    login

    buzon

    Con esto ya podemos ver nuestros mensajes de voz via una interfaz web.

    IDS con Snort sobre CentOS 5 27 octubre, 2009

    Posted by Fredy Ruiz Ondre in IDS.
    15 comments

    Un IDS es un sistema de deteccion de intrusos, es decir este sistema analiza todo el trafico y las compara contra una base de datos (firmas de ataques ya conocidos) y si coinciden el sisetma muestra como una alerta, estas alertas pueden ser monitoreada desde una interfaz web, tambien se puede configurar para que envie un correo a una cuenta predefinida

    Instalamos los paquetes necesarios

    # yum -y install mysql mysql-bench mysql-server mysql-devel  php-mysql httpd gcc pcre-devel php-gd gd mod_ssl glib2-devel gcc-c++ bison flex php-pear

    Iniciamos los servicios de la base de datos y del apache

    # /etc/init.d/httpd start
    # /etc/init.d/mysqld start
    # chkconfig mysqld on
    # chkconfig httpd on

    Crearemos nuestro directorio donde pondremos todos los pquetes que vayamos a utilizar

    # mkdir /opt/ids
    # cd /opt/ids
    # wget http://www.tcpdump.org/release/libpcap-1.0.0.tar.gz
    # tar xfz libpcap-1.0.0.tar.gz
    # cd libpcap-1.0.0
    # ./configure
    # make
    # make install
    # cd ..
    # wget http://dl.snort.org/snort-current/snort-2.8.5.1.tar.gz
    # tar xzf snort-2.8.5.1.tar.gz
    # cd snort-2.8.5.1
    # ./configure –with-mysql –enable-dynamicplugin
    # make
    # make install
    Una ves instalado seguimos con los siguientes pasos

    # groupadd snort
    # useradd -g snort snort -s /sbin/nologin
    # mkdir /etc/snort
    # mkdir /etc/snort/rules
    # mkdir /var/log/snort
    # cp /opt/ids/snort-2.8.5.1/etc/* /etc/snort/.

    Ahora vamos a descargas las reglas

    Para descargas las reglas necesitamos tener nuestra cuenta en http://www.snort.org, una ves hecho esto nos logeamos
    y nos bajamos las reglas, luego la pasamos a nuestro servidor, en mi caso las baje en /root de mi pc local

    Ahora mediante scp lo paso al servidor

    # scp snortrules-snapshot-CURRENT.tar.gz 172.16.0.1:/opt/ids/

    Listo ahora nuevamente en el servidor, nos ubicamos en /opt/ids

    # cd /opt/ids/
    # tar xfz snortrules-snapshot-CURRENT.tar.gz
    # cp rules/* /etc/snort/rules/

    Ahora vamos a configurar nuestro snort

    # cd /etc/snort/

    En el archivo snort.conf modificamos algunos parametros, tales como poner nuestra red interna, en mi caso 172.16.0.0/24
    ademas de ello modifcamos la ruta donde se encuentran las reglas

    # vim snort.conf

    var HOME_NET 172.16.0.0/24
    var EXTERNAL_NET !$HOME_NET

    var RULE_PATH /etc/snort/rules

    Configuremos nuestra base de datos mysql para registrar todos los eventos del snort

    # mysqladmin -u root password ‘supercontraseña’
    # mysqladmin create snort -p
    Enter password:
    # cd /opt/ids/snort-2.8.5.1
    # mysql -p snort < schemas/create_mysql
    Enter password:
    # mysql -p
    Enter password:
    mysql> grant all privileges on snort.* to snort@localhost identified by ‘contraseña’;

    Ahora vamos a hacer que el snort registre todo en la base de datos mysql, para ello nuevamente editamos el snort.conf
    descomentamos la linea de output database para que quede de la siguiente manera

    # vim snort.conf

    output database: log, mysql, user=snort password=contraseña dbname=snort sensor_name=LAN host=localhost

    Hecho esto, vamos a configurar la interfaz web para monitorear el IDS

    Nos ubicamos nuevamente en /opt/ids/

    # cd /opt/ids/
    # pear install –alldeps Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman
    # wget http://downloads.sourceforge.net/project/adodb/adodb-php5-only/adodb-509a-for-php5/adodb509a.tgz
    # wget http://downloads.sourceforge.net/project/secureideas/BASE/base-1.4.4/base-1.4.4.tar.gz
    # cd /var/www/
    # tar xfz /opt/ids/adodb509a.tgz
    # mv adodb5 adodb
    # cd html/
    # tar xfz /opt/ids/base-1.4.4.tar.gz
    # mv base-1.4.4 base
    # cd base/
    # cp base_conf.php.dist base_conf.php
    # vim base_conf.php

    $BASE_urlpath = ‘/base’;

    $DBlib_path = ‘/var/www/adodb/ ‘;

    $DBtype = ‘mysql’;
    $alert_dbname   = ‘snort’;
    $alert_host     = ‘localhost’;
    $alert_port     = ”;
    $alert_user     = ‘snort’;
    $alert_password = ‘contraseña’;

    Ahora accedemos via web

    http://172.16.0.1/base

    le damos clic en Setup page, luego en create BASE AG finalmente en Man page

    En caso quieres ver los graficos en “Graph alert data” y te sale el siguiente
    error

    Error loading the Graphing library:
    Check your Pear::Image_Graph installation!

    Entonces debes instalar de la siguiente manera

    # pear install -f Image_Graph
    # pear install -f Image_Canvas

    Finalmente iniciamos el servicio de snort, yo suelo ejecutarlo de la siguiente manera:

    # snort -D -c /etc/snort/snort.conf -i eth1

    Donde:

    • eth1 es mi interfaz interna de mi servidor

    Ahora finalizando la configuracion instalaremos oinkmaster para que las reglas se actuzalicen de manera automatica

    # chown snort.snort /etc/snort/ -R
    # cd /opt/ids
    # wget http://prdownloads.sourceforge.net/oinkmaster/oinkmaster-2.0.tar.gz
    # tar xzf oinkmaster-2.0.tar.gz
    # cd oinkmaster-2.0
    # cp oinkmaster.pl /usr/bin/
    # cp contrib/makesidex.pl /usr/bin/
    # cp oinkmaster.conf /etc/

    Nos logeamos a http://www.snort.org y generamos nuestro codigo oinkmaster

    # vim /etc/oinkmaster.conf

    url = http://www.snort.org/pub-bin/oinkmaster.cgi/<oinkcode>/snortrules-snapshot-CURRENT.tar.gz

    En lugar del <oinkcode> ponemos el codigo que generamos en la web de http://www.snort.org

    Nos ubicamos en /etc y hacemos lo siguiente

    # cd /etc/
    # makesidex.pl /etc/snort/rules > autodisable.conf

    Ahora ponemos en el cron lo siguiente, de esta manera se actualizara todos los
    dias a las 23:59 horas

    # crontab -u snort -e

    59 23 * * * oinkmaster.pl -C /etc/oinkmaster.conf -C /etc/autodisable.conf -o /etc/snort/rules

    Realizar backup con rsync 18 octubre, 2009

    Posted by Fredy Ruiz Ondre in Utilitarios.
    add a comment

    Una de las herramientas usadas para realizar copias de seguridad es el rsync, la copia de seguridad se pueden hacer en la misma maquina o en maquinas remotas.

    Para poder realizar backup en una maquina remota antes debemos configurar el SSH para poder acceder a la otra maquina sin necesidad de ingresar contraseña, para ello seguimos estos pasos.

    Luego de esto instalamos la herramienta

    En CentOS

    #yum install rsync

    En debian

    # apt-get install rsync

    Una ves que tengamos la herramienta instalada crearemos un script que nos permita realizar las copias de seguridad.

    Datos:

    • Maquina local: 192.168.1.2
    • Maquina remota: 192.168.1.3
    • Informacion a realizar copias de seguridad: /data/

    Syntaxis:

    rsync [opciones] [origen] [destino]

    Opciones:

    • -e ssh : pasamos la informacion mediante SSH
    • -a : mantiene los permisos
    • -v : modo verbose
    • -z : comprime los datos

    #rsync -e ssh -avz /data/ 192.168.1.3:/data/

    Si usamos un puerto diferente para el SSH 3434 para el ejemplo, entonces debemos especificar el puerto de la siguiente manera.

    #rsync -e ‘ssh -P3434’ -avz /data/ 192.168.1.3:/backup/

    En este caso estamos guardando la informacion de /data/ en el directorio /backup/  en la maquina remota 192.168.1.3

    Esto se puede programar para ello usamos el cron, digamos que queremos que se haga cada 5 minutos, solo por poner de ejemplo

    # crontab -e

    */5 * * * * rsync -e ‘ssh -P3434’ -avz /data/ 192.168.1.3:/backup/

    Mayor informacion

    http://www.samba.org/ftp/rsync/rsync.html

    http://www.mikerubel.org/computers/rsync_snapshots/

    http://www.vicente-navarro.com/blog/2008/01/13/backups-con-rsync/

    DNS Cache Server sobre CentOS 5 17 octubre, 2009

    Posted by Fredy Ruiz Ondre in DNS.
    add a comment

    El servicio de DNS nos permite resolver nombre en direcciones IP’s, a continuacion vamos a configurar un DNS Cache Server, con Bind sobre CentOS 5, este va a guardar las resoluciones de los DNS’s de nuestro proveedor, esto nos permitira disminuir el tiempo de respuesta a las consultas de nuestras maquinas locales.

    Instalamos las herramientas necesarias.

    #yum -y install bind-chroot caching-nameserver

    Luego de instalar los repositorios necesarios nos dirigimos al directorio de configuracion /var/named/chroot/etc/ donde editaremos el archivo named.conf, inicialmente no este archivo no estara.

    #cd /var/named/chroot/etc/

    #cp named.caching-nameserver.conf named.conf

    Luego de agregar algunos parametros el archivo debe quedar de la siguiente manera:

    options {
    listen-on port 53 { 127.0.0.1; 192.168.1.0/24;};
    listen-on-v6 port 53 { ::1; };
    directory       “/var/named”;
    dump-file       “/var/named/data/cache_dump.db”;
    statistics-file “/var/named/data/named_stats.txt”;
    memstatistics-file “/var/named/data/named_mem_stats.txt”;

    allow-query     { localhost; 192.168.1.0/24;};
    forwarders      { 200.48.225.130; 200.48.225.146;};
    forward only;
    };
    logging {
    channel default_debug {
    file “data/named.run”;
    severity dynamic;
    };
    };
    view localhost_resolver {
    match-clients      { localhost; 192.168.1.0/24; };
    match-destinations { localhost; 192.168.1.0/24; };
    recursion yes;
    include “/etc/named.rfc1912.zones”;
    };

    Donde:

    • 192.168.1.0/24 es mi red local
    • 200.48.225.130 y 200.48.225.146 son los ips de mi proveedor

    Ahora chekearemos nuestra named.conf

    #named-checkconf named.conf

    Ingresamos al archivo resolv.conf

    # vim /etc/resolv.conf

    nameserver 127.0.0.1

    Ahora iniciamos el servicio y ya tenemos nuestro DNS Cache Server

    Actualizar Firefox sobre CentOS 11 septiembre, 2009

    Posted by Fredy Ruiz Ondre in CentOS Tips.
    add a comment

    Ultimamente he estado usando CentOS como sistema operativo de escritorio y pues decidi actualizar a la ultima version mi navegador firefox ya que por ejemplo cuando entraba a hotmail me pedia actualizarlo ….

    Bueno baje la ultima version de aqui

    # tar xjf firefox-3.5.3.tar.bz2
    # mv firefox /opt/
    # rm -rf /usr/bin/firefox
    # ln -s /opt/firefox/firefox /usr/bin/firefox

    Por ahora con eso basta …. falta cambiarle el icono del navegador

    Reparar Base de Datos MySQL 2 septiembre, 2009

    Posted by Fredy Ruiz Ondre in Base de Datos MySQL.
    add a comment

    Que hacer cuando nuetra base de datos MySQL se corrompe ya sea porque se lleno el disco y en ese momento se esta realizando una opercion de INSERT entonces los archivos se corrompen, o porque la base datos esta realizando una transaccion larga y se dertiene el servicio repentinamente que podria ser por un corte de energia … en fin.

    Entonces para reparar nuestra querida base de datos sin detener el servicio realizamos los siguientes pasos

    Datos:

    SO: CentOS 5

    DB: MySQL 5

    Base de datos corrupta: db_prueba

    Para el ejemplo asumiremos que nuestra base datos corrupta es db_prueba, entonces debemos ejecutar lo siguiente:

    #myisamchk -r /var/lib/mysql/db_prueba/*.MYI

    Listo

    Conexion mediante SSH usando claves RSA 30 agosto, 2009

    Posted by Fredy Ruiz Ondre in SSH.
    add a comment

    Vamos a generar claves publicas y privadas con SSH para poder acceder a un servidor sin necesidad de poner la contraseña.

    SSH: Secure SHell, intérprete de órdenes seguro
    RSA: Algoritmo de encriptacion asimetrico cifrador de bloques que utiliza una clave pública, y otra privada.

    Datos:
    Pc1: 192.168.1.70
    Pc2: 192.168.1.72

    En la Pc1 generaremos las claves publicas y privadas

    Luego de ejecutar ‘ssh-keygen -t rsa’ simplemente le damos enter a todo ya que la idea es ingresar a la otra maquina sin ninguna contraseña ni frase

    db:~ # ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):
    Created directory ‘/root/.ssh’.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    39:02:89:ac:f4:1f:d0:aa:05:e3:41:35:6a:e4:02:bf root@db

    Luego accedemos a /root/.ssh y vemos que se han generado dos archivos: id_rsa (clave privada) , id_rsa.pub (clave pública

    db:~ # cd .ssh/
    db:~/.ssh # ll
    total 8
    -rw——- 1 root root 1675 Aug 5 22:46 id_rsa
    -rw-r–r– 1 root root 389 Aug 5 22:46 id_rsa.pub

    Es necesario copiar el contenido de id:_rsa.pub en el archivo authorized_keys, el cual debe tener permisos de escritura y lectura solo por parte del usuario propietario.

    db:~/.ssh # cat id_rsa.pub >> authorized_keys
    db:~/.ssh # chmod 600 authorized_keys

    Ahora copiamos la clave publica al servidor que queremos acceder sin password

    db:~/.ssh # scp authorized_keys 192.168.1.72:/root/.ssh/

    Una ves copiado la clave, intentamos acceder via ssh

    db:~/.ssh # ssh 192.168.1.72

    Si todo salio bien deberiamos poder acceder directamente sin que nos pida contraseña