O Dante aplica duas verificações de acesso: uma regra de cliente admite a origem que chega e uma regra SOCKS permite o destino e o comando solicitados. Este exemplo do Dante 1.4.4 deixa um cliente acessar um destino controlado na porta 443.

Identidade do serviço e endereços

Crie uma conta dedicada com poucos privilégios caso a instalação não forneça uma:

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

As duas identidades podem usar essa conta na configuração abaixo, com porta alta e lista de origens permitidas. Autenticação por senha ou recursos privilegiados exigem revisar essas configurações. Substitua todos os endereços de documentação antes do uso.

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 seleciona o listener voltado ao cliente; external seleciona o endereço de saída. Um servidor com uma interface pode usar o mesmo endereço atribuído nos dois casos. Um nome de interface também pode ser usado quando adequado; confira para quais endereços ele se expande.

O que essa política permite

A primeira regra admite a origem especificada no listener. A segunda permite somente CONNECT ao alvo especificado. Requisições sem correspondência continuam bloqueadas, incluindo BIND e UDP ASSOCIATE.

As configurações de método não fornecem autenticação por nome de usuário. O acesso depende da regra de origem restrita e de seu limite de rede. Esse arranjo só é adequado quando essa origem identifica um cliente autorizado.

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

Algumas distribuições chamam o executável de danted. Verifique a configuração com o comando instalado antes de iniciar o serviço. Aplique restrições de origem correspondentes no firewall e depois teste o alvo permitido e um alvo controlado que deve ser negado.

Artigos relacionados