Dante aplica dos controles de acceso: una regla de cliente admite un origen entrante y una regla SOCKS permite el destino y el comando solicitados. Este ejemplo de Dante 1.4.4 deja que un cliente acceda a un destino controlado por el puerto 443.

Identidad del servicio y direcciones

Crea una cuenta dedicada con pocos privilegios si la instalación no incluye una:

sudo useradd --system --no-create-home --shell /usr/sbin/nologin danteproxy

Ambas identidades pueden usar esta cuenta en la configuración siguiente, que emplea un puerto alto y una lista de orígenes permitidos. La autenticación por contraseña o las funciones privilegiadas exigen revisar esos ajustes. Sustituye todas las direcciones de documentación antes de usarla.

logoutput: stderr
internal: 192.0.2.10 port = 1080
external: 192.0.2.10
clientmethod: none
socksmethod: none
user.privileged: danteproxy
user.unprivileged: danteproxy

client pass {
    from: 198.51.100.27/32 to: 192.0.2.10/32 port = 1080
    log: connect error
}

socks pass {
    from: 198.51.100.27/32 to: 203.0.113.20/32 port = 443
    command: connect
    log: connect error
}

internal elige el punto de escucha para el cliente; external elige la dirección de salida. Un servidor con una sola interfaz puede usar la misma dirección asignada en ambos casos. También puede usarse un nombre de interfaz cuando proceda; comprueba a qué direcciones se expande.

Qué permite esta política

La primera regla admite el origen indicado en el punto de escucha. La segunda solo permite CONNECT al objetivo indicado. Las peticiones sin coincidencia siguen bloqueadas, incluidas BIND y UDP ASSOCIATE.

Los ajustes de método no ofrecen autenticación por nombre de usuario. El acceso depende de la regla de origen limitada y de su frontera de red. Esta disposición solo es apropiada si ese origen identifica a un cliente autorizado.

sockd -V -f /path/to/sockd.conf

Algunas distribuciones llaman danted al ejecutable. Comprueba la configuración con el comando instalado antes de iniciar el servicio. Aplica en el cortafuegos restricciones de origen equivalentes y después prueba el objetivo permitido y otro controlado que debería ser rechazado.

Artículos relacionados