Programar Servidor para Enviar Mensajes por Telegram





Hace tiempo vi alguien que usaba el whatsapp para un caso similar, aunque no eran mensajes muy informativos a diferencia de el que vamos a programar, pero me quedo la duda de hacer como un script que me enviara información de mi servidor cada cierto tiempo para saber en que estado esta, no me decidi por whatsapp por todo ese lio de estar casado con un solo dispositivo y la inseguridad que maneja en sus converzaciones, Bueno MANOS A LA OBRA!



Esta parte si es un poco copiada de otra web, abajo dejare la fuente....


Instalamos los paquetes esenciales para el funcionamiento y compilación de teleram

Terminal:
sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make




Terminal:
sudo apt-get install git









ahora nos descargamos del repositorio de telegram




Terminal:
git clone --recursive https://github.com/vysheng/tg.git && cd tg




ahora configuramos el programa, en el comando anterior ya nos ubica en la carpeta del programa solo tenemos que ejecutar lo siguiente:



Terminal:
./configure


compilamos el programa

Terminal:
make




Listo, ya tenemos todo preparado para comenzar a usar Telegram desde la terminal. Para configurarlo, deberemos colocarnos en el directorio donde compilamos el programa -que no es otro que “/home/usuario/tg”- e iniciar el programa con:




Terminal:
bin/telegram-cli -k tg-server.pub



Donde -k indica dónde se encuentra la llave pública del programa. Además, también podemos añadir -N para ver el número del mensaje. La primera vez que lo ejecutemos, nos aparecerá una pantalla tal que así:





tipean el numero de telefono con codigo de area internacional ejemplo de venezuela

+584264445566


luego les va enviar el sms con el codigo de verificacion y listo finalizado



contact_list: muestra una lista de nuestros contactos que utilizan Telegram. Cada contacto se llama peer.

msg <peer> <mensaje>: envía un mensaje de texto al contacto seleccionado.

 Ejemplo: msg Pepe Hola, ¿qué tal estás? 

En caso de que el nombre del contacto tenga espacios, escribiremos “_” entre palabras.

 Por ejemplo: msg Pepe_Apellido El mensajesend_photo <peer> <ruta de la imagen>: envía la imagen seleccionada al contacto seleccionado.

 Por ejemplo: send_photo Pepe “/home/usuario/Imágenes/imagen.png”

chat_with_peer <peer>: nos abre un chat privado con la persona que hayamos escrito como peer. No confundir con chat encriptado,  Tecleando /quit, salimos de este modo.
 Ejemplo: chat_with_peer Pepe

quit: sale del programa.


lista completa de los comandos útiles, es recomendable visitar el GitHub del autor.



==================================================================



hasta ahora solo instalamos y configuramos el telegram para ser usado en nuestro sistema, necesitamos definir el usuario al que le vamos a enviar el mensaje.



entren a telegram-terminal y ejecuten de nuevo


contact_list


copien bn el nombre del usuario que desean enviar el mensaje


descargamos el script


https://github.com/cirelramos/send-info-server-for-telegram



coloquen el script en el home de su sistema y ejecutamos OJO  siempre tienes que tener en cuenta las variantes de la ruta el usuario que voy a usar se llama SERVER por lo tanto su home es /home/server  ustedes deben tener otro usuario por lo tanto debe ser utilizado con otra direccion...

Terminal:
chmod +x enviar-mensajes-telegram.sh







ahora vamos a editar el usuario que esta en el script en la linea  to="Cirel";  por el usuario que buscaron arriba con el comando contact_list

Terminal:
nano enviar-mensajes-telegram.sh


programamos una tarea en crontab cada 45 minutos

Terminal:
crontab -e

si es la primera vez que abres crontab -e 



te preguntara que editar quieres usar, el mas facil es nano por lo tanto selecciona el 2



sino conoces mucho de crontab  puedes conocer mas aca


http://cirelramos.blogspot.com/2015/03/cron-y-contrab-ejecucion-como-root.html


luego dentro de crontab  agregamos la siguiente linea


*/45 * * * * /home/server/mensaje-inicio-server.sh >> /home/server/test.log 2>&1
#HASTA AQUI


CTRL+O para guardar


CTRL+X para salir


ese comando ejeuctara el script cada 45 minutos y enviara el resultado a un archivo log por si hay errores :D



bueno eso fue todo


Fuente: http://nosolotuitah.es/2015/07/17/instalar-telegram-terminal-ubuntu/



