19.8.09

Использование winetricks.

Игры для Windows в wine. Думаю что ещё недавно это было из разряда небольшого чуда. Что бы запустить игру для Windows в Linux надо было немного покрутить драйвера видеокарты, немного поддержку 3D, и очень много сам Wine, и то не всегда можно было добиться вразумительного результата. Но сообществу нет преград и на данный момент это уже по большей части рутинная задача, не требующая таких усилий как раньше. Одной из вещей серьёзно упростившими запуск нужного приложения (в том числе и игры) стала утилита winetricks. Управляет разработкой данного скрипта DanKegel и его сообщество. Опишу как пользоваться этим скриптом.

Использование скрипта winetricks для получения и установки ПО для Wine.

Сам скрипт можно взять по ссылке. Скачайте последнюю версию. После того как вы скачаете скрипт, я советую его скопировать в директорию /usr/bin сто бы запускать утилиту простым выполнением команды winetricks в консоли или в меню запуска открывающегося в среде Gnome по ALT+F2. Скопировать его можно из под учётной записи root командами:

#mv winetricks /usr/bin

и дать право на выполнение скрипта:

#chmod +x /usr/bin/winetricks

Теперь можно вызвать этот скрипт из под любой учётной записи, простым набором непосредственно команды winetricks. В результате выполнения откроется главное окно:


Непосредственно в этом окне вы можете выбрать какую утилиты вы хотите установить или каким образом сконфигурировать ваш Wine.
После подтверждения выбора автоматически будет скачана последняя версия указанного пакета, или установлена необходимая опция конфигурации. Все очень просто :)
Так же любителям консоли можно использовать вариант, когда после команды winetricks следует поочерёдно через пробел набрать названия пакетов в качестве дополнительных параметров. Например:

#winetrix divx vcrun6

В результате будут установлены пакеты divx и vcrun6.
Данная утилита очень быстро делает из Wine и Linux систему в которой прекрасно себя чувствуют почти все приложения для Windows в том числе и сложные трёхмерные игры.
Подробнее об скрипте можно узнать на вики Wine.

17.8.09

Compiz в Fedora.

Насчёт Compiz-Fusion. Меня часто спрашивают: "Есть ли какой нибудь универсальный способ запускать Compiz-Fusion и emerald без консольных команд в автозапуске" или "я видел, что у людей много разных эффектов на рабочем столе, как их активировать?". Действительно, стандартная утилита очень ограничена, предоставляет только две опции композитного менеджера. Однако помимо них у Compiz-Fusion есть очень большое количество разнообразных опций. Рассказываю, как и что нужно поставить, чтобы все это делалось просто мышкой.

Установка и настройка композитного менеджера в Fedora 11

Начнём с установки всего необходимого (следует заметить, что в данной статье не будет объяснений, как установить драйвер с поддержкой 3D), итак устанавливаем необходимые элементы (Я использую среду Gnome, поэтому использую софт для настройки эффектов в Gnome):
#yum install ccsm fusion-icon-gtk compiz-fusion-extras compiz-fusion-extras-gnome emerald-themes emerald

После установки софта и зависимостей, выбираем:
Приложения\Системные\Compiz Fusion Icon

В системном лотке образуется следующая иконка, откуда мы будем настраивать все наши эффекты и утилиты рабочего окружения:

В опциях данной утилиты можно выбрать:
  • Setting Manager - Запуск утилиты настроек компиза;
  • Emerald Theme Manager - Запуск утилиты настроек тем рамок оформления Emerald;
  • Reload Window Manager - перезагрузить Compiz и Emerald;
  • Select Window Manager - Выбрать менеджер для оформления. Здесь можно выбрать Compiz, Metacity, Kwin, или любой другой менеджер окон. Выбираем здесь Compiz, что вызовет замещение текущего менеджера на менеджер Compiz-Fusion. Если все системные параметры для запуска в норме, то вы увидите некоторые эффекты уже после этого шага;
  • Compiz Options здесь указываем опции работы Compiz;
  • Select Window Decorator здесь можно выбрать декоратор для системы, Emerald, GTK, Window decorator или KDE Window decorator и прочие. Здесь выберем Emerald, после выбора должны смениться рамки на окнах.
Теперь можно приступить к настройкам Compiz. Щёлкаем по иконке Compiz Fusion Icon в системном лотке правой кнопкой мыши, выбираем в меню Setting Manager. Откроется следующее окно:


