Решено: squid3+sams ncsa авторизация (не пускает интернет)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модератор: SLEDopit

Ответить
Rovnyi
Сообщения: 46
ОС: Debian Lenny

Решено: squid3+sams ncsa авторизация

Сообщение Rovnyi »

дело выглядит вот так. на серваке стоит Debian Lenny, Squid 3.0 stable 8 + sams(версия пакета 1.0.4). при попытке залогиниться в браузере FF три раза запрашивает пароль/логин, после чего сбрасывает соединение, вне зависимости от правильности залогинивания. в аксесс логах выскакивают такие сообщения

Код: Выделить всё

1240235352.312      0 192.168.0.103 TCP_DENIED/407 2362 CONNECT advisordb.wmtransfer.com:443 denikos NONE/- text/html


искал в гугле, не нашел. поискал на форуме нашел в тему только ncsa-авторизация. ничего вразумительного не прочитал.

выкладываю конфиг сквида(без комментариев, только необходимое)

Код: Выделить всё

auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/ncsa.sams
auth_param basic children 15
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

authenticate_cache_garbage_interval 1 hour
authenticate_ttl 1 hour
authenticate_ip_ttl 3600 seconds

acl _sams_49e415f9a1459 proxy_auth "/etc/squid3/49e415f9a1459.sams"
acl _sams_49e415f9a1459_time time MTWHFAS 00:00-23:59
acl password proxy_auth REQUIRED
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl local_net src 192.168.0.0/255.255.255.0     # RFC1918 possible internal network

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

http_access allow _sams_49e415f9a1459  _sams_49e415f9a1459_time
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow local_net
http_access allow localhost
http_access deny all

icp_access allow local_net
icp_access deny all
http_port 192.168.0.1:80


в iptables разрешил все. в файле 49e415f9a1459.sams присутствуют только логины без паролей. может быть дело в этом, но не уверен. так как конфиг настривал через самца, могу грешить только на него. хотя работает он корректно, единственное что не позволяет, так это логинится.
прошу помочь, так как уже третий день мучаю гугл и линуксфорум, а решения проблеме не нашел. если уж где-то проглядел, прошу дать ссылку.
Я ПИШУ ПО-РУССКИ!!!
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: Решено: squid3+sams ncsa авторизация

Сообщение skeletor »

Rovnyi писал(а):
21.04.2009 11:58
...при попытке залогиниться в браузере FF три раза запрашивает пароль/логин, после чего сбрасывает соединение, вне зависимости от правильности залогинивания. в аксесс логах выскакивают такие сообщения

Вот ответ, почему такое возникает

Код: Выделить всё

http_port 192.168.0.1:80


Rovnyi писал(а):
21.04.2009 11:58
в iptables разрешил все. в файле 49e415f9a1459.sams присутствуют только логины без паролей. может быть дело в этом, но не уверен. так как конфиг настривал через самца, могу грешить только на него. хотя работает он корректно, единственное что не позволяет, так это логинится.
прошу помочь, так как уже третий день мучаю гугл и линуксфорум, а решения проблеме не нашел. если уж где-то проглядел, прошу дать ссылку.

Вообщем, нужно сделать следующее:
1) привести сюда правила
2) завести нормально базу: логин пароль
3) выбрать порт для прокси.

Это для начала. Потом будет видно.
Спасибо сказали:
Rovnyi
Сообщения: 46
ОС: Debian Lenny

Re: Решено: squid3+sams ncsa авторизация

Сообщение Rovnyi »

skeletor писал(а):
21.04.2009 13:11
Rovnyi писал(а):
21.04.2009 11:58
...при попытке залогиниться в браузере FF три раза запрашивает пароль/логин, после чего сбрасывает соединение, вне зависимости от правильности залогинивания. в аксесс логах выскакивают такие сообщения

Вот ответ, почему такое возникает

Код: Выделить всё

http_port 192.168.0.1:80



