Agregar un Ubuntu Server a un Dominio Active Directory.

A. Contexto.

Paso a paso para registrar un servidor Ubuntu Server 22.04.1 en un Dominio Active Directory, corriendo en un Windows Server 2022 y nivel funcional de Windows Server 2016.

La idea es usar los mismos usuarios de dominio para iniciar sesión en Ubuntu Server. También se busca que los usuarios que pertenezcan al grupo Admins. del dominio tengan permisos de super usuario.

En este caso, utilizaré el dominio que utilizo en mi casa: 302.cl

B. Previo.

Originalmente al configurar por primera vez el Ubuntu Server, se nos pide indicar un nombre de equipo. Este campo no permite ingresar puntos, por lo cual solo nos permite escribir una palabra.

Al momento de escribir este manual, noté que al registrar el Ubuntu Server en el Active Directory, el campo Nombre DNS queda establecido con el nombre del equipo, pero sin completar el dominio. Esto trae un problema al momento utilizar el registro DNS del Active Directory.

Ejemplo de cómo se registra el campó Nombre DNS en un equipo con Windows Server y un equipo con Ubuntu Server

Debido a lo anterior, es necesario cambiar el hostname del Ubuntu Server agregando el nombre del dominio al final.

C. Pasos.

1. Cambiar el hostname del servidor.

sudo nano /etc/hostname

Agregar el dominio al final del hostname y guardar el archivo.

Y reiniciar el servidor.

sudo reboot

2. Instalar los paquetes necesarios para unir el Ubuntu Server al dominio.

sudo apt install realmd sssd sssd-tools samba-common krb5-user packagekit samba-common-bin samba-libs adcli ntp

3. Durante la instalación de los paquetes, se solicitará ingresar el dominio al cual debe registrarse el servidor.

Este paso podría no aparecer al declarar el dominio en el archivo /etc/hostname.

4. Luego del paso anterior, solicitará reiniciar el siguiente servicio.

5. Ingresar al dominio, utilizando un usuario con permisos de administrador.

sudo realm join 302.cl -U 'nicolas' -v

Resultado:

6. Para que se puedan crear automáticamente los directorios home de los usuarios que inicien sesión en el Ubuntu Server, se debe modificar el archivo /usr/share/pam-configs/mkhomedir mediante el siguiente comando.

sudo bash -c "cat > /usr/share/pam-configs/mkhomedir" <<EOF
Name: activate mkhomedir
Default: yes
Priority: 900
Session-Type: Additional
Session:
        required                        pam_mkhomedir.so umask=0022 skel=/etc/skel
EOF

Y posteriormente el siguiente.

sudo pam-auth-update

Aparecerá el siguiente diálogo. Se deberá activar la opción activate mkhomedir.

7. Reiniciar el servicio sssd para aplicar los cambios en la configuración.

sudo systemctl restart sssd

8. Para comprobar la correcta conexión con el Active Directory, utilizamos el siguiente comando para consultar un usuario existente.

id nicolas@302.cl

Resultado:

9. Permitir al grupo Admins. del dominio iniciar sesión en el Ubuntu Server.

sudo realm permit -g 'Admins. del dominio'

10. Agregar al grupo Admins. del dominio en la lista de sudoers.

sudo nano /etc/sudoers.d/sudoers

Agregar la siguiente línea al archivo:

%Admins.\ del\ dominio@302.cl ALL=(ALL) ALL

11. Reiniciar el servidor, porque no sé exactamente qué servicio es el necesario reiniciar para aplicar la configuración 😅.

sudo reboot

Páginas de referencia:

Cliché

Me carga el cliché de bandas de rock/metal tocando sus mejores temas con orquestas filarmónicas de una capital europea.

Mikrotik RouterBoard como Cliente Open VPN y Switch.

A. Referencia.

Toda esta entrada está basada en el manual publicado en la siguiente URL:

Mikrotik router as OpenVPN Client | mikrotik-openvpn-client (missinglink.github.io)

Todas las configuraciones entregadas en el link también funcionaron en mi caso.

B. Contexto.

En la entrada anterior configuré una Raspberry PI como router y cliente OpenVPN para poder mantener mi computador permanentemente conectado a las redes corporativas de la compañía en la que trabajo, mediante una tarjeta de red adicional a la que está conectada directamente a mi red casera.

El actual diagrama de red es así:

Ahora, tengo un equipo Mirkotik Routerboard HapAC que pretendo utilizar como cliente OpenVPN y Siwtch, buscando juntar 2 componentes en uno.