Здесь можно выбрать разнообразные настройки для Compiz-Fusion. Вот описание некоторых из них:
  • Группа Общие раздел General Options - здесь можно настроить общие для всех эффектов параметры, типа фильтров текстур, подсветки, замедления анимации и прочее. Данный раздел можно совсем не трогать.
  • Группа Специальные возможности. Здесь несколько разделов, призванных помочь людям с ограниченными возможностями, например, фильтры цветов позволяют с помощью горячих клавиш переключать цвета, как для окна, так и для всего изображения в целом, различные типы экранных луп, негативное отображение окон или экрана, прозрачность окон в зависимости от положения курсора, подсветка и прозрачность определённых, заранее намеченных окон (причём указывать окна можно по многим различным параметрам, что позволит настроить состояние окна и наложенный на него эффект в зависимости, например, от заголовка окна. Делается это с помощью простого и понятного интерфейса), подсказка положения курсора на экране и прочее. Здесь можно настроить кроме всего прочего, например, полупрозрачность окон, а с помощью указанной мною ниже опции, можно добиться для этих окон эффекта мутного стекла.
  • Группа Рабочий стол. Здесь можно указать различные настройки отображения рабочего стола. Именно здесь можно включить режим отображения знаменитого кубика или менее знаменитый, но по-моему мнению, более, функциональный режим стены, можно включить режим клонирования вывода на два экрана, или режим отдаления рабочих столов, когда все рабочие столы предстают в виде стены по которой можно двигать окна рабочих столов. Также здесь включаются некоторые, не очень понятные мне опции типа Viewport Switcher или Widget Layer, о смысле их я догадываюсь, но никогда в принципе их не использовал. Но возможно для вас они станут незаменимыми, просто попробуйте :)
  • Группа Эффекты. Пожалуй, самая интересная для пользователя часть настроек. Здесь присутствует множество настроек красивых эффектов рабочего стола, а также можно активировать Blur Windows, что, как я описывал выше, вкупе с прозрачностью приведёт к эффекту мутного стекла, или можно настроить эффекты отображения окон при вращении куба, эффекты сворачивания окон, когда окна разлетаются на куски при закрытии или раскладываются из прилетевшего из ниоткуда самолётика, различные эффекты воды на рабочем столе и много-много всего, подберите, что вам нравится. Вообще этот раздел лучше изучить поподробнее тем, кто любит украшать свой стол не функциональными или функциональными "красивостями".
  • Группа Дополнения. Эта группа несколько дополняет предыдущую группу, но в параметрах , представленных здесь, есть некий явно прослеживающийся функционал. Например, здесь можно включить функцию миниатюры окна при наведении курсора, (что так яростно рекламируется в Win 7, давно есть в compiz), или функцию, полезной для различных презентаций, когда на изображении на экране, курсором мыши можно обводить красной (или любого другого цвета) линией объекты, для фокусирования внимания слушателей, или функцию скриншотов, немного расширяющую стандартную утилиту, картинку приветствия, на которой можно разместить какую-то корпоративную информацию.
  • Группа Загрузка изображения. В этой группе существуют опции для улучшения вывода изображений или текста через Compiz-Fusion.
  • Группа Утилиты. Здесь есть некоторые утилиты для упрощения работы пользователя с окнами рабочей среды, и направлены, некоторым образом, на разработчиков. К примеру, здесь можно включить поддержку Glib, DBus, или указание размеров окна при масштабировании и прочее.
  • Группа Управление окнами. Это группа настроек, предоставляющая наиболее функциональные опции Compiz-Fusion. Именно здесь следует искать опцию, которая позволяет разместить окна при наведении курсора в определённую область экрана, в упорядоченном положении на экране (Scale), или опция,позволяющая уменьшать окна до размера иконки (причём активное содержимое окна будет отображаться так, как, если бы окно было нормального размера), здесь же можно настроить переключение между окон различными способами, а-ля MacOS или Vista (причём выглядят данные эффекты, по-моему мнению, гораздо приятнее), так же есть очень полезная опция, когда родственные окна можно объединять в группы и переворачивать группу, как игральную карту, видя изображение того или иного окна. Расположение окна на экране с помощью горячих клавиш также можно настроить здесь. Здесь можно настроить горячие клавиши для вызова того или иного приложения. В общем, эффектов очень много, и для каждого эффекта есть еще больше настроек, которые позволят вам полностью индивидуализировать интерфейс вашего любимого компьютера.
Да, и не бойтесь что нибудь "напортачить" в настройках. В разделе Установки вы можете загрузить профиль по умолчанию, также возле каждой опции есть кнопка сброса этой опции в первоначальное состояние.
После того, как вы настроили ваш рабочий стол, вы можете сохранить его, как один из профилей, и откатиться к нему, если что-то случайно сломаете в настройках.
Закончив настройку Compiz, можно перейти к настройке декоратора ваших окон, для этого запустите Emerald Theme Manager, щёлкнув по иконке Fusion-Icon в системном лотке и выбрав соответствующий пункт в меню. Далее откроется окно настроек декоратора:

Здесь доступно некоторое количество тем для рамок окна, их можно выбрать простым щелчком , после чего они сразу же применяются для использования. Каждую тему можно индивидуально настроить, выбрать движок для отображения рамки; положения кнопок; шрифта; цвета, размера и насыщенности тени, и прочие параметры. Новые темы можно скачать, например, на сайте www.gnoome-look.org и подключить пакет темы, просто указав его местоположение.
Когда вы настроите все, что хочется вам видеть на вашем рабочем столе, вам следует поставить Compiz Fusion Icon в автозагрузку. Для этого выберите:

Система\Параметры\Запускаемые приложения

Там нажмите кнопку добавить, и в появившемся окне пропишите команды как на скриншоте ниже:

И нажать Сохранить. Вот и все. При следующем входе в систему настройки, произведённые вами, автоматически будут применяться без вашего вмешательства.

Ну вроде все. Позже добавлю видео с примерами активации различных опций.

6.8.09

Samba+OpenLDAP+Smbldap-tools

Здесь опишу как я делал систему авторизации пользователей windows в samba+ldap. Простейший сервер для сетевой авторизации, без прописывания в DNS и DHCP, без авторизации с помощью керберос, но сетевыми профилями хранящимися на сервере. Самое необходимое для небольшого офиса, что бы не покупать дорогущий сервер Windows с AD при минимальных временных затратах. Данный сервер был установлен на Fedora 10. Использовались пакеты из репозитария.Ничего не перекомпилировалось, все так сказать из коробки. Итак:

Сервер для авторизации windows клиентов с контролем доступа к ресурсам на основе Samba+OpenLDAP+Smbldap-tools

Для начала были установлены следующие пакеты:
# yum install samba openldap-servers smbldap-tools
После установки компонентов и их зависимостей, настраиваем ldap сервер. Для данной работу нужно сконфигурировать два файла. ldap.conf - конфиг клиента используемого самим сервером, и конечно же, slapd.conf - для конфигурации сервера. Оба файла находятся в /etc/openldap/ для своего сервера я использовал следующие конфигурации:
Конфиг ldap.conf

BASE dc=domain,dc=local
URI ldap://127.0.0.1/


Конфиг slapd.conf

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/samba.schema
allow bind_v2
loglevel 256
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
database bdb
suffix "dc=domain,dc=local"
rootdn "cn=root,dc=domain,dc=local"
rootpw {MD5}secret_hash

access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by self write
by anonymous auth
by * none

access to dn.base=""
by * read

access to dn.base="cn=Subschema"
by * read

access to attrs=shadowLastChange
by self write
by * read

access to *
by * read

directory /var/lib/ldap
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index objectClass,uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname eq,subinitial
database monitor


Разберём указанные директивы файла ldap.conf.