ответ слишком короткий, мне слегка непонятно. нужно внести другой порт?
Вообщем, нужно сделать следующее:
1) привести сюда правила
2) завести нормально базу: логин пароль
3) выбрать порт для прокси.


1. чьи правила? sams?
2. база логин/пароль создана самс. я к ней практически никакого отношения не имею. может вы имеете в виду httpwd?
3. какое значение имеет то, какой порт я выберу? к примеру, сейчас у меня стоит 3128, но результаты одни и те же.
Я ПИШУ ПО-РУССКИ!!!
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: Решено: squid3+sams ncsa авторизация

Сообщение skeletor »

Наверное вы не понимаете суть прокси-сервера. Объясню: все входящие соединения в интернет на 80 порт вы перенаправляете (в вашем случае с помощью iptables) на прокси сервер (очень часто что это шлюз, а порт обычно 3128). Далее в конфиге squid'a вы прописываете, что слушать нужно порт 3128. Собственно http_port 192.168.0.1:3128, что бы применять авторизацию. Это в кратце.

1) правила файервола
2) ну если база создана, почему тогда там только логины?
3) дык большое!!! попробуйте выбрать 53 порт :)
Спасибо сказали:
Rovnyi
Сообщения: 46
ОС: Debian Lenny

Re: Решено: squid3+sams ncsa авторизация

Сообщение Rovnyi »

skeletor писал(а):
21.04.2009 17:06
Наверное вы не понимаете суть прокси-сервера. Объясню: все входящие соединения в интернет на 80 порт вы перенаправляете (в вашем случае с помощью iptables) на прокси сервер (очень часто что это шлюз, а порт обычно 3128). Далее в конфиге squid'a вы прописываете, что слушать нужно порт 3128. Собственно http_port 192.168.0.1:3128, что бы применять авторизацию. Это в кратце.

1) правила файервола


вот правила файервола. думаю в таком виде хватит.

Код: Выделить всё

root@server-debian:/home/odmin# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:3128
LOG        tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,ACK/SYN LOG level debug tcp-options
REJECT     tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,ACK/SYN reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     icmp --  192.168.0.0/24       anywhere
ACCEPT     icmp --  anywhere             192.168.0.0/24
ACCEPT     udp  --  192.168.0.0/24       anywhere            udp dpt:domain
ACCEPT     udp  --  anywhere             192.168.0.0/24      udp spt:domain
ACCEPT     tcp  --  192.168.0.0/24       anywhere            multiport dports ftp-data,ftp,smtp,www,pop3,http-alt
ACCEPT     tcp  --  anywhere             192.168.0.0/24      multiport sports ftp-data,ftp,smtp,www,pop3,http-alt
DROP      !icmp --  anywhere             anywhere            state INVALID
DROP      !icmp --  anywhere             anywhere            state INVALID
DROP       all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


ну или в таком виде

Код: Выделить всё