B. Preparación de certificados.

1. Es necesario preparar los certificados necesarios para la conexión OpenVPN. Generalmente, cuando se utiliza el cliente oficial, se requiere un archivo con extensión .ovpn . En este caso, la Routerboard necesita 3 certificados para realizar la conexión y que están contenidos dentro del archivo .ovpn.

Ejemplo de un archivo (certificados falsos):

dev tun
client
proto tcp
<ca>
-----BEGIN CERTIFICATE-----
QkZMODBkRTpnJi5vc1NOIDQyT0dVNyYnY316eF9JZlskeHZKUit7V2NNXyx8IXtDe
z5OLTliaWQrcENNPDcieScrTmFUWGRQOj4iVA==dWsnPHU6XzhKXFlXWCg5dDxhOy
BIKGt3c18nYEZPVDIrMVA8cTlFWXJYI3U2a3tqYCRQNUBJLiMxWCkgcUo4STQ/NHB
9IDVCInExLjdIJnEjcnImKFJVVV9HPi4zMl5UVzM3XWRcS3F5OTZ+Jz4lU3QsSGBJ
SU5LZ1QubDA0fVF6Yk5nRzBYbVFdaW96LCosc3lYdkVPM30pTDZlQS5NLTg8cHB4f
Hd0KFRyWGcgWUU1Ijl7KUtkMWpAOSJtT2BZMllzPHBBJn5zMSdySFZTSno7WXJ2OX
1MfkltOk0hc3o8Jkp9JllcMU5McUN8T3EsRi0sKicmNC5UND5QXHRgZl1tMmFPbSx
2LFtVR35mWFxPXCFPYEw1YUpYXW9NfV4gVUFJanBiLTttZU55bjFgNngkaFtqNFpX
O1wnIyNEU1NiUnglUkBEK3k/JFhaajVmR1Y1T3krS2c8ekJkXFdpQGVVSW05O2EmJ
WJmSm54LSVyZ05RMWNDdTglVjI4dmhRKUluKVgkPUtlZD96MVhSSUhacz9JMiQlYF
ArQWdeXXBfQ0t1TTUqZGt5XWdFeiAyayt4TyskeX1tIWlefXhQKi5gWHZ2ZT9bPGF
wQXp8NEsgJ359XX1GZV49JSQvdV5qNFloKVFuQz98V29SWU0jfVlzQSo1KUQgLTcr
R1xhOENUI3wmZnQvXCAoO3N4XjArXyhUYEc9PTk9cyg7Pj19NFVSWVUwOE4pJ3t2a
nglRD9SSEgzMGM/YjtNfi9nV1g2ezlVL2JnT08yMSR1MTFvXyJoek9MLWZkOipMez
d3Ij1HJWguUEVeOzFFLyM5WmRlfDpWMm8lSEVtNEMrPVJnUDFJTkRAVF90IXUma19
IMj5XQ1IoXFxpTzRyS2FwPHl6RShlWFA6OFxiLC1Sa2coZUFRcFZYcDZeOSB8cCdb
dFFPNGFOTWovKyZfNDsiQzdZbTdjMD08LntnNE5gKE1HRkwyI2cxSXpVRChhWn4kI
C1deT54c0AkK0Z4U2RoLnZENjFYQnRuZi55LUt4Li99TmpxLF1ULDIvWlhhcVEvXF
xLXXlBYCw1aXdcKixyX3VNJnplbjp0aXtyMVwpQ2VVbE55TTlMdk9XNks0UXhfL==
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
sdGooTjl8c0YmL1JdXnkjVDBuPFozTS9DOCNLNjQxWFZXNSIsNGxBMnw3aG9YdUk0
LCxkME0wI2syJEYgMUE5RThGZls5fjIjR0h+IndcSDdcW0pic1tXREUwO3JGIUUiU
TlJMEJPQ3AqWTkkLmM3dj1IODpZeXM8Kl44JGtRQjUlXW1gcEUnUno6XUxHW1JlT3
5UZiRZcU5QOVI6P3xGfjZsKUx6NzchIFZHJT5Rb2slK0VZOT9TODVdQVVaPDdvNUY
xXGVqaCo0fkg2IVBxP0RwRmw0MncnTjRrdnZKIzhUeml8TjgrLVRJVExSVj5kcFhE
QkF8SCg5RzRMSzlibHolcElxPExxSCNXZTs0IUdnJCddJGA4cURzPkB8TlMmbT1xM
kFsPV1PLyV0K0pkMnI6XydcSF92Q01SKXcgYVpCZyR8Xmk0bC5HYXVMLXVHeFJ1Iz
8tbCNFUUZcIWxYUT1kVDg3Qzlwe0kgbiJeS0s6QVo1dFshMlE7WWBEIURGVF9aOCl
IRl5JVm9JSzM9aUdNSS1QXCheJlljR1krLjYpYGtdYnhFcnxnPVM2XiI3MVEuMH1B
RmJUTTwhejo4WyxCekdLUE5teXtcZnVfWC53MDhCU2ZZWD9KfjUoSW1dak1yNXlsS
Ewtdi5wNHBHbkE7fVZ1JmoqcS02YHohflxVciBCbkckSDk2b1EvVjNPXmdlQSBiXj
w/OD53Rw==W0xAZ0hmQ2V9Jixoez4taER7bm97aWRtK281JiZja3VrZnElbH14YEc
7RTVOYiYtPWZlUWdNcT4hKEwuN0RoeEtfIUIlX3cnS15YPVcgJDJBNWU/Wj1NdUhM
PSl9PkxyeVw1fTBCaFxBLSRENUckXEp4aXFZX1d0c3YqemdeJm5VKDBfLzphZXtfY
WsoVXpJQik+IEJRTm1UTV8tNW9NOXJJdX5kNjU+LSNCM3AwT3I1KUhsaEMjOFQufX
h+OEQxTnRWIi9IY1p1QXVnX31JXm5IPTViQ3h5Km1pLjl4di95dXBaN1klV3VZJ0U
yPVt2WlN3LjJ7IEJ0Xm4gfSgvbFo4U04sciw0QSVaQmR7SiJjYU9Ud0tYKGxBJng9
PDkmVmxgYyhAXm1VNDRpICYuUyJ7bi43RlAuOVFVaFozV0FdKmFBbCV1TSdsMnA==
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
i1kVjBcXjYvMCNGNWR3UTpQT1lDWCtbaiIrc1BXRFFwVTYzIDZUcmUlSCAhWHoyN3
1RdEQySmFiVUtCMiBpPCpMUmtSbXFqfTVHRE5NYCxVZzklTk91Q0oyfCcsUTEnaHp
LI08lMDtGMH0tJ3o7dUgwLi5ZfmgqR2RaaVA6fSEvOVFmXjZhVn17OH5ANHdROzQi
ejM6cSNwNFRTTnsnJHFqKGVIXVRIejxZJW5balMjRExrQXxOaT8uQG9gMjlYMEdlR
WwoJkJzTlN8T3RgfF9HbC11R0B+IEA5d1ktYDBZOV5iQX1bZUJHKUlidytMbn5SQk
AxI0VDXCh0R0UjU3gkRls4bV1fRm9XdSotKjNMeTJhQlBOdnwwWHo9M2QuMjpMe0J
Mfml6KnBCYFhtdCdKK3d8ZSNmUiJ3WXtdQ1pwTHNVck5dODZZQW5PMEpOZ3RYJ3Nf
Zj1EbGVRJjY2eVtOZEJIIUcxLkt4KFBBNTJSLWRJLUJSL0tlNU1rT1U3I1tEZSlyc
nAtUHRaMDZIJ2ZnXGJ0NigwKT9YXD5BRy94QTNBKUciYi4mRysibDJMZXBfXjdkcG
Q8ViYxWFxPQg==bHN3KGxjYF8pIzNub0RDZkNTbnZFfU5tcFVRPCs2U19KZTVLeW1
2cmU7VCh9N2I7OXl9WH1FWSxQd2ppTUwtdlczTTRJPktOUD19blZaek80XCpAKTc+
KmNDQFgqTyIqNEp9Uk9VNCghTVRBXTZhdiJtN2wyNy9qOkUmKV49fWF7WSV5OCI5U
WlBPnQzQyNFJ3EjcHh4Wk9iek8kKWMyflV9Iz4oNG4oMS0sZm5wdlBPPElxM3JGej
dWb34vQHVyZkhvfkpcJyhNJFZfRTNoVVErcmRQNC93ID9zSVlpKkUxdFZAL1RYRV0
gS1ckMyMva089P0RkZyFGV1czcm4nZ15TUTQmQlRQQH1HTkQ0bnhIT29CK2x4djx6
fSpSZCZQXWhnNHk2K1otO3kpOHpwOHlCPU4qNXkuJXkgZi1gWXV9VnhEe0MqZyJJT
kc1XE0hQSszYUZMT0UtajVOa21KOGJwKzN4WCcuJUNoW2orJEJ5azk9ZjhcbyM0WV
wufFhhVy9fSVd0OGBoJXNQV0B8InBNOmx2S0FtQjhWLm9SYy1PLzNTXEdmO3s8VHJ
GXUVRZUB4ZmpAcGpWOihTQWkyZE17NnQtT3p0L2VbNz1ldylpK2hoTlgwOTNXaS10
diJvLQ==
-----END PRIVATE KEY-----
</key>
remote-cert-eku "TLS Web Server Authentication"
remote 1.1.1.1 443
remote 1.1.2.2 443
redirect-gateway def1
persist-key
persist-tun
verb 3
mute 20
keepalive 10 60
cipher AES-256-CBC
auth SHA1
float
reneg-sec 28800
nobind
mute-replay-warnings
auth-user-pass
tls-version-min 1.2
;remember_connection 1
;auto_reconnect 1

