Comandos Frecuentes Linux

Este post surgió de mis notas mientras aprendía Linux y no había IA, así que encontrarás que unos comandos son de principiante y otros más avanzados, pero todos cumplen su función y recuerda que en Linux hay muchas maneras de hacer lo mismo.

También recuerda buscar con CTRL+F con acentos y sin acentos, a veces lo escribía con teclado en inglés y no era fácil poner los acentos. Por ejemplo si quieres ver como se pone una ip fija en CentOS busca “direccion” así sin acento y vas saltando entre las respuestas hasta que encuentres lo que buscas.

Son comandos principalmente Debian y RedHat

Índice

Comandos Generales

– Pedir ayuda de cualquier comando

Linux

man <comando>

Ejemplo: man grep

– Como particionar el disco para usar Linux partition – Verifica, crea, elimina particiones

Linux

fdisk /dev/hda

– Crea una particion en el disco duro primario

Linux

mkfs -t ext2 -c /dev/hda1

-t especifica el tipo de particion este caso es ext2 -c checa por sectores defectuosos antes de formatear

– Tamaño recomendado (varia según para lo que vaya a emplear Linux) /boot 102 a 150 Mb /swap el doble de memoria fisica / (root) el resto del disco Ext3 es mejor = ext2 with journaling

– limpia la pantalla

Linux

clear 

– Resetea terminal a los valores por default

Linux

reset 

– Muestra informacion de usuarios del sistema

Linux

finger 

– Muestra usuarios conectados al sistema actualmente

Linux

who 

– muestra quien esta conectado actualmente y sus tareas, sessions sesiones

Linux

w 

– muestra el nombre del usuario actual

Linux

whoami 

– muestra numeros asociados con tu cuenta de usuario y nombres de grupo

Linux

id 

– muestra fecha actual y hora

Linux

date

– muestra el calendario del mes actual

Linux

cal 

– ver contenido de archivos

Linux

cat 

– sale del shell actual

Linux

exit 

– muestra informacion en la pantalla

Linux

echo 

– muestra el shell actual

Linux

echo $SHELL 

– Variable Shell

Linux

$ 