root@server-debian:/home/odmin# iptables-save
# Generated by iptables-save v1.4.2 on Wed Apr 22 13:06:16 2009
*filter
:INPUT ACCEPT [2473:902546]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2538:926210]
-A INPUT -i eth1 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j LOG --log-level 7 --log-tcp-options
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.0.0/24 -i eth1 -p icmp -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -o eth1 -p icmp -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -i eth1 -p udp -m udp --dport 53 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -o eth1 -p udp -m udp --sport 53 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -i eth1 -p tcp -m multiport --dports 20,21,25,80,110,8080 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -o eth1 -p tcp -m multiport --sports 20,21,25,80,110,8080 -j ACCEPT
-A FORWARD -p ! icmp -m state --state INVALID -j DROP
-A FORWARD -p ! icmp -m state --state INVALID -j DROP
-A FORWARD -o eth0 -j DROP
-A FORWARD -o eth1 -j DROP
COMMIT
# Completed on Wed Apr 22 13:06:16 2009
# Generated by iptables-save v1.4.2 on Wed Apr 22 13:06:16 2009
*mangle
:PREROUTING ACCEPT [2527:906570]
:INPUT ACCEPT [2475:902626]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2539:926250]
:POSTROUTING ACCEPT [2567:930316]
:outtos - [0:0]
:pretos - [0:0]
-A PREROUTING -j pretos
-A OUTPUT -j outtos
-A outtos -p tcp -m tcp --dport 22 -j TOS --set-tos 0x10/0xff
-A outtos -p tcp -m tcp --sport 22 -j TOS --set-tos 0x10/0xff
-A outtos -p tcp -m tcp --dport 21 -j TOS --set-tos 0x10/0xff
-A outtos -p tcp -m tcp --sport 21 -j TOS --set-tos 0x10/0xff
-A outtos -p tcp -m tcp --sport 20 -j TOS --set-tos 0x08/0xff
-A outtos -p tcp -m tcp --dport 20 -j TOS --set-tos 0x08/0xff
-A pretos -p tcp -m tcp --dport 22 -j TOS --set-tos 0x10/0xff
-A pretos -p tcp -m tcp --sport 22 -j TOS --set-tos 0x10/0xff
-A pretos -p tcp -m tcp --dport 21 -j TOS --set-tos 0x10/0xff
-A pretos -p tcp -m tcp --sport 21 -j TOS --set-tos 0x10/0xff
-A pretos -p tcp -m tcp --sport 20 -j TOS --set-tos 0x08/0xff
-A pretos -p tcp -m tcp --dport 20 -j TOS --set-tos 0x08/0xff
COMMIT
# Completed on Wed Apr 22 13:06:16 2009
# Generated by iptables-save v1.4.2 on Wed Apr 22 13:06:16 2009
*nat
:PREROUTING ACCEPT [114:13329]
:POSTROUTING ACCEPT [394:24994]
:OUTPUT ACCEPT [394:24994]
COMMIT
# Completed on Wed Apr 22 13:06:16 2009


2) ну если база создана, почему тогда там только логины?

этого я сам не понимаю. как sams записал свои данные, так я оставил. может добавить пароли вручную? никто так не пробовал?
Берется стандартный файл настроек сквида, в него вносятся программа авторизации, порт, редиректор. После этого запускается sams, который сам вносит необходимые изменения

это я встретил в одной из тем на форуме. поэтому на sams и понадеялся.

3) дык большое!!! попробуйте выбрать 53 порт

прописал порт 3128. насколько я помню 53 - это DNS? так зачем его использовать?
Я ПИШУ ПО-РУССКИ!!!
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: Решено: squid3+sams ncsa авторизация

Сообщение skeletor »

1) У вас нет в iptables правила для заворота на squid.
2) Если использовать базу самс - то делайте, так, как это описано на сайте автора. Там squid выступает в роли второстепенного участника.
3) Правильно, DNS. Это вам к тому, что нельзя просто так любой порт использовать. Если не знаете какой порт использовать, то лучше брать номера после 1024, а ещё лучше - то выше 20000.
Спасибо сказали:
Rovnyi
Сообщения: 46
ОС: Debian Lenny

Re: Решено: squid3+sams ncsa авторизация

Сообщение Rovnyi »

skeletor писал(а):
22.04.2009 12:11
1) У вас нет в iptables правила для заворота на squid.
2) Если использовать базу самс - то делайте, так, как это описано на сайте автора. Там squid выступает в роли второстепенного участника.
3) Правильно, DNS. Это вам к тому, что нельзя просто так любой порт использовать. Если не знаете какой порт использовать, то лучше брать номера после 1024, а ещё лучше - то выше 20000.

хорошо, теперь я понял. как завернуть через iptables на сквид я не знаю, но думаю почитаю чуть и разберусь. насчет самс. делал все как на сайте автора, проследовал всем инструкциям до последней запятой, но в файлике на который сквид ориентируется для авторизации нет паролей, только логины. если я задействую htpasswd, т.е создам отдельный файл с логин/пароль записями и кину симлинк на него, это подействует? не было такого опыта?