Ejemplo de como quedarían los 3 archivos separados:

ca.crt

-----BEGIN CERTIFICATE-----
QkZMODBkRTpnJi5vc1NOIDQyT0dVNyYnY316eF9JZlskeHZKUit7V2NNXyx8IXtDe
z5OLTliaWQrcENNPDcieScrTmFUWGRQOj4iVA==dWsnPHU6XzhKXFlXWCg5dDxhOy
BIKGt3c18nYEZPVDIrMVA8cTlFWXJYI3U2a3tqYCRQNUBJLiMxWCkgcUo4STQ/NHB
9IDVCInExLjdIJnEjcnImKFJVVV9HPi4zMl5UVzM3XWRcS3F5OTZ+Jz4lU3QsSGBJ
SU5LZ1QubDA0fVF6Yk5nRzBYbVFdaW96LCosc3lYdkVPM30pTDZlQS5NLTg8cHB4f
Hd0KFRyWGcgWUU1Ijl7KUtkMWpAOSJtT2BZMllzPHBBJn5zMSdySFZTSno7WXJ2OX
1MfkltOk0hc3o8Jkp9JllcMU5McUN8T3EsRi0sKicmNC5UND5QXHRgZl1tMmFPbSx
2LFtVR35mWFxPXCFPYEw1YUpYXW9NfV4gVUFJanBiLTttZU55bjFgNngkaFtqNFpX
O1wnIyNEU1NiUnglUkBEK3k/JFhaajVmR1Y1T3krS2c8ekJkXFdpQGVVSW05O2EmJ
WJmSm54LSVyZ05RMWNDdTglVjI4dmhRKUluKVgkPUtlZD96MVhSSUhacz9JMiQlYF
ArQWdeXXBfQ0t1TTUqZGt5XWdFeiAyayt4TyskeX1tIWlefXhQKi5gWHZ2ZT9bPGF
wQXp8NEsgJ359XX1GZV49JSQvdV5qNFloKVFuQz98V29SWU0jfVlzQSo1KUQgLTcr
R1xhOENUI3wmZnQvXCAoO3N4XjArXyhUYEc9PTk9cyg7Pj19NFVSWVUwOE4pJ3t2a
nglRD9SSEgzMGM/YjtNfi9nV1g2ezlVL2JnT08yMSR1MTFvXyJoek9MLWZkOipMez
d3Ij1HJWguUEVeOzFFLyM5WmRlfDpWMm8lSEVtNEMrPVJnUDFJTkRAVF90IXUma19
IMj5XQ1IoXFxpTzRyS2FwPHl6RShlWFA6OFxiLC1Sa2coZUFRcFZYcDZeOSB8cCdb
dFFPNGFOTWovKyZfNDsiQzdZbTdjMD08LntnNE5gKE1HRkwyI2cxSXpVRChhWn4kI
C1deT54c0AkK0Z4U2RoLnZENjFYQnRuZi55LUt4Li99TmpxLF1ULDIvWlhhcVEvXF
xLXXlBYCw1aXdcKixyX3VNJnplbjp0aXtyMVwpQ2VVbE55TTlMdk9XNks0UXhfL==
-----END CERTIFICATE-----

