martes, 28 de julio de 2015

Netstat: Analizando la red y detectando problemas



netstat es una herramienta que proporciona un conjunto de comandos que permitirá saber qué está pasando en nuestra red. A lo largo de este artículo se explicarán algunas opciones básicas que permitirán entender mejor nuestra red y conocer qué programa puede estar causando problemas. 

Netstat es un paquete de herramienas de red

El comando netstat sirve para varias cosas, como mostrar estadísticas de la red, imprimir la tabla de rutas, mostrar conexiones activas y mucho más. Para cada una de las opciones de uso menciondas existe un comando específico que realiza la misma tarea. Pero netstat los abarca todos bajo un mismo comando, y además es multiplataforma. Lo cual quiere decir que podremos usarlo tanto en Windows, Linux o Mac.
Tras esta pequeña introducción, veamos algunas salidas de este comando:

Mostrar las conexiones de red

Es posible mostrar las conexiones que existen actualmente entre tu máquina y otras máquinas, así como sockets escuchando en un puerto para que otra máquina se conecte. También muestra qué programas están activos en la red:
$ sudo netstat -apA inet
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:sunrpc                *:*                     LISTEN      1775/rpcbind    
tcp        0      0 *:38768                 *:*                     LISTEN      1808/rpc.statd  
tcp        0      0 localhost:smtp          *:*                     LISTEN      2861/exim4      
tcp        0      0 *:17500                 *:*                     LISTEN      2477/dropbox    
tcp        0      0 hkr-pc.local:48985      wordpress.com:https     ESTABLISHED 3451/firefox.real
tcp        0      0 hkr-pc.local:60706      93.184.220.111:http     TIME_WAIT   -               
tcp        0      0 hkr-pc.local:60684      93.184.220.111:http     TIME_WAIT   -               
tcp        0      0 hkr-pc.local:44415      216.151.210.122:http    TIME_WAIT   -               
tcp        0      0 hkr-pc.local:43597      72.21.91.121:http       TIME_WAIT   -               
tcp        0      0 hkr-pc.local:35340      178-33-113-45.ovh.:http TIME_WAIT   -               
tcp        0      0 hkr-pc.local:36162      76.74.254.120:https     ESTABLISHED 3451/firefox.real
tcp        0      0 hkr-pc.local:44472      76.74.254.123:http      TIME_WAIT   -               
tcp        0      0 hkr-pc.local:35336      178-33-113-45.ovh.:http TIME_WAIT   -               
tcp        0      0 hkr-pc.local:43599      72.21.91.121:http       TIME_WAIT   -               
tcp        0      0 hkr-pc.local:37806      amung.us:http           ESTABLISHED 3451/firefox.real
tcp        0  13352 hkr-pc.local:34422      ec2-23-21-220-38.:https ESTABLISHED 2477/dropbox    
tcp        0      0 hkr-pc.local:43260      fa-in-f154.1e100.n:http ESTABLISHED 3451/firefox.real
tcp        0      0 hkr-pc.local:52897      wg-in-f95.1e100.ne:http TIME_WAIT   -               
tcp        0      0 hkr-pc.local:60689      93.184.220.111:http     TIME_WAIT   -               
tcp        0      0 hkr-pc.local:60687      93.184.220.111:http     TIME_WAIT   -               
tcp        0      0 hkr-pc.local:60685      93.184.220.111:http     TIME_WAIT   -               
tcp        0      0 hkr-pc.local:43335      wordpress.com:https     ESTABLISHED 3451/firefox.real
tcp        0      0 hkr-pc.local:52902      wg-in-f95.1e100.ne:http TIME_WAIT   -               
tcp        0      0 hkr-pc.local:44416      216.151.210.122:http    TIME_WAIT   -               
tcp       38      0 hkr-pc.local:58802      v-client-1a.sjc.d:https CLOSE_WAIT  2477/dropbox    
tcp        0      0 hkr-pc.local:57347      ec2-23-21-114-122.:http ESTABLISHED 3451/firefox.real
tcp        0      0 hkr-pc.local:43601      72.21.91.121:http       TIME_WAIT   -               
tcp        0      0 hkr-pc.local:60704      93.184.220.111:http     TIME_WAIT   -               
tcp        0      0 hkr-pc.local:41758      199.119.233.72.sta:http ESTABLISHED 3451/firefox.real
tcp        0      0 hkr-pc.local:60710      93.184.220.111:http     TIME_WAIT   -               
tcp        0      0 hkr-pc.local:52920      wordpress.com:http      ESTABLISHED 3451/firefox.real
tcp        0      0 hkr-pc.local:36232      76.74.254.123:https     ESTABLISHED 3451/firefox.real
tcp        0      0 hkr-pc.local:60688      93.184.220.111:http     TIME_WAIT   -               
tcp        0      0 hkr-pc.local:40181      sjc-not20.sjc.drop:http ESTABLISHED 2477/dropbox    
tcp        0      0 hkr-pc.local:60686      93.184.220.111:http     TIME_WAIT   -               
tcp        0      0 hkr-pc.local:43600      72.21.91.121:http       TIME_WAIT   -               
udp        0      0 *:bootpc                *:*                                 2405/dhclient   
udp        0      0 *:sunrpc                *:*                                 1775/rpcbind    
udp        0      0 *:678                   *:*                                 1775/rpcbind    
udp        0      0 localhost:712           *:*                                 1808/rpc.statd  
udp        0      0 *:17500                 *:*                                 2477/dropbox    
udp        0      0 *:mdns                  *:*                                 2298/avahi-daemon: 
udp        0      0 *:44290                 *:*                                 1808/rpc.statd  
udp        0      0 *:53066                 *:*                                 2405/dhclient   
udp        0      0 *:1900                  *:*                                 2905/minissdpd  
udp        0      0 *:45008                 *:*                                 2298/avahi-daemon:
Las parámetros pasados a netstat son; -a para mostrar todos los sockets, -p muestra la columna PID/Program, -A inet muestra solo sockets TCP/UDP. En Windows la opción -A inet puede omitirse y -p debe reemplazarse por -o. En Mac, no hay equivalente a -p y -A inet debe reemplzarse por -f inet. Para conocer los nombres de los programas en Mac usa lsof -i
El singnificado de cada columna es el siguiente:
Proto: Indica el protocolo usado por el socket, puede ser TCP o UDP (Son protocolos de red). TCP se usa para obtener conexiones en las que se asegura que todos los paquetes llegan a su destino, en el orden correcto. El problema es que se vuelve muy lento si la conexión es mala. UDP es mucho más rápido, pero puede perder paquetes o entregarlos en un orden incorrecto. En resumen, TCP se usa para navegar por internet y descargar ficheros y UDP se usa en videos streaming y juegos.
Recv-Q y Send-Q: Indican la cantidad de bytes que hay en cola para dicho socket. En Recv-Q datos esperando a ser leidos y en Send-Q a ser enviados. Normalmente ambas columnas han de estar a 0. De lo contrario puede que exista algún problema. En el ejemplo hay dos sockets con valores distintos a cero, los miraremos más adelante.
Local Address y Foreign Address: A qué host y puerto está conectado cada socket. La dirección local siempre será el ordenador en el que se está ejecutando netstat, en este caso se llama * hkr-pc*. Foreign Address puede ser cualquier otro pc en internet, o la misma máquina local. Aunque parezca algo extraño, en ocasiones es útil que en ambas columnas aparezca la máquina local, lo cual indica que dicha máquina se está comunicando con ella misma a través de la red.
State: Muestra el estado del socket. TCP dispone de una serie de estados, algunos de ellos son LISTEN (Esperando a que otra máquina establezca conexión),ESTABLISHED (Listo para comunicarse). En la lista aparecen varios más, como CLOSE WAIT, este estado indica que la máquina remota cerró la conexión, pero el programa local no ha seguido la petición y permanece abierto. Normalmente, un estado como este y cantidades distintas a cero en las columnas Recv-Q y Send-Q suelen ir de la mano. Otro estado que aparece en el ejemplo es TIME WAIT, puedes consultar una lista completa de los estados TCP en la referencias.
PID/Program name: El indicador de proceso del socket en ejecución y el nombre del programa ejecutando dicho proceso.
Procedamos a interpretar los resultados de netstat. En el ejemplo de arriba las direcciones de la columna Foreign adress aparecen cortadas. Para verlas completas es necesario ejecutar netstat con el parámetro -W:
$ sudo netstat -apWA inet | grep https
tcp        0      0 hkr-pc.local:50974      ec2-176-34-135-167.eu-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:48162      ec2-50-18-192-251.us-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:50145      ec2-46-51-197-88.eu-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:50149      ec2-46-51-197-88.eu-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:49490      fa-in-f113.1e100.net:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:48158      ec2-50-18-192-251.us-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:59060      mad01s08-in-f31.1e100.net:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:50147      ec2-46-51-197-88.eu-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:50976      ec2-176-34-135-167.eu-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:50972      ec2-176-34-135-167.eu-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:50973      ec2-176-34-135-167.eu-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:50977      ec2-176-34-135-167.eu-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:50144      ec2-46-51-197-88.eu-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:50148      ec2-46-51-197-88.eu-west-1.compute.amazonaws.com:https TIME_WAIT   -               
tcp        0      0 hkr-pc.local:50975      ec2-176-34-135-167.eu-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
tcp        0      0 hkr-pc.local:48163      ec2-50-18-192-251.us-west-1.compute.amazonaws.com:https ESTABLISHED 3619/firefox.real
Con el comando de arriba estoy mostrando únicamente las conexiones https establecidas con mi máquina. Ahora, sí que se ven las direcciones completas. Si te diriges a la dirección
ec2-176-34-135-167.eu-west-1.compute.amazonaws.com
podrás comprobar que dicha dirección pertenece al buscador duckduckgo. Y ha sido listada por netstat porque al momento de ejecutarlo tenía una pestaña del navegador abierta con el buscador del pato.
Veamos ahora la razón de que existan dos conexiones con datos pendientes en la cola de entrada y salida.
Ambas conexiones son de dropbox, una de ellas tiene el estado TCP en ESTABLISHED, así que de esa no hay que preocuparse, ya que está transmitiendo datos. La otra sin embargo tiene datos pendientes en la cola de entrada y estado TCP CLOSE WAIT, es decir, la máquina conectada a la nuestra ha cerrado la conexión, pero nuestro proceso local de dropbox no lo ha hecho. Lo cual quiere decir que aunque haya finalizado la tarea que se estaba llevando a cabo, no se han liberando los recursos que el socket había reservado. Estos escenários no deberían producirse, pero mientras no haya demasiados casos como este no debes preocuparte.
He comentado que en ocasiones es posible que tanto en la columna Local Address como en Foreign Address aparezca la dirección local de nuestra máquina. Este comportamiento lo usan algunos programas para conseguir que la aplicación sea multiplataforma, ya que la comunicación a través de la red no varía de plataforma a plataforma (Linux, Windows, mac ect.)
Otro de los posibles valores que puede aparecer en la columna Foreign Address es *:*, y si el tipo de conexión es TCP tendrá el estado LISTEN. Esto quiere decir que la máquina local está esperando a que otra máquina remota envíe datos. Ejemplos típicos pueden ser sshd (esperando a que alguien abra una conexión ssh), apache o nginx (Esperando a que alguien solicite una página web) etc.
Cuando se realiza una conexión externa, el programa local no suele preocuparse por el puerto local usado para la conexión. Esa es la razón por la que el puerto en el lado local no suele reconocerse y se traduce al nombre del protocolo como https, www etc.
Netstat también sirve para mostrar la tabla de rutas (Routing Table)