указываем базовый DN нашего домена должно указываться в отличительном формате LDAP:
BASE dc=domain,dc=local

Далее идет опция указывающая местонахождения сервера LDAP, в данном случае это 127.0.0.1:
URI ldap://127.0.0.1/

Теперь рассмотрим директивы непосредственно самого сервера OpenLDAP указаные в его основном конфиге slapd.conf:
директивами include обозначаеться местонахождение файлов схем. Схемы являються своеобразными скриптами написанными на языке который понимает OpenLDAP, они служат для более простого создания нужной информации в базе данных LDAP сервера. В нашем случае используються стандарные схемы которые идут в комплекте с пакетами samba и другими. Нам нужны только эти:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/samba.schema

Разрешаем доступ к ldap по протоколу LDAP версии 2
allow bind_v2
На время настроек устанавливаем высокий уровень логов, для выявления ошибок:
loglevel 256
Стандартная директива указывающая на пид файл демона
pidfile /var/run/openldap/slapd.pid

Директива указувающая на файл в котором прописаны аргументы запуска демона из командной строки. То есть те аргументы котрые вы бы прописали для запускаемого вручную bp rjvfylyjq cnhjrb демона LDAP:
argsfile /var/run/openldap/slapd.args

Указываем формат базы данных. В данном случае это bdb:
database bdb

Суфикс DN нашего домена:
suffix "dc=domain,dc=local"

Указываем корневого пользователя для нашего сервера:
rootdn "cn=root,dc=domain,dc=local"
Далее следует указать хеш пароля для вышеуказаного пользователя сгенерированный командой:
#slappasswd -h {MD5}

в директиве:
rootpw {MD5}secret_hash
куда вместо secret_hash следует вписать хеш сгененрированный вышеуказанной командой. Далее указываем правила доступа к данным храняшимся в LDAP:

Доступ к записям в базе LDAP где храняться пароли Samba пользователей. Разрешаем запись для авторизированных пользователей, анонимным пользователям даем право на авторизацию, остальным запрещаем доступ к парольным записям:
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by self write
by anonymous auth
by * none
Устанавливаем на данные право только для чтения всем клиентам:
access to dn.base=""
by * read

access to dn.base="cn=Subschema"
by * read

Атрибут обновления Shadow на запись только авторизированным клиентам:
access to attrs=shadowLastChange
by self write
by * read
Остальное только для чтения для всех:
access to *
by * read
Теперь настроим Samba сервер. Основной конфиг самбы находиться в /etc/samba/ называеься smb.conf. Привожу свой рабочий конфиг:
netbios name = MAIN
workgroup = DOMAIN
server string = LDAP PDC
hosts allow = 10.12.0.0/24 127.0.0.0/8
security = user
encrypt passwords = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
interfaces = lo eth0
bind interfaces only = yes
local master = yes
os level = 65
domain master = yes
preferred master = yes
null passwords = no
hide unreadable = yes
hide dot files = yes
domain logons = yes
logon path = \\%L\profiles\%U
logon drive = H:
logon home = \\%L\%U
wins support = yes
name resolve order = wins lmhosts host bcast
dns proxy = no
time server = yes
log level = 3 vfs:2
log file = /var/log/samba/log.%m
max log size = 0
add user script = /usr/sbin/smbldap-useradd -m "%u"
add machine script = /usr/sbin/smbldap-useradd -w -i "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
passdb backend = ldapsam:ldap://127.0.0.1/
ldap delete dn = Yes
ldap ssl = no
winbind nested groups = no
ldap suffix = dc=domain,dc=local
ldap admin dn = cn=root,dc=domain,dc=local
ldap group suffix = ou=Group
ldap user suffix = ou=People
ldap machine suffix = ou=People
ldap idmap suffix = ou=Idmap
dos charset = CP866
syslog = 0

[netlogon]
path = /var/lib/samba/netlogon/
guest ok = Yes
browseable = no
write list = root
writable = no
share modes = no

[profiles]
comment = Network Profiles Service
path = %H
read only = No
store dos attributes = Yes
create mask = 0660
directory mask = 0770

[homes]
path = /home/%U
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
# inherit acls = Yes
create mask = 0660
directory mask = 0770
case sensitive = no
hosts allow = 10.12.0.0/24

[IPC$]
path = /tmp
hosts allow = 10.12.0.0/24 127.0.0.1
hosts deny = 0.0.0.0/0



Разберем указаные директивы. В начале у меня идут директивы работающие с именными параметрами сервера. В первой директиве указано что NetBios имя нашего сервера MAIN
netbios name = MAIN

Рабочая группа домена WORKGROUP
workgroup = WORKGROUP

Расширенное описание сервера которое будет видно для windows клиентов
server string = LDAP PDC

Сетевые настройки. Доступ до сервера разрешаем только для указных подсетей. В данном случае это петлевой интерфейс и локалка 10.12.0.0 с маской 255.255.255.0.
hosts allow = 10.12.0.0/24 127.0.0.0/8

Для контроллера домена уровень доступа выставляем в user:
security = user

Указываем что пароли при передаче по сети следует шифровать:
encrypt passwords = yes

Опции для соединения клиентов с сервером:
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

Интерфейсы которые на которых демон будет ожидать соединения:
interfaces = lo eth0

Проверяем пакеты на соответствие широковещательному адресу для указанных интерфейсов, если пакет не соответствует этому адресу то не обрабатываем его:
bind interfaces only = yes

Ниже следуют некоторые настройки для NetBios сервера. Указываем что наш сервер должен пытаться стать мастер-браузером NetBios в сети:
local master = yes

Указываем уровень сервера в выборах мастер-браузера сети. Максимальное значение 255. Данный параметр сравнивается с параметрами остальными присутствующих в подсети клиентов NetBios и в зависимости от величин устанавливается какой сервер будет мастер-браузеров:
os level = 65

Указываем что наш сервер может составлять списки машин в сети, и передавать их, в случае более высокого уровня у какой либо из машин, для мастер-браузера сети:
domain master = yes

Если у вас один сервер в сети лучше всего выставить в принудительный захват роли мастер-браузера, если нет то следует очень осторожно обращаться с данным параметром, так как он может вызвать высокий широковещательный трафик в сети:
preferred master = yes