client.crt

-----BEGIN CERTIFICATE-----
sdGooTjl8c0YmL1JdXnkjVDBuPFozTS9DOCNLNjQxWFZXNSIsNGxBMnw3aG9YdUk0
LCxkME0wI2syJEYgMUE5RThGZls5fjIjR0h+IndcSDdcW0pic1tXREUwO3JGIUUiU
TlJMEJPQ3AqWTkkLmM3dj1IODpZeXM8Kl44JGtRQjUlXW1gcEUnUno6XUxHW1JlT3
5UZiRZcU5QOVI6P3xGfjZsKUx6NzchIFZHJT5Rb2slK0VZOT9TODVdQVVaPDdvNUY
xXGVqaCo0fkg2IVBxP0RwRmw0MncnTjRrdnZKIzhUeml8TjgrLVRJVExSVj5kcFhE
QkF8SCg5RzRMSzlibHolcElxPExxSCNXZTs0IUdnJCddJGA4cURzPkB8TlMmbT1xM
kFsPV1PLyV0K0pkMnI6XydcSF92Q01SKXcgYVpCZyR8Xmk0bC5HYXVMLXVHeFJ1Iz
8tbCNFUUZcIWxYUT1kVDg3Qzlwe0kgbiJeS0s6QVo1dFshMlE7WWBEIURGVF9aOCl
IRl5JVm9JSzM9aUdNSS1QXCheJlljR1krLjYpYGtdYnhFcnxnPVM2XiI3MVEuMH1B
RmJUTTwhejo4WyxCekdLUE5teXtcZnVfWC53MDhCU2ZZWD9KfjUoSW1dak1yNXlsS
Ewtdi5wNHBHbkE7fVZ1JmoqcS02YHohflxVciBCbkckSDk2b1EvVjNPXmdlQSBiXj
w/OD53Rw==W0xAZ0hmQ2V9Jixoez4taER7bm97aWRtK281JiZja3VrZnElbH14YEc
7RTVOYiYtPWZlUWdNcT4hKEwuN0RoeEtfIUIlX3cnS15YPVcgJDJBNWU/Wj1NdUhM
PSl9PkxyeVw1fTBCaFxBLSRENUckXEp4aXFZX1d0c3YqemdeJm5VKDBfLzphZXtfY
WsoVXpJQik+IEJRTm1UTV8tNW9NOXJJdX5kNjU+LSNCM3AwT3I1KUhsaEMjOFQufX
h+OEQxTnRWIi9IY1p1QXVnX31JXm5IPTViQ3h5Km1pLjl4di95dXBaN1klV3VZJ0U
yPVt2WlN3LjJ7IEJ0Xm4gfSgvbFo4U04sciw0QSVaQmR7SiJjYU9Ud0tYKGxBJng9
PDkmVmxgYyhAXm1VNDRpICYuUyJ7bi43RlAuOVFVaFozV0FdKmFBbCV1TSdsMnA==
-----END CERTIFICATE-----