Imprimiendo la tabla de rutas (Routing Table)

La tabla de rutas significa dedidir dónde mandar un paquete en base a su destino. Un ejemplo de estas tablas es el siguiente:
$ netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         10.61.29.89     0.0.0.0         UG        0 0          0 eth1
10.61.29.89     *               255.255.255.255 UH        0 0          0 eth1
192.168.1.32    *               255.255.255.248 U         0 0          0 eth1
Una breve explicación del significado de las columnas:

Destination: Patrón con el que se compara la dirección de destino del paquete. Cuando se envia un paquete a internet, se comprueba esta tabla de arriba a abajo hasta que se cumpla el patrón, luego se envía. El valor 0 se usa como comodín, si usamos este patrón 192.168.1.0, las direcciones desde 192.168.1.1 hasta 192.168.1.255 serán valores válidos para dicho patrón.

Gateway: Indica dónde mandar el paquete que coincide con el patrón de la columna anterior. El * en esta columna significa “enviar localmente” (El destino estará en la misma red.)

Genmask: La máscara de subred. Se usa para determinar cuantos bits desde el principio de la ip se usan para identificar una subred.

Flags: Muestra qué flags se aplican a cada línea de la tabla. U viene de Up, indicando que dicha línea está activa. G significa que la línea usa un Gateway. H, indica que el enrutamiento se hace a una dirección de host completa.

