Presentación sobre administración de servicios en los sistemas GNU/Linux, como parte del Diplomado de Software Libre que se lleva a cabo en la Universidad Abierta para Adultos (UAPA), Santiago de los caballeros. #Linux #softwarelibre
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
[ES] Administración de servicios en GNU/Linux
1. Diplomado en Software Libre
Administración de Servicios
en GNU/Linux
Eudris Cabrera Rodríguez
06 Julio 2014, Santiago de los Caballeros, R. D.
@eudriscabrera @eudriscabrera
2. Todas las marcas registradas, así como todos los logotipos, imágenes,
fotografías, audio y vídeos mostrados en esta presentación son propiedad de
sus respectivos propietarios.
Su utilización es solamente para fines ilustrativos y no pretendo dar a entender
cualquier afiliación con esas empresas.
Los conceptos y juicios de valor emitidos en esta presentación son
responsabilidad personal y no se puede entender como una posición oficial de
alguna empresa con la que he tenido relación laboral.
Asuntos Legales
3. Agenda
● Servicios
○ Iniciar servicios manualmente
○ Comandos útiles para arrancar servicios
● Administración de red
○ Comandos básicos
● Servicios de conexión remota
○ Telnet
○ SSH
4. Objetivos
❖ Aprender los conocimientos básicos para administrar servicios en
GNU/Linux.
❖ Conocer los servicios más importantes para la conexión remota
6. Servicios
GNU / Linux ofrece multitud de servicios o servidores, estos pueden
iniciar o arrancar junto con la carga del sistema o pueden después ser
puestos a funcionar cuando se requieran.
7. Iniciando servicios manualmente
Directorio init.d
Dentro de este directorio ubicado en /etc o en /etc/rc.d dependiendo de la
distribución, se encuentran una serie de scripts que permiten iniciar/detener la
gran mayoría de los servicios/servidores que estén instalados en el equipo.
Estos scripts están programados de tal manera que la mayoría reconoce los
siguientes argumentos:
start
stop
restart
status
Los argumentos son autodescriptivos, y tienen permisos
de ejecución, entonces siendo root es posible iniciar un
servicio de la siguiente manera, por ejemplo samba:
$ /etc/rc.d/init.d/smb start
8. Comando service
El comando service permite iniciar, parar, o reiniciar un servicio del
sistema.
En este caso es el servicio networking, así que tienes que escribir –
como superusuario – el siguiente comando:
sudo service network start/stop/restart
9. Iniciando servicios (desde el arranque del sistema)
En Linux, a diferencia de otros sistemas operativos, es posible
configurarlo en base a niveles de ejecución (run levels), cada nivel de
ejecución (en la mayoría de las distros son 7), inicia o detiene (Start o Kill)
ciertos servicios.
Estos niveles son los siguientes:
0 Detener o apagar el sistema
1 Modo monousuario, generalmente utilizado para mantenimiento del sistema
2 Modo multiusuario, pero sin soporte de red
3 Modo multiusuario completo, con servicios de red
4 No se usa, puede usarse para un inicio personalizado
5 Modo multiusuario completo con inicio gráfico ( X Window)
6 Modo de reinicio (reset)
10. Comando init
Este comando te permite cambiar el nivel de ejecución actual por otro,
es decir puedes estar en el nivel 3 y en cualquier momento pasar al 5 o
viceversa, o entrar a un modo monousuario para tareas de
mantenimiento como utilizar fsck.
Esto sin necesidad de cambiar la línea initdefault en /etc/inittab,
simplemente usando el comando init:
$> init 3
11. Directorios rc
Debajo de /etc se encuentra el directorio rc.d que a la vez contiene un
directorio para cada nivel de ejecución, así tenemos rc0.d, rc1.d, rc2.d, rc3.d,
etc.
Hay algunas distros que estos directorios están ubicados directamente en /etc.
Cada uno de estos directorios contienen scripts (o mas bien enlaces a scripts)
que apuntan al directorio init.d, entonces el comando init (ya sea ejecutado
manualmente o cuando se inicia el sistema), dependiendo del nivel indicado
leerá cada uno de los enlaces o accesos directos del directorio respectivo.
12. Comando chkconfig
Permite configurar que servicios arrancan/detienen en cada nivel de
ejecución.
chkconfig no inicia ni detiene servicios al momento (excepto aquellos bajo
xinetd), tan solo crea o elimina precisamente los enlaces de los que se habló
en el punto anterior de una manera más amigable.
La opción --list nos da una lista de todos los servicios instalados y para cada nivel si
arrancará (on) al entrar a este nivel o se detendrá (off) o simplemente no se iniciaron.
13. Si se indica como argumento el nombre de algún servicio nos regresará su
estatus:
$ chkconfig smb
smb on
Sin ningún argumento nos dará una lista con el status de todos los servicios:
$ chkconfig
httpd off
mysql on
smb on
Se desea que el servidor web apache (httpd) inicie cuando se
entra en el nivel 5, entonces usamos la opción --level:
$ chkconfig --level 5 httpd on
La base de datos MySQL no se desea que inicie en los niveles 3 y
5, solo hasta que el administrador decida arrancarla:
$ chkconfig --level 35 mysql off
14. Existe una alternativa a la herramienta chkconfig llamada sysv-rc-conf
que permite la configuración gráfica del arranque de servicios.
En debian y derivados
$ sudo apt-get install sysv-rc-conf
Para ejecución sólo tienes que escribir el comando sysv-rc-conf.
16. Comando básico para redes en GNU/Linux
$ /etc/init.d/networking start
Inicia los servicios de red.
$ /etc/init.d/networking restart
Reinicia los servicios de red.
$ /etc/init.d/networking stop
Para los servicios de red.
17. Comando básico para redes en GNU/Linux
ifconfig
El comando ifconfig muestra por pantalla un listado de todas las interfaces
de red con su respectivo identificador (“eth” para ethernet, “wlan” para wifi, y
“lo” para la dirección 127.0.0.1) y sus parámetros de configuración (dirección
IP, dirección MAC, máscara de red y más información técnica).
ifconfig [interfaz opciones IP]
Información y configuración de interfaces de red.
ifconfig
Muestra el estado de los interfaces activos.
18. Comando básico para redes en GNU/Linux
ifconfig -a
Muestra el estado de todos los interfaces.
ifconfig ppp0
Muestra el estado de ppp0
ifconfig eth0 up
Activa eth0.
ifconfig eth0 down
Cierra eth0.
ifconfig eth1 address 156.35…
Asigna una dirección al interfaz especificado.
19. Comando básico para redes en GNU/Linux
iwconfig
Similar a ifconfig pero sólo para interfaces wireless.
ifup interface
Habilita la interface especificada,ejemplos: ifup eth0 ;ifup ppp0
ifdown interface
Deshabilita la interface especificada,ejemplos: ifdown eth0 ;ifdown ppp0
20. Comando Netstat
Netstat (network statistics) es una herramienta de línea de comandos
que muestra un listado de las conexiones activas, tanto entrantes como
salientes.
Existen versiones de este comando en varios sistemas como Unix,
GNU/Linux, Mac OS X, Windows y BeOS.
La información que resulta del uso del comando incluye el protocolo en
uso, las tablas de ruteo, las estadísticas de las interfaces y el estado de
la conexión.
NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [intervalo]
21. Comando ping
Una utilidad básica para cualquiera que trabaje un poco con redes, sirve
para comprobar si se realiza correctamente el envío de datos al equipo
destino:
ping ip_destino
22. Comando ping
Una utilidad básica para cualquiera que trabaje un poco con redes, sirve
para comprobar si se realiza correctamente el envío de datos al equipo
destino:
ping ip_destino
26. Servicios sobre TCP/IP
El protocolo TCP/IP es en realidad un conjunto de protocolos básicos
que se han ido agregando a principal para satisfacer las diferentes
necesidades en la comunicación ordenador-ordenador como son TCP,
UDP, IP, ICMP, ARP.
La utilización más frecuente de TCP/IP para el usuario en la actualidad
son la conexión remota a otros ordenadores (telnet, SSH Secure
Shell), la utilización de ficheros remotos (Network File System NFS) o
su transferencia (File Transfer Protocol FTP, Hipertext Markup Protocol,
HTTP).
27. Telnet y telnetd
Telnet es un comando (cliente) utilizado para comunicarse
interactivamente con otro host que ejecuta el daemon telnetd.
El comando telnet se puede ejecutar como telnet host o interactivamente
como telnet, el cual pondrá el prompt “telnet>” y luego, por ejemplo:
open host.
Una vez establecida la comunicación, se deberá introducir el usuario y el
password bajo el cual se desea conectar al sistema remoto.
28. Ssh, Secure shell
El protocolo ssh (en su versión OpenSSH) provee de un conexión
encriptada y comprimida mucho más segura que, por ejemplo, telnet (es
recomendable utilizar la versión 2 del protocolo).
Es un reemplazo de rlogin, rsh y rcp.
Todas las distribuciones actuales incorporan el cliente ssh y el servidor
sshd por defecto.
29. Ssh, Secure shell
Sintaxis
$ ssh user@hostname [command]
SSH soporta diferentes modos de autentificación (ver man ssh) basados en algoritmo
RSA y clave pública.
Para ejecutar el comando, hacer:
ssh -l login name host
Utilizando el comando ssh-keygen -t rsa|dsa, se pueden crear las claves de identificación de usuario.
30. Ssh, Secure shell
Comando scp
El comando scp permite copiar ficheros entre dos máquinas.
Utiliza ssh para la transmisión de la información, por lo que ofrece la
misma seguridad que el ssh.
Sintaxis:
scp archivo_a_copiar usuario@host:/ruta_destino
Ejemplo:
$ scp ~/Documents/miarchivo.txt usuario1@servidor.dominio.es:/home/usuario1/
31. Ssh, Secure shell
Ejecutar un programa GUI en la pantalla de un ordenador remoto.
1. Loguearse en una máquina remota
ssh usario@host
2. Recomendar a las aplicaciones GUI que se lanzará en la pantalla local (por lo
que, cualquier programa gráfico que se ejecuta, se mostrará en la pantalla del
equipo remoto):
$ export DISPLAY=:0
3. Ejecutar programa GUI. Por ejemplo vamos a empezar el navegador Firefox,
que se lanzará y se visualiza en la pantalla del equipo remoto en el que se
encuentra logueado.
$ firefox "www.shellhacks.com"
32. Ssh, Secure shell
Utilice nohup para impedir que un proceso se detenga después de cerrar
la sesión SSH.
$ nohup firefox "www.shellhacks.com"
También podemos enviar una notificación al usuario del equipo remoto.
Forma de uso:
$ ssh host 'DISPLAY=:0 nohup notify-send "mensaje"'
Ejemplo:
$ ssh 192.168.0.100 'DISPLAY=:0 nohup notify-send "Hola" "Mundo"'
33. Ssh, Secure shell
Podríamos iniciar un reproductor de música (Rhythmbox) en el equipo
remoto:
Forma de uso
$ ssh host 'DISPLAY=:0 nohup rhythmbox ruta_archivo_mp3'
Ejemplo:
$ ssh 192.168.0.100 'DISPLAY=:0 nohup rhythmbox ./Smoke-on-the-
Water.mp3'
34. Referencias
Libros:
GNU/Básico : Antonio Perpiñan
http://codigolibre.org/
Administración Avanzada de GNU/Linux
http://www.uoc.edu/masters/oficiales/img/871.pdf
Enlaces:
http://blog.desdelinux.net/permisos-basicos-en-gnulinux-con-chmod/
http://www.linuxtotal.com.mx/index.php?cont=info_admon_003
http://www.linuxtotal.com.mx/index.php?cont=info_admon_011