P.S.: Кстати я не уточнил, заворачивать с 80-го порта локального интерфейса на 3128-мой порт этого же интерфейса?
Я ПИШУ ПО-РУССКИ!!!
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: Решено: squid3+sams ncsa авторизация

Сообщение skeletor »

Для заворота на Squid нужно такое правило

Код: Выделить всё

#iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

Насчёт файла с пасами. На сайте автора используется ещё mysql. Там и хранится база : логин%пароль. Подумайте, используете ли вы те настройки?
Спасибо сказали:
Rovnyi
Сообщения: 46
ОС: Debian Lenny

Re: Решено: squid3+sams ncsa авторизация

Сообщение Rovnyi »

skeletor писал(а):
22.04.2009 14:24
Для заворота на Squid нужно такое правило

Код: Выделить всё

#iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

Насчёт файла с пасами. На сайте автора используется ещё mysql. Там и хранится база : логин%пароль. Подумайте, используете ли вы те настройки?

спасибо за правило по iptables. теперь насчет mysql. на сайте sams.perm.ru дана подробная инструкция. сделал все по ней, создал пользователя sams@localhost, создал для него базу в мускуле, прописал юзера этого в sams.conf. все нормально, никто не жаловался, ни мускул, ни самс. веб-интерфейс тоже встал. насколько я понял из всего прочитанного по sams, если бы я использовал не те настройки, то файл 49e415f9a1459.sams просто бы не создался и не поднялся бы веб интерфейс. так что за настройки мускуля могу отвечать железно. там и настраивать то... 5 строк в командной строке))) у меня просто вопрос: как должен выглядеть файл на который ориентируется сквид для авторизации, точнее должны ли быть пароли вписаны именно в этот файл и если вписаны, то в каком формате?
Я ПИШУ ПО-РУССКИ!!!
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: Решено: squid3+sams ncsa авторизация

Сообщение skeletor »

Судя по всему он должен содержать только логины :)
Спасибо сказали:
Rovnyi
Сообщения: 46
ОС: Debian Lenny

Re: Решено: squid3+sams ncsa авторизация

Сообщение Rovnyi »

по-моиму я дурак. заработало вопщем. что я сделал:
1) открыл инструкцию по установке самца. прописал заново все. создал заново базу.
2) проверил файл ncsa.sams. ура! создались логины и пароли!
3) в конфиге сквида в acl-списках прописал путь проверки логина/пароля ориентируясь на ncsa.sams(прошу заметить, что в файле 49e415f9a1459.sams создаются только логины)
4) залез с юзерского компа, авторизация заработала
вот... но тут возникли сразу две проблемы:
1) самс не считает трафик
2) при реконфигурировании сквида через самс, путь вместо /etc/squid3/ncsa.sams возвращается к /etc/squid3/49e415f9a1459.sams, после чего добавление новых юзеров вызывает только нездоровый смех.
что такое? это баг программы? или мои /dev/hands кривые?
Я ПИШУ ПО-РУССКИ!!!
Спасибо сказали:
Rovnyi
Сообщения: 46
ОС: Debian Lenny

Re: Решено: squid3+sams ncsa авторизация

Сообщение Rovnyi »

нда, такое чувство что придется спрашивать у Павла Виноградова... иначе не поможет...
Я ПИШУ ПО-РУССКИ!!!
Спасибо сказали:
Rovnyi
Сообщения: 46
ОС: Debian Lenny

Re: Решено: squid3+sams ncsa авторизация

Сообщение Rovnyi »

проблема решена. не совсем понимаю как, но дело решил симлинком. трафик считается. все работает. обозначить тему как решеную.
Я ПИШУ ПО-РУССКИ!!!
Спасибо сказали:
Ответить