MSS: Maximum Segment Size, parámetro TCP usado para dividir paquetes en partes más pequeñas cuando el destinatario indica que es capaz de trabajar con tamaños muy grandes. A dia de hoy, la mayoría de ordenadores no tienen problemas con esto, por lo que está fijado a 0.

Window: Igual que MSS, permite alterar un parámetro TCP. En este caso el default Window size, que indica cuantos paquetes TCP pueden mandarse antes de que uno de ellos sea de ACKnowledged. Suele estar a 0.

irtt: Initial Round Trip Time, puede ser usado por el Kernel para intentar adivinar la mejor configuración de parámetros para TCP. No suele usarse.

iface: Establece la interfaz de red a usar para enviar los paquetes.

Mostrar estadísticas e interfaces

También es posible, con netstat, mostrar las interfaces disponibles y listar algunas estadísticas de cómo se están comportando:
$ netstat -i
Kernel Interface table
Iface       MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0         0      0      0 0             0      0      0      0 BMU
eth1       1500 0    253744      0      0 0        153622      0      0      0 BMRU
lo        16436 0         4      0      0 0             4      0      0      0 LRU
El significado de cada columna es el siguiente:
Iface: Interfaces disponibles para las que se muestran las estadísticas. lo es la interfaz de loopback, una interfaz privada usada por la máquina para comunicarse consigo misma, como se vió arriba, este comportamiento es frecuente y proporciona mayor rendimiento.

