Установка SAMS 1.0.5 на Ubuntu Server 9.10

Хочу поделиться своими похождениями по граблям ))

Была поставлена задача - сделать шлюз, который будет делать НАТ + ограничивать доступ в инет по времени (с 9-00 до 13-00 и с 14-00 до 18-00 доступ в инет только для списка разрешенных сайтов)+ считать трафф. Как рабочая система, была выбрана связка iptables+SQUID+SAMS

Особо не вдаваясь в подробности установки и настройки, которые довольно полно описаны в соответствующих мануалах, опишу только те грабли, на которые я удостоился наступить.

Итак, описание системы

Домен на win2K3 R2 + пользователи с русскими именами
Ubuntu LAMP server 9.04 ядро 2.6.31
MySQL 14.14
SQUID 2.7.STABLE6
smbd 3.4.0
winbindd 3.4.0
SAMS 1.0.5 с вебмордой отсюда
авторизация ntlmssp, basic

По настройке Iptables очень сильно помогла вот эта статья (практически с нуля и довольно оперативно разобрался, как настроить Iptables)

Первые и, наверное, самые опасные грабли - некорректный ввод самбы и винбинда в домен.
Проблема была то ли в неверной трактовке мануала по настройке SAMS то ли в неправильном мануале, но! здесь в пункте

netbios name = PDC - Имя сервера (необязательно)

Возникла двусмысленность, из-за которой я собственно ПДЦ и положил, а следом за ним - и весь домен.
Здесь нужно писать нетбиос имя машины, которую мы заводим в домен!!!

После того, как домен был поднят )) наступил на следующие грабли:
после подключения к домену командой

net join -S IP_сервера -U юзернейм%пароль

и перезагрузки ради контроля повторяемости результата, соединение с доменом было потеряно, обмена секретами не было, была только нецензурная брань со стороны wbinfo
Сии грабли решились добавлением в скрипт запуска сквида маленькой строчки

net rpc info -S IP_сервера -U юзернейм%пароль

В результате - подключение к домену делается автоматически при старте сквида

Ну и последние грабли, на которые наступают почти все новички (типа меня) были в невозможности хелпера ntlm_auth прочитать пайп в /var/run/samba/winbindd_priveleged из-за того, что права на него ставятся 0750 (т.е. руту полные, группе - читать, остальным - фига с постным маслом). После н-ного количества кофе родилась мысль - добавить в группу winbindd_priv пользователя, из под которого запускается хелпер. Что и было сделано:

$ps aux |grep squid
proxy 28909 0.0 1.2 15080 12828 ? S 13:30 0:05 (squid) -D -YC
proxy 29182 0.0 0.2 8200 2152 ? Ss 14:08 0:00 (ntlm_auth) --helper-protocol=squid-2.5-ntlmssp
proxy 29184 0.0 0.1 8152 1924 ? Ss 14:08 0:00 (ntlm_auth) --helper-protocol=squid-2.5-basic
$ adduser proxy winbindd_priv

После чего пайп стал читабелен и авторизация заработала без всяких танцев с бубном.

Вот тут началось самое интересное. SAMS 1.0.5 не умеет работать с несколькими временными диапазонами, а SAMS2 был отвергнут в силу нестабильности (2создатели - как выйдет из стадии беты - поставлю на продакшн, жду с нетерпением). Но при этом - у нас есть база SQL, откуда и берутся настройки редиректора. Поэтому был создан шаблон Restricted (применяется к попавшим в немилость к начальству), ну а правка диапазонов делается на уровне sql-запроса к базе примерно вот таким скриптом:

connect squidctrl;
update shablons set shour=00 limit 1;
update shablons set ehour=08 limit 1;
update shablons set alldenied=0 limit 1;

Для запуска которого был создан еще один скрипт

mysql -u root -pПАРОЛЬ < /home/valg/diap/diap00.scr
service squid restart

Который запускается по крону в определенное время

В результате - по крону меняются диапазоны в шаблоне, редиректор редиректит, прокся проксирует и все работает.