Некоторые параметры безопастности. Запрещаем пустые пароли:
null passwords = no

Запрещаем показывать нечитаемые для клиентов файлы:
hide unreadable = yes

Запрещаем показывать файлы которые начинаются с точки. (Для LInux являются скрытыми файлами):
hide dot files = yes

Поддержка режима работы для станций Win9x и режима работы как контроллер NT4:
domain logons = yes

Выключаем поддержку вложенных групп:
winbind nested groups = no

Парметры указывающие пути до домашних директорий на сервере для пользователей, а так же сетевой диск с данными профиля, где под %L будет пониматься наш сервер, а %U имя пользователя :
logon path = \\%L\profiles\%U
logon drive = H:
logon home = \\%L\%U

Включаем поддержку WINS:
wins support = yes

Указываем в каком порядке использовать методы резолвинга имён хостов в сети. В данном случае используются сначала wins, потом файл самбы lmhost, потом файл hosts системы, потом при помощи широковещательной рассылки:
name resolve order = wins lmhosts host bcast

Указываем что если демон wins не смог разрешить имя NetBios, то следует сделать запрос к серверу DNS:
dns proxy = no

Указываем что данный серве являеться сетевым сервером времени для Windows машин:
time server = yes

Указываем уровень вывода отладочной информации в лог. Также указываем вывод информации о чтении-записи в файловые системы.
log level = 3 vfs:2

Указываем лог-файл для сервера, в данном случае использеться разный лог для разных машин что указывает переменная %m:
log file = /var/log/samba/log.%m

Указываем, что не следует ограничивать размер файла лога:
max log size = 0

Далее следуют скрипты обработки данных для работы с LDAP и samba из пакета smbldap-tools:
Скрипт добавления пользователя в домен:
add user script = /usr/sbin/smbldap-useradd -m "%u"

Скрипт добавления машины в домен:
add machine script = /usr/sbin/smbldap-useradd -w -i "%u"

Скрипт добавления группы пользователей в домен:
add group script = /usr/sbin/smbldap-groupadd -p "%g"

Скрипт добавления пользователей в группу домена:
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"

Скрипт удаления пользователея из группы домена:
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
Скрипт установки первичной группы для пользователя домена:
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"

Указываем параметры для работы с LDAP:
Адрес сервера LDAP. В нашем случае Samba и LDAP сервера находяться на одной машине:
passdb backend = ldapsam:ldap://127.0.0.1/

Разрешаем операции удаления в данных в LDAP:
ldap delete dn = Yes

Не используем ssl соединение c LDAP:
ldap ssl = no

Указываем суффикс для сервера:
ldap suffix = dc=domain,dc=local

Указываем DN администратора для соединения с LDAP:
ldap admin dn = cn=root,dc=domain,dc=local

Суффикс группы в базе LDAP:
ldap group suffix = ou=Group

Суффикс пользователей в базе LDAP:
ldap user suffix = ou=People

Суффикс машин в базе LDAP (тут указан тот же суффикс что и для пользователей из-за некоторой ошибки при работе с LDAP при присоединении компьютера к домену) :
ldap machine suffix = ou=People

IDmap суффикс в базе LDAP:
ldap idmap suffix = ou=Idmap

Указываем кодировку для Windows клиентов (для корректной поддержки кириллицы в именах файлов):
dos charset = CP866

Указываем что демону syslog передавать только сообщения о ошибках:
syslog = 0
На этом раздел [global] закрыт. Делее следуют разделы в которых указываются общие ресурсы и доступ к ним.

Системный ресурс [profiles] это ресурс на котором записывается профиль пользователя. У меня установлены следующие директивы:
комментарий к ресурсу который увидит пользователь Windows:
comment = Network Profiles Service

Путь до ресурса. Зависит от имени пользователя и домена.
path = %H

Указываем что данные на шара могут быть перезаписаны пользователем:
read only = No

Указываем что демон должен прочитать DOS атрибуты(Скрытй, Архивный, Только для чтения) файлов, из расширенных атрибутов прежде чем преобразовать атрибуты DOS в атрибуты UNIX:
store dos attributes = Yes

Указываем маску для файлов создаваемых пользователем:
create mask = 0660

И маску для директорий создаваемых пользователем:
directory mask = 0770

Далее следует каталог для пользовательской домашней директории [homes].
Путь на сервере в зависимости от имени пользователя, в папке /home/:
path = /home/%U

Маска для пользователей которым разрешён вход на ресурс:

valid users = %S, %D%w%S

Указываем что данный ресур не будет виден из проводника windows:
browseable = No

Не чувствительность к регистру символов для этого ресурса:
case sensitive = no

До данной директории допускаем только клиентов нашей подсети:
hosts allow = 10.12.0.0/24

Указываем ресурс [IPC$] (Inter Process Communication) данный ресурс предназначен для создания именованных каналов, для обмена различной служебной информацией меж компютерами. Путь ресурса будет в папочке /tmp системы:
path = /tmp

Разрешаем доступ до ресурса только для нашей подсети и запрещаем для всех остальных:
hosts allow = 10.12.6.0/24 127.0.0.1
hosts deny = 0.0.0.0/0

С конфигом smb.conf закончили. Нужно внести пароль для DN указаного в директиве 'ldap admin dn' в конфиге smb.conf, выполнив команду:
# smbpasswd -W
И введя соответсвующий пароль.

Далее следует указать настройки для локальной аутентификации. Для этого указываем в фале nsswitch.conf что для авторизации также используем winbind, добавляя параметр winbind для директив passwd, shadow, group:
passwd: files ldap winbind
shadow: files ldap winbind
group: files ldap winbind

Так же следует изменить файл /etc/ldap.conf принадлежащей пакету nss_ldap:
host main
base dc=domain,dc=local
bind_policy soft
pam_password md5
ssl no
nss_map_attribute uniqueMember member
pam_filter objectclass=posixAccount
nss_base_passwd ou=Computers,dc=domain,dc=local
nss_base_passwd ou=People,dc=domain,dc=local
nss_base_shadow ou=Computers,dc=domain,dc=local
nss_base_shadow ou=People,dc=domain,dc=local
nss_base_group ou=Group,dc=domain,dc=local
debug 0
logdir /var/log/nss_ldap

