0 votos

Conectarse a OpenVPN corriendo en OpenWrt desde Android

OpenVPN 2.5.3 aarch64-openwrt-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD]
library versions: OpenSSL 1.1.1l  24 Aug 2021, LZO 2.10

He instalado OpenVPN en el último OpenWrt 21.02.1

Tanto el archivo de configuración del cliente como el del servidor tienen estas líneas en la parte superior:

user nobody
group nogroup
dev tun
..
..

He instalado la aplicación OpenVPN para Android en mi teléfono Android. Al entrar en el archivo de configuración del cliente... ¿se supone que debo comentar o eliminar las dos primeras líneas ya que no hay ningún usuario llamado: nobody y ningún grupo llamado nogroup en mi Android. Al menos no he visto nada en /etc/group y `/etc/passwd en el sistema operativo Android.

Veo en el Manual de OpenVPN que la opción --user le permite: "Cambiar el ID de usuario del proceso de OpenVPN a usuario después de la inicialización, dejando caer los privilegios en el proceso. Esta opción es útil para proteger el sistema en caso de que alguna parte hostil fuera capaz de obtener el control de una sesión de OpenVPN."

Puedo conectarme desde el cliente Android al servidor OpenVPN comentando esas dos líneas, pero ¿hay alguna forma de obtener el beneficio de ejecutar como usuario "nobody" y grupo "nogroup", o algún usuario sin privilegios, cuando se conecta al servidor OpenVPN en OpenWrt desde un teléfono Android?

Desde un Terminal a mi teléfono con sistema operativo Android si hago ls -l Puedo ver el usuario y el grupo de todos los archivos es: u0_a252 así que debo hacer un usuario un grupo de u0_a252 en el servidor que ejecuta OpenVPN y luego usar eso como el usuario y el grupo en que está dejando caer privilegios de root en el cliente con --user y/o --group los archivos de configuración del cliente y del servidor? Mi teléfono no está rooteado así que supongo que correr como usuario u0_a252 ¿será lo mismo que ejecutar OpenVPN sin privilegios?

Por último, ¿necesito definir un usuario Y un grupo o basta con uno u otro? El manual de OpenVPN es un poco ambiguo en este punto porque también dice: "[si] está dejando los privilegios de Root en el cliente con --user y/o --group.."

Salud,

Flex

0voto

Brian Nixon Puntos 1878

Le pregunté al creador del OpenVPN para Android app.

Esa aplicación ignora las opciones --user y --group de OpenVPN y se ejecuta como un usuario sin privilegios, lo que puede confirmarse instalando Android Debug Bridge (ADB) en un ordenador al que el teléfono esté conectado mediante un cable USB. A continuación, ejecute comandos como estos:

# adb shell
sunfish:/ $ top | grep openvpn
20901 shell        20   0  10G 2.8M 2.1M S  0.0   0.0   0:00.00 grep openvpn
20901 shell        20   0  10G 2.8M 2.1M S  0.0   0.0   0:00.00 grep openvpn
19186 u0_a253      20   0  14G  96M  49M S  0.6   1.7   0:02.23 de.blinkt.openvpn:openvpn
19186 u0_a253      20   0  14G  96M  49M S  0.3   1.7   0:02.25 de.blinkt.openvpn:openvpn
19186 u0_a253      20   0  14G  96M  49M S  0.6   1.7   0:02.26 de.blinkt.openvpn:openvpn

Así que en mi caso, el cliente que se conecta al servidor OpenVPN tiene un ID de usuario: u0_a253 y no a Root.

En cuanto a mi pregunta original.... mi entendimiento es que u0_a252 es el UID del proceso de la Terminal.

Salud,

Flex

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X