Subido por Uma Meiga

ComandosLinux

Anuncio
Comandos Linux:
o
Permisos de root:
usuario@ubuntu-virtual-machine:~#
Dar permisos de root
sudo -i
o
Ejecutar una tarea de forma puntual como:
$ sudo <comando>
o
Shell de root ejecutando:
$ sudo bash #
o
Activar la cuenta de root al establecer su contraseña:
$ sudo passwd root
o
Entrar en un directorio
cd /home
o
Ficheros de configuración del sistema:
/etc/
o
Actualizar sistema:
# apt-get upgrade
o
Búsquedas:
# apt-cache search <nombre>
o
Consulta de información
# apt-cache show <paquete>
o
Instalación de paquetes
# apt-get install <paquete>
o
Desinstalar un paquete
# apt-get remove <paquete>
A la hora de buscar o instalar un programa puede utilizar el carácter * para indicar cualquier carácter. Por
ejemplo, si desea instalar cualquier aplicación que empiece por php entonces ejecuta apt-get install php-*.
o
Instalación directa de un paquete
# dpkg -i nombre_paquete
o
Para eliminar un paquete necesitamos saber nombre exacto
# dpkg-query –s nombre
# dpkg -r nombre_completo
o
Instalar herramientas de compilación
# apt-get install build-essential
o
Conocer discos duros y particiones
# fdisk –l
o
Utilizar fdisk en un disco duro
# fdisk /dev/sda
Comandos disponibles pulsar m
Crear partición pulsar n
Formateo
# mkfs /dev/sda1
Montar la unidad en un directorio existente
# mkdir /datos
Montar manualmente la partición
# mount /dev/sda1 /datos
Montar de manera definitiva el sistema de ficheros hay que editar al fichero /etc/fstab y añadir al
final /dev/sda1 /datos ext2 defaults 0 0
Y para terminar o reiniciamos o ejecutamos mount /datos.
Monitorización
o
Resumen espacio libre discos duros
# df
o
Cantidad espacio utilizado directorio o archivos
$ du –ms /datos
o
----espacio utilizado en megabytes por el directorio datos.
Comprobar y reparar estado sistema ficheros
fsck
Permisos
o
Permisos sistema ficheros en un directorio (permisos, usuario propietario, grupo propietario, tamaño
del fichero o directorio, fecha creación y última modificación y nombre)
ls -la
drwxrwx--d indica que es un directorio, (rwx) r indica lectura, w escritura y x ejecución. Si no
existe un permiso aparece el carácter (-).
o
Definir permisos de un fichero o directorio
# chmod <modo> fichero
<modo> indica los permisos dados.
Establecer permisos rw- para el propietario y r-- para el resto:
# chmod 644 fichero 644 el primer valor corresponde al usuario propietario, el segundo al
grupo propietario y el tercer valor corresponde a todos los demás usuarios del sistema.
r vale 4, w vale 2 y x vale 1. De esta forma si tiene el valor 7 corresponde a (rwx), el valor 6
corresponde a (rw-)…
o
Cambiar al propietario de cualquier fichero o directorio
chown <NombreUsuario> [.<NombreGrupo>] <fichero>...
o
Para cambiar el grupo
# chgrp <NombreGrupo> <fichero>...
o
Comandos chmod, chown y chgrp la opción –R establece los permisos al directorio y a todos los
datos que contiene
# chmod 777 /datos -R
o
Ver opciones de un servicio
# /etc/init.d/apache2
o
Parar dicho servicio
# /etc/init.d/apache2 stop
o
Parar con el comando service
# service apache2 stop
o
Administrar servicios del sistema modo terminal hay que instalar herramienta sysv-rc-config
# apt-get install sysv-rc-config
Para ejecutarla
# sysv-rc-config y se puede habilitar o deshabilitar los servicios.
o
Herramienta chkconfig permitía administrar los servicios que se inician automáticamente cuando
arranca el sistema (# apt-get install chkconfig), ya no disponible en Ubuntu. Con un script y
ejecutándolo con Perl(~$ perl chkconfig --list) Para ver el estado de los servicios # chkconfig --list,
para ejecutar apache por ej. automáticamente # chkconfig apache2 on. Deshabilitarlo # chkconfig
apache2 off
Otra forma sería # update-rc.d apache2 enable
o
Ver procesos en ejecución
~$ ps
# ps -A ------ Ver todos los procesos en ejecución del sistema.
# kill -9 <ID del proceso> ----- Eliminar un proceso que se está ejecutando
Otra opción, la herramienta top, en tiempo real informa sobre la actividad del sistema.
Programar tareas
Comprobar que el servicio crond está en ejecución
# service crond status
Para modificar dicho fichero
# crontab –e
Fichero formato:
PATH=/bin
0 0 * * * /root/comprobar_seguridad.sh
0 0 1 * * /root/copia_seguridad.sh
Se ejecuta el script comprobar_seguridad.sh todos los días a las 0:00h y
Se ejecuta copia_seguridad.sh el primer día de cada mes
Sintaxis tareas programadas
# .---------------- minuto (0 - 59)
# | .------------- hora (0 - 23)
# | | .---------- día del mes (1 - 31)
# | | | .------- mes (1 - 12) o jan,feb,mar,apr ... (los meses en inglés)
# | | | | .---- día de la semana (0 - 6) (Domingo = 0 o 7) OR
sun,mon,tue,wed,thu,fri,sat (los días en inglés)
#|||||
#|||||
* * * * * Comando a ejecutar
Ejemplo: tareas que se ejecutan una vez a la semana:
0 1 */7 * * tarea.sh
* * * * 1 tarea.sh
o
Directorio /proc
información almacenada por el núcleo de Linux relativa a su funcionamiento.
Comandos más utilizados (usuarios)
Herramientas básicas de monitorización en GNU/Linux
Utilidad tar para copias de seguridad.
# tar cvf /root/copia.tgz /home/
---- copia el directorio home en el fichero copia.tgz
Comando dd para copias exactas
# dd if=fichero_origen of=fichero_destino
Clonar un disco duro a otro
# dd if=/dev/sda of=/dev/sdb
Sincronizar carpetas locales
$ rsync –avz /carpeta_origen /carpeta_destino
Sincronizar carpetas en dos equipos
$ rsync –avz /carpeta_origen 192.168.0.9:/carpeta_destino
Crear una imagen iso del directorio home
# mkisofs -o /root/imagen.iso /home/
o
Para grabar dicha imagen en un CD-ROM
# cdrecord /root/imagen.iso
o
Asignar dirección IP
# ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
o
Para desactivar interfaz de red
# ifconfig eth0 down
o
Para activar interfaz de red
# ifconfig eth0 up
o
Ifconfig --- para comprobar la interfaz como ipconfig
o
Asignar puerta de enlace
# route add –net 0/0 gw 192.168.0.1 eth0
o
Red inalámbrica
iwconfig
o
La configuración hay que guardarla en el fichero
/etc/network/interfaces
Fichero:
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
# gateway 10.0.0.1
o
Asignar de manera automática
# dhclient eth0
o
Configuración del nombre del equipo en el fichero /etc/hostname
o
Configuración del servidor DNS de forma local en el fichero /etc/hosts
Fichero, nombre y dirección de las máquinas locales para la resolución de nombres local
127.0.0.1 localhost.localdomain localhost
193.147.0.29 www.mec.es
o
Configuración servidores DNS editar el fichero /etc/resolv.conf
nameserver 8.8.8.8
nameserver 150.214.156.2
o
Para aplicar los cambios
# /etc/init.d/networking force-reload
o
Comandos IPTABLES
iptables -L ------- muestra el estado de la tabla filter
iptables -t nat -L ------- muestra el estado de la tabla NAT
iptables -A <parámetros> -j <acción> ------ añadir una regla para que el cortafuegos realice una
acción sobre un tráfico en concreto.
iptables -D <parámetros> -j <acción> ------ quitar una regla del cortafuegos.
Comandos posibles en la tabla FILTER
-j ACCEPT acepta el tráfico
-j DROP elimina el tráfico
-j REJECT rechaza el tráfico e informa al equipo de origen.
-j LOG -log-prefix “IPTABLES_L” Registra el tráfico que cumple los criterios en /var/log
Comandos posibles en la tabla NAT:
-j MASQUERADE ---- Hace enmascaramiento del tráfico (NAT) de forma que la red interna sale al
exterior con la dirección externa del router.
-j DNAT --to <ip> ---- Para tener acceso desde el exterior a un servidor que está en la red interna.
Limpiar la configuración del cortafuegos
iptables -F
iptables -t nat -F
Configurar el acceso al exterior
iptables -A FORWARD -j ACCEPT. Permite todo el tráfico.
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT. Permite sólo el tráfico de la red interna
192.168.0.0/24.
iptables -A FORWARD -s 192.168.0.0/24 -p TCP –dport 80 -j ACCEPT. Permite sólo el
tráfico de la red interna 192.168.0.0/24 en el puerto 80.
Parámetros para especificar las reglas de iptables
Guardar configuración
# iptables-save >/etc/iptables.rules
Para modificar el fichero /etc//iptables.rules directamente y cargar su configuración
# iptables-restore < etc/iptables.rules
Modificamos el fichero /etc/network/interfaces incluyendo al final:
pre-up iptables-restore </etc/iptables.rules
Para configurar el sistema para que actúe como router
# echo "1" >/proc/sys/net/ipv4/ip_forward
Ejemplo
Red interna con salida solo al exterior para navegar por el puerto TCP 80 y para las DNS 53 UDP
TCP y con un servidor web interno que se encuentra en la dirección 10.0.0.100.
Limpiamos configuración
# iptables -F
# iptables -t nat -F
Red interna con salida al exterior por NAT
# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -d 0/0 -j MASQUERADE
Se permite sólo el tráfico web (80/tcp) y DNS (53/udp y 53/tcp). Todo lo demás se deniega:
# iptables -A FORWARD -s 10.0.0.0/24 -p TCP --dport 80 -j ACCEPT
# iptables -A FORWARD -s 10.0.0.0/24 -p TCP --dport 53 -j ACCEPT
# iptables -A FORWARD -s 10.0.0.0/24 -p UDP --dport 53 -j ACCEPT
# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# ip FORWARD -j DROP
Redirige el tráfico web que entra por la interfaz externa (eth0) al servidor de la red interna:
# iptables -t nat -A PREROUTING -i eth0 –p tcp --dport 80 -j DNAT -- to 10.0.0.100:80
Guardar configuración
# iptables-save >/etc/iptables.rules
Modificar el fichero /etc/network/interfaces añadiendo al final:
pre-up iptables-restore </etc/iptables.rules
o
Instalar el servidor DHCP
# apt-get install dhcp3-server
Comprobar la configuración
# dhcpd3 eth1
Iniciar el servicio
# service dhcp3-server start
Iniciarlo automáticamente
# chkconfig dhcp3-server on
o Instalar SSH
# apt-get install ssh
# service ssh start
Permisos a usuarios
AllowUsers [email protected] [email protected]
Aplicar cambios
# /etc/init.d/ssh restart
Conectar al servidor
$ ssh <equipo>
donde <equipo> nombre del equipo o la dirección IP
SSH sin contraseña
Servidor
Desde el directorio home del usuario generamos la clave privada y pública para el sistema RSA. Para ello
ejecutamos
$ cd
$ ssh-keygen -b 4096 -t rsa
Copiamos la clave pública al servidor
$ scp .ssh/id_rsa.pub root@servidor:.ssh/nueva_clave
Cliente
Acceda al cliente y copie la clave pública del cliente en authorized_keys
$ ssh root@servidor
# cd .ssh/
# cat nueva_clave >> authorized_keys
Establecemos los permisos de acceso al fichero:
# chmod 0700 $HOME/.ssh/
# chmod 0600 $HOME/.ssh/authorized_keys
La primera vez que se accede al servidor se almacena su host_key en el fichero $HOME/.ssh/know_hosts y a
partir de ese momento puede conectarse al servidor sin necesidad de contraseña.
o
Instalar VNC
# apt-get install tightvncserver
Indicar contraseña
# vncpasswd
Crear ficheros configuración e iniciar servicio
# vncserver
Descargar