– Variable especial home directory (por ejemplo “cd ~” te lleva a /home/usuario

Linux

~ 

– ejecucion de comando en background ejemplo: “nmap -O 192.168.1.1-24 &” ejecuta el comando en el background y puedes siguir teclando comandos

Linux

& 

– Redireccion entrada/salida

Linux

< << > >> 

– pipe para encadenar comandos, ejemplo: “cat archivo.txt | grep nombre” dos comandos combinados

Linux

| 

– Shell wildcards comodines, ejemplo: “ls *.txt”

Linux

?[]* 

– Metacaracters comilla

Linux

' " \ 

– Substitucion de comando

Linux

` 

– Agrupacion de comandos

Linux

() {} 

– Cancelar la ejecución de un comando

Linux

CTRL+C

Es decir mantener presionada la tecla control (ctrl), luego presionar la tecla C, despues soltar ambas –Listar archivos

Linux

ls -l

– mostrar el número de archivos en un folder o directorio

Linux

echo *.* | wc

– mostrar el número de directorios en un folder o directorio

Linux

echo */ | wc

– ver último archivo modificado | Archivo más reciente

Linux

ls -Art | tail -n 1

Visualización, Búsqueda y Procesamiento de Texto

Sección 2: Visualización, Búsqueda y Procesamiento de Texto

–ver las últimas 10 líneas de archivos de texto

Linux

tail <nombrearchivo>

– Si deseas ver mas de 10 líneas ejecuta ejemplo ver ultimas 30 líneas

Linux

tail -30 <nombrearchivo>

para ver los ultimos cambios que va teniendo el archivo, útil para ver logs, correo, etc tail -f

–ver primeras 10 lineas de archivos de texto

Linux

head <nombrearchivo>

si deseas ver mas de 10 lineas ejecuta ejemplo ver las primeras 30 lineas head -30

–Listar solo directorios

Linux

ls -l|grep ^d
ls -p |grep /
ls -l | egrep '^d'

– eliminar archivos con la extensión *.xxx en todo el disco

Linux

find / -type f -name "*.xxx" -exec rm {} \;

Archivos y Directorios

Sección 3: Archivos y Directorios

– Eliminar folders / directorios tener PRECAUCION con la opcion -rf ya que puedes eliminar algo que no desees mejor asegurate antes de ejecutarlo – Borrar folders / directorios

Linux

rm -rf foldername

– borrar folder vacios / directorios vacios

Linux

rmdir <nombredelfolder>

– eliminar todos los archivos excepto un archivo o directorio, por ejemplo: eliminar todos los archivos del directorio actual excepto el directorio que se llama wiki

Linux

shopt -s extglob
rm -rf -v !("wiki")

–copia todo el contenido del CD rom al folder install

Linux

cp -av /mnt/cdrom /install

–Buscar texto en archivos con grep Ejemplos:

Linux

grep "spc_eee1.gif" *
grep -r -i "textoAbuscar" *.*

-r = Recursivo, osea se mete a los subfolders
-i = ignora si estan en mayusculas o minusculas

– Buscar texto en archivos y mostrar el número de línea

Linux

grep -nr textoabuscar

-r = recursivo
-n = regresa el número de línea donde se encontró el texto

– El comando awk sirve para buscar y manipular datos en archivos de texto estructurado como archivos separados por coma (csv) o archivos separados por espacios. Por ejemplo para filtrar las IPs de un log de apache

Linux

awk '{print $1}' access-hackvolution.log

– En el ejemplo anterior se repetirán mucho las IPs para que solo aparezca una coincidencia, podemos emplear:

Linux

awk '{print $1}' access-hackvolution.log |sort |uniq

– Sort ordena los resultados y uniq solo deja los resultados únicos. Otra cosa que podríamos necesitar, es el ver cuántas veces se repite una IP en el archivo:

Linux

awk '{print $1}' access-hackvolution.log |sort |uniq -c |sort -rn

uniq -c cuenta el número de coincidencias sort -rn ordena en -reverse numerical- es decir de forma numérica del mayor al menor

– Buscar texto en los scripts sh que contengan el texto user

Linux

find / -name '*.sh' 2>/dev/null | xargs grep -i 'user'

– Buscar los archivos con extensión .ksh, .sh, .pl .py .zsh .bash .bsh .sql

Linux

find / -type f \( -iname \*.ksh -o -iname \*.sh -o -iname \*.pl -o -iname \*.py -o -iname \*.zsh -o iname \*.bash -o -iname \*.bsh -o -iname \*.sql \)

– Buscar archivos de texto que inicien con los caracteres #! Y que pertenezcan a cierto usuario

Linux

find / -user $UID -type f | while read fn; do head -n1 "$fn" | grep -q "^#\!" && echo "$fn" && chmod 755 "$fn"; done

– Buscar cadena de caracteres password en archivos script

Linux

grep --include=\*.{ksh,sh,pl,py,zsh,bash,bsh,sql} -rnw '/' -e "password"

– Otras opciones para buscar texto en archivos

Linux

grep 'user' $(find / -name '*.sh')
find / -name '*.sh' -exec grep 'texto' {} \;

Ejemplos desde: http://unix.stackexchange.com/questions/20262/how-do-i-pass-a-list-of-files-to-grep – hacer cat y remover comentarios # en carchivos .conf también remueve espacios antes del hash

Linux

cat /etc/squid/squid.conf | egrep -v "^\s*(#|$)"

– remover primer y último carácter, por ejemplo tenemos este texto:
[A6014201]
[A6144792]
[A6005026]

Linux

cat lista.txt | cut -c 2- | sed 's/.$//' > clean-lista.txt
y después del comando quedaría así:

A6014201
A6144792
A6005026

– Para obtener las IPs válidas de un archivo de texto usando regular expresions RegEx:

Linux

grep -oE '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file.txt

–Checar el sistema de inicio

Linux

cat /etc/inittab

–montar un floppy con formato MSDOS

Linux

mount -t msdos /dev/fd0 /floppy

– montar cd-rom

Linux

mount cd-rom
mount -t iso9660 /dev/cdrom /media/cdrom/

– montar USB o disco externo

Linux

mount /dev/sdb1 /media/usb
– Montar en otro directorio
Linux

-- Mount /dev/hda2 /home

– Montar particion NTFS en linux

Linux

mount -t ntfs-3g /dev/sda2 /media/DiscoLocalC -o force

– checar si linux reconoció un disco o un hardware que se acaba de conectar?

Linux

dmesg
dmesg |grep sdb

– descomprimir un archivo con extensión zip

Linux

tar -xzf [filename]

– descromprimir archivos .zip

Linux

unzip filename

– listar archivos que se encuentran dentro del archivo zip

Linux

unzip -l filename

– Como ejecutar un comando cada determinado tiempo

Linux

watch -n 300 df -h

El anterior comando ejecuta cada 300 segundos el comando df -h –Archivo de configuración de red para la interfaz eth0 (direccion ip, default gateway, MAC address, etc) en Fedora En Fedora y Derivados RedHat

Linux

cat /etc/sysconfig/network-scripts/ifcfg-eth0

En Ubuntu y Derivados Debian

Linux

cat /etc/sysconfig/network
Ejemplo archivo de configuracion CentOS
Linux

HWADDR=00:08:A2:0A:BA:B8
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.2.203
PREFIX=24
GATEWAY=192.168.2.254
DNS1=192.168.2.254
DNS2=8.8.8.8
DNS3=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
# Disable ipv6 #
IPV6INIT=no
NAME=eth0
# This is system specific and can be created using 'uuidgen eth0' command #
UUID=41171a6f-bce1-44de-8a6e-cf5e782f8bd6
DEVICE=eth0
ONBOOT=yes
– Reinicar servicio de red sin hacer flush

Linux

systemctl restart network

///////////////// Busqueda de archivos y texto dentro de archivos ////////////////////////////// –Buscar archivos en todo el disco duro incluyendo unidades montadas – Busca archivo de nombre miarchivo.htm

Linux

find / -name 'miarchivo.htm'

– Busca archivos que inicien con “log-” ejemplo: log-20100724.log, log-20200725.log, etc.

Linux

find -name 'log-*'

– Busca archivos cuyo tamaño sea mayor a 1000 Kb

Linux

find -name '*' -size +1000k<

– Buscar archivos con tamaño mayor a 50Mb

Linux

find . -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

– Buscar archivos grandes cuyo tamaño sea mayor a 1Gb

Linux

 find / -type f -name '*' -size 2G

-iname busca archivos sin ser sensitivo a mayusculas minusculas -name busca archivos con el nombre siendo sensitivo a matyusculas minusculas. Si buscas por un archivo llamado “MiArchivo” y lo buscas con el siguiente comando: find / -name miarchivo (no lo encontraras) deberas usar el comando: find / -iname miarchivo o bien find / -name MiArchivo

Mas ejemplos en: http://linux.about.com/od/commands/a/blcmdl1_findx.htm – Para buscar todos los archivos “grandes” mayores a 20 Mb en todo el equipo

Linux

find / -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

– Buscar archivos grandes o mayores a cierto tamaño

– Este comando encontrará los archivos en todo el disco duro que sean mayores a 100 Mb

Linux

find / -size +102400k

– Buscar los archivos más grandes del directorio actual, regresa los 10 más grandes, modificar el número de head para traer más y menos archivos

Linux

du -hs * | sort -rh | head -10

– Buscar los archivos más grandes del directorio actual incluyendo subdirectorios, regresa los 10 más grandes, modificar el número en head para regresar más o menos archivos

Linux

du -Sh | sort -rh | head -10 

– ver el tamaño de las carpetas ordenadas del más pequeño al más grande

Linux

du -hs * | sort -h

– extraer IPs de un csv por ejemplo Rapid7 y quitar repetidas y ordenarlas en order númerico

Linux

cat tercer_rango.csv|cut -d"," -f1|sort -u |sort -t . -k 3,3n -k 4,4n > tercer_rango.txt

– Emplea el siguiente comando para ver los tamaños de los archivos:

Linux

  find / -size +103400k | xargs ls -laAh

– Emplea “find .” para buscar solamente en el directorio actual y ver los tamaños de los archivos

Linux

  find . -size +103400k | xargs ls -laAh

–Para buscar archivos que contengan guiones o signos de puntuación en el nombre emplea el comando

Linux

find / -iname <inicionombre'*'>

Ejemplo: find / -iname ‘bittorrent*’

encontrara archivos con nombres como bittottent-course, bittorrent.mo, bittorrent-4.4.0, etc

Mas info en: http://www.phpman.info/index.php/info/find ver linux wildcards http://www.codecoffee.com/tipsfor/articles/26-1.html –Buscar en todos los archivos *.htm que tengan el texto “wants to contact you”

Linux

find ./ -name *.htm |xargs grep "wants to contact you"

equivalente en windows find “spc_eee1.gif” . –Buscar archivos excluyendo / excluir un folder en especial, por ejemplo tmp

Linux

find / \( ! -name tmp -o -prune \) -name "file.rar" -print 2>/dev/null

–Otro comando para buscar arvhivos es el siguiente aunque el disco duro debe estar indexado para que funcione correctamente, en caso de no encontrar el archivo buscado, emplear find que no requiere de un indice.

Linux

locate <nombredelarvhivoabuscar>

///////////////// FIN Busqueda de archivos y texto en archivos ////////////////////////////// – descargar archivos del web

Linux

wget http://librosgratis.com/pythonforbegginers.pdf

– descargar todo un index of de libros

Linux

wget --recursive --no-parent https://repkam09.com/files/packt/

Para evitar que se copie el index.htm que se autogenera wget -r -np -R “index.html*” https://repkam09.com/files/packt/

-r = recursive -np = no parent -R = reject

///////////////// Cambiar Fecha y hora ////////////////////////////// – cambiar fecha y hora

Linux

date MMDDhhmmyyyy

donde MM = mes DD = dia hh=hora mm= minutos yyyy= año Por ejemplo para poner la fecha y hora a: 9:07pm del 31 de Mayo 2008 date 053121072008

– Mostrar la fecha actual en el formato aaaa-mm-dd

Linux

date -I

– Mostrar la fecha actual en formato aaaammddhhmm

Linux

date +%Y%m%d%H%M%S

– Para cambiar la zona horaria (time zone) 1. Para Ubuntu:

Linux

dpkg-reconfigure tzdata

http://webonrails.com/2009/07/15/change-timezone-of-ubuntu-machine-from-command-line/ 1.- Firmado como root, verifica que time zone esta usando tu sistema con el comando “date”. Veras algo como “Mon 17 Jan 2005 12:15:08 PM PST”, PST en este caso es el timezone actual. 2.- Cambia al directorio /usr/share/zoneinfo en este directorio encontraras una lista de regiones de zona horaria (time zone regions) si vives en Canada, Estados Unidos o Mexico el directorio es “America” 3.- Es buena idea respaldar la anterior configuracion de timezone copiando a una directorio diferente como: mv /etc/localtime /etc/localtime-old

4.- Crea un symbolic link desde el timezone apropiado a /etc/localtime. Ejemplo: ln -sf /usr/share/zoneinfo/America/Mexico_City /etc/localtime

5.- Si tienes la utilería rdate, actualiza la hora actual ejecutando: /usr/bin/rdate -s time-a.nist.gov

6.- Configura la entrada de ZONE en el archivo /etc/sysconfig/clock (eje: ZONE=“America/Mexico City”) 7.- Configura el reloj del hardware ejecutando: /sbin/hwclock –systohc

Pasos basados en: http://www.wikihow.com/Change-the-Timezone-in-Linux – Para cambiar el TimeZone en Fedora RLEH 5 el comando es:

Linux

system-config-date

///////////////// FIN Cambiar Fecha y hora ////////////////////////////// –Enviar mensaje a otro usuario mediante comando

Linux

wall "Nada mas jugando"

– Enviar mensaje a otra terminal directamente, esto es útil por ejemplo cuando tienes una terminal en modo gráfico que no recibe wall por no estar registrada como una terminal tal cual, el primer paso es sacar el ID de la terminal a la que le quieres enviar mensaje con el comando:

Linux

tty

Por ejemplo la respuesta podría ser: /dev/pts/7

ya que conocemos el número lo ponemos así echo “Naa mas jugando” > /dev/pts/7

– Desactivar la recepcion de mensajes con wall

Linux

mesg n

– Para enviar un mail desde linea de comando

Linux

echo "20 minutos para la junta" | /bin/mail -s "Meeting" micorreo@miservidor.com

– compilar un programa en c

Linux

gcc -o nombreejecutable sourcecode.c

– Kernel version, realese, sistema operativo en Fedora o Red Hat

Linux

uname -a

cat /etc/redhat-release

– Version Ubuntu – Version BackTrack

Linux

lsb_release -a

–Checar tipo de procesador

Linux

uname -m o

cat /proc/cpuinfo

– crear imagen .iso de un CD-ROM

Linux

dd if=/dev/hdc of=/home/username/cdcopy.iso

Desmontar la unidad de cd rom primero, ejemplo: umount /dev/hdc

otra opcion de crear imagen .iso es mkisofs mkisofs -r -v -J -l -o /opt/isocopymkiso.iso /media/PIAE_6/

– Quemar discos desde imagen ISO

Linux

cdrecord -v -pad speed=1 dev=ATAPI:1,0,0 src.iso

Modificar el parametro dev para adaptarlo al tipo de CD ROM que tenga la computadora en question ///////////////// Bash Shell ///////////// – Ver el shell actual echo $SHELL

– Ver los shells disponibles

Linux

cat /etc/shells

–Ciclo for para realizar tareas repetitivas ejemplo ping a un rago de IPs desde el shell

Linux

for i in $(seq 1 1 10); do ping 192.168.16.$i -c 1; done

–Otra forma sería

Linux

for i in $(seq 20 -1 1)

do echo $i ping 192.168.16.$i -c 1 done

-ciclo for para ejecutar comandos que se leen desde un archivo for word in cat notes.txt; do bash -c $word; done;

– ciclo for para hacer ping a varias IPs y ver cuales responden utiliza un tipo de grep or

Linux

for i in $(seq 241 1 254); do ping 10.10.10.$i -c 1; done | grep 'statistics\|packets'

– ciclo while para ejecutar comandos que se leen desde un archivo

Linux

while read word; do bash -c $word; done < notes.txt

— 172.16.4.20 ping statistics —

Linux

1 packets transmitted, 0 received, 100% packet loss, time 0ms

19 PING 172.16.4.19 (192.168.16.19) 56(84) bytes of data. –Mover archivos uno por uno cuando aparece el error como:

Linux

-bash: /bin/mv: Argument list too long

for i in find . -name ap\* do mv $i .. done


Usuarios, Grupos y Permisos

– cambiar password

Linux

passwd <nombreusuario>

Ejemplo: useradd -c “Luis Moreno” morenol

-c = campo GECOS el cual es usado regularmente para la descripcion del usuario passwd mi_password – Otro ejemplo sin embargo varias de las opciones ya son ejecutadas por default en RedHat, Fedora, CentOS, se recomienda usar el ejemplo anterior

Linux

/usr/sbin/useradd -d /home/lmoreno -s /bin/bash -c "Luis Moreno" lmoreno && mkdir /home/lmoreno && chown lmoreno /home/lmoreno && passwd mysupapassw0rd

– Mismo que el anterior pero sin establecer el password para mayor seguridad

Linux

/usr/sbin/useradd -d /home/lmoreno -s /bin/bash -c "Luis Moreno" lmoreno && mkdir /home/lmoreno && chown lmoreno /home/lmoreno

–borrar usuario

Linux

deluser <nombredeusuario>

Ejemplo: deluser -r dsantos

-r = remueve el directorio home del usuario y el mailbox del usuario –Ver usuarios del sistema

Linux

cat /etc/passwd

–Ver grupos del sistema

Linux

cat /etc/group

–Agregar un grupo

Linux

groupadd <nombredelgrupo>

– Para bloquear un usuario o para desactivar usuario

Linux

agregar el signo "+" delante de la línea del usuario en el archivo /etc/passwd

– Para bloquear con el comando passwd

Linux

passwd -l <nombreUsuario>

–Agregar un usuario a un grupo existente Por ejemplo para agregar el usuario luis al grupo secundario/suplementario web con el comando usermod

Linux

usermod -a -G web luis

– cambiar el grupo primario de un usuario

Linux

usermod -g www luis

———— FIN Manejo de usuarios ——————-

———— Politicas de password ———————

Editar el archivo /etc/login.defs y modificar los parametros al gusto

Linux

# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
# En español
# PASS_MAX_DAYS Numero maximo de dias que un password puede ser usado
# PASS_MIN_DAYS Numero minimo de dias permitidos para poder cambiar un password
# PASS_MIN_LEN Numero minimo de caracteres permitidos para un password
# PASS_WARN_AGE Numero de dias para envio de un aviso de que el password va a expirar
#
# Ver ejemplo abajo

PASS_MAX_DAYS 60
PASS_MIN_DAYS 0
PASS_MIN_LEN 8
PASS_WARN_AGE 10
Para cuentas que fueron creadas sin una politica de passwords el comando “chage” puede ser usado para crear una. Para hacer obligatorio el uso de passwords robustos, necesitas agregar el modulo pam_cracklib.so al grupo password management en /etc/pam.conf (o la definicion aplicable en /etc/pam.d) La administracion de passwords es algo tedioso, pero es una de las tareas mas importantes para reforzar la seguridad de un servidor. Esta al pendiente a los documentos de Tsares donde se explican los pasos para reforzar la seguridad de servidores Linux.

———— FIN Politicas de password ———————

//////////////// FIN administracion de usuarios ////////////////////

– Para obtener informacion de DNS, IPs, MX records, etc

Linux

host -a www.luismoreno.io

-a equivale a -v -t * “query type all”

Linux

dig any www.tsares.net

-any = todos los tipos de query

– Para hacer un reverse lookup es decir tengo la IP pero quiero saber cual es el nombre que tiene asignado

Linux

dig -x <direccion IP>

ejemplo:

Linux

dig -x 205.178.145.65


Red e IP

–Archivo de configuración de red para la interfaz eth0 (direccion ip, default gateway, MAC address, etc) en Fedora En Fedora y Derivados RedHat

Linux

cat /etc/sysconfig/network-scripts/ifcfg-eth0

En Ubuntu y Derivados Debian

Linux

cat /etc/sysconfig/network
Ejemplo archivo de configuracion CentOS
Linux

HWADDR=00:08:A2:0A:BA:B8
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.2.203
PREFIX=24
GATEWAY=192.168.2.254
DNS1=192.168.2.254
DNS2=8.8.8.8
DNS3=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
# Disable ipv6 #
IPV6INIT=no
NAME=eth0
# This is system specific and can be created using 'uuidgen eth0' command #
UUID=41171a6f-bce1-44de-8a6e-cf5e782f8bd6
DEVICE=eth0
ONBOOT=yes
– Reinicar servicio de red sin hacer flush

Linux

systemctl restart network

//////////////////////// Direccionamiento IP, Ruteo, arp //////////////////////////

– Archivo de configuracion IP estatica (RedHat y derivados como Fedora)

Linux

vi /etc/sysscripts/ifcfg-eth0

Linux

DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=00:0C:29:C8:AA:7C
IPADDR=192.168.16.3
NETMASK=255.255.255.0

GATEWAY=192.168.16.1
NETWORK=192.168.16.0
ONBOOT=yes
TYPE=Ethernet
– Configuracion para IP dinamica DHCP Configuracion DHCP

Linux

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
– Cambiar IP con el comando ifconfig

Linux

ifconfig eth0 192.168.1.5 netmask 255.255.255.0

– Para ver la direccion IP actual de una interfaz

Linux

ifconfig <interfaz>

Por ejemplo, el siguiente comando mostrara la configuracion actual de la primer interfaz de red: ifconfig eth0

– Cambiar MAC address. MAC Spoofing esta es una tecnica para cambiar la MAC address de una tarjeta, muchas veces util para realizar pruebas de seguridad o hacking Primero dar de baja la interfaz, ejemplo:

Linux

ifdown eth0

o bien ifconfig eth0 down

Posteriormente poner que MAC address deseamos con el comando: ifconfig eth0 hw ether 00:01:02:03:04:05

Finalmente dar de alta la tarjeta nuevamente: ifup eth0

Ahora la tarjeta ya sera reconocida con la MAC address 00:01:02:03:04:05 – FIN direccionamiento IP –

– DNS – – Agrear servidores DNS del equipo

Linux

echo "nameserver 192.168.16.254" >> /etc/resolv.conf

o bien editando el archivo resolv.conf

Linux

vi /etc/resolv.conf
nameserver 192.168.16.254
– Limpiar los DNS o flush DNS

Linux

/etc/rc.d/init.d/nscd restart

– FIN DNS –

– Ruteo – –Agregar una ruta por default

Linux

add default route

route add default gw 192.168.1.1

http://linux.about.com/od/commands/l/blcmdl8_route.htm

–para ver que default gateway asigno el dhcp

Linux

route -n

y buscar la entrada con las letras UG –O bien usar

Linux

netstat -r

y buscar la entrada que diga default – ver las rutas estaticas del equipo

Linux

route -n

– agregar una ruta de toda la red y enviarla al dispositivo eth0 (util cuando estás haciendo hacking como MITM o arp spoofing)

Linux

route add -net 200.66.81.64 netmask 255.255.255.192 dev eth0

– FIN Ruteo –

–Cuando se cambia una IP o se desea renovar la direccion DHCP se debe dar de baja y alta la tarjeta Da de baja la tarjeta eth0

Linux

ifdown eth0

Da de alta la tarjeta eth0 ifup eth0

– ARP

– agregar entrada arp

Linux

arp -s 200.66.81.110 00:04:23:DC:D9:AC

– verificar entradas arp

Linux

arp -n

– buscar información del protocolo ARP

Linux

arp -an

ip neigh sudo arp-scan -l

http://linux-ip.net/html/ether-arp.html – FIN ARP –

– Cambiar hostname

Linux

hostname nuevonombre

Editar el archivo /etc/sysconfig/network HOSTNAME=

el cambio tomara efecto hasta el siguiente reboot si pones en /etc/hosts 127.0.0.1 el prompt cambia y php reconoce el hostname tambien

– FIN Cambiar hostname –

– Para ubuntu

Linux

hostname nuevonombre

/etc/hostname

– Realizar un trazado empleando TCP y un puerto en particular por ejemplo puerto 80 (aunque puede ser otro puerto ejemplo puerto 25)

Linux

traceroute -T -p 80 72.14.213.104

SSH, SCP y Acceso Remoto

– Copiar un archivo local hacia un host remoto

Linux

scp archivo-origen usuario@host:directorio/archivo-remoto

– Copiar archivo desde un host remoto

Linux

scp usuario@host:directorio/archivo-origen archivo-destino

– Si el host remoto esta en un puerto diferente al default de scp que es 22 usar la opción -P (port o puerto)

Linux

scp -P 2222 usuario@host:/directorio/archivo-origen archivo-destino

– Copiar todo el folder a un host remoto usar la opción -r (recursive o recursivo, ósea incluir directorios)

Linux

scp -r directorio-origen usuario@host:directorio-destino

– Copiar todo el folder de un servidor remoto al directorio actual con llave privada

Linux

scp -r -i /Users/lmoreno/MyDropbox/EC2/EC2.private root@stream.com:/var/www/html/content/user_1/shoutcast198/* .

– Copiar un archivo local a servidor remoto con diferente puerto y llave privada

Linux

scp -P 443 -i /Users/lmoreno/MyDropbox/EC2/Luisit0.private /Users/lmoreno/MyDropbox/EC2/EC2.private ubuntu@kolibers.com:/home/ubuntu

– Copiar todo el contenido de un folder / directorio Copiar todo el directorio local /vmfs/volumes/datastore hacia un equipo remoto con IP 192.168.16.1

Linux

Ejemplo:

scp -r /vmfs/volumes/datastore/ root@192.168.16.1:/vmfs/volumes/ scp -Cpr /var/www/html/images/products lmorenor@192.168.16.5:/var/www/sites/www.mysitioweb.com/images/products

– Stop ssh detener ssh

Linux

cd /etc/rc.d/init.d

sh sshd stop

o bien service sshd stop

–Kill SSH sessions - Matar sesiones SSH

Linux

netstat -tanp (Y localiza las lineas que dicen ESTABLISHED)

-t = protocolo TCP -a = all sockets que escuchan y sockets que no escuchan -n = direcciones numericas -p = muestra el nombre y PID del proceso al cual pertenece el socket (requiere permisos de root) -El PID a matar es el que esta en la última columna y esta separado por una diagonal ejemplo: tcp 0 1928 ::ffff:192.168.1.69:22 ::ffff:200.52.71.2:22161 ESTABLISHED 29460/sshd: lmoreno kill 29460

No usar kill -9 si puedes evitarlo. Ya que no siempre permite a los demonios limpiar sus archivos temporales, bloqueos, etc. Usa kill -TERM PID o kill -15 PID – Para que los usuarios que se queden logeados el sistema los saque en determinado tiempo o timeout y los usuarios no se queden firmados si no estan usando la terminal

Linux

En /etc/ssh/sshd_config agregar las lineas

ClientAliveInterval 600 ClientAliveCountMax 3

Esto dará un timeout de 30 minutos (600 sec x 3) – Para cambiar puerto de escucha por default (22) de ssh realizar siguiente:

Linux

vi /etc/ssh/sshd_config

Localiza la siguiente entrada: #Port 22

Cambiar por el número de puerto que deseas Port 2995

Reinicia el servicio service sshd reload

Prueba el acceso con el nuevo puerto ssh username@myhostnaname.com -p 2995

Si el puerto continúa siendo el 22 aún después de estos cambios puede ser que estés usando xinetd.d si es el caso edita el siguiente archivo y cambia el puerto vi /etc/xinetd.d/sshd

Code: service ssh { disable = no socket_type = stream type = UNLISTED port = 22 protocol = tcp wait = no user = root server = /usr/sbin/sshd server_args = -i }

Linux

En /etc/ssh/sshd_config agregar las lineas

ClientAliveInterval 600 ClientAliveCountMax 3

Esto dará un timeout de 30 minutos (600 sec x 3) – Para cambiar puerto de escucha por default (22) de ssh realizar siguiente:

Linux

vi /etc/ssh/sshd_config

Localiza la siguiente entrada: #Port 22

Cambiar por el número de puerto que deseas Port 2995

Reinicia el servicio service sshd reload

Prueba el acceso con el nuevo puerto ssh username@myhostnaname.com -p 2995

Si el puerto continúa siendo el 22 aún después de estos cambios puede ser que estés usando xinetd.d si es el caso edita el siguiente archivo y cambia el puerto vi /etc/xinetd.d/sshd

Code: service ssh { disable = no socket_type = stream type = UNLISTED port = 22 protocol = tcp wait = no user = root server = /usr/sbin/sshd server_args = -i }

Cambiar “port = 22” por el nuevo puerto y reinicia el servicio En ocasiones se está detrás de un proxy y no se puede emplear SSH, para estos casos emplearemos una configuración y un paquete que se llama corkscrew (sacacorchos) – Instalar corkscrew dependiendo de la distribución, corkscrew sirve para hacer tuner de SSH sobre HTTP Descargar corkscrew desde:

Linux

http://www.agroman.net/corkscrew/

cd Downloads tar -xvzf corkscrew-x.y.tar.gz cd corkscrew-x-y ./configure –host=apple make cp corkscrew $HOME/.ssh/

– descomprimir archivos gzip .gz

Linux

gunzip /usr/share/wordlists/rockyou.txt.gz

– descomprimir archivos .7z

Linux

7za e hashcat-2.00.7z -ohashcat2

e = extract -ohashcat2 = descomprime el contenido en el directorio hashcat2 – Editar el archivo

Linux

vim $HOME/.ssh/config

– y agregar esta líneas

Linux

ProxyCommand $HOME/.ssh/corkscrew ip-del-proxy puerto %h %p

Con frecuencia cuando estamos trabajando constantemente con servidores nos enfrentamos a la situación de que nos desconecta y la sesión se queda activa, entonces debemos reconectarnos y matar la sesión, en resumen es un dolor de muelas. Para evitar lo anterior podemos configurar tanto al server como al cliente para que se mantengan comunicando a pesar de que nosotros dejemos de enviar comandos. Para servidores que son muy críticos se recomienda que no se modifique la configuración ya que es peligroso si la sesión se queda abierta. Del lado del servidor modificar el archivo /etc/ssh/sshd_config vim /etc/ssh/sshd_config

Buscar las líneas siguientes y poner los valores que se muestran: ClientAliveInterval 200 ClientAliveCountMax 3

ClientAliveInterval enviará paquetes nulos al cliente cada 200 segundos 3.33 segundos, en caso de que no reciba respuesta después de tres intentos se desconectará, así que en caso de que pierdas conectividad la sesión se mantendrá activa por más tiempo.

Del lado del cliente modificar .ssh/config con los siguientes parámetros: vim .ssh/config ServerAliveInterval 60 ServerAliveCountMax 10

El cliente esperará por 60 segundos (ServerAliveInterval) y enviará un “no-op null packet” al servidor esperando respuesta. Si la respuesta no llega, entonces volverá a intentar 10 veces, 10 (ServerAliveCountMax) por 60 (600 seconds = 10 minutos). Si el servidor no responde entonces el cliente finaliza la conexión.

Algunas veces solo una configuración del lado del cliente funciona otras es necesario modificar el servidor también.


Procesos y Monitoreo del Sistema

– Procesos –Para ver todos los procesos incluso de otros usuarios

Linux

ps -al

–muestra los procesos y su crontab asociado

Linux

ps -auxfw

– muestra los procesos que están consumiendo más ciclos de procesador

Linux

top

Para salir de top presionar q para más información sobre el comando unar man top – FIN Procesos

– Permisos de archivos – Cambiar permisos

Linux

chmod u+wr,g+wr,o-r

chmod 664

read = 4 o 22 write = 2 o 21 execute = 1 o 20

Se asignan de la siguiente forma read/write/execute root/user/group – Por ejemplo para hacer un archivo ejecutable para todos:

Linux

chmod 111 <nombreDelArchivo>

– Para asignar todos los permisos a root

Linux

chmod 700 <nombreDelArchivo>

– Para asignar todos los permisos a un archivo (esto es peligroso, no lo deberías hacer, solo en casos extremos)

Linux

chmod 777 <nombreDelArchivo> 

– Para asignar control total a todos los usuarios en una carpeta llamada webdoc incluyendo todos los archivos y todas las subcarpetas

Linux

chmod 777 -R archivos/*

Donde -R es recursivo es decir se mete a las carpetas y aplica el cambio en subcarpetas y archivos dentro de la carpeta raíz que en este caso fue webdoc – clonar permisos de un archivo a otro, copiar permisos de un archivo a otro

Linux

chown --reference=otherfile thisfile

–crear un device file

Linux

mknod /dev/fd1 b 2 1

–Cambiar owner

Linux

chown luis /carpeta/archivo

chown luis.grupo /carpeta/archivo chgrp grupo /carpeta/archivo

– FIN Permisos de archivos

– Samba para compartir archivos con clientes Windows – config file

Linux

/etc/smb.conf

/etc/samba/smb.conf en trixbox

– Config basica compartir carpeta

Linux

[global]

workgroup = workgroup server string = trixbox PBX local master = no domain master = no preferred master = no password server = None guest ok = yes guest account = root security = SHARE dns proxy = no

[CSrecordings] path = /opt/backup/ guest ok = yes writeable = no create mask = 0777

– FIN Samba para compartir archivos con clientes Windows

–crear un device file

Linux

mknod /dev/fd1 b 2 1

Gestión de Paquetes (RPM, YUM, APT, DPKG)

Sección 8: Gestión de Paquetes (RPM, YUM, APT, DPKG)

//////////////// Instalacion desinstalacion de programas /////////////////

– Instalar programas mediante rmp rpm -ivh <nombre del archivo .rpm>

i = install
v = verbose
h= human

Ejemplo:

Linux

rpm -ivh nessus.rpm

– Muestra si el paquete esta instalado

Linux

rpm -q "nombredelpaquete"

– Ver que rpms estan instalados por rpm

Linux

rpm -qa

Ejempo: Para ver si esta instalada la aplicacion mysql rmp -qa |grep mysql

–Remover desinstalar packages en caso de que tengan dependencias desinstalar paquetes

Linux

rpm -e --nodeps php-pear-1.4.9-1.2
rpm -e php-5.1.6-1.2

instalacion de programas con yum, uso de YUM - Instalar / desinstalar programas con YUM ——————-

– Instalación de yum en versiones de red hat

Linux

http://dag.wieers.com/rpm/packages/yum/

– Buscar paquetes descargados con yum desde cierto repositorio tambien llamado repo o repository

Linux

rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{VENDOR}\n"|grep livna | sort

– Para instalar un paquete

Linux

yum install <nombredelpaquete>

– Para buscar un paquete

Linux

yum search <nombredelpaquete o comando> ejemplo yum search yacc

– Para obtener informacion de un paquete

Linux

yum info net-snmp-utils

–Desinstalar paquetes con yum

Linux

yum remove <nombredelpaquete>

Cuando no se puede actualizar un paquete por errores en las dependencias se puede buscar los archivos que causan el problema, luego el paquete que depende de ese archivo y luego eliminar dicho paquete. Primero localizar el archivo ejemplo

Linux

locate libdts.so.0

Regresara el path donde se encuentra el archivo, ejemplo: /etc/libdts.so.0

Despues usar

Linux

yum provides /etc/libdts.so.0

esto es para encontrar que paquete esta haciendo referencia el resultado sera algo como libdca-0.0.5-1.fc7

Finalmente remover dicho paquete yum remove libdca-0.0.5-1.fc7

– Instalar paquete de un repositorio especifico Deshabilita el repositorio que no quieres que tome ejemplo:

Linux

yum --disablerepo=extras install paqueteA

Para evitar que yum seleccione alguna vez el paqueteA de extras puedes agregar la siguiente linea a el archivo extras.repo en la carpeta /etc/yum.repos.d/: exclude=paqueteA

También hay plugins que pueden controlar que paquetes son seleccionados de que repositorios, como yum-protectbase, yum-priorities, y yum-versionlock. – Instalar paquetes que envian mensaje de que no están firmados “is not signed” con yum Para esto hay dos formas:

  1. Usar simplemente “rpm -ivh paquete.rpm” (obtendras los siguientes resultados haciendo “yum localinstall package.rpm”); o 2. Editar /etc/yum.conf y cambiar el valor gpgcheck de 1 a 0.

– Instalar otros repositorios como Wieers DAG rpmforge

Linux

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
http://dag.wieers.com/rpm/FAQ.php#B
Instalar EPEL
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rp

http://fedoraproject.org/wiki/EPEL/FAQ#How_can_I_install_the_packages_from_the_EPEL_software_repository.3F
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
 rpm -ivh epel-release-latest-7.noarch.rpm
– verificar que está instalado

Linux

yum repolist

– como usar el repositorio epel repo para buscar un paquete

Linux

yum --enablerepo=epel info zabbix

– como instalr de epel

Linux

yum --enablerepo=epel install zabbix

Otros temas relacionados con yum ————-

–Desinstalar paquetes con rpm

Linux

rpm -e <nombredelpaquete>

–rpms y apt-get para red hat

Linux

http://dag.wieers.com/rpm/FAQ.php#B

– Si por alguna razon no baja el paquete que quieres instalar con Yum, te envia un error como el siguiente:

Linux

  [Errno 4] IOError: [Errno ftp error] [Errno ftp error] 502 Command REST not allowed by policy.

Trying other mirror. no more mirrors to try

Descarga el file directamente del link desde el navegador (firefox) y ponlo en la carpeta: /var/cache/yum/updates/packages

y ejecuta: yum install nuevamente

– Actualizar el sistema

Linux

yum update

FIN Instalacion y uso de YUM ————————–

– Instalación de programas con dpkg Para instalar un programa desde un archivo con ext .deb ejecutar

Linux

dpkg -i nombredelarchivo.deb

ejemplo para instalar Team Viewer en ubuntu 13.10 sudo dpkg -i teamviewer_linux.deb

el comando anterior enviará errores de falta de dependencias, que se solucionan con el comando force como sigue: sudo apt-get install -f

nuevamente aplicar el comando de instalación para que ahora con las dependencias resueltas se finalice la instalación correctamente: sudo dpkg -i teamviewer_linux.deb

Instalacion y reproduccion de archivos de musica mp3, videos y peliculas ——————— Para la reproduccion de videos, mp3, etc y basicamente cualquier necesidad de reproduccion necesitas Real Player, VLC y XMMS – Reproducir mp3 y/o videos

–Instalar XMMS

Linux

rpm -ivh http://rpm.livna.org/livna-release-5.rpm

Solo soporte para mp3 yum -y install xmms xmms-mp3

–Instalar xmms con todos los adins

Linux

yum install xmms*

Si lo anterior no funciona instalar: http://www.gurulabs.com/downloads/xmms-mp3-1.2.10-16.i386.rpm

– Tambien puedes instalar Real Player para Linux desde: Con este player puedes reproducir archivos mp3, peliculas .rmvb, etc www.real.com/linux descarga el rpm e instalalo por ejemplo si el rpm se llama RealPlayer11GOLD.rpm

Linux

rpm -ivh RealPlayer11GOLD.rpm

– Para instalar VLC Ve a la pagina http://www.videolan.org/vlc/ y selecciona tu sistema operativo por ejemplo Fedora y ejecuta los siguientes comandos:

Linux

su - rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm

yum install vlc yum install mozilla-vlc (opcional)

Instalar Firefox —————- –Instalar firefox descargar la ultima version y ejecutar el comando para descomprimir .tar.gz o .tgz

Linux

tar -xzvf nombrearchivo.tar.gz

x = extract z = gzip v = verbose f = file –Mozilla directory

Linux

/usr/lib/firefox-1.5.0.1/plugins

–Crear linkname para llama en firefox

Linux

ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so .

FIN Instalar Firefox —————-

Instalar Flash Player —————- Los siguientes pasos describen como instalar Flash Player para Fedora pero debe funcionar con pocos cambios para otras versiones El primer paso es ir al sitio de Adobe: http://get.adobe.com/flashplayer y seleccionar la opcion “YUM for Linux” y despues dar click en Download, Ahora instala el RPM que acabas de descargar con el comando: rpm -ivh adobe-release-i386-1.0-1.noarch.rpm (el nombre del archivo puede variar)

Una vez instalado el RPM ejecuta el siguiente comando: su -c ‘yum install flash-plugin alsa-plugins-pulseaudio libcurl’

Ahora cierra Firefox si estaba abierto y vuelvelo a abrir Para probar abre www.youtube.com y podras ver cualquier video Para mas informacion y opciones de instalacion para 64 bits ve a: http://fedoraproject.org/wiki/Flash

FIN Instalar Flash Player —————-

Instalar Java para Firefox —————- –Instalar Java

Linux

  descargar self extracting rpm

mover archivo a /usr/java por ejemplo y hacerlo ejecutable, ejecutar archivo para que se descomprima e instale.

–Java directory

Linux

  /usr/java/jre1.5.0_06

–Crear linkname para llama en firefox


Firewall / IPTables

Sección 9: Firewall / IPTables

//////////////// IPTABLES //////////////////// – Archivo de scripts para iptables /etc/sysconfig/iptables

–reiniciar iptables

Linux

service iptables restart

–Bloquear un host especifico iptables

Linux

iptables -I INPUT -s 192.168.16.8 -j DROP

–Permitir acceso a un puerto especifico e IPs específicas, bloquear el resto

Linux

iptables -A INPUT -p tcp --destination-port 22 -m iprange --src-range 192.168.16.100 -j ACCEPT

Despues de agregar la politica reiniciar el servicio “service iptables restart” y probar –src-range puede ser representado como 192.168.16.100-192.168.16.200

–listar reglas iptables activas

Linux

iptables -L

– Digamos que deseas hacer permitir que un cliente se conecte al servidor FTP pero solo por un momento o una descarga tienes que modificar tus filtros de iptables de la siguiente forma: (lo mismo aplicaría para otro protocolo SSH puerto 21, http puerto 80, etc)

Linux

Permitir momentáneamente una IP para que acceda al servidor FTP

/sbin/iptables -I INPUT -s 200.52.66.116/32 -p tcp –dport 21 -j ACCEPT

–Para borrarla después de las pruebas

Linux

/sbin/iptables -t filter  -D INPUT 1

VNC, X11 y Herramientas GUI

Sección 10: VNC, X11 y Herramientas GUI

– Activar VNC Server Pasos rapidos Una guia rapida de los pasos necesarios para configurar un escritorio remoto usando

VNX en Red Hat Enterprise Linux 4 CentOS y derivados

Pon un password con el comando:

Linux

vncpasswd

Editar el archivo /etc/sysconfig/vncservers

Habilita el servicio con chkconfig vncserver on

Inicia el servicio con service vncserver start

Edita el archivo siguiente si deseas una sesion mas avanzada que solo twm y un xterm /home/username/.vnc/xstartup

– FIN Activar VNC Server Pasos rapidos

–Concatenar archivos en uno solo


Crontab y Automatización

Sección 11: Crontab y Automatización

///////////////////// crontab ////////////////////////////////

– ver los jobs programados

Linux

crontab -l

– edit tar archivo crontab

Linux

crontab -e

– también puedes ver el archivo directamente en la siguiente ruta, pero no es recomendable que lo edites directamente ya que el archivo es leído cuando el sistema inicia y se carga en memoria, el comando crontab -e es la mejor opción para editarlo pues interactúa con cron de manera correcta.

Linux

 /var/spool/cron/root

En Ubuntu /var/spool/cron/crontabs

Las líneas de crontab se ejecutan como se ve en la gráfica

Linux

* 	*      *   *    *        Comando a ejecutar
- 	-      -   -    -
| 	|      |   |	|
| 	|      |   |	+----- día de la semana (0 - 6) (Domingo=0)
| 	|      |   +------- mes (1 - 12)
| 	|      +--------- día del mes (1 - 31)
| 	+----------- hora (0 - 23)
+------------- min (0 - 59)
///////////////////// crontab ////////////////////////////////


Discos, Dispositivos y Arranque

Sección 12: Discos, Dispositivos y Arranque

Linux

fdisk /dev/hda

– Crea una particion en el disco duro primario

Linux

mkfs -t ext2 -c /dev/hda1

mount -t msdos /dev/fd0 /floppy

– montar cd-rom

Linux

mount cd-rom
mount -t iso9660 /dev/cdrom /media/cdrom/

– montar USB o disco externo

Linux

mount /dev/sdb1 /media/usb
– Montar en otro directorio
Linux

-- Mount /dev/hda2 /home

– Montar particion NTFS en linux

Linux

mount -t ntfs-3g /dev/sda2 /media/DiscoLocalC -o force

dd if=/dev/hdc of=/home/username/cdcopy.iso

Desmontar la unidad de cd rom primero, ejemplo: umount /dev/hdc

otra opcion de crear imagen .iso es mkisofs mkisofs -r -v -J -l -o /opt/isocopymkiso.iso /media/PIAE_6/

– Quemar discos desde imagen ISO

– Reparar arranque en equipo dual boot de Windows y Linux - recuperar grub despues de instalacion de windows

Linux

chroot /mnt/
grub-install /dev/sda

– Cambiar el nombre de los sistemas operativos de arranque si el boot loader es grub Editar el archivo menu.1st con el siguiente comando

Linux

vi /boot/grub/menu.lst

En este archivo cambiar de nombre por ejemplo donde dice “Other” que regularmente es Windows ponerle un nombre que desees como Windows Vista o Windows XP


Utilidades Misceláneas

Sección 13: Utilidades Misceláneas

Linux

man <comando>

Ejemplo: man grep

– Como particionar el disco para usar Linux partition – Verifica, crea, elimina particiones

Linux

fdisk /dev/hda

– Crea una particion en el disco duro primario

Linux

mkfs -t ext2 -c /dev/hda1

-t especifica el tipo de particion este caso es ext2 -c checa por sectores defectuosos antes de formatear

– Tamaño recomendado (varia según para lo que vaya a emplear Linux) /boot 102 a 150 Mb /swap el doble de memoria fisica / (root) el resto del disco Ext3 es mejor = ext2 with journaling

– limpia la pantalla

Linux

clear 

– Resetea terminal a los valores por default

Linux

reset 

– Muestra informacion de usuarios del sistema

Linux

finger 

– Muestra usuarios conectados al sistema actualmente

Linux

who 

– muestra quien esta conectado actualmente y sus tareas, sessions sesiones

Linux

w 

– muestra el nombre del usuario actual

Linux

whoami 

– muestra numeros asociados con tu cuenta de usuario y nombres de grupo

Linux

id 

– muestra fecha actual y hora

Linux

date

– muestra el calendario del mes actual

Linux

cal 

– ver contenido de archivos

Linux

cat 

– sale del shell actual

Linux

exit 

– muestra informacion en la pantalla

Linux

echo 

– muestra el shell actual

Linux

echo $SHELL 

– Variable Shell

Linux

$ 

– Variable especial home directory (por ejemplo “cd ~” te lleva a /home/usuario

Linux

~ 

– ejecucion de comando en background ejemplo: “nmap -O 192.168.1.1-24 &” ejecuta el comando en el background y puedes siguir teclando comandos

Linux

& 

– Redireccion entrada/salida

Linux

< << > >> 

– pipe para encadenar comandos, ejemplo: “cat archivo.txt | grep nombre” dos comandos combinados

Linux

| 

– Shell wildcards comodines, ejemplo: “ls *.txt”

Linux

?[]* 

– Metacaracters comilla

Linux

' " \ 

– Substitucion de comando

Linux

` 

– Agrupacion de comandos

Linux

() {} 

– Cancelar la ejecución de un comando

Linux

CTRL+C

Es decir mantener presionada la tecla control (ctrl), luego presionar la tecla C, despues soltar ambas –Listar archivos

Linux

ls -l

– mostrar el número de archivos en un folder o directorio

Linux

echo *.* | wc

– mostrar el número de directorios en un folder o directorio

Linux

echo */ | wc

– ver último archivo modificado | Archivo más reciente

Linux

ls -Art | tail -n 1

–ver las últimas 10 líneas de archivos de texto

Linux

tail <nombrearchivo>

– Si deseas ver mas de 10 líneas ejecuta ejemplo ver ultimas 30 líneas

Linux

tail -30 <nombrearchivo>

para ver los ultimos cambios que va teniendo el archivo, útil para ver logs, correo, etc tail -f

–ver primeras 10 lineas de archivos de texto

Linux

head <nombrearchivo>

si deseas ver mas de 10 lineas ejecuta ejemplo ver las primeras 30 lineas head -30

–Listar solo directorios

Linux

ls -l|grep ^d
ls -p |grep /
ls -l | egrep '^d'

– eliminar archivos con la extensión *.xxx en todo el disco

Linux

find / -type f -name "*.xxx" -exec rm {} \;

– Eliminar folders / directorios tener PRECAUCION con la opcion -rf ya que puedes eliminar algo que no desees mejor asegurate antes de ejecutarlo – Borrar folders / directorios

Linux

rm -rf foldername

– borrar folder vacios / directorios vacios

Linux

rmdir <nombredelfolder>

– eliminar todos los archivos excepto un archivo o directorio, por ejemplo: eliminar todos los archivos del directorio actual excepto el directorio que se llama wiki

Linux

shopt -s extglob
rm -rf -v !("wiki")

–copia todo el contenido del CD rom al folder install

Linux

cp -av /mnt/cdrom /install

–Buscar texto en archivos con grep Ejemplos:

Linux

grep "spc_eee1.gif" *
grep -r -i "textoAbuscar" *.*

-r = Recursivo, osea se mete a los subfolders
-i = ignora si estan en mayusculas o minusculas

– Buscar texto en archivos y mostrar el número de línea

Linux

grep -nr textoabuscar

-r = recursivo
-n = regresa el número de línea donde se encontró el texto

– El comando awk sirve para buscar y manipular datos en archivos de texto estructurado como archivos separados por coma (csv) o archivos separados por espacios. Por ejemplo para filtrar las IPs de un log de apache

Linux

awk '{print $1}' access-hackvolution.log

– En el ejemplo anterior se repetirán mucho las IPs para que solo aparezca una coincidencia, podemos emplear:

Linux

awk '{print $1}' access-hackvolution.log |sort |uniq

– Sort ordena los resultados y uniq solo deja los resultados únicos. Otra cosa que podríamos necesitar, es el ver cuántas veces se repite una IP en el archivo:

Linux

awk '{print $1}' access-hackvolution.log |sort |uniq -c |sort -rn

uniq -c cuenta el número de coincidencias sort -rn ordena en -reverse numerical- es decir de forma numérica del mayor al menor

– Buscar texto en los scripts sh que contengan el texto user

Linux

find / -name '*.sh' 2>/dev/null | xargs grep -i 'user'

– Buscar los archivos con extensión .ksh, .sh, .pl .py .zsh .bash .bsh .sql

Linux

find / -type f \( -iname \*.ksh -o -iname \*.sh -o -iname \*.pl -o -iname \*.py -o -iname \*.zsh -o iname \*.bash -o -iname \*.bsh -o -iname \*.sql \)

– Buscar archivos de texto que inicien con los caracteres #! Y que pertenezcan a cierto usuario

Linux

find / -user $UID -type f | while read fn; do head -n1 "$fn" | grep -q "^#\!" && echo "$fn" && chmod 755 "$fn"; done

– Buscar cadena de caracteres password en archivos script

Linux

grep --include=\*.{ksh,sh,pl,py,zsh,bash,bsh,sql} -rnw '/' -e "password"

– Otras opciones para buscar texto en archivos

Linux

grep 'user' $(find / -name '*.sh')
find / -name '*.sh' -exec grep 'texto' {} \;

Ejemplos desde: http://unix.stackexchange.com/questions/20262/how-do-i-pass-a-list-of-files-to-grep – hacer cat y remover comentarios # en carchivos .conf también remueve espacios antes del hash

Linux

cat /etc/squid/squid.conf | egrep -v "^\s*(#|$)"

– remover primer y último carácter, por ejemplo tenemos este texto:
[A6014201]
[A6144792]
[A6005026]

Linux

cat lista.txt | cut -c 2- | sed 's/.$//' > clean-lista.txt
y después del comando quedaría así:

A6014201
A6144792
A6005026

– Para obtener las IPs válidas de un archivo de texto usando regular expresions RegEx:

Linux

grep -oE '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file.txt

–Checar el sistema de inicio

Linux

cat /etc/inittab

–montar un floppy con formato MSDOS

Linux

mount -t msdos /dev/fd0 /floppy

– montar cd-rom

Linux

mount cd-rom
mount -t iso9660 /dev/cdrom /media/cdrom/

– montar USB o disco externo

Linux

mount /dev/sdb1 /media/usb
– Montar en otro directorio
Linux

-- Mount /dev/hda2 /home

– Montar particion NTFS en linux

Linux

mount -t ntfs-3g /dev/sda2 /media/DiscoLocalC -o force

– checar si linux reconoció un disco o un hardware que se acaba de conectar?

Linux

dmesg
dmesg |grep sdb

– descomprimir un archivo con extensión zip

Linux

tar -xzf [filename]

– descromprimir archivos .zip

Linux

unzip filename

– listar archivos que se encuentran dentro del archivo zip

Linux

unzip -l filename

– Como ejecutar un comando cada determinado tiempo

Linux

watch -n 300 df -h

El anterior comando ejecuta cada 300 segundos el comando df -h –Archivo de configuración de red para la interfaz eth0 (direccion ip, default gateway, MAC address, etc) en Fedora En Fedora y Derivados RedHat

Linux

cat /etc/sysconfig/network-scripts/ifcfg-eth0

En Ubuntu y Derivados Debian

Linux

cat /etc/sysconfig/network
Ejemplo archivo de configuracion CentOS
Linux

HWADDR=00:08:A2:0A:BA:B8
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.2.203
PREFIX=24
GATEWAY=192.168.2.254
DNS1=192.168.2.254
DNS2=8.8.8.8
DNS3=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
# Disable ipv6 #
IPV6INIT=no
NAME=eth0
# This is system specific and can be created using 'uuidgen eth0' command #
UUID=41171a6f-bce1-44de-8a6e-cf5e782f8bd6
DEVICE=eth0
ONBOOT=yes
– Reinicar servicio de red sin hacer flush

Linux

systemctl restart network

///////////////// Busqueda de archivos y texto dentro de archivos ////////////////////////////// –Buscar archivos en todo el disco duro incluyendo unidades montadas – Busca archivo de nombre miarchivo.htm

Linux

find / -name 'miarchivo.htm'

– Busca archivos que inicien con “log-” ejemplo: log-20100724.log, log-20200725.log, etc.

Linux

find -name 'log-*'

– Busca archivos cuyo tamaño sea mayor a 1000 Kb

Linux

find -name '*' -size +1000k<

– Buscar archivos con tamaño mayor a 50Mb

Linux

find . -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

– Buscar archivos grandes cuyo tamaño sea mayor a 1Gb

Linux

 find / -type f -name '*' -size 2G

-iname busca archivos sin ser sensitivo a mayusculas minusculas -name busca archivos con el nombre siendo sensitivo a matyusculas minusculas. Si buscas por un archivo llamado “MiArchivo” y lo buscas con el siguiente comando: find / -name miarchivo (no lo encontraras) deberas usar el comando: find / -iname miarchivo o bien find / -name MiArchivo

Mas ejemplos en: http://linux.about.com/od/commands/a/blcmdl1_findx.htm – Para buscar todos los archivos “grandes” mayores a 20 Mb en todo el equipo

Linux

find / -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

– Buscar archivos grandes o mayores a cierto tamaño

– Este comando encontrará los archivos en todo el disco duro que sean mayores a 100 Mb

Linux

find / -size +102400k

– Buscar los archivos más grandes del directorio actual, regresa los 10 más grandes, modificar el número de head para traer más y menos archivos

Linux

du -hs * | sort -rh | head -10

– Buscar los archivos más grandes del directorio actual incluyendo subdirectorios, regresa los 10 más grandes, modificar el número en head para regresar más o menos archivos

Linux

du -Sh | sort -rh | head -10 

– ver el tamaño de las carpetas ordenadas del más pequeño al más grande

Linux

du -hs * | sort -h

– extraer IPs de un csv por ejemplo Rapid7 y quitar repetidas y ordenarlas en order númerico

Linux

cat tercer_rango.csv|cut -d"," -f1|sort -u |sort -t . -k 3,3n -k 4,4n > tercer_rango.txt

– Emplea el siguiente comando para ver los tamaños de los archivos:

Linux

  find / -size +103400k | xargs ls -laAh

– Emplea “find .” para buscar solamente en el directorio actual y ver los tamaños de los archivos

Linux

  find . -size +103400k | xargs ls -laAh

–Para buscar archivos que contengan guiones o signos de puntuación en el nombre emplea el comando

Linux

find / -iname <inicionombre'*'>

Ejemplo: find / -iname ‘bittorrent*’

encontrara archivos con nombres como bittottent-course, bittorrent.mo, bittorrent-4.4.0, etc

Mas info en: http://www.phpman.info/index.php/info/find ver linux wildcards http://www.codecoffee.com/tipsfor/articles/26-1.html –Buscar en todos los archivos *.htm que tengan el texto “wants to contact you”

Linux

find ./ -name *.htm |xargs grep "wants to contact you"

equivalente en windows find “spc_eee1.gif” . –Buscar archivos excluyendo / excluir un folder en especial, por ejemplo tmp

Linux

find / \( ! -name tmp -o -prune \) -name "file.rar" -print 2>/dev/null

–Otro comando para buscar arvhivos es el siguiente aunque el disco duro debe estar indexado para que funcione correctamente, en caso de no encontrar el archivo buscado, emplear find que no requiere de un indice.

Linux

locate <nombredelarvhivoabuscar>

///////////////// FIN Busqueda de archivos y texto en archivos ////////////////////////////// – descargar archivos del web

Linux

wget http://librosgratis.com/pythonforbegginers.pdf

– descargar todo un index of de libros

Linux

wget --recursive --no-parent https://repkam09.com/files/packt/

Para evitar que se copie el index.htm que se autogenera wget -r -np -R “index.html*” https://repkam09.com/files/packt/

-r = recursive -np = no parent -R = reject

///////////////// Cambiar Fecha y hora ////////////////////////////// – cambiar fecha y hora

Linux

date MMDDhhmmyyyy

donde MM = mes DD = dia hh=hora mm= minutos yyyy= año Por ejemplo para poner la fecha y hora a: 9:07pm del 31 de Mayo 2008 date 053121072008

– Mostrar la fecha actual en el formato aaaa-mm-dd

Linux

date -I

– Mostrar la fecha actual en formato aaaammddhhmm

Linux

date +%Y%m%d%H%M%S

– Para cambiar la zona horaria (time zone) 1. Para Ubuntu:

Linux

dpkg-reconfigure tzdata

http://webonrails.com/2009/07/15/change-timezone-of-ubuntu-machine-from-command-line/ 1.- Firmado como root, verifica que time zone esta usando tu sistema con el comando “date”. Veras algo como “Mon 17 Jan 2005 12:15:08 PM PST”, PST en este caso es el timezone actual. 2.- Cambia al directorio /usr/share/zoneinfo en este directorio encontraras una lista de regiones de zona horaria (time zone regions) si vives en Canada, Estados Unidos o Mexico el directorio es “America” 3.- Es buena idea respaldar la anterior configuracion de timezone copiando a una directorio diferente como: mv /etc/localtime /etc/localtime-old

4.- Crea un symbolic link desde el timezone apropiado a /etc/localtime. Ejemplo: ln -sf /usr/share/zoneinfo/America/Mexico_City /etc/localtime

5.- Si tienes la utilería rdate, actualiza la hora actual ejecutando: /usr/bin/rdate -s time-a.nist.gov

6.- Configura la entrada de ZONE en el archivo /etc/sysconfig/clock (eje: ZONE=“America/Mexico City”) 7.- Configura el reloj del hardware ejecutando: /sbin/hwclock –systohc

Pasos basados en: http://www.wikihow.com/Change-the-Timezone-in-Linux – Para cambiar el TimeZone en Fedora RLEH 5 el comando es:

Linux

system-config-date

///////////////// FIN Cambiar Fecha y hora ////////////////////////////// –Enviar mensaje a otro usuario mediante comando

Linux

wall "Nada mas jugando"

– Enviar mensaje a otra terminal directamente, esto es útil por ejemplo cuando tienes una terminal en modo gráfico que no recibe wall por no estar registrada como una terminal tal cual, el primer paso es sacar el ID de la terminal a la que le quieres enviar mensaje con el comando:

Linux

tty

Por ejemplo la respuesta podría ser: /dev/pts/7

ya que conocemos el número lo ponemos así echo “Naa mas jugando” > /dev/pts/7

– Desactivar la recepcion de mensajes con wall

Linux

mesg n

– Para enviar un mail desde linea de comando

Linux

echo "20 minutos para la junta" | /bin/mail -s "Meeting" micorreo@miservidor.com

– compilar un programa en c

Linux

gcc -o nombreejecutable sourcecode.c

– Kernel version, realese, sistema operativo en Fedora o Red Hat

Linux

uname -a

cat /etc/redhat-release

– Version Ubuntu – Version BackTrack

Linux

lsb_release -a

–Checar tipo de procesador

Linux

uname -m o

cat /proc/cpuinfo

– crear imagen .iso de un CD-ROM

Linux

dd if=/dev/hdc of=/home/username/cdcopy.iso

Desmontar la unidad de cd rom primero, ejemplo: umount /dev/hdc

otra opcion de crear imagen .iso es mkisofs mkisofs -r -v -J -l -o /opt/isocopymkiso.iso /media/PIAE_6/

– Quemar discos desde imagen ISO

Linux

cdrecord -v -pad speed=1 dev=ATAPI:1,0,0 src.iso

Modificar el parametro dev para adaptarlo al tipo de CD ROM que tenga la computadora en question ///////////////// Bash Shell ///////////// – Ver el shell actual echo $SHELL

– Ver los shells disponibles

Linux

cat /etc/shells

–Ciclo for para realizar tareas repetitivas ejemplo ping a un rago de IPs desde el shell

Linux

for i in $(seq 1 1 10); do ping 192.168.16.$i -c 1; done

–Otra forma sería

Linux

for i in $(seq 20 -1 1)

do echo $i ping 192.168.16.$i -c 1 done

-ciclo for para ejecutar comandos que se leen desde un archivo for word in cat notes.txt; do bash -c $word; done;

– ciclo for para hacer ping a varias IPs y ver cuales responden utiliza un tipo de grep or

Linux

for i in $(seq 241 1 254); do ping 10.10.10.$i -c 1; done | grep 'statistics\|packets'

– ciclo while para ejecutar comandos que se leen desde un archivo

Linux

while read word; do bash -c $word; done < notes.txt

— 172.16.4.20 ping statistics —

Linux

1 packets transmitted, 0 received, 100% packet loss, time 0ms

19 PING 172.16.4.19 (192.168.16.19) 56(84) bytes of data. –Mover archivos uno por uno cuando aparece el error como:

Linux

-bash: /bin/mv: Argument list too long

for i in find . -name ap\* do mv $i .. done

– Mover muchos archivos por extension en caso de recibir el error: Too many arguments

Linux

find . -type f -name "*.txt" -exec mv {} /opt/movehere/ \;

–Cambiar extensiones en varios archivos

Linux

for f in *.htm; do mv $f `basename $f .htm`.html; done;

–Para iniciar en modo texto editar el archivo /etc/inittab la linea que dice id:5:initdefault cambiar el 5 por 3.

–cambiar el prompt bash

Linux

PS1="[\t][\u@\h:\w]\$ "

//////////// SSH ////////////// – Para copiar archivos de forma segura entre maquinas linux usando SCP o SFTP Sftp y scp no requieren un demonio dedicado puesto que los dos programas se conectan a los servidores sshd.

Linux

Para poder usar sftp y scp tienes que insertar la siguiente linea en el archivo de configuracion /etc/ssh/sshd_config (RedHat Linux).

Subsystem sftp /usr/libexec/openssh/sftp-server scp [opciones] origen destino Ejemplo: – Copiar un archivo local hacia un host remoto

Linux

scp archivo-origen usuario@host:directorio/archivo-remoto

– Copiar archivo desde un host remoto

Linux

scp usuario@host:directorio/archivo-origen archivo-destino

– Si el host remoto esta en un puerto diferente al default de scp que es 22 usar la opción -P (port o puerto)

Linux

scp -P 2222 usuario@host:/directorio/archivo-origen archivo-destino

– Copiar todo el folder a un host remoto usar la opción -r (recursive o recursivo, ósea incluir directorios)

Linux

scp -r directorio-origen usuario@host:directorio-destino

– Copiar todo el folder de un servidor remoto al directorio actual con llave privada

Linux

scp -r -i /Users/lmoreno/MyDropbox/EC2/EC2.private root@stream.com:/var/www/html/content/user_1/shoutcast198/* .

– Copiar un archivo local a servidor remoto con diferente puerto y llave privada

Linux

scp -P 443 -i /Users/lmoreno/MyDropbox/EC2/Luisit0.private /Users/lmoreno/MyDropbox/EC2/EC2.private ubuntu@kolibers.com:/home/ubuntu

– Copiar todo el contenido de un folder / directorio Copiar todo el directorio local /vmfs/volumes/datastore hacia un equipo remoto con IP 192.168.16.1

Linux

Ejemplo:

scp -r /vmfs/volumes/datastore/ root@192.168.16.1:/vmfs/volumes/ scp -Cpr /var/www/html/images/products lmorenor@192.168.16.5:/var/www/sites/www.mysitioweb.com/images/products

– Stop ssh detener ssh

Linux

cd /etc/rc.d/init.d

sh sshd stop

o bien service sshd stop

–Kill SSH sessions - Matar sesiones SSH

Linux

netstat -tanp (Y localiza las lineas que dicen ESTABLISHED)

-t = protocolo TCP -a = all sockets que escuchan y sockets que no escuchan -n = direcciones numericas -p = muestra el nombre y PID del proceso al cual pertenece el socket (requiere permisos de root) -El PID a matar es el que esta en la última columna y esta separado por una diagonal ejemplo: tcp 0 1928 ::ffff:192.168.1.69:22 ::ffff:200.52.71.2:22161 ESTABLISHED 29460/sshd: lmoreno kill 29460

No usar kill -9 si puedes evitarlo. Ya que no siempre permite a los demonios limpiar sus archivos temporales, bloqueos, etc. Usa kill -TERM PID o kill -15 PID – Para que los usuarios que se queden logeados el sistema los saque en determinado tiempo o timeout y los usuarios no se queden firmados si no estan usando la terminal

Linux

En /etc/ssh/sshd_config agregar las lineas

ClientAliveInterval 600 ClientAliveCountMax 3

Esto dará un timeout de 30 minutos (600 sec x 3) – Para cambiar puerto de escucha por default (22) de ssh realizar siguiente:

Linux

vi /etc/ssh/sshd_config

Localiza la siguiente entrada: #Port 22

Cambiar por el número de puerto que deseas Port 2995

Reinicia el servicio service sshd reload

Prueba el acceso con el nuevo puerto ssh username@myhostnaname.com -p 2995

Si el puerto continúa siendo el 22 aún después de estos cambios puede ser que estés usando xinetd.d si es el caso edita el siguiente archivo y cambia el puerto vi /etc/xinetd.d/sshd

Code: service ssh { disable = no socket_type = stream type = UNLISTED port = 22 protocol = tcp wait = no user = root server = /usr/sbin/sshd server_args = -i }

Cambiar “port = 22” por el nuevo puerto y reinicia el servicio En ocasiones se está detrás de un proxy y no se puede emplear SSH, para estos casos emplearemos una configuración y un paquete que se llama corkscrew (sacacorchos) – Instalar corkscrew dependiendo de la distribución, corkscrew sirve para hacer tuner de SSH sobre HTTP Descargar corkscrew desde:

Linux

http://www.agroman.net/corkscrew/

cd Downloads tar -xvzf corkscrew-x.y.tar.gz cd corkscrew-x-y ./configure –host=apple make cp corkscrew $HOME/.ssh/

– descomprimir archivos gzip .gz

Linux

gunzip /usr/share/wordlists/rockyou.txt.gz

– descomprimir archivos .7z

Linux

7za e hashcat-2.00.7z -ohashcat2

e = extract -ohashcat2 = descomprime el contenido en el directorio hashcat2 – Editar el archivo

Linux

vim $HOME/.ssh/config

– y agregar esta líneas

Linux

ProxyCommand $HOME/.ssh/corkscrew ip-del-proxy puerto %h %p

Con frecuencia cuando estamos trabajando constantemente con servidores nos enfrentamos a la situación de que nos desconecta y la sesión se queda activa, entonces debemos reconectarnos y matar la sesión, en resumen es un dolor de muelas. Para evitar lo anterior podemos configurar tanto al server como al cliente para que se mantengan comunicando a pesar de que nosotros dejemos de enviar comandos. Para servidores que son muy críticos se recomienda que no se modifique la configuración ya que es peligroso si la sesión se queda abierta. Del lado del servidor modificar el archivo /etc/ssh/sshd_config vim /etc/ssh/sshd_config

Buscar las líneas siguientes y poner los valores que se muestran: ClientAliveInterval 200 ClientAliveCountMax 3

ClientAliveInterval enviará paquetes nulos al cliente cada 200 segundos 3.33 segundos, en caso de que no reciba respuesta después de tres intentos se desconectará, así que en caso de que pierdas conectividad la sesión se mantendrá activa por más tiempo.

Del lado del cliente modificar .ssh/config con los siguientes parámetros: vim .ssh/config ServerAliveInterval 60 ServerAliveCountMax 10

El cliente esperará por 60 segundos (ServerAliveInterval) y enviará un “no-op null packet” al servidor esperando respuesta. Si la respuesta no llega, entonces volverá a intentar 10 veces, 10 (ServerAliveCountMax) por 60 (600 seconds = 10 minutos). Si el servidor no responde entonces el cliente finaliza la conexión.

Algunas veces solo una configuración del lado del cliente funciona otras es necesario modificar el servidor también. ///////////////// FIN SSH ///////////// – Procesos –Para ver todos los procesos incluso de otros usuarios

Linux

ps -al

–muestra los procesos y su crontab asociado

Linux

ps -auxfw

– muestra los procesos que están consumiendo más ciclos de procesador

Linux

top

Para salir de top presionar q para más información sobre el comando unar man top – FIN Procesos

– Permisos de archivos – Cambiar permisos

Linux

chmod u+wr,g+wr,o-r

chmod 664

read = 4 o 22 write = 2 o 21 execute = 1 o 20

Se asignan de la siguiente forma read/write/execute root/user/group – Por ejemplo para hacer un archivo ejecutable para todos:

Linux

chmod 111 <nombreDelArchivo>

– Para asignar todos los permisos a root

Linux

chmod 700 <nombreDelArchivo>

– Para asignar todos los permisos a un archivo (esto es peligroso, no lo deberías hacer, solo en casos extremos)

Linux

chmod 777 <nombreDelArchivo> 

– Para asignar control total a todos los usuarios en una carpeta llamada webdoc incluyendo todos los archivos y todas las subcarpetas

Linux

chmod 777 -R archivos/*

Donde -R es recursivo es decir se mete a las carpetas y aplica el cambio en subcarpetas y archivos dentro de la carpeta raíz que en este caso fue webdoc – clonar permisos de un archivo a otro, copiar permisos de un archivo a otro

Linux

chown --reference=otherfile thisfile

–crear un device file

Linux

mknod /dev/fd1 b 2 1

–Cambiar owner

Linux

chown luis /carpeta/archivo

chown luis.grupo /carpeta/archivo chgrp grupo /carpeta/archivo

– FIN Permisos de archivos

– Samba para compartir archivos con clientes Windows – config file

Linux

/etc/smb.conf

/etc/samba/smb.conf en trixbox

– Config basica compartir carpeta

Linux

[global]

workgroup = workgroup server string = trixbox PBX local master = no domain master = no preferred master = no password server = None guest ok = yes guest account = root security = SHARE dns proxy = no

[CSrecordings] path = /opt/backup/ guest ok = yes writeable = no create mask = 0777

– FIN Samba para compartir archivos con clientes Windows

–crear un device file

Linux

mknod /dev/fd1 b 2 1

– Copiar cd de musica al disco duro

Linux

yum install cdparanoia

cdparanoia 5 track05.wav

– Convertir a mp3

Linux

lame track05.wav track05.mp3

//////////////////// Comprimir archivos, folders o carpetas /////////////// –listar archivos o el contenido dentro del archivo zip unzip -l nombre-archivo

– Comprimir archivos a formato zip

Linux

gzip nombrearchivo

– Comprimor archivo en formato zip

Linux

zip ips.zip ips.txt

– Comprimir archivos

Linux

tar -zcvf archive_name.tar.gz directory_to_compress

-z gzip -gunzip -ungzip -c create cear nuevo archivo -v verbose desplegar info en la pantalla -f file nombre del archivo

– Comprimir directorios, folders, carpetas en formato gzip

Linux

zip -qq -R archivozip directorio

Este comando comprimira todo el contenido del directorio incluyendo los subdirectorios en el archivo “archivozip” o zip -qq -R archivozip

Este comando comprimira todo el contenido del directorio actual incluyendo subdirectorios qq = (silent o silencioso) R = Recursivo, que incluye los subdirectorios – Comprimir archivos con extension .html

Linux

find . -name "*.html" | xargs zip HTMLs-Nessus

No es necesario poner la extensión .zip ya que zip lo hace por nosotros – Descomprimir el directorio

Linux

unzip -qq archive -d ruta-directorio

Este comando descomprimira o extraera el contenido del archivo dentro de la ruta indicada en “ruta-directorio” Atencion: Si el archivo es muy grande (Gbyte) esto representa un gran problema para linux. Es mucho mejor usar P7ZIP, NO zip, tar, gzip, etc.!!

– Descomprimir archivos formato tar .tar.bz2

Linux

tar -xvjf file.tar.bz2

x - extract
v - verbose
j - bzip2
f - file

– Descomprimir archivos .tar

Linux

tar -xvf foo.tar

– Descromprimir archivos .gz

Linux

gunzip archivo.gz

– Descromprimir archivos .zip

Linux

unzip nombre-archivo

– Descomprimir archivos rar instalar unrar con yum

Linux

yum install unrar

luego ejecutar unrar x archivo.rar

//////////////////// FIN Comprimir archivos, folders o carpetas ///////////////

– Activar VNC Server Pasos rapidos Una guia rapida de los pasos necesarios para configurar un escritorio remoto usando

VNX en Red Hat Enterprise Linux 4 CentOS y derivados

Pon un password con el comando:

Linux

vncpasswd

Editar el archivo /etc/sysconfig/vncservers

Habilita el servicio con chkconfig vncserver on

Inicia el servicio con service vncserver start

Edita el archivo siguiente si deseas una sesion mas avanzada que solo twm y un xterm /home/username/.vnc/xstartup

– FIN Activar VNC Server Pasos rapidos

–Concatenar archivos en uno solo

Linux

cat *.csv >> archivoconcatenado.csv

– Ver la historia de comandos ejecutados

Linux

history

–Lista de comandos en el history file del 125 al 130

Linux

fc -l 125 130

– Ver el historial de comandos con fecha y hora

Linux

fc -li 100

– Formato de hora y fecha para history

Linux

HISTTIMEFORMAT="%Y-%m-%d %T "

–Ejecutar comandos del historial history

Linux

!n

Ejemplo para ejecutar el comando 415: !415 –Limpiar historial de comandos o command history

Linux

history -c

o bien editar archivo ~/.bash_history

–Desactivar activar SELinux

Linux

echo 1 >/selinux/enforce otras versiones de linux

setenforce 0 #desactivar en Red Hat setenforce 1 #activar en Red Hat

–GUI en texto o XWindow- Modificar Firewall

Linux

system-config-securitylevel

– Crear un alias

Linux

alias ll='ls -lh --color=tty'

Ejemplos alias: alias logseg=‘less /var/log/secure’ alias tlogseg=‘tail -20 /var/log/secure’

–Hacer un alias persistente Poner el comando dentro del archivo .bashrc ejemplo:

Linux

vi /home/<nombredeusuario>/.bashrc

incluir la linea de alias en el archivo

Linux

# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias 174='ssh lmoreno@51.52.71.174'
– Remover un alias

Linux

unalias ll

–Buscar reemplazar y/o eliminar texto en archivos Este comando busca el string lname,fname y elimina la linea donde se encuentre en el arvhivo csvfile.csv y crea el archivo noheaders.csv sin dichas lineas.

Linux

sed -e '/string-aqui/d' /opt/archivo-origen.csv > archivodestino.csv

– Eliminar el caracter CR o el retorno de carro de Windows para convertirlo en tipo Linux

Linux

sed -i 's/\r$//' nombredelarchivo.txt

– Busca un patron y borra desde el patron hasta el final del archivo

Linux

sed -i '/mfa/,$d' ~/.aws/credentials

–Archivo para cambiar la resolucion de pantalla

Linux

/etc/X11/xorg.conf

////////////////// Puertos y servicios asociados /////////////////////// -Ver puertos abiertos http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/security-guide/s1-server-ports.html

Hay varias formas de ver que puertos estan abiertos: – Conexiones establecidas

Linux

netstat -pn -A inet

– Conexiones en escucha

Linux

netstat -lpn -A inet

netstat -lantp

-l listening -a todas las conexiones activas con nombre de servicio -n todas las conexiones activas con puertos numéricos -t tcp -p PID/program -A inet solo queremos ver protocolos relacionados con la familia inet, es decir solo raw, tcp y udp, no queremos ver nada acerca de los sockets Unix que son para procesos de intercomunicación del sistema operativo lsof -iTCP -sTCP:LISTEN lsof -i

Otro metodo es usar nmap: nmap -sT -O localhost

con el comando anterior veremos un resultado como el siguiente:


Starting nmap V. 3.00 ( www.insecure.org/nmap/ ) Interesting ports on localhost.localdomain (127.0.0.1): (The 1596 ports scanned but not shown below are in state: closed) Port State Service 22/tcp open ssh 111/tcp open sunrpc 515/tcp open printer 834/tcp open unknown 6000/tcp open X11 Remote OS guesses: Linux Kernel 2.4.0 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)

Nmap run completed – 1 IP address (1 host up) scanned in 5 seconds


Para identificar el servicio que aparece como unknown (desconocido) ejecuta: cat /etc/services | grep 834

Sin embargo este comando puede no regresar resultados esto indica que mientas el puerto esta en el rango de puertos registrados (0-1024) y requiere permisos de root para ejecutarse, no esta asociado con ningun servicio Pero lo siguiente que se puede hacer es usar netstat o lsof para conocer el uso del puerto netstat -anp | grep 834 lsof -i | grep 834

–Regresa el numero de proceso que esta usando determinada aplicacion

Linux

pgrep sendmail

– Grep y perl más avanzado con ejemplo de nmap busca los sistemas operativos que son vulnerables a un escaneo tipo window

Linux

cat  nmap-os-db | perl -ne 'while(<>) { chomp;if (/^fingerprint\s+([^\#]+)/i) { if (defined($owin) and defined($cwin) and $owin ne $cwin) { print "$oname ($owin vs. $cwin)\n";} $oname=$1;undef($cwin);undef($owin);} elsif (/^T(4|6)\(.*W=([^%]+)/) { if ($1 eq 4){$owin=$2;} else { $cwin = $2; }}}' | sort -f

//////////// Fin puertos y servicios asociados /////////////////////// – Alias de destinatarios de correo electronico email alias

Linux

vi /etc/aliases

despues de editar este archivo ejecutar el comando, para que se genere el archivo en formato que sendmail pueda leer newaliases

– Checar la temperatura en laptops y/o equipos que tengan soporte ACPI

Linux

acpi -t

– Checar si hay link o conexion en la tarjeta de red y a que velocidad se amarro la tarjeta por default eth0

Linux

ethtool eth0

//////////////// IPTABLES //////////////////// – Archivo de scripts para iptables /etc/sysconfig/iptables

–reiniciar iptables

Linux

service iptables restart

–Bloquear un host especifico iptables

Linux

iptables -I INPUT -s 192.168.16.8 -j DROP

–Permitir acceso a un puerto especifico e IPs específicas, bloquear el resto

Linux

iptables -A INPUT -p tcp --destination-port 22 -m iprange --src-range 192.168.16.100 -j ACCEPT

Despues de agregar la politica reiniciar el servicio “service iptables restart” y probar –src-range puede ser representado como 192.168.16.100-192.168.16.200

–listar reglas iptables activas

Linux

iptables -L

– Digamos que deseas hacer permitir que un cliente se conecte al servidor FTP pero solo por un momento o una descarga tienes que modificar tus filtros de iptables de la siguiente forma: (lo mismo aplicaría para otro protocolo SSH puerto 21, http puerto 80, etc)

Linux

Permitir momentáneamente una IP para que acceda al servidor FTP

/sbin/iptables -I INPUT -s 200.52.66.116/32 -p tcp –dport 21 -j ACCEPT

–Para borrarla después de las pruebas

Linux

/sbin/iptables -t filter  -D INPUT 1

//////////////// FIN IPTABLES ////////////////////

//////////////// Manejo de usuarios ////////////////////

administracion de usuarios ——————- –agregar usuario / crear usuario

Linux

useradd <nombreusuario>

– cambiar password

Linux

passwd <nombreusuario>

Ejemplo: useradd -c “Luis Moreno” morenol

-c = campo GECOS el cual es usado regularmente para la descripcion del usuario passwd mi_password – Otro ejemplo sin embargo varias de las opciones ya son ejecutadas por default en RedHat, Fedora, CentOS, se recomienda usar el ejemplo anterior

Linux

/usr/sbin/useradd -d /home/lmoreno -s /bin/bash -c "Luis Moreno" lmoreno && mkdir /home/lmoreno && chown lmoreno /home/lmoreno && passwd mysupapassw0rd

– Mismo que el anterior pero sin establecer el password para mayor seguridad

Linux

/usr/sbin/useradd -d /home/lmoreno -s /bin/bash -c "Luis Moreno" lmoreno && mkdir /home/lmoreno && chown lmoreno /home/lmoreno

–borrar usuario

Linux

deluser <nombredeusuario>

Ejemplo: deluser -r dsantos

-r = remueve el directorio home del usuario y el mailbox del usuario –Ver usuarios del sistema

Linux

cat /etc/passwd

–Ver grupos del sistema

Linux

cat /etc/group

–Agregar un grupo

Linux

groupadd <nombredelgrupo>

– Para bloquear un usuario o para desactivar usuario

Linux

agregar el signo "+" delante de la línea del usuario en el archivo /etc/passwd

– Para bloquear con el comando passwd

Linux

passwd -l <nombreUsuario>

–Agregar un usuario a un grupo existente Por ejemplo para agregar el usuario luis al grupo secundario/suplementario web con el comando usermod

Linux

usermod -a -G web luis

– cambiar el grupo primario de un usuario

Linux

usermod -g www luis

———— FIN Manejo de usuarios ——————-

———— Politicas de password ———————

Editar el archivo /etc/login.defs y modificar los parametros al gusto

Linux

# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
# En español
# PASS_MAX_DAYS Numero maximo de dias que un password puede ser usado
# PASS_MIN_DAYS Numero minimo de dias permitidos para poder cambiar un password
# PASS_MIN_LEN Numero minimo de caracteres permitidos para un password
# PASS_WARN_AGE Numero de dias para envio de un aviso de que el password va a expirar
#
# Ver ejemplo abajo

PASS_MAX_DAYS 60
PASS_MIN_DAYS 0
PASS_MIN_LEN 8
PASS_WARN_AGE 10
Para cuentas que fueron creadas sin una politica de passwords el comando “chage” puede ser usado para crear una. Para hacer obligatorio el uso de passwords robustos, necesitas agregar el modulo pam_cracklib.so al grupo password management en /etc/pam.conf (o la definicion aplicable en /etc/pam.d) La administracion de passwords es algo tedioso, pero es una de las tareas mas importantes para reforzar la seguridad de un servidor. Esta al pendiente a los documentos de Tsares donde se explican los pasos para reforzar la seguridad de servidores Linux.

———— FIN Politicas de password ———————

//////////////// FIN administracion de usuarios ////////////////////

– Para obtener informacion de DNS, IPs, MX records, etc

Linux

host -a www.luismoreno.io

-a equivale a -v -t * “query type all”

Linux

dig any www.tsares.net

-any = todos los tipos de query

– Para hacer un reverse lookup es decir tengo la IP pero quiero saber cual es el nombre que tiene asignado

Linux

dig -x <direccion IP>

ejemplo:

Linux

dig -x 205.178.145.65

– para regresar solo la información que nos interesa sin la información de dig usamos +noall +answer en ese orden

Linux

dig +noall +answer -x 147.167.64.245

– para mostrar todas las entradas y regresar solo información útil enviar el siguiente comando

Linux

dig +multiline +noall +answer +nocmd kolibers.com ANY

– Extraer CD u otra media desde el shell eject #Sin parámetros extraerá la media por default que en la mayoría de los casos es el cdrom

Linux

eject cdrom

– Servicios que pueden ser desactivados pues regularmente no se usan

Linux

cups - servicios de impresion en linux - desactívalo si no imprimes en linux

autofs - automount para usb drives, floppy’s, cdrom’s etc. - no lo desactives si quieres que automonte tu flash card, etc apmd - estado de la batería, puede apagar el sistema si la bateria esta baja - desactivalo si no usas una laptop isdn - provee servicios de isdn - desactívalo si no usas isdn para conectarte a otra red

Lista con servicios, demonios, procesos, frecuentes y su explicacion: http://www.comptechdoc.org/os/linux/how … vices.html – Desactivar un proceso o servicio para que no se ejecute al iniciar el sistema chkconfig off

– Listar servicios activos y apagados del sistema

Linux

chkconfig --list

/////////////////// Servicio Telnet //////////////////////////// – Instalar servidor telnet (no se recomienda usar telnet ya que es inseguro, mejor utiliza ssh para entrar remotamente a tu sistema Linux

Linux

yum install telnet-server telnet

up2date telnet-server telnet

– Ver y cambiar configuración telnet

Linux

vi /etc/xinetd.d/telnet

– Cambiar puerto donde escucha telnet por default (23) al puerto 50005 (o el que se desee)

Linux

/usr/sbin/in.telnetd -debug 50005

– Desinstalar telnet

Linux

rpm -q telnet

rpm -e telnet

/////////////////// FIN Servicio Telnet //////////////////////////// – Crear un hash de un archivo

Linux

md5sum <nombredelarchivo>

//////////////////// Usando BitTorrent //////////////////////

– Instala BitTorrent con el comando

Linux

yum install bittorrent

Descarga tu archivo .torrent desde algun sitio como www.isohunt.com, www.bittorrent.com ejemplo: manuallinux.torrent

– Para comenzar la descarga Ejecuta el comando

Linux

bittorrent-curse manuallinux.torrent

espera un poco para que la descarga inicie y al finalizar presiona la letra “q”

– Empleando el cliente desde la línea de comando

Linux

transmission-cli -w /home/ubuntu/tpb -p 50000 magnet:?xt=urn:btih:aa0f51e1fbe286d935c5674ac0e2f3de62362ccf&dn=linux.manual&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Fopen.demonii.com%3A1337

Donde:

-w indica la ruta para descargar
-p el puerto que está abierto para recibir conexiones de otros hosts
magent: el link de descarga del archivo torrent

////////////////// FIN Usando BitTorrrent ////////////////

//////////// Checar ortografia en Linux /////////////////////

Es posible checar la ortografía de un archivo en Linux con el siguiente procedimiento Primero deberás tener instalado aspell puedes verificarlo simplemente tecleando en la línea de comandos aspell

Si recibes el mensaje:

Usage: aspell [options]

Quiere decir que si lo tienes instalado, en caso contrario usa yum para instalarlo en tu sistema algo así como yum install aspell

Si lo tienes instalado por default y tu sistema esta en ingles, descarga el diccionario en español más actualizado ejemplo:

Linux

wget ftp://ftp.gnu.org/gnu/aspell/dict/es/aspell-es-0.50-2.tar.bz2
Descomprime el archivo e instala
Linux

tar -xvjf aspell-es-0.50-2.tar.bz2
cd aspell-es-0.50-2
make
make install

Ahora podrás checar la ortografia de un archivo de texto ejemplo:

Linux

aspell -c --lang=sp <nombredelarchivo>

//////////// FIN Checar ortografia en Linux /////////////////////

– Convertir archivo en formato Windows o DOS con fines de linea CR LF a estilo unix con fines de linea LF

Linux

tr -d '\r' < archivoDOS > archivoUNIX-LINUX

– Convertir archivo en formato DOS con fines de linea CR LF a estilo unix con fines de linea LF

Linux

dos2unix <nombredelarchivo>

– Editor Hexadecimal para Red Hat

Linux

ghex

– Ver archivos en modo Hexadecimal desde la linea de comandos

Linux

hexdump -C <nombrearchivo>

– Para conectarse remotamente a un servidor Windows que tenga activado remote desktop o escritorio remoto Instalar rdesktop con

Linux

yum install rdesktop

Para conectarse a un servidor windows de nombre windowssrv con resolución de pantall de 1024 x 760 pixeles rdesktop -g 1024x768 windowssvr

– Reparar arranque en equipo dual boot de Windows y Linux - recuperar grub despues de instalacion de windows

Linux

chroot /mnt/
grub-install /dev/sda

– Cambiar el nombre de los sistemas operativos de arranque si el boot loader es grub Editar el archivo menu.1st con el siguiente comando

Linux

vi /boot/grub/menu.lst

En este archivo cambiar de nombre por ejemplo donde dice “Other” que regularmente es Windows ponerle un nombre que desees como Windows Vista o Windows XP

– Password for default keyring Para eliminar la petición de password cuando envía el siguiente mensaje:

“enter password for default keyring to unlock”

Eliminar el archivo

Linux

.gnome2/keyrings/default.keyring

Referencia: http://www.linux-archive.org/fedora-user/116611-enter-password-default-keyring-unlock.html

– En una lista de correos extraer solo el dominio

Linux

cat lista.txt | cut -d"@" -f2 | sed 's/^/@/'

– Agregar un usuario al archivo sudoers para que pueda ejecutar comandos administrativos, editar el archivo /etc/sudoers

Linux

vi /etc/sudoers

Si se desea que el usuario pueda ejecutar cualquier comando empleando sudo agregar la línea: (pero recuerda que siempre es más seguro propocionar solo los permisos mínimos necesarios)

Linux

lmoreno ALL=(ALL)       ALL

lmoreno is not in the sudoers file. This incident will be reported.

//////////////////////// Direccionamiento IP, Ruteo, arp //////////////////////////

– Archivo de configuracion IP estatica (RedHat y derivados como Fedora)

Linux

vi /etc/sysscripts/ifcfg-eth0

Linux

DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=00:0C:29:C8:AA:7C
IPADDR=192.168.16.3
NETMASK=255.255.255.0

GATEWAY=192.168.16.1
NETWORK=192.168.16.0
ONBOOT=yes
TYPE=Ethernet
– Configuracion para IP dinamica DHCP Configuracion DHCP

Linux

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
– Cambiar IP con el comando ifconfig

Linux

ifconfig eth0 192.168.1.5 netmask 255.255.255.0

– Para ver la direccion IP actual de una interfaz

Linux

ifconfig <interfaz>

Por ejemplo, el siguiente comando mostrara la configuracion actual de la primer interfaz de red: ifconfig eth0

– Cambiar MAC address. MAC Spoofing esta es una tecnica para cambiar la MAC address de una tarjeta, muchas veces util para realizar pruebas de seguridad o hacking Primero dar de baja la interfaz, ejemplo:

Linux

ifdown eth0

o bien ifconfig eth0 down

Posteriormente poner que MAC address deseamos con el comando: ifconfig eth0 hw ether 00:01:02:03:04:05

Finalmente dar de alta la tarjeta nuevamente: ifup eth0

Ahora la tarjeta ya sera reconocida con la MAC address 00:01:02:03:04:05 – FIN direccionamiento IP –

– DNS – – Agrear servidores DNS del equipo

Linux

echo "nameserver 192.168.16.254" >> /etc/resolv.conf

o bien editando el archivo resolv.conf

Linux

vi /etc/resolv.conf
nameserver 192.168.16.254
– Limpiar los DNS o flush DNS

Linux

/etc/rc.d/init.d/nscd restart

– FIN DNS –

– Ruteo – –Agregar una ruta por default

Linux

add default route

route add default gw 192.168.1.1

http://linux.about.com/od/commands/l/blcmdl8_route.htm

–para ver que default gateway asigno el dhcp

Linux

route -n

y buscar la entrada con las letras UG –O bien usar

Linux

netstat -r

y buscar la entrada que diga default – ver las rutas estaticas del equipo

Linux

route -n

– agregar una ruta de toda la red y enviarla al dispositivo eth0 (util cuando estás haciendo hacking como MITM o arp spoofing)

Linux

route add -net 200.66.81.64 netmask 255.255.255.192 dev eth0

– FIN Ruteo –

–Cuando se cambia una IP o se desea renovar la direccion DHCP se debe dar de baja y alta la tarjeta Da de baja la tarjeta eth0

Linux

ifdown eth0

Da de alta la tarjeta eth0 ifup eth0

ARP

– agregar entrada arp

Linux

arp -s 200.66.81.110 00:04:23:DC:D9:AC

– verificar entradas arp

Linux

arp -n

– buscar información del protocolo ARP

Linux

arp -an

ip neigh sudo arp-scan -l

http://linux-ip.net/html/ether-arp.html – FIN ARP –

– Cambiar hostname

Linux

hostname nuevonombre

Editar el archivo /etc/sysconfig/network HOSTNAME=

el cambio tomara efecto hasta el siguiente reboot si pones en /etc/hosts 127.0.0.1 el prompt cambia y php reconoce el hostname tambien

– FIN Cambiar hostname –

– Para ubuntu

Linux

hostname nuevonombre

/etc/hostname

– Realizar un trazado empleando TCP y un puerto en particular por ejemplo puerto 80 (aunque puede ser otro puerto ejemplo puerto 25)

Linux

traceroute -T -p 80 72.14.213.104

-T = TCP -p = port -80 = puerto (80 HTTP) Mas info en: http://www.linuxcertif.com/man/8/traceroute/40381/ – Direccionamiento en Ubuntu editar el archivo

Linux

/etc/network/interfaces

auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.254 dns-nameservers 192.168.1.254

– Configurar IP estática en Ubuntu 18

Linux

sudo vim /etc/netplan/50-cloud-init.yaml

network: ethernets: enp0s3: addresses: [192.168.1.2/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8,8.8.4.4] dhcp4: no version: 2

Y al final ejecutar sudo netplan apply

– Configurar IP dinámica

Linux

sudo vim /etc/netplan/50-cloud-init.yaml

network: ethernets: enp0s3: addresses: [] dhcp4: true version: 2

Y al final ejecutar sudo netplan apply

– Reiniciar el servicio de red

Linux

sudo ip addr flush eth0 && sudo systemctl restart networking.service

– Reinicar servicio de red sin hacer flush

Linux

systemctl restart network

Si acabas de cambiar la IP te va a desconectar de tu sesión actual

– cambiar el nombre de una interface al inicio en ubuntu 16 up Crear el archivo

Linux

/etc/udev/rules.d/70-persistent-net.rules

Agregar:

Linux

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="02:01:02:03:04:05", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"

– DNS Ubuntu Editar archivo

Linux

/etc/resolv.conf

//////////////// FIN Direccionamiento IP, Ruteo, arp //////////////////////

//////////////// Instalacion desinstalacion de programas /////////////////

– Instalar programas mediante rmp rpm -ivh <nombre del archivo .rpm>

i = install
v = verbose
h= human

Ejemplo:

Linux

rpm -ivh nessus.rpm

– Muestra si el paquete esta instalado

Linux

rpm -q "nombredelpaquete"

– Ver que rpms estan instalados por rpm

Linux

rpm -qa

Ejempo: Para ver si esta instalada la aplicacion mysql rmp -qa |grep mysql

–Remover desinstalar packages en caso de que tengan dependencias desinstalar paquetes

Linux

rpm -e --nodeps php-pear-1.4.9-1.2
rpm -e php-5.1.6-1.2

instalacion de programas con yum, uso de YUM - Instalar / desinstalar programas con YUM ——————-

– Instalación de yum en versiones de red hat

Linux

http://dag.wieers.com/rpm/packages/yum/

– Buscar paquetes descargados con yum desde cierto repositorio tambien llamado repo o repository

Linux

rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{VENDOR}\n"|grep livna | sort

– Para instalar un paquete

Linux

yum install <nombredelpaquete>

– Para buscar un paquete

Linux

yum search <nombredelpaquete o comando> ejemplo yum search yacc

– Para obtener informacion de un paquete

Linux

yum info net-snmp-utils

–Desinstalar paquetes con yum

Linux

yum remove <nombredelpaquete>

Cuando no se puede actualizar un paquete por errores en las dependencias se puede buscar los archivos que causan el problema, luego el paquete que depende de ese archivo y luego eliminar dicho paquete. Primero localizar el archivo ejemplo

Linux

locate libdts.so.0

Regresara el path donde se encuentra el archivo, ejemplo: /etc/libdts.so.0

Despues usar

Linux

yum provides /etc/libdts.so.0

esto es para encontrar que paquete esta haciendo referencia el resultado sera algo como libdca-0.0.5-1.fc7

Finalmente remover dicho paquete yum remove libdca-0.0.5-1.fc7

– Instalar paquete de un repositorio especifico Deshabilita el repositorio que no quieres que tome ejemplo:

Linux

yum --disablerepo=extras install paqueteA

Para evitar que yum seleccione alguna vez el paqueteA de extras puedes agregar la siguiente linea a el archivo extras.repo en la carpeta /etc/yum.repos.d/: exclude=paqueteA

También hay plugins que pueden controlar que paquetes son seleccionados de que repositorios, como yum-protectbase, yum-priorities, y yum-versionlock. – Instalar paquetes que envian mensaje de que no están firmados “is not signed” con yum Para esto hay dos formas:

  1. Usar simplemente “rpm -ivh paquete.rpm” (obtendras los siguientes resultados haciendo “yum localinstall package.rpm”); o 2. Editar /etc/yum.conf y cambiar el valor gpgcheck de 1 a 0.

– Instalar otros repositorios como Wieers DAG rpmforge

Linux

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
http://dag.wieers.com/rpm/FAQ.php#B
Instalar EPEL
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rp

http://fedoraproject.org/wiki/EPEL/FAQ#How_can_I_install_the_packages_from_the_EPEL_software_repository.3F
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
 rpm -ivh epel-release-latest-7.noarch.rpm
– verificar que está instalado

Linux

yum repolist

– como usar el repositorio epel repo para buscar un paquete

Linux

yum --enablerepo=epel info zabbix

– como instalr de epel

Linux

yum --enablerepo=epel install zabbix

Otros temas relacionados con yum ————-

–Desinstalar paquetes con rpm

Linux

rpm -e <nombredelpaquete>

–rpms y apt-get para red hat

Linux

http://dag.wieers.com/rpm/FAQ.php#B

– Si por alguna razon no baja el paquete que quieres instalar con Yum, te envia un error como el siguiente:

Linux

  [Errno 4] IOError: [Errno ftp error] [Errno ftp error] 502 Command REST not allowed by policy.

Trying other mirror. no more mirrors to try

Descarga el file directamente del link desde el navegador (firefox) y ponlo en la carpeta: /var/cache/yum/updates/packages

y ejecuta: yum install nuevamente

– Actualizar el sistema

Linux

yum update

FIN Instalacion y uso de YUM ————————–

– Instalación de programas con dpkg Para instalar un programa desde un archivo con ext .deb ejecutar

Linux

dpkg -i nombredelarchivo.deb

ejemplo para instalar Team Viewer en ubuntu 13.10 sudo dpkg -i teamviewer_linux.deb

el comando anterior enviará errores de falta de dependencias, que se solucionan con el comando force como sigue: sudo apt-get install -f

nuevamente aplicar el comando de instalación para que ahora con las dependencias resueltas se finalice la instalación correctamente: sudo dpkg -i teamviewer_linux.deb

Instalacion y reproduccion de archivos de musica mp3, videos y peliculas ——————— Para la reproduccion de videos, mp3, etc y basicamente cualquier necesidad de reproduccion necesitas Real Player, VLC y XMMS – Reproducir mp3 y/o videos

–Instalar XMMS

Linux

rpm -ivh http://rpm.livna.org/livna-release-5.rpm

Solo soporte para mp3 yum -y install xmms xmms-mp3

–Instalar xmms con todos los adins

Linux

yum install xmms*

Si lo anterior no funciona instalar: http://www.gurulabs.com/downloads/xmms-mp3-1.2.10-16.i386.rpm

– Tambien puedes instalar Real Player para Linux desde: Con este player puedes reproducir archivos mp3, peliculas .rmvb, etc www.real.com/linux descarga el rpm e instalalo por ejemplo si el rpm se llama RealPlayer11GOLD.rpm

Linux

rpm -ivh RealPlayer11GOLD.rpm

– Para instalar VLC Ve a la pagina http://www.videolan.org/vlc/ y selecciona tu sistema operativo por ejemplo Fedora y ejecuta los siguientes comandos:

Linux

su - rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm

yum install vlc yum install mozilla-vlc (opcional)

Instalar Firefox —————- –Instalar firefox descargar la ultima version y ejecutar el comando para descomprimir .tar.gz o .tgz

Linux

tar -xzvf nombrearchivo.tar.gz

x = extract z = gzip v = verbose f = file –Mozilla directory

Linux

/usr/lib/firefox-1.5.0.1/plugins

–Crear linkname para llama en firefox

Linux

ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so .

FIN Instalar Firefox —————-

Instalar Flash Player —————- Los siguientes pasos describen como instalar Flash Player para Fedora pero debe funcionar con pocos cambios para otras versiones El primer paso es ir al sitio de Adobe: http://get.adobe.com/flashplayer y seleccionar la opcion “YUM for Linux” y despues dar click en Download, Ahora instala el RPM que acabas de descargar con el comando: rpm -ivh adobe-release-i386-1.0-1.noarch.rpm (el nombre del archivo puede variar)

Una vez instalado el RPM ejecuta el siguiente comando: su -c ‘yum install flash-plugin alsa-plugins-pulseaudio libcurl’

Ahora cierra Firefox si estaba abierto y vuelvelo a abrir Para probar abre www.youtube.com y podras ver cualquier video Para mas informacion y opciones de instalacion para 64 bits ve a: http://fedoraproject.org/wiki/Flash

FIN Instalar Flash Player —————-

Instalar Java para Firefox —————- –Instalar Java

Linux

  descargar self extracting rpm

mover archivo a /usr/java por ejemplo y hacerlo ejecutable, ejecutar archivo para que se descomprima e instale.

–Java directory

Linux

  /usr/java/jre1.5.0_06

–Crear linkname para llama en firefox

Linux

  ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so .

FIN Instalar Java para Firefox —————- –Instalar Java descargar self extracting rpm

Linux

mover archivo a /usr/java por ejemplo y hacerlo ejecutable, ejecutar archivo para que se descomprima e instale.

–Java directory

Linux

/usr/java/jre1.5.0_06

Instalar Firefox —————- –Instalar firefox descargar la ultima version y ejecutar el comando para descomprimir .tar.gz o .tgz

Linux

tar -xzvf nombrearchivo.tar.gz

x = extract z = gzip v = verbose f = file –Mozilla directory

Linux

/usr/lib/firefox-1.5.0.1/plugins

–Crear linkname para llama en firefox

Linux

ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so .

FIN Instalar Firefox —————-

FIN Reproduccion de archivos de musica mp3, videos y peliculas ———————– –instalar ndiswrapper fc5hi

Linux

yum -y install kmod-ndiswrapper

–Instalar client de FTP Cliente

Linux

yum -y install gftp

Una vez instalado para ejecutarlo solo escribe “gftp” en la linea de comandos.

–Instalar ambiente grafico gnome

Linux

yum groupinstall "gnome"

–Instalacion desde codigo fuente entrar al directorio donde se encuentra el codigo fuente con

Linux

cd /nombredelDirectorio

./configure make make install

–Instalar ntop

Linux

http://www.howtoforge.com/network_monitoring_with_ntop

OpenOffice —————— –Para instalar diccionario en espanol ir a la siguiente pagina:

Linux

http://wiki.services.openoffice.org/wiki/Dictionaries

Descargar el archivo llamado DicOOo.sxw

Dar doble click y aceptar la advertencia de ejecutar macros Seguir las instrucciones para descargar el diccionario que se desee

<FIN OpenOffice ———————- –Otros Repositorios de Fedora

Linux

http://dag.wieers.com/rpm/

http://rpm.livna.org/rlowiki/

//////////////// FIN Instalacion desinstalacion de programas /////////////////

///////////////////// vim o vi //////////////////////////////// – Poner numeros de linea en vi :set number

– Quitar numeros de linea en vi

Linux

:set nonumber #quita numeros de linea

///////////////////// vim o vi //////////////////////////////// – Redireccionar los errores de salida de un comando a /dev/nul para que se desechen y no se muestren en pantalla

Linux

find / -name archivo 2>/dev/null

no estan en wiki – enviar un mail

Linux

mail <usuario>

ejemplo: mail lmoreno@localhost subject: escribir titulo del mensaje y teclear enter escribir el cuerpo del mensaje y teclear CTRL + D CC: si quieres una copia escribir la dirección aquí en caso contrario teclear CTRL + D

El mensaje será enviado al destinatario – checar que MTA esta en uso, teclear:

Linux

alternatives --config mta

There are 2 programs which provide ‘mta’. Selection Command

  • 1 /usr/sbin/sendmail.exim

2 /usr/sbin/sendmail.sendmail Enter to keep the current selection[+], or type selection number: – Para reenviar el correo que recibe root a otro usuario editar el archivo /etc/aliases

Linux

vim /etc/aliases

remover la el comentario a la línea: #root: marc

cambiar la linea por el usuario al que se quiere enviar el correo ejemplo al usuario lmoreno root: lmoreno

guardar el archivo con :wq ejecutar el comando: newaliases

y probar enviando un correo a root para que lo reciba el nuevo usuario – cambiar de usuario

Linux

su -s /bin/bash - apache

– ejemplos comandos tar http://www.tecmint.com/18-tar-command-examples-in-linux/

– mejorar conf putty http://dag.wieers.com/blog/content/improving-putty-settings-on-windows

– Listar discos en el sistema

Linux

fdisk -l

– Vim encoding http://unix.stackexchange.com/questions/23389/how-can-i-set-vims-default-encoding-to-utf-8

– copiar de windows a Linux con WinSCP http://ubuntuforums.org/archive/index.php/t-857784.html

– all about Encoding http://www.joelonsoftware.com/printerFriendly/articles/Unicode.html

–convertir encoding de nombres de archivos copiados con WinSCP desde Windows a Linux con eñes, acentos y caracteres especiales

Linux

convmv -f latin1 -t utf-8 -r --notest *

– convertir archivos de text Windows notepad ANSI (ASCII) a UTF-8

Linux

iconv -f 8859_1 -t utf-8 2lista.lst > lista.lst

– ver que tipo de archivo son todos los archivos con extensión mp3

Linux

find ./ -name "*.mp3" -print0 | while read -d $'\0' file; do file  "$file"; done > /opt/paso/mp3list.txt

– ver el espacio usado en el disco

Linux

df -h

– ver el espacio usado por cada folder

Linux

du -s /media/Nabucodonosor/data

– ver el espacio usado por cada folder pero de forma resumida y total

Linux

du --max-depth=1 -h

– ver archivos abiertos

Linux

lsof -i -n

lsof -p 8295

-i muestra el host -n sin resolver nombres (respuesta más rápida) – Montar un volumen en EC2 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html

– Permisos al folder /var/www/html apache para un nuevo usuario

Linux

chown -R apache:apache /var/www/html

usermod -a -G apache myuser chmod 777 /var/www/html -R chmod -R g+w /var/www/html

EC2 – resize storage, resize partition expanding the storage space of a volume emplear todo el espacio en un volumen http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html

– Respaldo de folder completo comprimido

Linux

tar -czvf myarchive.tgz mydirectory/

– rsync copiar archivos incrementalmente

Linux

rsync -avzhP /home/lmoreno/datos lmoreno@192.168.1.50:/mnt/data/datosbackup

-v : verbose -r : copies data recursively (but don’t preserve timestamps and permission while transferring data -a : archive mode, archive mode allows copying files recursively and it also preserves symbolic links, file permissions, user & group ownerships and timestamps -z : compress file dataroot a otro usuarioroot a otro usuario -h : human-readable, output numbers in a human-readable format -P : shows progress

http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/ – Copiar una carpeta remota a una local

Linux

rsync -aOvzhP -e "ssh -i EC2.private" root@192.168.1.30:/var/www/html/content/user_1/shoutcast198 /home/ec2-user/logs/

-O no copiar atributos de hora de las carpetas – Primero crear la carpeta local donde se va a montar la carpeta compartida

Linux

mkdir -p /mnt/windows

-p = crea la ruta si no existe por ejemplo si no existiera /mnt también crea esta carpeta – Montar la carpeta compartida

Linux

mount -t cifs //servidor/carpetawindows -o username=luis.moreno,password=Misuperpassword /mnt/windows

Para versiones viejas de Red Hat Enterprise Linux menores o iguales a 4 o Debian menores o iguales a 3 usa este comando mount -t smbfs -o username=luis.moreno,password=Misuperpassword //servidor/carpetawindows /mnt/windows

-t cifs o t smbfs = especifica el tipo de unidad a montar en este caso Common Internet File System o SMB que pertenece a Windows //servidor/carpetawindows es el servidor y el nombre de la carpeta compartida Windows -o son opciones que se le pasan al comando mount en este paso fue nombre de usuario (luis.moreno) y password (Misuperpassword) /mnt/windows es donde se va a montar localmente la carpeta compartida de windows Si el password tiene coma o apostrofe dejarlo sin password lo solicitará al ejecutar el comando

– ver el contenido de la carpeta con

Linux

ls -l /mnt/windows

http://www.cyberciti.biz/tips/how-to-mount-remote-windows-partition-windows-share-under-linux.html – Crear archivo con con 0s

Linux

dd if=/dev/zero of=/test bs=1048576 count=1024

///////////////////// crontab ////////////////////////////////

– ver los jobs programados

Linux

crontab -l

– edit tar archivo crontab

Linux

crontab -e

– también puedes ver el archivo directamente en la siguiente ruta, pero no es recomendable que lo edites directamente ya que el archivo es leído cuando el sistema inicia y se carga en memoria, el comando crontab -e es la mejor opción para editarlo pues interactúa con cron de manera correcta.

Linux

 /var/spool/cron/root

En Ubuntu /var/spool/cron/crontabs

Las líneas de crontab se ejecutan como se ve en la gráfica

Linux

* 	*      *   *    *        Comando a ejecutar
- 	-      -   -    -
| 	|      |   |	|
| 	|      |   |	+----- día de la semana (0 - 6) (Domingo=0)
| 	|      |   +------- mes (1 - 12)
| 	|      +--------- día del mes (1 - 31)
| 	+----------- hora (0 - 23)
+------------- min (0 - 59)
///////////////////// crontab ////////////////////////////////

– Dividir un archivo en varias partes, ya sea por tamaño, número de líneas, etc. Ejemplo: dividir por tamaño

Linux

split -b 200M nombredearchivo

– Ver el porcentaje de uso del Procesador

Linux

grep 'cpu1 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'

En caso de que haya más de un procesador usar las variantes

Linux

grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
grep 'cpu1 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
grep 'cpu2 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
– enviar proceso al background

Linux

ctrl+z 

y luego teclear

Linux

bg
para traerlo de nuevo
Linux

fg
o si es más de un proceso

– para ver los intentos de login en el archivo btmp usar el comando lastb, ejemplo:

Linux

last -f /var/log/btmp

El archivo btmp debe tener permisos limitados y solo para root ejemplo:

Linux

chown root:utmp /var/log/btmp && chmod 600 /var/log/btmp

– Corregir error al aplicar apt-get update dpkg:

Linux

error processing /var/cache/apt/archives/python-apport_2.0.1-0ubuntu9_all.deb

Linux

sudo dpkg -i --force-overwrite <filename>

En este caso

Linux

sudo dpkg -i --force-overwrite /var/cache/apt/archives/python-problem-report_2.0.1-0ubuntu9_all.deb

– Ordenar IPs

Linux

sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n ips.txt

-t . separador de campo es el punto
-k 1,1n primer campo para ordenar es el 1, ordenar numérico
Cada campo es ordenado 1 a 1 en orden

– Ordenado rápido

Linux

sort -V ips.txt

Referemcia: https://www.madboa.com/geek/sort-addr/

– obtener IP pública

Linux

dig +short myip.opendns.com @resolver1.opendns.com

alias myip=‘dig +short myip.opendns.com @resolver1.opendns.com’

– Que paquetes est[an instalados

Linux

rpm -qa

yum list installed yum update && yum install yum-utils repoquery -a –installed

– Levantar una interface

Linux

ip link  set eth0 up

– Establecer una IP

Linux

ip addr add 10.23.34.46/29 dev eth0

– Borrar una IP

Linux

ip addr del 10.23.34.46/29 dev eth0

– Establecer ruta por default

Linux

ip route add default via 47.23.34.41 dev eth0

– reiniciar servicios de red (networking) ubuntu

Linux

sudo service network-manager restart

– modificar IP desde la interfaz gráfica gui

Linux

nm-connection-editor

– ver cuanto tiene de memoria y cuantos slots ocupados y libres así como la capacidad total

Linux

dmidecode -t memory

lshw -class memory dmidecode -t 16

– iTerm2, dividir la consola en dos de forma horizontal

Linux

CMD + shift + D

– iTerm2, dividir la consola en dos de forma vertical


Atajos de Teclado

Sección 14: Atajos de Teclado

Movimiento del cursor en la consola

Atajo Acción
Ctrl + A Ir al inicio de la línea
Ctrl + E Ir al final de la línea
Alt + B o Esc + B Moverse una palabra hacia atrás
Alt + F o Esc + F Moverse una palabra hacia adelante
Ctrl + B Moverse un carácter hacia atrás
Ctrl + F Moverse un carácter hacia adelante
Ctrl + XX Alternar entre el inicio y la última posición del cursor

Edición de texto en consola

Atajo Acción
Ctrl + U Cortar desde el cursor hasta el inicio
Ctrl + K Cortar desde el cursor hasta el final
Ctrl + W Cortar la palabra anterior al cursor
Alt + D Cortar la palabra siguiente al cursor
Ctrl + Y Pegar lo último que se cortó
Ctrl + _ Deshacer el último cambio

Navegación por el historial

Atajo Acción
Ctrl + R Búsqueda inversa en el historial
Ctrl + S Búsqueda hacia adelante (puede estar desactivada)
Flechas ↑ / ↓ Navegar por los comandos anteriores/siguientes
Ctrl + P Comando anterior (igual que flecha ↑)
Ctrl + N Comando siguiente (igual que flecha ↓)

Reutilización de comandos

Atajo Acción
!! Ejecutar el último comando
!n Ejecutar el comando número n del historial
!palabra Ejecutar el último comando que comienza con palabra
^viejo^nuevo Sustituir viejo por nuevo en el último comando

Misceláneos

Atajo Acción
Ctrl + L Limpiar la pantalla
Ctrl + D Salir o enviar EOF si la línea está vacía
Ctrl + C Cancelar el comando actual
Ctrl + Z Suspender el comando actual (enviar a segundo plano)
Alt + . Insertar la última palabra del comando anterior