Home Internet Gateway. Configuración inicial de una minicomputadora de 6 puertos en Ubuntu Server 20.04 LTS


En Internet, hay innumerables informaciones sobre la configuración de un servidor en Ubuntu, pero en cada paso puede encontrar momentos que no son obvios para un principiante. Quiero compartir mi experiencia y posiblemente resolver el problema de alguien. El artículo le dirá cómo configurar un servidor multipuerto (6 puertos): Netplan, servidor DHCP, UFW (firewall sin complicaciones). Y ahora, lo primero es lo primero.

Introducción


Actualicé Internet a 500 Mbit / s, y llegó el momento de abordar el servidor de 100 Mbit, que funcionaba en Pentium 3 y ya estaba al borde. La elección recayó en la bestia china . Todo lo que se necesita está disponible, el consumo en modo normal no supera los 15 W, hay un margen de rendimiento para tareas adicionales.

Para la calma, enfriamiento activo agregado:


No pintaré la instalación del sistema operativo ("OK - Siguiente - Siguiente"), solo noto que durante la instalación es necesario configurar al menos una interfaz de red para acceder a Internet.

Por conveniencia, uso Midnight Commander y su editor de texto. Trabajaremos desde el usuario root:

sudo su

Instalar MC:

apt-get install mc

Entonces, hemos instalado Ubuntu Server, comencemos configurando las interfaces de red restantes.

Netplan


En versiones recientes de Ubuntu, apareció la utilidad Netplan, que le permite configurar la red en un formato unificado y elegir un administrador de red para trabajar. Por defecto, se usa Systemd-networkd, pero elegí NetworkManager, porque instalé la interfaz web de Cockpit, que usa NM para mostrar parte de la información.
La sintaxis de configuración de Netplan es muy estricta y un espacio o pestaña adicional puede causar un error. Habr.com/es/post/448400

ya ha descrito más detalles sobre la funcionalidad , así como varios ejemplos en el sitio netplan.io/examples . Veamos los nombres de las interfaces:



ip a

Vaya al directorio / etc / netplan y abra (F4 para MS) el archivo 50-cloud-init.yaml . Para la interfaz de red que se utilizará para conectarse a Internet, determinamos la recepción de la configuración por dhcp ( dhcp4: verdadero ). En mi caso es enp6s0. Para el resto, especifique falso y agregue el parámetro opcional: verdadero , porque la interfaz no puede estar conectada a nada.

Usé bridge para conectar las interfaces a la red local, pero quizás sería más correcto usar vlan. Creemos un puente lan-br , establezcamos una dirección IP común, un servidor DNS y especifiquemos las interfaces que se combinarán:

  bridges:
    lan-br:
      dhcp4: false
      addresses: [ 192.168.13.1/24 ]
      nameservers: 
        addresses: [ 192.168.13.1 ]
      interfaces: [ enp1s0, enp2s0, enp3s0, enp4s0, enp5s0 ]

Tendré mi propio servidor DNS, así que especifico la dirección de mi servidor en el campo de servidores de nombres , por ejemplo, puede especificar 8.8.8.8 (Google). Indicamos la versión y el administrador. El resultado debería ser algo como esto:

network:
  ethernets:
    enp1s0:
      dhcp4: false
      optional: true
    enp2s0:
      dhcp4: false
      optional: true
    enp3s0:
      dhcp4: false
      optional: true
    enp4s0:
      dhcp4: false
      optional: true
    enp5s0:
      dhcp4: false
      optional: true
    enp6s0:
      dhcp4: true
      nameservers:
        addresses:
        - 127.0.0.1
        - 192.168.13.1
  bridges:
    lan-br:
      dhcp4: false
      addresses: [ 192.168.13.1/24 ]
      nameservers: 
        addresses: [ 192.168.13.1 ]
      interfaces: [ enp1s0, enp2s0, enp3s0, enp4s0, enp5s0 ]
  version: 2
  renderer: NetworkManager

Guardamos el archivo y verificamos / aplicamos la configuración:

netplan try

Si todo se hace correctamente, 'ip a' mostrará algo como esto:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan-br state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:57 brd ff:ff:ff:ff:ff:ff
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan-br state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:58 brd ff:ff:ff:ff:ff:ff
4: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan-br state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:59 brd ff:ff:ff:ff:ff:ff
5: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 0c:e8:2c:68:5b:5a brd ff:ff:ff:ff:ff:ff
6: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 0c:e8:2c:68:5b:5b brd ff:ff:ff:ff:ff:ff
7: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:5c brd ff:ff:ff:ff:ff:ff
    inet 188.32.236.197/19 brd 188.32.255.255 scope global dynamic noprefixroute enp6s0
       valid_lft 2898sec preferred_lft 2898sec
    inet6 fe80::ee8:2cff:fe68:5b5c/64 scope link 
       valid_lft forever preferred_lft forever
8: lan-br: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:57 brd ff:ff:ff:ff:ff:ff
    inet 192.168.13.1/24 brd 192.168.13.255 scope global noprefixroute lan-br
       valid_lft forever preferred_lft forever
    inet6 fe80::ee8:2cff:fe68:5b58/64 scope link 
       valid_lft forever preferred_lft forever


Servidor DHCP


Configure un servidor DHCP para que los clientes puedan recibir direcciones IP automáticamente.

apt-get install isc-dhcp-server

En el archivo / etc / default / isc-dhcp-server, edite la línea:

INTERFACESv4="lan-br"

Vaya a / etc / dhcp , abra dhcpd.conf y prescriba la configuración:

option domain-name "your-domain-name";
option domain-name-servers 192.168.13.1;

subnet 192.168.13.0 netmask 255.255.255.0 {
    range 192.168.13.100 192.168.13.250;
    option subnet-mask 255.255.255.0;
    option routers 192.168.13.1;
    option broadcast-address 192.168.13.255;
}

Reinicie el servidor DHCP:

service isc-dhcp-server restart

Los clientes ahora deberían recibir direcciones automáticamente.

Ufw


UFW (Firewall sin complicaciones): una herramienta para una configuración más fácil de iptables. Configure un firewall y reenvío de paquetes entre interfaces. Vaya a / etc / ufw y elimine el comentario de la línea en el archivo sysctl.conf:

net/ipv4/ip_forward=1

Si está conectado a través de ssh, abra el puerto 22 antes de comenzar:

ufw allow ssh

Encienda UFW, verifique el estado:

ufw enable
ufw status verbose

Establecer las políticas predeterminadas:

ufw default deny incoming
ufw default allow outgoing
ufw default allow routed

Permitir acceso desde la red local:

ufw allow in on lan-br to any

Configurar NAT. Abra el archivo before.rules y escriba lo siguiente antes del bloque de filtro * :

*nat
:POSTROUTING ACCEPT [0:0]
#local
-A POSTROUTING -s 192.168.13.0/24 -o enp6s0 -j MASQUERADE
COMMIT

Guardar y reiniciar ufw:

ufw disable
ufw enable

Verifiquemos iptables, nuestra línea debería aparecer:

iptables -t nat -L -v

En esto, la configuración básica del servidor puede considerarse completa.

Conclusión


No planteé el problema de configurar el servidor DNS, ya que planeo lanzar la segunda parte, que describirá la configuración de Dnscrypt-proxy como un servidor DNS para la red local.

Información más detallada:


All Articles