Директивы файла означают следующее:

Имя сервера:
host main

База на сервере LDAP:
base dc=domain,dc=local

Возвращение ошибки для nss_ldap при недоступности ldap:
bind_policy soft

Шифруем пароли методом md5:
pam_password md5

Не используем ssl:
ssl no

Указываем что атрибут member будет использоваться при запросах как атрибут uniqueMember:
nss_map_attribute uniqueMember member

Фильтр поиска по базе LDAP:
pam_filter objectclass=posixAccount

Далее следуют указание где искать данные для passwd, shadow, group,
nss_base_passwd ou=Computers,dc=domain,dc=local
nss_base_passwd ou=People,dc=domain,dc=local
nss_base_shadow ou=Computers,dc=domain,dc=local
nss_base_shadow ou=People,dc=domain,dc=local
nss_base_group ou=Group,dc=domain,dc=local

Уровень отображения ошибок. Можно при настройке использовать уровень 256 что бы видеть отладочные сообщения:
debug 0

Место нахождения log-файла:
logdir /var/log/nss_ldap

Теперь настроим утилиту для взаимодействия с LDAP и самбой smbldap-tools. У утилиты есть два конфигурационых файла, находящихся в /etc/smbldap-tools/. Это smbldap_bind.conf и smbldap.conf, первый содержит параметры соединения с базой LDAP, второй содержит парметры для взаимодействия с базой LDAP. Итак smbldap_bind.conf:

masterDN="cn=root,dc=domain,dc=local"
masterPw="secret"
Параметры означают следующее:
Директива masterDN содержит DN в формате LDAP для основного доступа:
masterDN="cn=root,dc=domain,dc=local"

Параметр masterPw содержит пароль основного доступа
masterPw="secret"
Можно также настроит и вторичный доступ к серверу директивами slaveDN и slavePw. Я не стал усложнять и указал root пользователя из конфига LDAP, хотя ради безопастности можно создать отдельного пользователя в базе LDAP который бы имел права на изменение параметров других пользователей.


SID="S-1-5-21-76483924-3502640226-4065347779"
sambaDomain="DOMAIN"
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
verify="require"
cafile="/etc/pki/tls/certs/ldapserverca.pem"
clientcert="/etc/pki/tls/certs/ldapclient.pem"
clientkey="/etc/pki/tls/certs/ldapclientkey.pem"
suffix="dc=domain,dc=local"
usersdn="ou=People,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Group,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
scope="sub"
hash_encrypt="MD5"
crypt_salt_format="%s"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\\MAIN\%U"
userProfile="\\MAIN\profiles\%U"
userHomeDrive="H:"
mailDomain="domain.local"
with_smbpasswd="0"
with_slappasswd="0"


Рассмотрим директивы поподробнее. Первая это SID локальной системы. Что бы его получить следует запустить сервисы Samba:
#/etc/init.d/smb start
#/etc/init.d/nmb start


После чего выполнить команду
#net getlocalsid


которая в ответ выдаст SID локальной системы. Его следует скопировать в нижеследующую директиву:
SID="S-1-5-21-76483924-3502640226-4065347779"

Домен Samba кторый указали в конфиге smb.conf:
sambaDomain="DOMAIN"

Указываем адресс основного сервера LDAP и порт который слушает LDAP:
masterLDAP="127.0.0.1"
masterPort="389"
Не используем TLS:
ldapTLS="0"

требуем проверки сертификата сервера:
verify="require"
Пути до сертификатов сервера и клиента соотвественно:
cafile="/etc/pki/tls/certs/ldapserverca.pem"
clientcert="/etc/pki/tls/certs/ldapclient.pem"
clientkey="/etc/pki/tls/certs/ldapclientkey.pem"
Суфикс в формате LDAP:
suffix="dc=domain,dc=local"

основные DN сервера:
usersdn="ou=People,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Group,${suffix}"
idmapdn="ou=Idmap,${suffix}"

Указываем как брать свобные UNIX UID и GID для новых пользователей:
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"

Диапазон по умолчанию:
scope="sub"

Метод шифрования:
hash_encrypt="MD5"
Формат соли для шифрования:
crypt_salt_format="%s"

Параметры пользователей которые будут прописаны в LDAP.
Шелл для пользователя:
userLoginShell="/bin/bash"

Домашняя директория с точки зрения сервера:
userHome="/home/%U"

Права дуступа для домашних каталогов:
userHomeDirectoryMode="700"

Вспомогательное поле для пользовователей, содержашее дополнительную информацию:
userGecos="User"

Samba GID для пользователея по умолчанию:
defaultUserGid="513"

Samba GID для компютера по умолчанию:
defaultComputerGid="515"

Директория которая буде копироваться в профиль новых пользователей:
skeletonDir="/etc/skel"

Время жизни пароля по умолчанию в сутках:
defaultMaxPasswordAge="45"

Путь до домашней директории пользователя Samba:
userSmbHome="\\MAIN\%U"
Путь до профиля пользователя Samba:
userProfile="\\MAIN\profiles\%U"

Сетевой диск с домашней директорией подключаемы у клиента:
userHomeDrive="H:"

Почтовый домен:
mailDomain="mail.domain.local"

Позволяет не использовать smbpasswd и slappasswd предпочитая Crypt:: библиотеки:
with_smbpasswd="0"
with_smbpasswd="0"
Теперь следует запустить службу LDAP
#/etc/init.d/ldap start
Теперь с помощью скриптов из smbldap-tools заполняем базу данных:
#smbldap-populate

Будут внесены основные пользователи и группы. Остальных пользователей добавляем командой:
#smbldap-useradd -a -m -P user

После этого в можно заводить пользовательский машины в домен.

Может что то забыл. Буду дополнять и исправлять статью по мере нахождения ошибок.
Статья по настройке Very Secure FTP для анонимного и пользовательского доступа.

Настройка Vsftpd для анонимного и пользовательского входа.

