Проблема с конфигурационным файлом SQUID
-
Добрый день!
Может кто сталкивался:
2.0.1-RELEASE (i386) built on Mon Dec 12 17:53:52 EST 2011 FreeBSD 8.1-RELEASE-p6
squid 2.7.9 pkg v.4.3.1
Настраиваю SQUID: Proxy server: Authentication - вкладка Auth Settings
Прописываю 4 компьютера которые должны ходить через SQUID без авторизации (каждый с новой строки): Subnets that don't need authentication
172.20.1.215/32
172.20.1.190/32
172.20.1.126/32
172.20.1.76/32Жмем кнопку Save.
По факту: некоторые из прописанных компьютеров запрашивают логин и пароль на доступ к SQUID.
Смотрим squid.conf
acl noauth src 172.20.1.215/32^M 172.20.1.190/32^M 172.20.1.126/32^M 172.20.1.76/32
Откуда то взялись ^M . Убираю в редакторе прямо на хосте. Все начинает правильно работать.
Стоит что либо сделать на pfSense: обновить у кого либо настройки или перегрузиться. Конфиг восстанавливается с ^MСмотрим файл /cf/conf/config.xml
<no_auth_hosts>MTcyLjIwLjEuMjE1LzMyDQoxNzIuMjAuMS4xOTAvMzINCjE3Mi4yMC4xLjEyNi8zMg0KMTcyLjIwLjEuNzYvMzI=</no_auth_hosts>
Что пробовал: сделал <no_auth_hosts>(удалил строку в config.xml), удалил acl noauth src из конфига squid.conf. Через веб-интерфейс добавил по новый адреса. В конфиг SQUID лезут ^M
Во всем конфиге эти символы только в этой строке. Пробовал разными браузерами.
Кто нибудь может подсказать как это побороть?</no_auth_hosts>
-
Попробуйте установить squid 3-ий , предварительно удалив 2-ой.
-
Удалил старый SQUID через вебинтерфейс
Поставил 3 версию SQUIDПроблема та же.
Если один адрес то все нормально, второй и последющие добавляю и получаю в конфиге следующее:acl noauth src 172.20.1.76/32^M 172.20.1.215/32
-
Возможно это баг в squid.inc
-
И что делать? В squid.inc нашел кусок кода:
$noauth = implode(' ', explode("\n", base64_decode($settings['no_auth_hosts'])));
if (!empty($noauth)) {
$conf .= "acl noauth src $noauth\n";
$valid_acls[] = 'noauth';
}Вроде все правильно.
ЗЫ: на всякий случай на виртуально машине развернул чистый pfsense … в нем такая же проблема.
-
Вчера вот не смог найти ответ на эту проблему. Сегодня как то вот нашлось :)
http://forum.pfsense.org/index.php/topic,38961.0.html
Incorrect behavior of the configurator creates a list noaut (Subnets that don't need authentication) wrong.
From comment "Enter each subnet or IP address on a new line (in CIDR format, e.g.: 10.5.0.0/16, 192.168.1.50/32) that should not be asked for authentication to access the proxy."
squid.inc generated squid.conf
…
acl noauth src subnet/mask
subnet/mask
subnet/mask
......Need to work
acl noauth src subnet/mask subnet/mask subnet/mask ...Please fill in the source package chenge squid.inc
Code:.....
else {
// $noauth = implode(' ', explode("\n", base64_decode($settings['no_auth_hosts'])));
// if (!empty($noauth)) {
// $conf .= "acl noauth src $noauth\n";
// $valid_acls[] = 'noauth';// Corrector
$noauth = explode("\n", base64_decode($settings['no_auth_hosts']));
$noauthed = "";
foreach ($noauth as $subnet) {
if(!empty($subnet)) {
$subnet = trim($subnet);
$noauthed .= "$subnet ";
}
}if (!empty($noauthed)) {
$conf .= "acl noauth src $noauthed\n";
$valid_acls[] = 'noauth';
}
// EndCorrector
}
…..Note a very important work at least for me since that moment gave me a lot of inconvenience since the version 1.2.3 and version 2.0 is preserved.
-
Это
That "^M" is control-M, which is a carriage return, and is not needed in Unix file systems.
Они один "\n" прессуют, хотя там везде "\r\n"
$noauth = implode(' ', explode("\n", base64_decode($settings['no_auth_hosts'])));
можно так попробовать
$noauth = implode(' ', explode("\r\n", base64_decode($settings['no_auth_hosts'])));
или так
$noauth = base64_decode($settings['no_auth_hosts']); $noauth = str_replace("\r\n", " ", $noauth);