key.crt

-----BEGIN PRIVATE KEY-----
i1kVjBcXjYvMCNGNWR3UTpQT1lDWCtbaiIrc1BXRFFwVTYzIDZUcmUlSCAhWHoyN3
1RdEQySmFiVUtCMiBpPCpMUmtSbXFqfTVHRE5NYCxVZzklTk91Q0oyfCcsUTEnaHp
LI08lMDtGMH0tJ3o7dUgwLi5ZfmgqR2RaaVA6fSEvOVFmXjZhVn17OH5ANHdROzQi
ejM6cSNwNFRTTnsnJHFqKGVIXVRIejxZJW5balMjRExrQXxOaT8uQG9gMjlYMEdlR
WwoJkJzTlN8T3RgfF9HbC11R0B+IEA5d1ktYDBZOV5iQX1bZUJHKUlidytMbn5SQk
AxI0VDXCh0R0UjU3gkRls4bV1fRm9XdSotKjNMeTJhQlBOdnwwWHo9M2QuMjpMe0J
Mfml6KnBCYFhtdCdKK3d8ZSNmUiJ3WXtdQ1pwTHNVck5dODZZQW5PMEpOZ3RYJ3Nf
Zj1EbGVRJjY2eVtOZEJIIUcxLkt4KFBBNTJSLWRJLUJSL0tlNU1rT1U3I1tEZSlyc
nAtUHRaMDZIJ2ZnXGJ0NigwKT9YXD5BRy94QTNBKUciYi4mRysibDJMZXBfXjdkcG
Q8ViYxWFxPQg==bHN3KGxjYF8pIzNub0RDZkNTbnZFfU5tcFVRPCs2U19KZTVLeW1
2cmU7VCh9N2I7OXl9WH1FWSxQd2ppTUwtdlczTTRJPktOUD19blZaek80XCpAKTc+
KmNDQFgqTyIqNEp9Uk9VNCghTVRBXTZhdiJtN2wyNy9qOkUmKV49fWF7WSV5OCI5U
WlBPnQzQyNFJ3EjcHh4Wk9iek8kKWMyflV9Iz4oNG4oMS0sZm5wdlBPPElxM3JGej
dWb34vQHVyZkhvfkpcJyhNJFZfRTNoVVErcmRQNC93ID9zSVlpKkUxdFZAL1RYRV0
gS1ckMyMva089P0RkZyFGV1czcm4nZ15TUTQmQlRQQH1HTkQ0bnhIT29CK2x4djx6
fSpSZCZQXWhnNHk2K1otO3kpOHpwOHlCPU4qNXkuJXkgZi1gWXV9VnhEe0MqZyJJT
kc1XE0hQSszYUZMT0UtajVOa21KOGJwKzN4WCcuJUNoW2orJEJ5azk9ZjhcbyM0WV
wufFhhVy9fSVd0OGBoJXNQV0B8InBNOmx2S0FtQjhWLm9SYy1PLzNTXEdmO3s8VHJ
GXUVRZUB4ZmpAcGpWOihTQWkyZE17NnQtT3p0L2VbNz1ldylpK2hoTlgwOTNXaS10
diJvLQ==
-----END PRIVATE KEY-----