MTU: Maximum Transmission Unit (Unidad Máxima de Transmisión) que la interfaz puede enviar de una sola vez.

RX-OK/ERR/DRP/OVR: Estadísticas sobre los paquetes que se han recibido. OK significa “Correctemente recibido”, “ERR” recibido pero con CheckSum incorrecto (ocurre cuando la conexión es mala), “DRP” eliminado porque el buffer está lleno (Ocurre cuando se reciben muchos paquetes en un periodo muy corto de tiempo), “OVR”, eliminado porque el kernel no pudo manejarlo a tiempo (Si esto ocurre, la máquina estaba muy ocupada).

TX-OK/ERR/DRP/OVR: Significan lo mismo que sus homólogos en la columna RX, pero para paquetes enviados por la interfaz.

FLG: Flags activas para la interfaz. “B” de “Capacidad de broadcast”, es decir, la interfaz es capaz de transmitir un paquete a todos los equipos de su misma subred. “M” de “capacidad de Multicast”, la interfaz puede enviar paquetes con múltiples destinos. “L” de “interfaz loopback”, la interfaz con dicho flag activa coloca todo que envía inmediatamente en su cola de recibido. “U” y “R” significan “Up”(Activa) y “running”(ejecutandose) respectivamente.
El motivo por el que el valor del “MTU” es mayor en la interfaz de loopback se debe a motivos de rendimiento, ya que no tendrá que partir los paquetes en trozos más pequeños.
Como se aprecia en el ejemplo, todo parece estar correcto, ya que las columnas de errores están a 0. Una opción interesante de este comando es añadirle la opción -c, es decir “netstat -ci”, para ver la tabla cada segundo, y comprobar así si hay algún error.
Como nota final, y aunque este no es un artículo patrocinado, considero que debo proporcionar un enlace a la Linux Academy, perteneciente al autor cuyo artículo he traducido.

