我一直在尝试使用 danted 在 Linux 上设置 SOCKS 代理。我的代理无需身份验证即可正常工作,但当我尝试使用两者添加身份验证时method: username
,method: pam
我无法使用我设置的任何用户名或密码登录。
使用时method: pam
这是我使用的配置
logoutput: stderr /var/log/danted.log
/#Interfaces for listening on
internal: eth0 port=1080 #AP external interface
internal: eth0 port=53
external: eth0 #interface on AODV network
/#Auth Method
method: pam
user.privileged: root
user.notprivileged: nobody
user.libwrap: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error
}
/#Allow any connection
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: connect udpassociate
protocol: udp tcp
log: error
method: pam
pamservicename: sockd
}
但是当我运行时,danted -d
我收到一个身份验证错误,提示用户名和密码错误。我的 Pam 配置是
auth required pam_pwdfile.so pwdfile /etc/danted/sockd.passwd
account required pam_permit.so
htpasswd -d
并使用强制 crypt()创建用户名和密码。
我也尝试过method: username
,但遇到了同样的问题system password userauthentication failed
。我正在使用 proxifier 代理检查器测试它们,它们总是返回错误的用户名或密码。
我目前在没有任何身份验证的情况下运行它,因此解决这个问题非常重要。
我创建了一个名为“test”的新用户,密码为“password”,这是我收到的错误
Jul 12 14:45:07 ip-172-31-26-147 danted: pam_pwdfile(sockd:auth): setting fail delay
Jul 12 14:45:07 ip-172-31-26-147 danted: pam_pwdfile(sockd:auth): username is estt
Jul 12 14:45:07 ip-172-31-26-147 danted: pam_pwdfile(sockd:auth): user not found in password database
答案1
我最终通过删除通过 apt 安装的 dante 版本并将其替换为从 dante 网站下载并从源代码编译的版本解决了该问题。ubuntu 存储库中的版本肯定存在错误。