Данная система настроена и работает на сервере с операционной системой CentOS release 4.7 (Final), используются пакеты из родного репозитария CentOS, без перекомпиляций. От сервера требовалось: Разрешить анонимный вход для пользователей только на чтение и только к определённому каталогу. Разрешить аутентифицированным пользователям доступ к определённым каталогам за запись. Основной конфигурационный файл находиться в каталоге /etc/vsftpd/ . я использовал следующие директивы:

ftpd_banner=Welcome to FTP server!
anonymous_enable=YES
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
user_config_dir=/etc/vsftpd_user_conf
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
chown_username=virtual
pam_service_name=ftp
listen=YES

Разберём каждую

При входе на сервер клиенту будет высвечиваться сообщение указанное в
строке этой директивы:
ftpd_banner=Welcome to FTP server!

Разрешаем подключаться анонимным пользователям
anonymous_enable=YES

Разрешаем подключаться локальным пользователям. В нашем случае это пользователи в базе данных, в более общем случае это пользователи описанные в /etc/passwd
local_enable=YES

Запрещаем запись файлов для всех (для нужных пользователей запись
откроем в их конфигах)
write_enable=NO

Запрещаем загрузку файлов на сервер анонимным пользователям.
anon_upload_enable=NO

А также запрещаем создание каталогов и вообще изменение чего-бы то ни было для анонимных пользователей:
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

Что бы управлять доступами аутентифицированных пользователей создаём каталог в котором будут храниться конфиги для них:
#mkdir /etc/vsftpd_user_conf

и прописываем данный каталог в конфиг vsftpd
user_config_dir=/etc/vsftpd_user_conf

Что бы пользователь вbдел свой каталог как корневую директорию и не мог покинуть указанную директорию, должна быть указана следующая директива:
chroot_local_user=YES

Указываем что все аутентифицированные пользователи будут иметь права гостя на сервере
guest_enable=YES

Для создания гостевой учётной записи создадим учётную запись virtual со
следующими параметрами
virtual:x:32009:32009::/home/ftp:/sbin/nologin

и группу для него
virtual:x:32009:

и укажем эту учётную запись для гостевого входа:
guest_username=virtual
chown_username=virtual

указываем серверу как использовать pam аутентификацию, для этого указываем на файл ftp который находиться в каталоге конфигурации /etc/pam.d . О содержимом этого файла будет сказано ниже:
pam_service_name=ftp


Указываем что демон vsftpd запускался в одиночном режиме:
listen=YES


Далее можно запустить демон для проверки конфига и проверки  анонимного соединения

#/etc/init.d/vsftpd start

теперь из консоли наберем
#ftp our_hostname_or_ip

В ответ на приглашение типа:
Connected to our_hostname_or_ip (10.10.10.10).
220 Welcome to FTP server!
Name (our_hostname_or_ip:username):

введём логин
#anonymous

на запрос пароля жмем энтер, должно получиться следущее:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Если все правильно то вход выполнен и на команду ls будет выведен список директорий в каталоге /var/ftp (Является домашним для автоматически создаваемого пользователя ftp)

Теперь создадим файл в котором списком будут следовать логины и пароли наших пользователей. После заполнения базы этот файл следует удалить или поставить на него права 0000.

Например файл logins.txt:

vasya
password
tanya
lond_passwod

и так далее.

Теперь сгенирируем db базу данных из нашего файла со списком, для этого выполним команду:

#db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db

в результате будет сгенерирована база с хешами из файла logins.txt.

Что бы научить pam работать с этой базой, в файле /etc/pam.d/ftp
сделаем ссылку на нашу базу:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

!Обратите внимание что файл с базой прописывается без расширения.

Теперь следует создать конфиги для наших пользователей в папке /etc/vsftpd_user_conf которая указана в директиве user_config_dir в основном конфиге.

Каждому пользователю соответствует свой файл с именем этого пользователя. Например для пользователя vasya следует создать файл vasya в котором описать настройки сервера именно для этого пользователя:

anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_root=/home/ftp/vasya
anon_other_write_enable=YES
anon_umask=0002

Что означает:
Путь до каталога пользователя. На этом каталоге должны стоять права на чтение и изминение для реального пользователя virtual которого описали выше:
local_root=/home/ftp/vasya

Разрешить пользователю удалять любые файлы в своем каталоге
anon_world_readable_only=NO

Разрешить пользователю запись и создание каталогов в своей директории
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

Обратная маска для файлов создаваемых пользователем в восмеричном
формате.

После создания всех файлов для всех пользователей следует удалить или
закрыть доступ для файла logins.txt.

Рестартуем демон
/etc/init.d/vsftpd restart
На этом все настройки закончены.

4.8.09

Сразу. Пока не забыл

Давно написал несколько статей на AspLinux.net, думаю здесь их тоже следует опубликовать, также думаю следует их немного исправить дабы вернуть им актуальность. Итак статья:

squid-авторизация в AD с контролем доступа к сайтам

Настройки описанные в данной статье не претендуют на абсолютно верные. Данные настройки созданы после прочтения кучи факов и ман. Данная настройка работает на ASPLinux 11.2. Пакеты, используемые в данной конфигурации, не пересобирались, использовались пакеты, идущие на дистрибутиве. Использована сеть с адресным полем 10.12.0.0/255.255.255.0 В данной статье подразумевается что у вас уже должным образом настроены samba и winbind В данной конфигурации заблокирована почти вся графика для экономии трафика. Если данная функция не нужна, отключите соответствующие настройки в конфиге.

Рекомендую так же удалить стандартные HTML-файлы, отображающие ошибки, и сделать свои для наилучшего понимания пользователями.
Итак,

Конфигурирование Squid c авторизацией в AD

Squid - прокси-сервер. Основная конфигурация настраивается с помощью файла squid.conf, который в данном случае находится в каталоге /etc/squid/
В принципе, может работать и при дефолтном конфиге, но лучше настроить все руками.

Конфиг, используемый мною:

cache_mgr admin@domain.ru
visible_hostname my_proxy
log_mime_hdrs on
ignore_unknown_nameservers on
connect_timeout 120 seconds
half_closed_clients on

