Un server SOCKS5 con accesso limitato tramite Dante
Configura Dante 1.4.4 con un listener specifico, un client consentito e una destinazione consentita, distinguendo le due fasi delle regole.
Dante applica due controlli di accesso: una regola client ammette la sorgente in ingresso e una regola SOCKS permette destinazione e comando richiesti. Questo esempio per Dante 1.4.4 consente a un client di raggiungere una destinazione controllata sulla porta 443.
Identità del servizio e indirizzi
Crea un account dedicato con privilegi ridotti se l’installazione non ne fornisce uno:
sudo useradd --system --no-create-home --shell /usr/sbin/nologin danteproxy
Entrambe le identità possono usare questo account per la configurazione seguente, che utilizza una porta alta e una lista di sorgenti consentite. L’autenticazione con password o le funzioni privilegiate richiedono di rivedere tali impostazioni. Sostituisci tutti gli indirizzi di documentazione prima dell’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 seleziona il listener rivolto ai client; external seleziona l’indirizzo in uscita. Un server con una sola interfaccia può usare lo stesso indirizzo assegnato per entrambi. Quando appropriato si può usare anche un nome di interfaccia: controlla a quali indirizzi viene espanso.
Che cosa consente questa politica
La prima regola ammette la sorgente specificata al listener. La seconda permette soltanto CONNECT alla destinazione indicata. Le richieste senza corrispondenza restano bloccate, incluse BIND e UDP ASSOCIATE.
Le impostazioni dei metodi non offrono autenticazione con nome utente. L’accesso dipende dalla regola di sorgente ristretta e dal suo confine di rete. Questa configurazione è adatta solo dove la sorgente identifica un client autorizzato.
sockd -V -f /path/to/sockd.conf
Alcune distribuzioni chiamano l’eseguibile danted. Verifica la configurazione con il comando installato prima di avviare il servizio. Applica restrizioni di sorgente corrispondenti sul firewall, quindi prova sia il target consentito sia un target controllato che deve essere rifiutato.