2. Cargar los certificados al router. Puede ser mediante Winbox, SSH, o el modo preferido.

3. Importar los certificados. Sin necesidad de passphrase.

4. Repetir el proceso con los 3 certificados. Al importar los certificados client.crt y key.crt, se agruparán en uno.

C. Configuración de los perfiles, interfaces, bridges, IPs y reglas de Firewall.

1. Creación de un perfil PPP.

Configuraciones:

  • Change TCP MSS: yes
  • Use MPLS: no
  • Use Encryption: required
  • Only One: yes

2. Creación de una interfaz OpenVPN Client.

Configuraciones:

  • Connect To: IP del servidor de OpenVPN.
  • Port: Puerto del servidor. Generalmente es el 1194, pero puede variar en cada caso.
  • Mode: ip
  • User: Usuario de la conexión VPN.
  • Password: Password de la conexión VPN.
  • Profile: El perfil PPP creado en el punto anterior.
  • Certificate: Seleccionamos el certificado client importado anteriormente.
  • Auth: sha1. Depende del servidor. Verificar en el perfil .ovpn.
  • Cipher: aes 256. Depende también del servidor.
  • Add Default Route: marcar.

Una vez creado la interfaz, la letra R indicará que se realizó correctamente la conexión.

3. Creación de un Bridge para manejar todo el tráfico que pasará por el enlace VPN.

Nombrar el bridge y dejar las demás configuraciones por defecto.

4. Asignar la ethernet3 al bridge recientemente creado.

En este caso, el resto de los puertos ethernet del Routerboard seguirán actuando como un switch y llevando todo el tráfico de la red local, a excepción del ethernet 3, el cual traficará por la conexión VPN.

5. Asignar una IP fija del Routerboard disponible a través del Bridge Corporativo.

6. Crear dos reglas NAT en el Firewall:

Configuraciones:

  • Chain: srcnat
  • Src. Address: 192.168.254.0/24. En este caso corresponde a la red disponible en la ethernet3, que conecta el computador con el router.
  • Out. Interface: La interfaz VPN creada para la conexión con la red corporativa.
  • Action: masquerade.

Configuraciones:

  • Chain: srcnat
  • Out. Interface: El bridge dedicado a la conexión entre la ethernet3 y el computador.
  • Action: masquerade.

7. Crear dos reglas de Firewall.

Configuraciones:

  • Chain: forward.
  • In. Interface: La interfaz VPN creada para la conexión con la red corporativa.
  • Out. Interface: El bridge dedicado a la conexión entre la ethernet3 y el computador.
  • Connection State: established, related.
  • Action: accept.

Configuraciones:

  • Chain: forward.
  • Src. Address: 192.168.254.0/24. En este caso corresponde a la red disponible en la ethernet3, que conecta el computador con el router.
  • In. Interface: El bridge dedicado a la conexión entre la ethernet3 y el computador.
  • Out. Interface: La interfaz VPN creada para la conexión con la red corporativa.
  • Action: accept.

D. Pruebas.

En mi caso, en el computador de la casa utilizo Windows para trabajar, por lo cual es necesario darle también una IP fija a la segunda tarjeta de red dentro de la red 192.168.254.0/24, que apunte como gateway la IP que tiene asignada la Routerboard mediante la ethernet3.

Después de la configuración de la tarjeta por el lado del cliente, probamos que hay visibilidad entre la Routerboard y el computador.