forwarded_for off
error_directory /etc/squid/error

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY
http_port 10.12.0.10:3128

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp

acl all src 0.0.0.0/0.0.0.0
acl localnet src 10.12.0.0/255.255.255.0

acl nobanners src 0/0
acl banners url_regex "/etc/squid/conf/banners.acl"

acl My_SNMP snmp_community squidmrtg
snmp_port 3401

acl ICQ_port port 5190
acl ICQ_server dstdomain login.icq.com login.oscar.aol.com ibucp-vip-d.blue.aol.com ibucp-vip-m.blue.aol.com bucp2-vip-m.blue.aol.com bucp-m08.blue.aol.com 205.188.153.98 205.188.153.97 64.12.161.153
http_access allow ICQ_port localnet
http_access allow ICQ_server localnet

acl Jabber_port port 5222
http_access allow Jabber_port localnet

acl CONNECT method CONNECT

acl goodusers proxy_auth "/etc/squid/conf/good"
http_access deny goodusers banners
http_access allow goodusers

acl free_image proxy_auth "/etc/squid/conf/free_image"

acl aolaccess dst "/etc/squid/conf/host.acl"

acl banusers proxy_auth "/etc/squid/conf/user-deny"
acl nu proxy_auth "/etc/squid/conf/naglyi_user"

http_access allow aolaccess banusers localnet
http_access deny banusers localnet

acl squid_block_badlang url_regex -i "/etc/squid/squidblock/badlang.block.txt"
acl squid_unblock_badlang url_regex -i "/etc/squid/squidblock/badlang.unblock.txt"
acl squid_block_entertain url_regex -i "/etc/squid/squidblock/entertain.block.txt"
acl squid_unblock_entertain url_regex -i "/etc/squid/squidblock/entertain.unblock.txt"
acl squid_block_games url_regex -i "/etc/squid/squidblock/games.block.txt"
acl squid_unblock_games url_regex -i "/etc/squid/squidblock/games.unblock.txt"
acl squid_block_pirate url_regex -i "/etc/squid/squidblock/pirate.block.txt"
acl squid_block_mp3 url_regex -i "/etc/squid/squidblock/mp3.block.txt"
acl squid_unblock_pirate url_regex -i "/etc/squid/squidblock/pirate.unblock.txt"
acl squid_block_porn url_regex -i "/etc/squid/squidblock/porn.block.txt"
acl squid_unblock_porn url_regex -i "/etc/squid/squidblock/porn.unblock.txt"
acl squid_block_video url_regex -i "/etc/squid/squidblock/video.block.txt"
acl squid_block_reklama url_regex -i "/etc/squid/squidblock/reklama.block.txt"
acl squid_unblock url_regex -i "/etc/squid/squidblock/unblock.txt"
acl squid_block url_regex -i "/etc/squid/squidblock/block.txt"
acl squid_nu_block url_regex -i "/etc/squid/squidblock/nu_block"

http_access deny nu squid_nu_block all

http_access deny squid_block all
http_access allow squid_unblock localnet

http_access deny squid_block_badlang all
http_access deny squid_block_entertain all
http_access deny squid_block_games all
http_access deny squid_block_mp3 all
http_access deny squid_block_pirate all
http_access deny squid_block_porn all
http_access deny squid_block_video all
http_access deny squid_block_reklama all

http_access allow squid_unblock_badlang localnet
http_access allow squid_unblock_games localnet
http_access allow squid_unblock_pirate localnet

acl bigfiles url_regex -i "/etc/squid/conf/bigfile.txt"
acl image url_regex -i "/etc/squid/conf/image.txt"
acl free_image_site url_regex -i "/etc/squid/conf/free_image_site"

http_access allow image free_image localnet
http_access allow image free_image_site localnet
http_access deny bigfiles all

http_access deny nobanners banners


acl myusers proxy_auth REQUIRED
http_access allow myusers

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320


acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8

snmp_access allow localhost
snmp_access deny all

acl SSL_ports port 443 563

acl Safe_ports port 80
acl Safe_ports port 21 20
acl Safe_ports port 443 563
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777

http_access allow manager localhost
http_access deny manager

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost

http_access allow localnet
http_access allow localhost
http_reply_access allow all
icp_access allow all

coredump_dir /var/spool/squid
http_access deny all

maximum_object_size 10 MB
cache_mem 20 MB


Рассмотрим некоторые параметры.

Имя вашего хоста которое будет видно для скриптов удалённых сайтов:
visible_hostname my_proxy

Опция позволяющая выцепить все заголовки отправляемых пользователями, не включайте ее если эта информация вам не нужна:

log_mime_hdrs off

Данная опция позволяет предотвратить получение ответа пользователем не с того сервера на который он отправлял запрос:
ignore_unknown_nameservers off

Время ожидания ответа
от сервера, после окончания которого пользователю выведется соответствующее сообщение:
connect_timeout 120 seconds

Закрытие сокета для клиентов которые отключились раньше чем получили ответ:
half_closed_clients on

Скрыть IP внутренней локалки для внешних сайтов:

forwarded_for off

Каталог с файлами которые будет высвечиваться при ошибках. Я изменил файлы умолчательные файлы на свои и что бы они не затирались при обновлении пакета, я поместил их в не стандартный каталог:

error_directory /etc/squid/error

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

cache_mgr admin@domai.ru

Порт и адрес, на которых будет работать squid для http:

http_port 10.12.0.12:3128

Аутефикация юзеров в AD контроллера, используется утилита входящая в в пакет samba-winbind:

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp

Зададим имена используемых подсетей

Все адреса интернет я обозначил all:
acl all src 0.0.0.0/0.0.0.0

Локалка это localnet:
acl localnet src 10.12.0.0/255.255.255.0 - ваша локалка

Задается блокирование баннеров:

в файле banners.acl содержится распространённые адреса баннеров найден на www.opennet.ru.
acl nobanners src 0/0
acl banners url_regex "/etc/squid/conf/banners.acl"

Для аськи нужны следующие правила:


acl ICQ_port port 5190
http_access allow ICQ_port localnet