.





3 comentarios :

descargar automaticamente repo // auto git pull #git #ubuntu #server





como primera opcion podemos hacer descargarnos todo el repo en un zip con el siguiente comando es necesario buscar el token


1 vamos a profile settings




2 hacemos click en account







y ya tendremos nuestro token para ser usado en el siguiente comando


Terminal:
curl -Lk -o cirelramos.zip 'https://gitlab.com/zcqopx/pruebaparablogger/repository/archive.zip?private_token=dasd654a312das'



Terminal:
curl -Lk -o testFonax.md 'https://gitlab.com/zcqopx/preload/raw/master/README.md?private_token=312odajsldkjsa'





como segunda opción podemos usar ssh configuramos los parametros globales ojo si no han creado la llave ssh pueden mirar este tutorial



http://cirelramos.blogspot.com/2015/08/manejar-proyectos-con-gitlab-subir.html


ok, manos a la obra:


Terminal:
git config --global user.name "zcqopx"

Terminal:
git config --global user.email "zcqopx@gmail.com"




 OJO ESTE ES MI GITLAB USTEDES TIENEN OTRO USUARIO Y EMAIL


#entramos en la carpeta del proyecto antes creado

Terminal:
cd existing_folder 

#inicializamos git

Terminal:
git init 


#añadimos el repo

Terminal:
git remote add origin git@gitlab.com:zcqopx/pruebaparablogger.git 



#ahora sincronizamos los archivos locales con el origen del repo y el branch(rama), en este caso solo tengo la rama "master" es lo mas comun

Terminal:
git pull origin


por los pasos anteriores te debes dar cuenta que fue necesario colocar la clave de tu ssh para ejecutar el comando, para evitarnos esto y que se pueda ejecutar el script sin problemas utilizaremos el siguiente comando



Terminal:
ssh-add 



es posible que te de el error:


Could not open a connection to your authentication agent.


entonces ejecutaras


Terminal:
eval `ssh-agent -s`

y de nuevo el comando anterior: "ssh-add"

te pedira de nuevo la contraseña y ya quedara guardada mientras la session este activa :)



este comando por si quieres cancelar el anterior: eval $(ssh-agent)


instalamos keychain

Terminal:
apt-get install keychain






nos logeamos como root


Terminal:
sudo su




agregamos un comando para al entrar a root


Terminal:
nano /root/.bashrc 


y agregar


/usr/bin/keychain $HOME/.ssh/id_rsa
source $HOME/.keychain/$HOSTNAME-sh
#hasta aqui

PRESIONAN CTRL+O para guardar y CTRL+X para salir


salimos de root

Terminal:
exit


entramos de nuevo

Terminal:
sudo su





ahora el script


Terminal:
nano /root/cargarRepo.sh

copiamos lo siguiente

#!/bin/bash
source /root/.keychain/ubuntu-sh
#en linea anterior puede cambiar un poco en el ultimo archivo dependiendo el nombre de la maquina por lo tanto lo mejor es que hagan un
#ls -la /root/.keychain/
# y asi verifiquen el nombre del archivo-sh y remplazar por el nombre adecuado
cd /var/www;
echo "cambio de directorio";
#/usr/bin/git pull -q origin;
git pull origin
git fetch origin;
git checkout -f origin/master;
#hasta aqui




ahora en el contrab


Terminal:
crontab -e



*/1 * * * * /bin/bash -l -c 'sh /root/cargarRepo.sh > /root/cargarRepo-log'
#hasta aqui



con estos comandos estaria completa la actualizacion continua del repositorio, no solamente puede ser un repo o mejor aun una sola rama del mismo repo, cualquier duda comenta y lo mas pronto posible te la resuelvo

0 comentarios :

renombrar ethernet, ethernet oculto #ubuntu




debido a tener varios problemas con la luz mis puertos ethernet eth0 y eth1 se renombraron cosa que no me gusta ya que tengo una configuración especifica para cada puerto en el firewall entonces esto dejaba el servidor mal funcionando la solución para esto es simple.


 Ejecutamos el Siguiente comando:


Terminal:
gksudo gedit /etc/udev/rules.d/70-persistent-net.rules 

                     




ahora solo seria modificar el valor KERNEL=="eth*", NAME="eth3"


y cambiar el eth3 por otro que no este ocupado, reiniciar y ya estara nuestros cambios




