Přidejte do Dante ověřování uživatelským jménem
Změňte politiku SOCKS v Dante 1.4.4 z přístupu pouze podle zdroje na výslovnou kontrolu účtu a zachovejte omezení zdroje i cíle.
V Dante 1.4.4 klientská pravidla přijímají spojení před vyjednáváním SOCKS, zatímco pravidla SOCKS rozhodují, které ověřené požadavky smějí pokračovat. Spojení z povoleného zdroje může ve druhé fázi stále vyžadovat uživatelské jméno.
Při ověřování uživatelským jménem operačního systému zkontrolujte kromě metody také identity služby. Čtení databáze účtů může vyžadovat privilegovanou identitu:
clientmethod: none
socksmethod: username
user.privileged: root
user.unprivileged: danteproxy
Použijte skutečný účet služby s nízkými oprávněními nainstalovaný pro Dante. Vytvořte nebo vyberte oprávněný klientský účet kompatibilní s backendem pro uživatelská jména; identita služby a přihlášení klienta mají různé role.
Zachovejte hranice požadavků
Za stávajícím úzce vymezeným klientským pravidlem požadujte účet na povolené trase SOCKS:
socks pass {
from: 198.51.100.27/32 to: 203.0.113.20/32 port = 443
command: connect
socksmethod: username
user: proxyuser
log: connect error
}
Adresy a název účtu jsou zástupné hodnoty. Povoluje se tím jeden zdroj, jeden cíl, jeden příkaz a uvedený ověřený uživatel. Nenahrazujte tuto hranici neomezenými zdroji jen proto, že bylo přidáno heslo.
Globální nastavení metody a nastavení v pravidle se musí shodovat. Zkontrolujte, zda nezůstalo staré pravidlo pouze s none z konfigurace přístupu podle zdroje. Zachovejte také zamýšlená omezení naslouchajícího rozhraní a firewallu.
Vyjednávání a přístup testujte odděleně
Před spuštěním ověřte soubor režimem kontroly konfigurace nainstalovaného serveru. Pak použijte oprávněného klienta, který skutečně podporuje vyjednávání uživatelského jména a hesla SOCKS5. Vyzkoušejte chybějící údaje, nesprávné údaje i povolený účet žádající zakázaný cíl.
Podvyjednávání uživatelského jména a hesla definované v RFC 1929 heslo nešifruje. Pozdější relace HTTPS s cílem tuto dřívější výměnu s proxy nechrání. Použijte vhodně zabezpečenou cestu mezi klientem a serverem.
Úspěšná kontrola konfigurace potvrzuje syntaxi a identity, nikoli databázi účtů nebo síťovou cestu. V protokolech serveru zjistěte, která fáze odmítla skutečný test.