![]() |
Показаны 16 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Linux (http://netadmin.ws/forum/forumdisplay.php?forumid=13)
-- squid + passwd (http://netadmin.ws/forum/showthread.php?threadid=6241)
squid + passwd
Мне нужно создавать "учётные записи" для squid-a без создания "реальных" пользователей, подскажите плз, чем/как это делать? Т.е. генерировать строку
hozvo:passwd:12275:0:99999:7:::
quote:
Ответ нулевой длины
__________________
Админ - вождь Апачей...
пользователей я добавляю wibmin'ом у него там свой скрипт есть
вот что он добавил в squid.conf
authenticate_program /etc/webmin/squid/squid-auth.pl /etc/webmin/squid/users
#!/usr/bin/perl
# squid-auth.pl
# A basic squid authentication program
open(AUTH, $ARGV[0]);
while(<AUTH>) {
s/\r|\n//g;
s/#.*$//;
if (/^(\S+):(\S+)/) {
$auth{$1} = $2;
}
}
close(AUTH);
$| = 1;
while(<STDIN>) {
s/\r|\n//g;
local ($u, $p) = split(/\s+/, $_);
print $auth{$u} &&
$auth{$u} eq crypt($p, $auth{$u}) ? "OK\n" : "ERR\n";
}
__________________
http://simpsons.ykt.ru - русский портал о Симпсонах
Блин... А в моем случае что делать? У меня нет Webmin-a и чего то он мне не нравится...
(Я не знаю чем кодируются в данном случае пароли)
можно было бы просто adduseer и из /etc/shadow брать строку... но я не хочу добавлять ненуюных в системе пользователей...
__________________
Админ - вождь Апачей...
так делай htpasswd -d /etc/webmin/squid/users username password
htpassowd лежит в директории апача
Kfmook добавил 13-08-2003 в 09:30:17:
имя файла это конечно пример, можеш делать свой файл
__________________
http://simpsons.ykt.ru - русский портал о Симпсонах
Хм... помоему тут методика шифрования немножко разная:
EP3KOPkBq1Aig в htpasswd против $1$vUNDfQBA$QIW7oEPPJYIYWxdM4/7JN. в shadow... Или нет?
he][es добавил 13-08-2003 в 09:43:12:
Усё... понял... 
htpasswd -m username помогут мне 
he][es добавил 13-08-2003 в 09:47:31:
Дык нет... не работает 
Может я делаю что не так?
__________________
Админ - вождь Апачей...
вот скритн которым он записывает в свой файл пользователя:
$pass = &encryptpwd($in{'pass'}, $salt);
open(FILE,">>$file");
print FILE "$in{'user'}:$pass\n";
close(FILE);
sub encryptpwd {
if ($config{'crypt_conf'}) {
my $pwd = $_[0];
my $encryptpwd = new MD5;
$encryptpwd->add($pwd);
$pwd = encode_base64($encryptpwd->hexdigest());
chomp($pwd);
$pwd = "\$$pwd\$";
return $pwd;
}
else {
$salt = substr(time(), -2);
my $pwd = crypt($_[0], $_[1]);
return $pwd;
}
}
__________________
http://simpsons.ykt.ru - русский портал о Симпсонах
Kfmook ну если я правельно понял то тут MD5 исп-ся... а htpasswd -m выдает тот же md5... или я ошибаюсь?
Ну я всё равно попробую...
__________________
Админ - вождь Апачей...
md5 всегда генерирует $1$ в начале и длина всегда 34 символа так что можешь легко проверить..
__________________
Администратор Бед в Данных...
Блин народ, ну не работает... 
пишу типа htpasswd -m ./passwd user passwd
он добавляет всё похоже на настоящий, но squid не пускает 
__________________
Админ - вождь Апачей...
А ты squid от имени root стартуешь или специального пользователя создал?? Запусти вобще squid -k parse и если все в норме запусти squid -NCd1 и еще раз попробуй авторизацию, и посмотри, что он выдаст в консоль..
__________________
Администратор Бед в Данных...
Quetzalcoatl эээ а поподробнее можно?
(Обычно я делал adduser user name и из shadow забирал строку с паролем и подставлял её в passwd squid-a и всё работало отлично... без доп. телодвижений)
__________________
Админ - вождь Апачей...
Вот здесь есть интересные ссылки на софт для сквида.. http://www.squid-cache.org/related-software.html там есть и различные модули аутентификации... глянь может найдешь себе подходящий, а что касаеться htpaswwd, то на тойже странице написано, что он используеться can be used to manage a password file for Squid when using the NCSA authenticator.. ты его то подклучил?? см. auth_param basic program в squid.conf и кстати в мане написано что у него md5 алгоритм измененный, а не стандартный.. htpasswd encrypts passwords using either a version of MD5 modified for Apache..
P.S. squid -k parse проверяет файл конфигурации, а squid -NCd1 поможет для отладки, весь вывод в консоль идет..
__________________
Администратор Бед в Данных...
Quetzalcoatl пасиба большое! Ознакомлюсь со всем предложеным о результатах доложу...
__________________
Админ - вождь Апачей...
Кстати я сам использую модуль pam_auth, в аккаунты просто ставлю shell /sbin/nologin...
__________________
Администратор Бед в Данных...
Quetzalcoatl можно поподробнее? Что за pam_auth? и shell /sbin/nologin...?
__________________
Админ - вождь Апачей...
Вобщем все просто PAM - это Pluggable Authentication Modules, самый естественный способ аутентификации, в Linux и FreeBSD (см. man pam).. Набор стандартных библиотек для аутентификации в системе, которые в свою очередь предоставляют интерфейс таким утилитам, как, например, login(1) и su(1) для выполнения ими стандартных задач аутентификации.. В FreeBSD все модули находяться здесь /usr/lib/pam_*.so, а онфиг здесь /etc/pam.conf
Со сквидом идет целая пачка всяких утилит аутентификации, среди них и pam_auth у меня в /usr/local/libexec.. Чтоб сквид использовал эту утилиту нужно добавить в squid.conf вот эту строчку
auth_param basic program /usr/local/libexec/pam_auth..
Теперь подключаем соответствующий модуль pam в /etc/pam.conf добавляем..
# Squid-cache proxy
squid auth required pam_unix.so try_first_pass
squid account required pam_unix.so try_first_pass
Утилита /usr/local/libexec/pam_auth должна запускаться от имени root...
Сквидом у меня пользуются те пользователи, что удовлетворяют правилу http_access allow mynet password в squid.conf, где acl mynet src 192.168.100.0/24,а acl password proxy_auth REQUIRED, т.е. все кто из моей сети 192.168.100.0/24 и прошли по паролю..
Завожу я пользователей сценарием adduser в стандартный фаил master.passwd (это тоже что в линухе shadow), но чтобы пользователи не могли подключиться к шелу, в поле шелл указываю /sbin/nologin - это не шелл, а просто сценарий, который выводит: This account is currently not available. Можешь свой написать или вобще просто указать на не существующий фаил или там /bin/date, чтоб пользователь хоть время узнал
.. Главное чтоб не на реальный шелл. Поскольку шелла /sbin/nologin нет в файле /etc/shells, то ftp юзер не сможет подключиться и к ftpd... Ну а чтоб не засорять /home, то в поле home directory указываешь какой-нить /nonexistent и все...
RTFM..
__________________
Администратор Бед в Данных...
| Формат времени GMT. Текущее время 22:55. | Показаны 16 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.