Finalmente es necesario agregar las rutas estáticas por el lado del cliente (Windows en mi caso) y verificar que podamos llegar a las redes corporativas declaradas.

route -p ADD 192.168.4.0 MASK 255.255.255.0 192.168.254.1

Un ejemplo del trace hasta el host 192.168.4.254, un equipo ubicado en las redes corporativas.

Diagrama final:

Raspberry PI + Ubuntu Server como Router y Cliente Open VPN.

A. Contexto.

En mi actual trabajo —y cuando estoy en casa— necesito estar constantemente conectado mediante VPN. Gracias a que mi computador de escritorio posee 2 tarjetas de red —y doble Windows para arrancar: uno personal y otro corporativo—, he decidido usar una de las tarjetas de red para mantener el equipo constantemente conectado a las redes corporativas, lo cual incluye el controlador de dominio y servidores que necesito utilizar.

La conexión con las redes corporativas se realiza mediante Open VPN, por lo cual planeo utilizar una Raspberry PI 3 + Ubuntu Server 20.04 LTS, a la cual se le instala un cliente de Open VPN y se le configura el OS como router.

Actualmente y simplificadamente, este es el diagrama actual que va hasta mi computador:

Y busco llegar a esto:

Finalmente, necesito agregarle un puerto Ethernet adicional a la Raspberry PI. En este caso en particular utilizaré este dispositivo:

B. Configuración del Cliente Open VPN.

Posterior a la instalación de Ubuntu Server en la tarjeta SD y luego de iniciar la Rasbperry PI, iniciamos con la configuración:

1. Actualizar la lista de paquetes.

sudo apt update

2. Por gusto personal, instalar net-tools para ver las interfaces de red.

sudo apt install net-tools

3. Verificamos las interfaces de red disponibles:

ifconfig

Resultado: Podemos ver que está disponible y activa la conexión mediante el Ethernet integrado en la Rasbperry.

3. Instalar cliente de Open VPN.

sudo apt install openvpn

4. Cargar el perfil de conexión en el directorio /etc/openvpn/ y copiarlo cambiando su extensión a .conf .

sudo cp /home/ubuntu/client.ovpn /etc/openvpn/client.conf

5. Abrir el archivo client.conf:

sudo nano /etc/openvpn/client.conf

6. Buscar la línea:

auth-user-pass

Y reemplazarla con:

auth-user-pass pass

7. Crear un archivo para almacenar la contraseña de la conexión:

sudo touch /etc/openvpn/pass

Pegar el usuario en la primera línea y la contraseña de la conexión en la segunda línea y guardar.

8. Habilitar el servicio del cliente Open VPN. El nombre después de openvpn@ debe coincidir con el nombre del perfil que se copió a /etc/openvpn/ .

sudo systemctl enable openvpn@client.service

9. Recargamos la configuración de systemd manager.

sudo systemctl daemon-reload

10. Iniciamos el servicio.

sudo service openvpn@client start

8. Revisamos las interfaces de red:

ifconfig

Y revisamos que aparezca el túnel como una interfaz nueva:

Finalmente, basta con reiniciar la Raspberry y comprobar que la conexión se realiza automáticamente.

C. Configuración de interfaz Ethernet USB.

Como se ve en la imagen anterior, solo está configurado el Ethernet original de la Raspberry (eth0), que para efectos de esta configuración, correspondería a la WAN de nuestra Raspberry Router. Es por esto que necesitamos configurar el adaptador Ethernet USB.

1. Conectar el adaptador USB y conectar un cable RJ45 entre el adaptador y el pc. Luego listar las interfaces de red.

sudo lshw -C network

Podemos ver que aparece disponible la interfaz eth1, que corresponde al adaptador USB. No siempre las interfaces toman el identificador como eth0 y eth1.

2. Abrir el archivo de configuración de red. (El nombre del archivo puede variar).

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

Se puede ver la configuración de la eth0 (WAN), configurado como cliente DHCP.

Reemplazar el código con la siguiente configuración:

network:
    ethernets:
        eth0:
            dhcp4: true
            optional: true
        eth1:
            dhcp4: no
            addresses:
             - 192.168.254.1/24
    version: 2

La interfaz eth1 (LAN) queda configurada con una IP fija en la red 192.168.254.0/24. Puede ser cualquier red, que no colisione con la red casera o alguna red corporativa.

3. Probamos la configuración.

sudo netplan try

4. Guardamos la configuración.

sudo netplan apply