По аналогии можно составить правила для любого клиента:


acl Jabber_port port 5222
http_access allow Jabber_port localnet

Этот правило описывает метод соединения клиентов к серверам аськи и других клиентов быстрых сообщений:
acl CONNECT method CONNECT

Ниже идут списки доступов (acl)
.
Что бы не лазить по конфигу каждый раз когда списки изменяются решил занести их в отдельные файлы, представляют собой просто списки логинов пользователей например:

vasya
director
lawyer

Для того что бы описать alc для сайтов также созданы файлы со списком доменов или IP адресов например:

hostname
host.ru
host.domain.com
187.25.45.15

Пользователи, имеющие доступ ко всем ресурсам инета, прописал в файле good и указал соответствующую группу для них
acl goodusers proxy_auth "/etc/squid/conf/good"
http_access deny goodusers banners
http_access allow goodusers

Я использовал схему урезающую полностью всю графику из веб страниц, некоторым пользователям было сделано исключение, для этого нужно прописать их в соответственную группу в файле
free_image:

acl free_image proxy_auth "/etc/squid/conf/free_image"

Для сайтов одобренных администрацией :) был открыт доступ для всех пользователей (даже тех кто превысил свой лимит трафика). Для этого создан файл со списком логинов
host.acl:
acl aolaccess dst "/etc/squid/conf/host.acl"

Файл содержащий список пользователей которые превысили месячный трафик. Я использовал одну из систем которая обрабатывает логи squid для подсчёта трафика и занесения списка пользователей в этот файл.

acl banusers proxy_auth "/etc/squid/conf/user-deny"

Здесь пользователи, которые окончательно потеряли совесть, им открыт доступ только к сайтам, описаным в host.acl

acl nu proxy_auth "/etc/squid/conf/naglyi_user"

Правила разрешающие доступ к одобренным сайтам всем пользователям:

http_access allow aolaccess banusers localnet

Правила запрещающие доступ
забаненых пользователей:
http_access deny banusers localnet

Списки сайтов, которые юзеры будут смотреть только дома, входили в комплект пакета:

acl squid_block_badlang url_regex -i "/etc/squid/squidblock/badlang.block.txt"
acl squid_unblock_badlang url_regex -i "/etc/squid/squidblock/badlang.unblock.txt"
acl squid_block_entertain url_regex -i "/etc/squid/squidblock/entertain.block.txt"
acl squid_unblock_entertain url_regex -i "/etc/squid/squidblock/entertain.unblock.txt"
acl squid_block_games url_regex -i "/etc/squid/squidblock/games.block.txt"
acl squid_unblock_games url_regex -i "/etc/squid/squidblock/games.unblock.txt"
acl squid_block_pirate url_regex -i "/etc/squid/squidblock/pirate.block.txt"
acl squid_block_mp3 url_regex -i "/etc/squid/squidblock/mp3.block.txt"
acl squid_unblock_pirate url_regex -i "/etc/squid/squidblock/pirate.unblock.txt"
acl squid_block_porn url_regex -i "/etc/squid/squidblock/porn.block.txt"
acl squid_unblock_porn url_regex -i "/etc/squid/squidblock/porn.unblock.txt"
acl squid_block_video url_regex -i "/etc/squid/squidblock/video.block.txt"
acl squid_block_reklama url_regex -i "/etc/squid/squidblock/reklama.block.txt"

Файлы со списакими того что прошло фильтр но не должно было пройти. Для ручного добавления создал эти правила:
acl squid_unblock url_regex -i "/etc/squid/squidblock/unblock.txt" - для разблокирования
acl squid_block url_regex -i "/etc/squid/squidblock/block.txt" - и для заблокирования


Ну и сами правила блокирующие доступы к спискам в файлах выше (помните что очередность правил играет роль):
http_access deny squid_block all
http_access allow squid_unblock

http_access deny squid_block_badlang all
http_access deny squid_block_entertain all
http_access deny squid_block_games all
http_access deny squid_block_mp3 all
http_access deny squid_block_pirate all
http_access deny squid_block_porn all
http_access deny squid_block_video all
http_access deny squid_block_reklama all

http_access allow squid_unblock_badlang localnet
http_access allow squid_unblock_games localnet
http_access allow squid_unblock_pirate localnet


Здесь описывается, какие файлы нужно блокировать по расширениям.

acl bigfiles url_regex -i "/etc/squid/conf/bigfile.txt"

Отдельно заводим список расширений для картинок, что бы иметь возможность разрешать к ним доступ и в то же время запрещать доступ к другим заблокированным расширениям:

acl image url_regex -i "/etc/squid/conf/image.txt"

Список сайтов с не заблокированным содержимым но при этом эти сайты недоступны после отключения за превышение трафика.
acl free_image_site url_regex -i "/etc/squid/conf/free_image_site"

Правило разрешающее указанным
пользователям графику:
http_access allow image free_image localnet

И правило разрешающее графику на указын сайтах:

http_access allow image free_image_site localnet

Правило блокирующее баннеры на сайтах

http_access deny nobanners banners

Заключающие правила, разрешающие всему оставшемуся пройти к пользователю:

acl myusers proxy_auth REQUIRED


Списки портов, взяты из дефолта:

acl SSL_ports port 443 563

acl Safe_ports port 80
acl Safe_ports port 21 20
acl Safe_ports port 443 563
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777

И правила для разрешения соединений на них:
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost

http_access allow localnet
http_access allow localhost
http_reply_access allow all

Директория, где находиться ядро squid:

coredump_dir /var/spool/squid

Блокирование всего, что не подошло ни под одно из правил:
http_access deny all

Задание максимального объема обектов в кеше:

maximum_object_size 10 MB

Общий обем кеша:

cache_mem 45 MB

На этом кофигурация squid закончена, можно стартовать службу squid командой:


/etc/rc.d/init.d/squid start

Если осуществляется какое-либо изменение в файлах конфигурации или правил, то чтобы не перезагружать squid, используйте команду:

squid -k reconfigure

На этом статью заканчиваю, всем спасибо за внимание


Моя статья на Asplinux.net

Первое

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

Популярные сообщения