ahora si tienes la configuración como deseas pero no te muestra los adaptadores al ejecutar:


Terminal:
 ifconfig -a


entonces es necesario que verifiques lo siguiente:


Terminal:
dmesg | grep eth



Terminal:
lshw -C network


en este ultimo comentario deberia especificar con que tarjeta logica (adaptador virtual esta asociado eth0, eth1, eth2, ethN)

logical name: eth1ahora si las tarjetas estan conectadas y las reconoce linux e igual no te las muestra como adaptador puedes probar con

Terminal:
sudo ifup -a




Fuente: http://askubuntu.com/questions/146076/network-is-not-working-anymore-ubuntu-12-04










Fuente: http://askubuntu.com/questions/217635/how-to-rename-an-ethernet-interface

0 comentarios :

Instalar #Mysql #Ubuntu #server







1. En la consola de comandos (shell) ejecutar el siguiente comando:

Terminal:
sudo apt-get install mysql-server

2. Seguir con los pasos del asistente de instalación y no olvidarse la clave asignada al superusuario
    root. Una vez instalado el servidor MySQL verificamos que el servidor se haya levantado a
    través del siguiente comando:
  


Terminal:
sudo netstat -tap | grep mysql


    El comando mostrará algo similar a lo siguiente, indicando el nombre de proceso asignado y que el
    servidor se encuentra escuchando (LISTEN).

tcp        0      0 UbuntuSrv:mysql *:*                     LISTEN      667/mysqld

3. El archivo de configuración del servidor MySQL se crea en el directorio

Terminal:
sudo nano /etc/mysql/my.cnf

    En éste archivo descomentar la línea:
  
bind-address = 127.0.0.1
  
   Y colocar la IP asignada al servidor, esto sirve para que el servidor acepte conexiones de clientes
    externos. Por ejemplo:
  
bind-address = 192.168.90.100

o si quieres desde cualquier ubicación

bind-address = 0.0.0.0
  
4. Reiniciar el servidor MySQL usando el comando:
   

Terminal:
sudo /etc/init.d/mysql restart


5. En la consola de comandos acceder a la consola de administración de MySQL usando:

Terminal:
mysql -u root -p

   NOTA: recordar la contraseña que se colocó para el usuario root en el paso 1.




6. Crear un usuario para realizar tareas administrativas.



Terminal:
use mysql;

Terminal:
GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'manager' WITH GRANT OPTION;
Terminal:
FLUSH PRIVILEGES;
Terminal:
QUIT;


   NOTA: en éste caso la contraseña para el usuario creado es manager, de preferencia cambiarlaa una más segura.



Ó tambien pudes agregarlo de la siguiente forma

creamos el usuario para uso local

Terminal:
CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
Terminal:
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
Terminal:
WITH GRANT OPTION;
ahora creamos el usuario para uso externo

Terminal:
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
Terminal:
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
Terminal:
WITH GRANT OPTION;
Terminal:
exit


ya con esto si tienes un cliente mysql o phpmyadmin lo puedes conectar con el usuario creado ya que tiene acceso permitido desde el exterior


Si pierdes la clave del usuario root

Finalizamos el proceso mysql
Terminal:
sudo /etc/init.d/mysql stop

Terminal:
sudo mysqld --skip-grant-tables &
Terminal:
sudo mysqld --skip-grant-tables &
Terminal:
mysql -u root mysql
luego de entrar en mysql colocamos la nueva clave, remplazar YOURNEWPASSWORD por tu clave

Terminal:
UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE User='root'; FLUSH PRIVILEGES; exit;
Terminal:
exit



Fuente: http://ingmmurillo.blogspot.com/2011/03/como-instalar-mysql-server-en-un.html
http://ubuntu.flowconsult.at/en/mysql-set-change-reset-root-password/









0 comentarios :

Instalar #Nginx y #PHP #Ubuntu 12.04



  1. Pasos para instalar nginx y php




        Añadimos los repositorios
    Terminal:
    echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/nginx-stable.list
    Terminal:
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
    Terminal:
    sudo apt-get update
    Terminal:
    sudo apt-get install nginx
  2. Iniciamos Nginx


    Terminal:
    sudo service nginx start
    ahora vamos a nuestro navegador y colocamos la ip del server o el dominio con que tenemos asociado nuestro servidor
  3. Instalación de PHP

    as
    Terminal:
    sudo apt-get install php5-fpm
  4. modificamos los archivos de configuracion de php


    Terminal:
     sudo nano /etc/php5/fpm/php.ini

    en la siguiente linea

    cgi.fix_pathinfo=1

    vas a remplazar el valor por 0


    Si este número se mantiene como 1, el intérprete PHP hará todo lo posible para procesar el archivo que está tan cerca de el archivo solicitado posible. Este es un posible riesgo de seguridad. Si este número se establece en 0, por el contrario, el intérprete sólo se procesará el camino-un archivo exacto alternativa mucho más segura. Guardar y salir. Tenemos que hacer otro pequeño cambio en el php5-FPM configuration.


    Terminal:
     sudo nano /etc/php5/fpm/pool.d/www.conf


     buscamos la linea:  listen = 127.0.0.1:9000


    y la remplamos por: listen = /var/run/php5-fpm.sock



    tambien es importante descomentar las siguientes lineas (quitar los ";" )


    listen.owner = www-data
    listen.group = www-data
    listen.mode = 0660




    reiniciamos php5-fpm


    Terminal:
    sudo service php5-fpm restart

  5. ahora configuramos el sitio disponible en nginx



    Terminal:
    sudo nano /etc/nginx/sites-available/default



    copia este contenido


    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www;
        index index.php index.html index.htm;

        server_name server_domain_name_or_IP;

        location / {
            try_files $uri $uri/ =404;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /usr/share/nginx/html;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }



  6. creamos los directorios sino estan creados


    Terminal:
    mkdir /var/www
  7. creamos un archivo index .php y colocamos un contenido de prueba



    Terminal:
    cd /var/www


    Terminal:
    sudo nano index.php

    copiamos dentro

    <?php
    phpinfo();
    ?>
    guardamos CTRL+O y cerramos CTRL+X


  8. reiniciamos el servidor y ya estara funcionando


    Terminal:
    sudo service nginx restart



si deseas darle mas seguridad a tus directorios puedes usar


location /css {
      if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
             return 403;
        }
    }

    location /js {
      if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
             return 403;
        }
    }



IMPORTANTE! LAS LINEAS ANTERIORES DEBEN ESTAR DENTRO DE LAS LLAVES DE SERVER  !!





Fuente:  https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-12-04

















0 comentarios :

#Observium monitoreo de servidores #ubuntu #debian

