miércoles, 17 de agosto de 2016

Cómo saber si un puerto está abierto en Linux

Hoy vamos a enseñarte las distintas herramientas que puedes usar en el terminal de Linux.

Nmap
Nmap es la primera herramienta que os traemos, un programa de código abierto usado para rastrear puertos que normalmente se usa para evaluar la seguridad en sistemas informáticos. Para saber si un determinado puerto está abierto en un ordenador o servidor con una IP determinada usaremos el siguiente comando:

nmap [IP del ordenador/servidor] -p [Puerto] | grep -i tcp

Este software se encarga de preguntar al host si el puerto esta abierto y luego usando el comando grep filtraremos tan sólo la información relacionada con el estado del puerto para eliminar información que no deseemos.

Nc
Nc es otra herramienta que nos permitirá saber si un determinado puerto está o no abierto, la ventaja con respecto a Nmap es que con el comando nc tenemos que teclear aún menos. Sólo tenemos que teclear esto en una ventana de comandos:

nc -zv [IP del ordenador/servidor] [Puerto]

En la opción -zv, la v nos da la información de si el puerto está o no abierto y la z se encarga de cerrar la conexión una vez hayamos comprobado el estado del puerto. Si no pusiesemos la z la conexión no se cerraría.

Telnet
Es otra alternativa a las otras herramientas, la ventaja es que es una herramienta muy completa que nos aportará mucha más información además de conocer el estado del puerto, usaremos el siguiente comando:

telnet [IP del ordenador/servidor] [Puerto]

La única desventaja que encontramos en este comando es la manera de cerrar la conexión, no es muy estable y en determinadas ocasiones tendremos que cerrar la ventana de terminal o parar el proceso.

De esta manera con unos pocos caracteres en el terminal podremos saber el estado de un puerto además de mucha más información, algo que nos resultará de mucha utilidad para prácticamente cualquier uso y que seguro necesitaremos usar en algún momento.

martes, 2 de agosto de 2016

Bloquear IP sospechosas en un servidor linux

En ocasiones detectamos alguna ip que esta intentando acceder al panel administrador de una web y sabemos por su ip que el acceso es de alguien que no debe poder entrar en ese sitio, podemos bloquear su ip para no dedicar más recursos al ataque. En ocasiones el ataque es en el puerto 25 intentando enviar correo electrónico de forma fraudulenta.

Para bloquear las ips, por el motivo que sea, podemos utilizar el comando route:

route add -host 24.92.120.34 reject     (bloquear la ip)

Para ver las ips que tenemos bloqueadas:

route -n    (ver ips bloqueadas)

En caso que queramos desbloquear una ip que hayamos bloqueado:

route del 24.92.120.34 reject        (desbloquear ip)

El comando route muestra la tabla de enrutamiento que reside en el kernel y también se usa para modificarla. La tabla que especifica cómo se enrutan los paquetes a un host se llama tabla de enrutamiento.

La sintaxis del comando route es:

route [opciones]

Las opciones disponibles:

route-opciones

Para poder bloquear rangos de ips lo podemos hacer del siguiente modo:

ip route add blackhole 22.118.20.0/24    (bloquear rango)

Para calcular exactamente las ips que bloqueamos podemos consultar la siguiente calculadora de rangos ip

lunes, 1 de agosto de 2016

Comandos Basicos de Git

a) Buscando Ayuda:
1. git help comando ó git comando --help
    Muestra la ayuda para ese comando
b) Creación de un repositorio:
2. git init
    Crea un repositorio en el directorio actual
3. git clone url
    Clona un repositorio remoto dentro de un directorio
c) Operaciones sobre Archivos:
4. git add path
    Adiciona un archivo o un directorio de manera recursiva
5. git rm ruta
    Remueve un archivo o directorio del árbol de trabajo
      -f : Fuerza la eliminación de un archivo del repositorio
6. git mv origen destino
    Mueve el archivo o directorio a una nueva ruta
      -f : Sobre-escribe los archivos existentes en la ruta destino
7. git checkout [rev] archivo
    Recupera un archivo desde la rama o revisión actual
      -f : Sobre-escribe los cambios locales no guardados
d) Trabajando sobre el código:
8. git status
    Imprime un reporte del estado actual del árbol de trabajo local
9. git diff [ruta]
    Muestra la diferencia entre los cambios en el árbol de trabajo local
10. git diff HEAD ruta
    Muestra las diferencias entre los cambios registrados y los no registrados
11. git add path
    Selecciona el archivo para que sea incluido en el próximo commit
12. git reset HEAD ruta
    Marca el archivo para que no sea incluido en el próximo commit
13. git commit
    Realiza el commit de los archivos que han sido registrados (con git-add)
      -a : Automáticamente registra todos los archivos modificados
14. git reset --soft HEAD^
    Deshace commit & conserva los cambios en el árbol de trabajo local
15. git reset --hard HEAD^
    Restablece el árbol de trabajo local a la versión del ultimo commit
16. git clean
    Elimina archivos desconocidos del árbol de trabajo local
e) Examinando el histórico:
17. git log [ruta]
    Muestra el log del commit, opcionalmente de la ruta especifica
18. git log [desde [..hasta]]
    Muestra el log del commit para un rango de revisiones dado
      --stat : Lista el reporte de diferencias de cada revisión
      -S'pattern' : Busca el historial de cambios que concuerden con el patrón de búsqueda
19. git blame [archivo]
    Muestra el archivo relacionado con las modificaciones realizadas
f) Repositorios remotos:
20. git fetch [remote]
    Trae los cambios desde un repositorio remoto
21. git pull [remote]
    Descarga y guarda los cambios realizados desde un repositorio remoto
22. git push [remote]
    Guarda los cambios en un repositorio remoto
23. git remote
    Lista los repositorios remotos
24. git remote add remote url
    Añade un repositorio remoto a la lista de repositorios registrados
g) Ramas:
25. git checkout rama
    Cambia el árbol de trabajo local a la rama indicada
      -b rama : Crea la rama antes de cambiar el árbol de trabajo local a dicha rama
26. git branch
    Lista las ramas locales
27. git branch -f rama rev
    Sobre-escribe la rama existente y comienza desde la revisión
28. git merge rama
    Guarda los cambios desde la rama
h) Exportando e importando:
29. git apply - < archivo
    Aplica el parche desde consola (stdin)
30. git format-patch desde [..hasta]
    Formatea un parche con un mensaje de log y un reporte de diferencias (diffstat)
31. git archive rev > archivo
    Exporta resumen de la revisión (snapshot) a un archivo
      --prefix=dir/ : Anida todos los archivos del snapshot en el directorio
      --format=[tar|zip] : Especifica el formato de archivo a utilizar: tar or zip
i) Etiquetas:
32. git tag name [revision]
    Crea una etiqueta para la revisión referida
      -s : Firma la etiqueta con su llave privada usando GPG
      -l [patrón] : Imprime etiquetas y opcionalmente los registros que concuerden con el patrón de busqueda
j) Banderas de Estado de los Archivos:
M (modified) : El archivo ha sido modificado
C (copy-edit) : El archivo ha sido copiado y modificado
R (rename-edit) : El archivo ha sido renombrado y modificado
A (added) : El archivo ha sido añadido
D (deleted) : El archivo ha sido eliminado
U (unmerged) : El archivo presenta conflictos después de ser guardado en el servidor (merge)