NetStat: Tips para detectar ataques DDoS

 

Me he encontrado un artículo muy interesante en Linuxaria sobre como detectar si nuestro Servidor se encuentra bajo ataque DDoS (Distributed Denial of Service), o lo que es lo mismo, Ataque de Denegación de Servicios.
NetStat para evitar ataques DDoS
Este tipo de ataques es bastante habitual y puede ser el motivo por el cual nuestros servidores estén algo lentos (aunque también puede ser un problema de Capa 8) y nunca está de mas estar prevenidos. Para ello, se puede usar la herramienta netstat, la cual nos permite ver las conexiones de red, tablas de rutas, estadísticas de las interfaces y otras series de cosas.

Ejemplos de NetStat

netstat -na
Esta pantalla se incluyen todas las conexiones de Internet activas en el servidor y sólo las conexiones establecidas.

netstat -an | grep :80 | sort
Mostrar sólo las conexiones activas de Internet al servidor en el puerto 80 , que es el puerto http y ordenar los resultados. Útil en la detección de una sola inundación (flood) por lo que permite reconocer muchas conexiones provenientes de una dirección IP.
 
netstat -n -p|grep SYN_REC | wc -l
Este comando es útil para saber cuántos SYNC_REC activa se están produciendo en el servidor. El número debe ser bastante bajo , preferiblemente menos de 5 . En los incidentes de ataques de denegación de servicio o bombas por correo, el número puede ser bastante alto. Sin embargo, el valor siempre depende del sistema, por lo que un valor alto puede ser normal en otro servidor.
 
netstat -n -p | grep SYN_REC | sort -u
Haz una lista de todas las direcciones IP de los implicados.
 
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
Enumere todas las direcciones IP únicas del nodo que están enviando el estado de la conexión SYN_REC .
 
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Utilice el comando netstat para calcular y contar el número de conexiones de cada dirección IP que hace al servidor.
 
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Cantidad de direcciones IP que se conectan al servidor mediante el protocolo TCP o UDP.
 
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Verifique las conexiones marcadas como ESTABLECIDOS en lugar de todas las conexiones, y muestra las conexiones para cada IP.
 
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
Muestra y lista de direcciones IP y su número de conexiones que se conectan al puerto 80 en el servidor. El puerto 80 es utilizado principalmente por HTTP para peticiones Web.

Cómo mitigar un ataque DOS

Una vez que haya encontrado la IP que están atacando el servidor puede utilizar los siguientes comandos para bloquear su conexión a su servidor :
 
iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT
Tenga en cuenta que usted tiene que reemplazar $IPADRESS con las direcciones IP que se han encontrado con netstat.
Después de la cocción el comando anterior, MATAR todas las conexiones httpd para limpiar su sistema y reiniciarlo posteriormente usando los siguientes comandos:

killall -KILL httpd
service httpd start # Para los sistemas de Red Hat
/etc/init/d/apache2 restart # Para sistemas Debian

 

viernes, 24 de julio de 2015

Aviso

Si alguien encuentra publicado su informacion en este sitio quiero que sepa que lo uso para tener guardados todos los temas que me interesan en un solo lugar y como estan en su mayoria muy bien explicados los atesoro !!


Por eso si los ven aca es porque me olvide de ponerlos como borrador para que no se vean !!  Y pido mil disculpas al respecto !!



Comandos avanzados de SSH – SSH Tips & Tricks


1) Acceso SSH sin contraseña:

ssh-copy-id user@host
Generamos las llaves mediante ssh-keygen y luego las copiamos al equipo para permitir el acceso sin clave.

2) Crear un tunel desde un puerto local a un equipo remoto en puerto 80:

ssh -N -L2002:localhost:80 equiporemoto
Nos permite acceder a un sitio web a través de http://localhost:2002/

3) Conectar micrófono a un equipo remoto:

dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
Nos permite comunicar nuestro microfono con la salida de audio del equipo remoto.