En mi caso, en el computador de la casa utilizo Windows para trabajar, por lo cual es necesario darle también una IP fija a la segunda tarjeta de red dentro de la red 192.168.254.0/24, que apunte como gateway la IP de la Raspberry.

Finalizando la configuración de la tarjeta por el lado del cliente, probamos que hay visibilidad entre la Raspberry y el computador.

D. Configurar Ubuntu como router.

1. Habilitar el forwarding de paquetes ipv4.

sudo sed -i '/net.ipv4.ip_forward/s/^#//' /etc/sysctl.conf

2. Aplicar cambios.

sudo sysctl -p

3. Configurar las reglas iptables para habilitar el ruteo entre la eth1 (LAN) y la tun0 («WAN» hacia la red corporativa).

Packet forwarding.

sudo iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
sudo iptables -A FORWARD -i  tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

Nating.

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

4. Hacer las reglas persistentes. Durante la instalación se guardarán automáticamente las reglas ya configuradas.

sudo apt install iptables-persistent

5. Finalmente solo queda reiniciar la Raspberry y verificar que el túnel OpenVPN y el ruteo levanten automáticamente.

Adicionalmente, es necesario agregar las rutas estáticas por el lado del cliente (Windows en mi caso) y verificar que podamos llegar a las redes corporativas declaradas.

route -p ADD 192.168.4.0 MASK 255.255.255.0 192.168.254.1

Un ejemplo del trace hasta el host 192.168.4.254, un equipo ubicado en las redes corporativas.

Páginas de referencia.

Microsoft IIS en Windows Server Core 2022 + Administración Remota.

Este manual fue aplicado en una estructura de equipos y servidores dentro de un contexto de Active Directory y Controlador de Dominio de Microsoft.

1. Teniendo disponible una máquina con una instalación de Windows Server 2022 sin interfaz de usuario, es decir, en su versión Core, debemos agregarlo al RSAT: Server Manager.

Esta herramienta se instala como una característica adicional de los Windows Profesionales y nos permite administrar remotamente Servidores Windows, agregando, quitando y configurando roles.

2. Agregar el Servidor al Administrador de Servidores: Seleccionar Todos los servidores > Presionar Agregar Servidores.

3. Presionar Buscar Ahora > Seleccionar el servidor recién instalado y agregado al dominio > Agregarlo a la lista mediante el Botón de Flecha > Presionar Aceptar.

4. El servidor quedará disponible en el Administrador de Servidores.

5. Seleccionar Administrar > Presionar Agregar roles y características.

6. Seleccionar Selección de servidor > Seleccionar el servidor recién instalado > Presionar Siguiente.

7. Seleccionar el rol Servidor web (IIS) > Presionar Siguiente.

8. No seleccionar características y presionar Siguiente.

9. Presionar Siguiente.

10. Seleccionar el servicio de rol Servicio de administración > Presionar Siguiente.

11. Presionar Instalar.

12. Una vez instalado el rol de Internet Information Services, será necesario activar la administración remota mediante PowerShell, ya que el servidor no cuenta con GUI.

Presionar botón derecho sobre el servidor en el Administrador de Servidores y presionar Windows PowerShell.

13. Activar el servicio de Administración Remota ingresando el siguiente código en la consola PowerShell remota:

Set-ItemProperty HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name "EnableRemoteManagement" -Value 1

14. Iniciar el servicio de Administración remota:

Start-Service WMSVC

15. Configurar el inicio automático del servicio de Administración remota.

Set-Service WMSVC -StartupType Automatic

16. En la máquina que se usará para administrar remotamente el Motor de Internet Information Server: Abrir el menú de Características de Windows.

17. Seleccionar la característica IIS Management Console > Presionar Aceptar.

18. Una vez finalizada la instalación de la Consola de Administración Remota de IIS, se deberá instalar la extensión de administración remota. El paquete se encuentra disponible desde la siguiente web de Microsoft:

Download IIS Manager for Remote Administration 1.2 from Official Microsoft Download Center

19. Abrir el Administrador de Internet Information Services (IIS).

20. Seleccionar el menú de conexiones y presionar Conectarse a un servidor:

21. Ingresar el hostname del servidor previamente configurado y presionar Siguiente.

22. Ingresar las credenciales de un usuario con permisos de Administrador en el servidor y presionar Siguiente.

23. Ingresar un nombre para la conexión y presionar Finalizar.

24. Finalmente, el servidor remoto y su servicio de IIS quedará disponible para la administración mediante la consola instalada localmente.

Páginas de referencia: