This is an old revision of the document!
Table of Contents
Debian: comandos de red y Samba
Versión V26_11
Comandos básicos y administración de red en Debian
| Área | Comando | Para qué sirve | Ejemplo breve |
|---|---|---|---|
| Sistema | whoami | Muestra el usuario actual. | whoami |
| Sistema | hostnamectl | Muestra o cambia el nombre del equipo. | hostnamectl |
| Red | ip -br addr | Resume interfaces y direcciones IP. | ip -br addr |
| Red | ip route | Muestra rutas, incluida la puerta de enlace. | ip route |
| Red | ping -c 4 IP | Prueba conectividad IP controlada. | ping -c 4 192.168.50.10 |
| Red | nmcli device status | Relaciona interfaces y perfiles NetworkManager. | nmcli device status |
| Diagnóstico | ip neigh | Muestra vecinos ARP aprendidos. | ip neigh show |
| Diagnóstico | ss -tulpen | Muestra puertos en escucha y procesos. | sudo ss -tulpen |
| Diagnóstico | getent hosts nombre | Comprueba resolución de nombres. | getent hosts deb.debian.org |
| Servicios | systemctl status servicio | Consulta el estado de un servicio. | systemctl status ssh |
| Usuarios | usermod | Añade el usuario al grupo sudo. | usermod -aG sudo jose |
| Paquetes | apt install paquete | Instala software desde repositorios. | sudo apt install apache2 |
Cambios temporales de interfaz y direccionamiento
La interfaz enp0s8 se empleará solo para esta prueba.
Se renombrará temporalmente como “asir” y se configurará con la dirección 192.168.60.10/24. La red debe disponer de un router real con dirección 192.168.60.1. Se usarán los DNS 1.1.1.1 y 8.8.8.8.
Ejecución paso a paso
1. Comprobar las interfaces disponibles y anotar la dirección MAC de enp0s8.
ip -br link ip -br addr ip link show enp0s8
La salida link/ether contiene la MAC.
2. Desconectar el perfil que pudiera estar activo y renombrar la interfaz solo durante esta sesión.
sudo nmcli device disconnect enp0s8 sudo ip link set enp0s8 down sudo ip link set enp0s8 name asir sudo ip link set asir up ip -br link
El cambio se ve inmediatamente con ip -br link, pero se perderá al reiniciar.
NetworkManager puede volver a aplicar un perfil si no se ha desconectado previamente.
3. Asignar una IP, una ruta por defecto de prueba y DNS temporales.
sudo ip addr flush dev asir sudo ip addr add 192.168.60.10/24 dev asir sudo ip route replace default via 192.168.60.1 dev asir metric 600 ip -br addr show asir ip route
ip solo configura dirección, estado y rutas; no configura DNS.
Si systemd-resolved está activo, puedes asignar DNS a la interfaz con este comando. En otros casos, usa el gestor que controle /etc/resolv.conf.
sudo resolvectl dns asir 1.1.1.1 8.8.8.8
resolvectl status asir
El valor metric 600 deja esta ruta por detrás de la ruta NAT, que se configurará con métrica 100. Así se puede observar una puerta de enlace adicional sin perder la salida habitual de la máquina virtual.
4. Volver al estado inicial. La forma más segura es reiniciar la máquina virtual. El reinicio descarta el nombre temporal, la IP y la ruta.
sudo reboot
Comprobación: después de reiniciar, enp0s8 vuelve a aparecer con su nombre original
Entornos virtuales en VirtualBox
Preparar cuatro adaptadores para comparar métodos de configuración
Diseño de la máquina virtual
Con la máquina apagada, abre Configuración, Red en VirtualBox. Habilita los cuatro adaptadores y marca Cable conectado en todos ellos. Los nombres enp0s3, enp0s8, enp0s9 y enp0s10 son habituales en VirtualBox, pero deben verificarse en cada máquina.
Ejecución paso a paso
- Crear las redes internas. En el desplegable Conectado a selecciona Red interna
- Las máquinas que deban comunicarse entre sí deben usar el mismo nombre de red interna.
- Arrancar Debian e identificar las interfaces y las rutas. La interfaz NAT debe ser inicialmente la única con ruta por defecto.
ip -br link ip -br addr ip route nmcli device status
Aunque enp0s8, enp0s9 y enp0s10 aparezcan DOWN antes de configurarlas, es normal. Se activarán al asignar su configuración con el gestor correspondiente.
Si una interfaz aparece sin “conexión” no tiene aún un perfil de NetworkManager asignado. Lo podemos crear por ejemplo para enp0s8
sudo nmcli connection add type ethernet \ ifname enp0s8 \ con-name "practicas" \ ipv4.method auto \ connection.autoconnect no
Para comprobar que existe, aunque esté desconectada
nmcli connection show nmcli -f connection.id,connection.interface-name connection show "practicas"
activar la conexión
sudo nmcli connection up "practicas"
desactivar la conexión
sudo nmcli connection down "practicas"
también podemos actuar directamente sobre el dispositivo y no sobre la conexión
sudo nmcli device connect enp0s8 sudo nmcli device disconnect enp0s8
Renombrar las cuatro interfaces de forma persistente
Configuración persistente y DHCP con NetworkManager
Configuración estática persistente
sudo nmcli connection modify "practicas" \ ipv4.method manual \ ipv4.addresses "192.168.60.10/24" \ ipv4.gateway "192.168.60.1" \ ipv4.dns "1.1.1.1 8.8.8.8" \ ipv4.ignore-auto-dns yes \ ipv4.never-default no \ ipv4.route-metric 600 sudo nmcli connection up "practicas" ip -br addr show enp0s8 ip route nmcli device show enp0s8
Volver a DHCP
sudo nmcli connection modify "practicas" \ ipv4.method auto \ ipv4.addresses "" \ ipv4.gateway "" \ ipv4.dns "" \ ipv4.ignore-auto-dns no \ ipv4.never-default yes sudo nmcli connection down "practicas" sudo nmcli connection up "practicas" ip -br addr show enp0s8 nmcli device show enp0s8
Configuración persistente y DHCP con systemd networkd
Antes de empezar, confirma que NetworkManager la muestra como unmanaged.
Configuración estática persistente
sudo nano /etc/systemd/network/20-netd0.network
[Match] Name=netd0 [Network] Address=192.168.61.10/24 DNS=1.1.1.1 DNS=8.8.8.8 [Route] Gateway=192.168.61.1 Metric=600
sudo systemctl enable --now systemd-networkd sudo networkctl reload sudo networkctl reconfigure netd0 ip -br addr show netd0 ip route networkctl status netd0
Volver a DHCP
sudo nano /etc/systemd/network/20-netd0.network
[Match] Name=netd0 [Network] DHCP=yes [DHCPv4] UseDNS=yes RouteMetric=600
sudo networkctl reload sudo networkctl reconfigure netd0 ip -br addr show netd0 ip route networkctl status netd0
DHCP=yes solicita la dirección, el prefijo, la puerta de enlace y los DNS. Si la red red-networkd no tiene servidor DHCP, la interfaz no obtendrá una configuración IPv4 por DHCP.
Configuración persistente y DHCP con ifupdown
Objetivo: Configurar enp0s10 desde /etc/network/interfaces.
Preparación
sudo apt update sudo apt install ifupdown resolvconf
El paquete resolvconf permite que la directiva dns-nameservers actualice los servidores DNS. No se debe declarar en /etc/network/interfaces ninguna interfaz que esté administrada por NetworkManager.
Configuración estática persistente
Añade al final de /etc/network/interfaces, sin borrar la configuración de loopback:
auto enp0s10 iface enp0s10 inet static address 192.168.62.10 netmask 255.255.255.0 gateway 192.168.62.1 dns-nameservers 1.1.1.1 8.8.8.8 metric 600
sudo ifup enp0s10 # Si necesitas forzar la desactivación: sudo ifdown --force enp0s10 ip -br addr show enp0s10 ip route resolvconf -l
Volver a DHCP
Sustituye el bloque estático anterior por este otro en /etc/network/interfaces:
auto enp0s10 iface enp0s10 inet dhcp metric 600
sudo ifdown enp0s10 sudo ifup enp0s10 ip -br addr show enp0s10 ip route resolvconf -l
Compartición de archivos entre Linux y Windows con Samba
Objetivo: Crear una carpeta compartida en Debian y acceder a ella desde Windows mediante SMB.
Una máquina Debian actuará como servidor de aula y un equipo Windows 11 como cliente. Ambos estarán conectados a la misma red privada de VirtualBox.
Pondremos en cada sistema operativo 2 tarjetas de red, una en NAT y otra en adaptador puente
| Equipo | Interfaz | IPv4 | Máscara |
|---|---|---|---|
| Servidor Debian | enp0s8 | 192.168.26.10 | 255.255.255.0 |
| Cliente Windows 11 | Ethernet | 192.168.26.20 | 255.255.255.0 |
1. Configuramos la interfaz de Debian. Configuramos la tarjeta de red adaptador puente de una de las formas que hemos aprendido
2. Configurar Windows 11. En Windows abre Configuración, Red e Internet, Configuración de red avanzada, Más opciones del adaptador. Con botón derecho en Ethernet entra en Propiedades, selecciona Protocolo de Internet versión 4 y pulsa Propiedades.
- Marca Usar la siguiente dirección IP.
- Escribe 192.168.26.20 como dirección IP y 255.255.255.0 como máscara.
- Deja vacías la puerta de enlace y los DNS, porque este ejemplo no dispone de router ni requiere resolver nombres.
3. Comprobar la configuración y hacer ping. Primero se revisan los datos locales; después se prueba la comunicación entre ambos equipos.
# En Debian ip -br addr ping -c 4 192.168.26.20
ipconfig ping 192.168.26.10
4. Observar ARP. Al estar ambos equipos en la misma red, el cliente necesita conocer la dirección MAC del servidor mediante ARP.
ip neigh show traceroute -n 192.168.26.10
5. Instalar Samba y crear el grupo de trabajo local. Se crea un grupo específico para gestionar los permisos de la carpeta compartida.
sudo apt update sudo apt install samba smbclient sudo groupadd -f redlocal sudo usermod -aG redlocal alumno
samba instala el servidor SMB. smbclient permite hacer una comprobación desde Linux. groupadd -f no genera error si el grupo ya existe. usermod -aG añade al usuario al grupo sin quitarle otros grupos. He utilizado como usuario alumno, pero deberías de poner el usuario que has creado
6. Crear la carpeta y aplicar permisos Linux. La carpeta se coloca fuera de /home para que su función sea claramente la de recurso compartido.
sudo install -d -o alumno -g redlocal -m 2770 /srv/recursos ls -ld /srv/recursos
install -d crea la carpeta. -o y -g asignan propietario y grupo.
El permiso 2770 permite leer, escribir y entrar al propietario y al grupo; el primer 2 activa setgid, de modo que los archivos nuevos conservan el grupo redlocal.
7. Dar una contraseña Samba al usuario. Samba mantiene su propia base de credenciales. La cuenta debe existir previamente en Linux.
sudo smbpasswd -a alumno
Puede coincidir con la contraseña Linux, pero en un entorno real conviene aplicar una política de contraseñas adecuada.
8. Añadir el recurso a la configuración de Samba. Al final de /etc/samba/smb.conf se incorpora una sección con el nombre visible del recurso.
sudo nano /etc/samba/smb.conf
[Recursos] path = /srv/recursos browseable = yes read only = no valid users = alumno force group = redlocal create mask = 0660 directory mask = 2770
path indica la carpeta real. browseable permite verla al explorar el servidor. read only = no autoriza cambios. valid users limita el acceso a alumno. Las máscaras determinan permisos para nuevos archivos y carpetas.
9. Validar y arrancar el servicio. Nunca se debe reiniciar Samba sin comprobar antes que el archivo es válido.
sudo testparm sudo systemctl restart smbd sudo systemctl enable smbd sudo ss -ltnp | grep ':445'
testparm revisa la sintaxis de smb.conf.
smbd ofrece el servicio SMB.
ss muestra que el servidor escucha en el puerto TCP 445.
10. Conectar desde Windows. En el Explorador de archivos escribe la ruta completa en la barra de direcciones.
\\192.168.26.10\Recursos
También puedes asignar una unidad desde el Símbolo del sistema de Windows.
net use Z: \\192.168.26.10\Recursos /user:alumno
Windows solicitará el usuario alumno y la contraseña definida con smbpasswd. La segunda orden asigna el recurso a la unidad Z.
11. Probar creación y lectura de un archivo. Crea desde Windows un archivo llamado prueba_samba.txt y escribe una línea. Después comprueba en Debian que aparece con el grupo redlocal.
ls -l /srv/recursos smbclient -L //127.0.0.1 -U alumno
La primera orden confirma los permisos Linux. La segunda lista los recursos publicados por el propio servidor y verifica que la cuenta Samba funciona.