Pasos para la instalación





  1. instalar las dependencias

    ubuntu 15.04  o menor

    Terminal:
    apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-mcrypt php5-json php-pear snmp fping

    Terminal:
    apt-get install mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick

    ubuntu 16.04

    Terminal:
    apt-get install libapache2-mod-php7.0 php7.0-cli php7.0-mysql php7.0-mysqli php7.0-gd php7.0-mcrypt php7.0-json php-pear snmp fping mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick apache2




    al ajecutar el comando anterior te preguntaracual es la clave

    Terminal:
    apt-get install libvirt-bin
  2. Creamos un directorio y nos posicionamos en el


    Terminal:
    mkdir -p /opt/observium && cd /opt
  3. Descargamos el paquete y descomprimir


    Terminal:
    wget http://www.observium.org/observium-community-latest.tar.gz

    Terminal:
    tar zxvf observium-community-latest.tar.gz
  4. accedemos al directorio que se descomprimio

    Terminal:
    cd observium
  5. realizamos una copia para modficar los valores de la base de datos

    Terminal:
    cp config.php.default config.php


    abrimos el archivo con nano


    Terminal:
    nano config.php


    luego nos mostra los siguiente







    es necesario colocar el usuario y clave para conectarse a mysql (esos datos los colocaste al instalar las dependencias
  6. Ahora vaos a crear la base de datos

    Terminal:
    mysql -u root -p

    te pedira la clave del usuario root mysql

    Terminal:
    CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;



    Terminal:
    GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost'


    Terminal:
    IDENTIFIED BY '<observium db MI_CLAVE>';

    Terminal:
    exit
  7. MUY IMPORTANTE HACER LA MIGRACION A LA BASE DE DATOS


    Terminal:
     php includes/update/update.php


     
  8. ahora creamos el directorios de logs


    Terminal:
    mkdir logs

    Terminal:
    mkdir rrd

    Terminal:
    chown www-data:www-data rrd
  9. Verificamos que version de Apache tenemos


    Terminal:
    dpkg -l apache2
  10. ahora modificamos el archivo 000-default


    Terminal:
    echo >  /etc/apache2/sites-enabled/000-default 


    Terminal:
    nano  /etc/apache2/sites-enabled/000-default 


    y copiamos el siguiente codigo si tienes la version de apache 2.2

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /opt/observium/html
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /opt/observium/html/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog  ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog  ${APACHE_LOG_DIR}/access.log combined
        ServerSignature On
    </VirtualHost>
    








    Si tienes la version 2.4 copia el siguiente codigo:

    <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /opt/observium/html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /opt/observium/html/> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined ServerSignature On </VirtualHost>
  11. Habilitamos el mcrypt

    ubuntu 15.04 o inferior
    Terminal:
    php5enmod mcrypt

    ubuntu 16.04 o superior

    Terminal:
    phpenmod mcrypt


  12. Habilitamos la re-escritura


    Terminal:
    a2enmod rewrite

    Terminal:
    apache2ctl restart
  13. Agregar usuarios

    Terminal:
    cd /opt/observium



    Terminal:
    ./adduser.php <username> <password> <level>

    Terminal:
    ./adduser.php ubuntu mi-clave 10
  14. ahora agregaremos unas tareas automaticas en ctrontab


    Terminal:
    crontab -e


    copiamos al final lo siguiente


    33 */6 * * * sudo /opt/observium/discovery.php -h all >> /dev/null 2>&1
    *
    /5 * * * * sudo /opt/observium/discovery.php -h new >> /dev/null 2>&1
    *
    /5 * * * * sudo /opt/observium/poller-wrapper.py 2 >> /dev/null 2>&1




    Guardamos CTRL+O y salimos CTRL +X
  15. ahora vamos a configurar los clientes que monitorea Observium

    Terminal:
    sudo apt-get install snmpd snmp


    Realizamos una copia de seguridad


    Terminal:
    cp /etc/snmp/snmpd.conf  /etc/snmp/snmpd2.conf


    ahora editamos el archivo

    Terminal:
    nano /etc/snmp/snmpd.conf


    dentro del archivo copiamos lo siguiente

    ###############################################################################
    
    #agentAddress udp:161,udp6:[::1]:161
    view   all  included   .1.3.6.1.2.1.1
    view   all  included   .1.3.6.1.2.1.25.1
     rocommunity public  default    -V all
    # rouser   authOnlyUser
    rwcommunity  mi-contrasena
    sysLocation    Italia
    sysContact     micorreo@gmail.com
    proc  mountd
                                   # No more than 4 'ntalkd' processes - 0 is OK
    proc  ntalkd    4
                                   # At least one 'sendmail' process, but no more than 10
    proc  sendmail 10 1
    
    load   12 10 5
                                        #   send SNMPv1  traps
    trapsink     localhost public
                                        #   send SNMPv2c traps
     #trap2sink    localhost public
                                        #   send SNMPv2c INFORMs
    
    #hasta aqui


    Terminal:
    nano /etc/default/snmpd


    Cambia de:
    # snmpd options (usa syslog, cierra stdin/out/err).
    SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'
    Para:
    # snmpd options (use syslog, close stdin/out/err).
    #SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'
    SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf'


    Esto permitira que puedas conectar no solo de forma local el servicio snmpd
  16. reiniciamos el servicios para efectuar los cambios

    Terminal:
    service snmpd restart
  17. Para Agregar los clientes desde observium hacemos los siguientes pasos




    • nos logeamos por la web

    • entramos en la configuración  y seleccionamos añadir dispositivo

    • luego en la configuración colocas de primero la ip de la maquina que instalaste en snmpd si es la misma maquina puedes colocar 127.0.0.1 si es un servidor con dns coloca el dns sino coloca la url  mipagina.com y si esta en tu red local simplemente colocas la ip de esa maquina como el ejemplo



  18. Ahora solo falta ejecutar unos ultimos comandos para que observium actualice su configuración   con los dispositivos agregados


    Terminal:
    cd /opt/observium


    Terminal:
    ./discovery.php -h all


    Terminal:
    ./poller.php -h all


    ES NECESARIO REPETIR ESTE PROCEDIMIENTO AL AGREGAR UN NUEVO DISPOSITIVOCon esa configuración puedes buscar ya los dispositvos en el observium y veras que te muestra los valores



    FUENTES:
    http://www.observium.org/docs/debian_ubuntu/
                    
    https://raldaz.wordpress.com/2009/11/09/instalar-y-configurar-snmp-en-ubuntu/







0 comentarios :