4) Comparar un archivo remoto con uno local:

ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
Útil para saber si un archivo local es idéntico a uno remoto.

5) Montar unidad a través de SSH

sshfs name@server:/path/to/folder /path/to/mount/point
Permite montar un directorio en forma remota, requiere SSHFS: http://fuse.sourceforge.net/sshfs.html

6) Conexión SSH con un host intermedio:

ssh -t reachable_host ssh unreachable_host
Podemos acceder a un equipo inaccesible desde nuestra red, pero que es accesible desde une red remota. Hacemos una conexión con un intermediario que nos permite acceder.

7) Copiar de host1 a host2 mediante el equipo local:

ssh root@host1 “cd /somedir/tocopy/ && tar -cf – .” | ssh root@host2 “cd /samedir/tocopyto/ && tar -xf -”
Útil cuando dos equipos no pueden conectarse en forma directa, utilizamos nuestro equipo como intermediario.

8) Ejecutar programas de entorno gráfico en forma remota:


ssh -fX <user>@<host> <program>
El servidor SSH requiere de la siguiente configuración:
X11Forwarding yes # default en Debian
Recomendable también:
Compression delayed

9) Crear una conexión persistente:

ssh -MNf <user>@<host>

10) Conectar salida de video por SSH:

ssh -t remote_host screen -r

11) Port Knocking!

knock <host> 3000 4000 5000 && ssh -p <port> user@host && knock <host> 5000 4000 3000
Knock para activar servicio SSH y para cerrar.
Ejemplo:
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn

12) Remover una línea de texto:

ssh-keygen -R <the_offending_host>

13) Ejecutar comandos complejos sobre SSH sin comillas de escape:

ssh host -l user $(<cmd.txt)

14) Copiar una base de datos MySQL a un servidor nuevo:

mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost “mysql -uUSER -pPASS NEW_DB_NAME”

15) Quitar una línea de un archivo de texto, útil para eliminar las alertas: “ssh host key change”

sed -i 8d ~/.ssh/known_hosts

16) Copiar la clave pública de SSH s un servidor que no tiene ssh-copy-id

cat ~/.ssh/id_rsa.pub | ssh user@machine “mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys”
Nos permite acceder a un equipo remoto sin necesidad de la contraseña.

17) Test de velocidad SSH

yes | pv | ssh $host “cat > /dev/null”
Nos muestra en vivo la transferencia, envia la salida a /dev/null
Es necesario contar con pv instalado:
Debian: ‘apt-get install pv’
Fedora: ‘yum install pv’ (‘extras’ repository)

18) Establecer una ventana GNU a la cual es posible reconectarse:

ssh -t user@some.domain.com /usr/bin/screen -xRR

19) Continuar scp para un archivo grande:

rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file
Permite resumir una copia scp mediante rsync.
Requiere rsync en ambos hosts.
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file local -> remote
o
rsync –partial –progress –rsh=ssh $user@$host:$remote_file $destination_file remote -> local

20) Analizar tráfico ssh remoto mediante wireshark

ssh root@server.com ‘tshark -f “port !22″ -w -’ | wireshark -k -i -
Utilizando tcpdump:
ssh root@example.com tcpdump -w – ‘port !22′ | wireshark -k -i -

21) Abrir una sesión SSH en por tiempo indefinido:

autossh -M50000 -t server.example.com ‘screen -raAd mysession’
Ideal para conexiones inestables o cuando se requiere cambiar de servicio WiFi.

22) Mayor seguridad en la conexión:

ssh -4 -C -c blowfish-cbc

23) Balanceo de ancho de banda:

tar -cj /backup | cstream -t 77k | ssh host ‘tar -xj -C /backup’
Comprime y limita el ancho de banda a 77k bit/s.

24) Transferir la clave pública a través de SSH:

ssh-keygen; ssh-copy-id user@host; ssh user@host

25) Copiar stdin al buffer de tu X11:

ssh user@host cat /path/to/some/file | xclip

martes, 14 de julio de 2015

Ejemplos codigo pdo sqlite pragma sqlite_master