我已经编辑apt.conf
、应用了“系统范围配置”、编辑了/etc/enviroment
等等……但运气不佳。
我的公司正在运行 Squid 代理DIGEST 身份验证,我认为 APT 不支持。
有谁遇到过这个问题吗?
apt.conf
:Acquire::http::proxy "http://[user]:[password]@[host]:[port]/"; Acquire::https::proxy "https://[user]:[password]@[host]:[port]/";
环境:
http_proxy="http://[user]:[password]@[host]:[port]/" https_proxy="https://[user]:[password]@[host]:[port]/"
我总是收到“407 需要身份验证”。
答案1
我遇到了同样的问题,我的大学使用带有摘要身份验证的代理。到目前为止,我发现的唯一解决方法是使用 redsocks 之类的工具,它可以对摘要代理进行身份验证,然后将流量(例如使用 iptables)重定向到不需要身份验证的 redsocks 代理。
步骤 1:安装 redsocks
sudo apt install redsocks
但由于你不能在公司使用 apt,你需要下载文件.deb
并使用sudo apt deb xxxxx.deb
第 2 步:配置 redsocks 以使用你的代理
编辑/etc/redsocks.conf
并替换部分中的以下参数redsocks
:
redsocks {
...
ip = <YOUR-PROXY-IP>; // example: 10.12.1.77
port = <YOUR-PROXY-PORT>; // example: 3128
...
type = <YOUR-PROXY-TYPE>; // example: http-connect
...
login = <YOUR-USERNAME>; // the username for your proxy
password = <YOUR-PASWORD>; // the password for your proxy
}
步骤3:重启redsocks服务以更新配置
sudo service redsocks restart
步骤4:配置iptables
将以下内容保存到 shell 脚本中,这样您就不必每次都输入它:
#!/bin/bash
if [ -z $SUDO_COMMAND ]; then
sudo $0 $*
exit 0
fi
## Create new chain
iptables -t nat -N REDSOCKS
## Ignore LANs and some other reserved addresses.
## See http://en.wikipedia.org/wiki/Reserved_IP_addresses#Reserved_IPv4_addresses
## and http://tools.ietf.org/html/rfc5735 for full list of reserved networks.
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
## Anything else should be redirected to port 12345
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
执行上述脚本,以便创建 iptable 规则。
第五步:玩得开心
开始使用apt-get
看http://www.darkk.net.ru/redsocks/或参阅 redsock 手册以了解更多信息。
答案2
我遇到了同样的问题,我完全理解这个功能不受支持。
事实上,摘要式身份验证是从安全角度来看相当薄弱:
- 从客户端的角度来看,它无法阻止中间人攻击等多种攻击,
- 从服务器的角度来看,情况甚至更糟,因为它使得无法使用强密码哈希以安全的方式存储密码。
摘要式身份验证会削弱可用性,但并不能切实提高安全性。
因此,现在这个协议已经没什么用了:
- 如果安全很重要,则使用客户端和代理之间通过 HTTPS 连接保护的基本身份验证,
- 或者,如果安全性不重要,那么通过纯 HTTP 进行的基本身份验证是可以接受的。