Я пытаюсь использовать squid и привязать 2 исходящих ips отдельно к 2 пользователям.
Идеальные результаты будут, я могу получить доступ к следующему:
xxx.xxx.xxx.14:3128:user1:user1password
xxx.xxx.xxx.18:3128:user2:user2password
Но нет:
xxx.xxx.xxx.14:3128:user2:user2password
xxx.xxx.xxx.18:3128:user1:user1password
Я нахожу аналогичный вопрос и использую аналогичный squid.conf:
Вот моя конфигурация:
acl http proto http
acl port_80 port 80
acl port_443 port 443
acl CONNECT method CONNECT
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords
acl ncsa_users proxy_auth REQUIRED
external_acl_type userIp %SRC %LOGIN /usr/lib64/squid/ext_file_userip_acl -f /etc/squid/userIp.conf
acl userIp external userIp
http_access deny !ncsa_users
http_access allow userIp
http_access deny all
http_port 3128
acl ip1 myip xxx.xxx.xxx.14
tcp_outgoing_address xxx.xxx.xxx.14 ip1
acl ip2 myip xxx.xxx.xxx.18
tcp_outgoing_address xxx.xxx.xxx.18 ip2
И в моем userIp.conf у меня есть:
xxx.xxx.xxx.14 user1
xxx.xxx.xxx.18 user2
И в моем /etc/squid/passwords у меня есть следующее, созданное htpasswd:
user1:encrypted password
user2:encrypted password
Проблема в: если я удалю 'http_access запрещает !ncsa_users', то user1 сможет получить доступ как к xxx.xxx.xxx.14, так и к xxx.xxx.xxx.18. То же самое с пользователем2.
Но если я оставлю 'http_access запрещает !ncsa_users' как есть, то все соединение не будет установлено.
Я чувствую, что 'http_access разрешить userIp' не работает так, как предполагалось.
Я не могу найти подобную проблему в Интернете... Надеюсь, кто-нибудь может мне помочь.
Хорошо, я понял сейчас.
Пара %SRC %LOGIN означает указание источника собственных адресов компьютеров пользователя, что на самом деле не то, что я хочу.
На самом деле я хочу пару %MYADDR %LOGIN, которая указывает IP-адреса, к которым разрешается подключаться каждому пользователю.
Так что да, это проблема