- http://linuxwireless.org/ - информация о драйверах для вашего беспроводного сетевого адаптера.
- HOWTO: Wireless Security с ubuntuforums.org.
- Некоторое время провозился с настройкой post-up запуска wpa_supplycant, оказалось, что можно было исправить ошибку быстрее, воспользовавшись этой ссылкой.
воскресенье, 1 марта 2009 г.
Настройка wpa_supplicant на Ubuntu 8.04.2
Став недавно обладателем беспроводного роутера Asus WL-500gP v2, потребовалось настроить WPA2-Personal на Ubuntu 8.04.2 (на моем ноутбуке Dell 500). Для решения этой задачи я использовал следующие источники:
Ярлыки:
Dell 500,
HOWTO,
Linux,
Ubuntu 8.04.2,
Wi-fi,
Wireless,
WPA-PSK,
WPA2-Personal
Решение проблемы с установкой прав на закачанные анонимусом файлы в vsftpd
Столкнулся с проблемой в vsftpd-2.0.6 (Ubuntu 8.04.2): при заливке файлов в директорию uploads, им выставляются права 600 (-rw-------) и обратно их он уже не получит :-). Погуглив некоторое время, нашел ответ здесь. Оказалось, это бага и в качестве временного решения нужно закомментировать строки chown_uploads=YES и chown_username=vasya в /etc/vsftpd.conf, после чего параметр anon_umask будет работать как положено :-)
Ссылки по теме:
Ссылки по теме:
- Бага на Launchpad.net
- man vsftpd.conf (5)
Ярлыки:
права,
anon_umask,
anonymous,
chown_uploads,
chown_username,
upload,
vsftpd,
vsftpd.conf
четверг, 30 октября 2008 г.
Установка Issue-tracker на Debian Lenny
Выражаю благодарность моему коллеге Максиму Степанчуку, который познакомил меня с этим приложением. Сайт Issue-Tracker находится здесь. Архив с приложением и руководство администратора можно скачать здесь.
Как это сделать, описано например тут:
http://unixhome.org.ua/forum/index.php?showtopic=8
- Для установки приложения необходимы установленные пакеты:
- apache2 2.2.9-10 Apache HTTP Server metapackage
- mysql-server 5.0.51a-15 MySQL database server (metapackage depending on the latest version)
- mysql-client 5.0.51a-15 MySQL database client (metapackage depending on the latest version)
- php5-mysql 5.2.6-5 MySQL module for php5
- libapache2-mod-php5 5.2.6-5 server-side, HTML-embedded scripting language (Apache 2 module)
Как это сделать, описано например тут:
http://unixhome.org.ua/forum/index.php?showtopic=8
- Распаковываем архив issue-tracker-4.0.4.tar.gz в DocumentRoot http-сервера (обычно /var/www/html)
- Назначаем владельцем папки и группу владельца процесса веб-сервера:
chown -R www-data:www-data /issue-tracker-4.0.4
- Переименовываем config.php-default (находится в папке /issue-tracker-4.0.4/conf ):
mv config.php-default config.php
- Правим в файле config.php параметры подключения к базе данных:
$db = array(
"type" => "mysql",
"host" => "localhost",
"port" => "3306",
"name" => "issue-tracker",
"user" => "issue",
"pass" => "password"
);
- Создаем базу данных (описано подробно в разделе Database setup руководства администратора Issue-tracker).
- Для решения проблемы с работой приложения под PHP 5 заменяем в следующих файлах 'date_format' на 'c_date_format' (в папке /var/www/issue-tracker-4.0.4):
./includes/functions/time.func.php
./includes/functions/errors.func.php
./includes/functions/file.func.php
./includes/functions/render.func.php
./includes/functions/debug.func.php
./modules/issues/hooks/funcs.php
./modules/issues/email.issues.php
- Для решения проблемы ввода русских символов комментируем следущую строку в файле ./includes/functions/render.func.php :
Ярлыки:
установка,
HOWTO,
Issue Tracker,
PHP5,
Trouble Ticket System
пятница, 28 марта 2008 г.
Как установить SSH с аутентификацией при помощи публичного ключа в Debian Etch
Пер. с англ., источник - здесь
Подготовительные замечания.
Это мини-HOWTO объясняет, как установить SSH-сервер в Debian Etch с аутентификацией при помощи публичного ключа (и опционально с отключением входа по паролю). SSH - прекрасный инструмент для удаленного управления компьютерами на базе Linux. Он надежен и безопасен.
Нет никакой гарантии, что все будет работать в вашем конкретном случае. Все эти настройки применимы для Debian и производных от него систем! На других системах могут иметь место незначительные отличия.
Установка SSH на сервер.
Во-первых, мы установим SSH на наш сервер. Мы можем сделать это с помощью этой команды: (Заметьте, что вы должны иметь привилегии root, чтобы сделать это!)
Подготовка нашей клиентской системы.
Во-вторых, мы выполним некоторые подготовительные действия на нашей клиентской машине. Этот PC будет использоваться для подключению к серверу. Итак, SSH-сервер был уже установлен на различные машины. На вашей рабочей станции мы устанавливаем ssh-клиента (который мы используем для подключения к серверу). Заметьте, что установка программ требует привилегий root! Если вы не вошли в систему как root, пожалуйста сделайте это сейчас! (su root и затем напечатайте ваш пароль). Затем установите клиента:
Переключитесь обратно к сеансу для вашего нормального пользователя (не root, соответственно). Затем введите эти команды по порядку:
Мы сгенерируем нашу пару ключей, публичный и секретный ключи. Публичный ключ размещается на сервере, а вы входите в систему с вашим секретным ключом. Когда попросят, введите вашу парольную фразу (она будет необходима для будующего входа в систему, так что помните ее!):
Теперь мы скопируем публичный ключ (который мы уже сгенерировали только что выше) на наш (удаленный) сервер. Удаленный пользователь не должен быть root! Измените не-root пользователя по умолчанию в качестве удаленного пользователя. (Обратите внимание на двоеточие в конце строки! Это важно.)
Теперь мы зайдем в систему с помощью SSH и скопируем публичный ключ в правильное место:
Мы должны удалить публичный ключ на рабочей станции, так как иначе SSH-клиент не разрешает нам войти на сервер. Итак, введите эту команду:
И затем пробуем войти опять:
Если вы сделали все точно, как было определено выше, то у вас спросят парольную фразу. Введите ее, после чего вы войдете и получите совершенно безопасное SSH-окружение!
Выключение аутентификации по паролю.
Отключение ее - хороший способ иметь надежную установку SSH. После этого вы можете войти в систему только с помощью пары ключей, так что будьте осторожны, не потеряйте их! Это совершенно необязательно, но безопасно для активации! Но до того, как сделать это, пожалуйста убедитесь, что аутентификация на основе ключей работает "из коробки". Сядьте перед сервером (то есть не входите удаленно, так как мы должны перезапустить SSH позже...) и введите эти команды вручную как root:
У вас появится на экране текстовый редактор nano с открытым главным конфигурационным файлом OpenSSH. Измените эти строки (не беспокойтесь, если любая из этих строк имеет отметку "#" в начале строки; если отметка есть, просто удалите решетку):
На эти:
Теперь сохраните файл с помощью сочетания клавиш Ctrl + 0 и перезапустите SSH-сервер:
Будьте осторожны: если вы отключите аутентификацию по паролю, то вы не сможете зайти в систему с помощью паролей! Только аутентификация с помощью ключа будет доступна!
Подготовительные замечания.
Это мини-HOWTO объясняет, как установить SSH-сервер в Debian Etch с аутентификацией при помощи публичного ключа (и опционально с отключением входа по паролю). SSH - прекрасный инструмент для удаленного управления компьютерами на базе Linux. Он надежен и безопасен.
Нет никакой гарантии, что все будет работать в вашем конкретном случае. Все эти настройки применимы для Debian и производных от него систем! На других системах могут иметь место незначительные отличия.
Установка SSH на сервер.
Во-первых, мы установим SSH на наш сервер. Мы можем сделать это с помощью этой команды: (Заметьте, что вы должны иметь привилегии root, чтобы сделать это!)
apt-get install ssh
Подготовка нашей клиентской системы.
Во-вторых, мы выполним некоторые подготовительные действия на нашей клиентской машине. Этот PC будет использоваться для подключению к серверу. Итак, SSH-сервер был уже установлен на различные машины. На вашей рабочей станции мы устанавливаем ssh-клиента (который мы используем для подключения к серверу). Заметьте, что установка программ требует привилегий root! Если вы не вошли в систему как root, пожалуйста сделайте это сейчас! (su root и затем напечатайте ваш пароль). Затем установите клиента:
apt-get install openssh-client
Переключитесь обратно к сеансу для вашего нормального пользователя (не root, соответственно). Затем введите эти команды по порядку:
mkdir ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh
Мы сгенерируем нашу пару ключей, публичный и секретный ключи. Публичный ключ размещается на сервере, а вы входите в систему с вашим секретным ключом. Когда попросят, введите вашу парольную фразу (она будет необходима для будующего входа в систему, так что помните ее!):
ssh-keygen -t rsa -C "A comment... usually an email is enough here..."
Теперь мы скопируем публичный ключ (который мы уже сгенерировали только что выше) на наш (удаленный) сервер. Удаленный пользователь не должен быть root! Измените не-root пользователя по умолчанию в качестве удаленного пользователя. (Обратите внимание на двоеточие в конце строки! Это важно.)
scp -p id_rsa.pub remoteuser@remotehost:
Теперь мы зайдем в систему с помощью SSH и скопируем публичный ключ в правильное место:
ssh remoteuser@remotehost
mkdir ~/.ssh
chmod 700 ~/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
mv id_rsa.pub ~/.ssh
logout
Мы должны удалить публичный ключ на рабочей станции, так как иначе SSH-клиент не разрешает нам войти на сервер. Итак, введите эту команду:
rm id_rsa.pub
И затем пробуем войти опять:
ssh remoteuser@remotehost
Если вы сделали все точно, как было определено выше, то у вас спросят парольную фразу. Введите ее, после чего вы войдете и получите совершенно безопасное SSH-окружение!
Выключение аутентификации по паролю.
Отключение ее - хороший способ иметь надежную установку SSH. После этого вы можете войти в систему только с помощью пары ключей, так что будьте осторожны, не потеряйте их! Это совершенно необязательно, но безопасно для активации! Но до того, как сделать это, пожалуйста убедитесь, что аутентификация на основе ключей работает "из коробки". Сядьте перед сервером (то есть не входите удаленно, так как мы должны перезапустить SSH позже...) и введите эти команды вручную как root:
cd /etc/ssh
cp sshd_config sshd_config.orig
nano sshd_config
У вас появится на экране текстовый редактор nano с открытым главным конфигурационным файлом OpenSSH. Измените эти строки (не беспокойтесь, если любая из этих строк имеет отметку "#" в начале строки; если отметка есть, просто удалите решетку):
PermitRootLogin yes
PasswordAuthentication yes
UsePAM yes
На эти:
PermitRootLogin no
PasswordAuthentication no
UsePAM no
Теперь сохраните файл с помощью сочетания клавиш Ctrl + 0 и перезапустите SSH-сервер:
/etc/init.d/ssh restart
Будьте осторожны: если вы отключите аутентификацию по паролю, то вы не сможете зайти в систему с помощью паролей! Только аутентификация с помощью ключа будет доступна!
Ярлыки:
аутентификация,
публичный ключ,
секретный ключ,
Debian,
SSH,
sshd_config
вторник, 18 марта 2008 г.
Создание DVD-образов репозиториев Убунту
Пер. с англ., источник - http://www.howtoforge.com/dvd_images_of_ubuntu_repositories
1. Предварительные замечания
Это руководство было написано под вдохновением статей, которые я прочитал на http://cargol.net/%7Eramon/ubuntu-dvd-en. Также огромная благодарность Рамону Ацедо (Ramon Acedo) (реально первый, кто создал это HOWTO).
Статьи не доступны сейчас несколько недель. Я сохранил страницу для чтения в оффлайне. Итак...
Я нашел эту тему полезной. Я надеюсь, что она будет тоже полезна для вас.
2. Вступление
Это HOWTO предлагает простой способ создания DVD-образов http- или ftp- репозиториев Debian или Ubuntu.
Ubuntu по умолчанию не предлагает способа создания DVD, для чего нужно скачать пакеты с репозиториев main, universe, multiverse и/или restricted. С помощью содержащейся в этом HOWTO информации вы можете сделать это сами.
Наличие репозиториев Ubuntu или Debian на DVD может быть полезно тем пользователям, которые не имеют прямого доступа к Интернету, но которые, в свою очередь, могут получить доступ в некотором другом месте, чтобы скачать репозиторий и записать его на DVD.
3. Создание локального зеркала
Вы должны установить пакет debmirror:
Теперь скачаем репозитории Ubuntu в локальную директорию. В примере ниже мы получаем срезы main, universe и multiverse репозитория для архитектуры i386.
Вы можете изменить опции ниже в соответствии с вашими предпочтениями:
4. Разделение архива на каталоги размера DVD-носителя.
Репозитории, которые мы получили, слишком большие (около 30 Gb) для того, чтобы записать их на DVD, поэтому мы должны разделить их на отдельные части.
Утилита debpartial сделает это для нас.
Создаем каталог, где будут размещаться отдельные части репозиториев.
И создаем дескрипторы пакетов для каждой отдельной части.
Теперь мы должны поместить пакеты в каталоги, которые только что были созданы debpartial. Скрипт debcopy, который также поставляется с пакетом debpartial, сделает это. Этому скрипту необходим пакет ruby.
Если все ОК...
Теперь каждый каталог (ubuntu0, ubuntu1 and ubuntu2) помещается на один DVD.
5. Создание ISO-образов.
Чтобы получить каталоги ubuntu0, ubuntu1, ubuntu2 в виде ISO-образов, готовых к прожигу на DVD, мы можем использовать команду mkisofs:
Теперь вы можете прожечь ISO-образы или примонтировать их. Добавьте их в файл /etc/apt/sources.list командой:
Теперь мы можем проверить новые репозитории...
...и, если я объяснил вам все правильно, вы получите обновленную систему.
6. О скрипте 'debcopy'
Я слышал о некоторых, кто не может найти скрипт debcopy, упомянутый выше. В этом случае, создайте новый файл с именем debcopy в любом желанном месте:
и скопируйте строки ниже в этот созданный файл:
1. Предварительные замечания
Это руководство было написано под вдохновением статей, которые я прочитал на http://cargol.net/%7Eramon/ubuntu-dvd-en. Также огромная благодарность Рамону Ацедо (Ramon Acedo) (реально первый, кто создал это HOWTO).
Статьи не доступны сейчас несколько недель. Я сохранил страницу для чтения в оффлайне. Итак...
Я нашел эту тему полезной. Я надеюсь, что она будет тоже полезна для вас.
2. Вступление
Это HOWTO предлагает простой способ создания DVD-образов http- или ftp- репозиториев Debian или Ubuntu.
Ubuntu по умолчанию не предлагает способа создания DVD, для чего нужно скачать пакеты с репозиториев main, universe, multiverse и/или restricted. С помощью содержащейся в этом HOWTO информации вы можете сделать это сами.
Наличие репозиториев Ubuntu или Debian на DVD может быть полезно тем пользователям, которые не имеют прямого доступа к Интернету, но которые, в свою очередь, могут получить доступ в некотором другом месте, чтобы скачать репозиторий и записать его на DVD.
3. Создание локального зеркала
Вы должны установить пакет debmirror:
sudo apt-get install debmirror
Теперь скачаем репозитории Ubuntu в локальную директорию. В примере ниже мы получаем срезы main, universe и multiverse репозитория для архитектуры i386.
debmirror --nosource -m --passive --host=archive.ubuntulinux.org --root=ubuntu/ --method=ftp --progress --dist=dapper --section=main,multiverse,universe --arch=i386 ubuntu/ --ignore-release-gpg
Вы можете изменить опции ниже в соответствии с вашими предпочтениями:
- --host - URL репозитория.
- --dist - версия дистрибутива вашей ОС (dapper, edgy, sarge, ...).
- --section - срез, зеркало которого вы хотите создать локально.
- --arch - архитектура вашего компьютера.
4. Разделение архива на каталоги размера DVD-носителя.
Репозитории, которые мы получили, слишком большие (около 30 Gb) для того, чтобы записать их на DVD, поэтому мы должны разделить их на отдельные части.
Утилита debpartial сделает это для нас.
sudo apt-get install debpartial
Создаем каталог, где будут размещаться отдельные части репозиториев.
mkdir ubuntu-dvd
И создаем дескрипторы пакетов для каждой отдельной части.
debpartial --nosource --dirprefix=ubuntu --section=main,universe,multiverse --dist=dapper --size=DVD ubuntu/ ubuntu-dvd/
Теперь мы должны поместить пакеты в каталоги, которые только что были созданы debpartial. Скрипт debcopy, который также поставляется с пакетом debpartial, сделает это. Этому скрипту необходим пакет ruby.
sudo apt-get install ruby
Если все ОК...
ruby debcopy ubuntu/ ubuntu-dvd/ubuntu0
ruby debcopy ubuntu/ ubuntu-dvd/ubuntu1
ruby debcopy ubuntu/ ubuntu-dvd/ubuntu2
Теперь каждый каталог (ubuntu0, ubuntu1 and ubuntu2) помещается на один DVD.
5. Создание ISO-образов.
Чтобы получить каталоги ubuntu0, ubuntu1, ubuntu2 в виде ISO-образов, готовых к прожигу на DVD, мы можем использовать команду mkisofs:
mkisofs -f -J -r -o ubuntu-dvd-0.iso ubuntu-dvd/ubuntu0
mkisofs -f -J -r -o ubuntu-dvd-1.iso ubuntu-dvd/ubuntu1
mkisofs -f -J -r -o ubuntu-dvd-2.iso ubuntu-dvd/ubuntu2
Теперь вы можете прожечь ISO-образы или примонтировать их. Добавьте их в файл /etc/apt/sources.list командой:
sudo apt-cdrom add
Теперь мы можем проверить новые репозитории...
sudo apt-get update
sudo apt-get upgrade
...и, если я объяснил вам все правильно, вы получите обновленную систему.
6. О скрипте 'debcopy'
Я слышал о некоторых, кто не может найти скрипт debcopy, упомянутый выше. В этом случае, создайте новый файл с именем debcopy в любом желанном месте:
gedit /your_path_to/debcopy
и скопируйте строки ниже в этот созданный файл:
#!/usr/bin/ruby
#
# debcopy - Debian Packages/Sources partial copy tool
#
# Usage: debcopy [-l]
#
# where is a top directory of a debian archive,
# and is a top directory of a new debian partial archive.
#
# debcopy searches all Packages.gz and Sources.gz under /dists
# and copies all files listed in the Packages.gz and Sources.gz
# files into from . -l creates symbolic links
# instead of copying files.
#
# Copyright (C) 2002 Masato Taruishi
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License with
# the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
# if not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307 USA
#
require 'getoptlong'
require 'zlib'
require 'ftools'
$link = false
def usage
$stderr.puts "Usage: #{__FILE__} [-l] "
exit 1
end
def each (file, &block)
fin = Zlib::GzipReader.open(file)
fin.each do |line|
yield line
end
fin.close
end
def each_file (file, &block)
each(file) do |line|
if /Filename: (.*)/ =~ line
yield $1
end
end
end
def each_sourcefile (file, &block)
dir = nil
each(file) do |line|
case line
when /^Directory: (.*)$/
dir = $1
when /^ \S+ \d+ (\S+)$/
yield dir + "/" + $1
end
end
end
def calc_relpath (source, dest)
pwd = Dir::pwd
Dir::chdir source
source = Dir::pwd
Dir::chdir pwd
Dir::chdir dest
dest = Dir::pwd
Dir::chdir pwd
src_ary = source.split("/")
src_ary.shift
dest_ary = dest.split("/")
dest_ary.shift
return dest if src_ary[0] != dest_ary[0]
src_ary.clone.each_index do |i|
break if src_ary[0] != dest_ary[0]
src_ary.shift
dest_ary.shift
end
src_ary.size.times do |i|
dest_ary.unshift("..")
end
dest_ary.join("/")
end
def do_copy(path)
if $link
pwd=calc_relpath(File.dirname($dest_dir + "/" + path), $source_dir)
File.symlink(pwd + "/" + path, $dest_dir + "/" + path)
else
File.copy($source_dir + "/" + path, $dest_dir + "/" + path)
end
end
def copy(path)
s=$source_dir + "/" + path
d=$dest_dir + "/" + path
if FileTest.exist?(d)
$stats["ignore"] += 1
return
end
if FileTest.exist?(s)
File.mkpath(File.dirname(d))
do_copy(path)
$stats["copy"] += 1
else
$stats["notfound"] += 1
$stderr.puts s + " not found."
end
end
opts = GetoptLong.new(["--symlink", "-l", GetoptLong::NO_ARGUMENT],
["--help", "-h", GetoptLong::NO_ARGUMENT])
opts.each do |opt,arg|
case opt
when "--symlink"
$link = true
when "--help"
usage
end
end
usage if ARGV.size != 2
$source_dir = ARGV.shift
$dest_dir = ARGV.shift
if $link
$source_dir = Dir::pwd + "/" + $source_dir unless $source_dir =~ /\A\//
$dest_dir = Dir::pwd + "/" + $dest_dir unless $dest_dir =~ /\A\//
end
$stats = {}
$stats["ignore"] = 0
$stats["copy"] = 0
$stats["notfound"] = 0
open("|find #{$dest_dir}/dists -name Packages.gz") do |o|
o.each_line do |file|
file.chomp!
print "Processing #{file}... "
$stdout.flush
each_file(file) do |path|
copy(path)
end
puts "done"
end
end
open("|find #{$dest_dir}/dists -name Sources.gz") do |o|
o.each_line do |file|
file.chomp!
print "Processing #{file}... "
$stdout.flush
each_sourcefile(file.chomp) do |path|
copy(path)
end
puts "done"
end
end
puts "Number of Copied Files: " + $stats["copy"].to_s
puts "Number of Ignored Files: " + $stats["ignore"].to_s
puts "Number of Non-existence File: " + $stats["notfound"].to_s
Ярлыки:
Локальный репозиторий,
debcopy,
Debian,
debmirror,
HOWTO,
Ubuntu,
www.howtoforge.com
среда, 6 февраля 2008 г.
Использование аутентификации в squidGuard
Пер. с англ., источник - http://www.squidguard.org/Doc/authentication.html
Иногда удобно разрешить разным пользователям различный тип доступа. SquidGuard имеет возможность указать, основываясь на имени пользователя, к каким ресурсам этот пользователь может иметь доступ.
Имеется два различных способа, как установить аутентификацию пользователя: на основе имени, предоставленном прокси-сервером squid, или используя роли LDAP (это подразумевает, что либо вы используете squidGuard 1.2.1 и выше, или имеете squidGuard, пропатченный вами с помощью LDAP-патчей Криса Фрея.
1. Аутентификация с помощью имен пользователей прокси-сервера squid
Начнем по порядку: чтобы сделать это, вы должны настроить ваш squid для аутентификации ваших пользователей. Простой способ добавить пользовательскую аутентификацию - использование старой утилиты ncsa_auth. Добавляя следующие три строки в ваш squid.conf, вы можете включить аутентификацию:
Пожалуйста, обратите внимание, что путь к вашему файлу паролей squid и к nsca_auth может отличаться в вашей системе. Тем не менее, вы можете изменить путь к вашему собственному файлу паролей на ваш собственный путь; nsca_auth имеет фиксированное месторасположение (используйте find или locate, чтобы получить корректный путь).
Имеются также другие значения аутентификации в squid. Дополнительные подробности смотрите на сайте прокси-сервера squid.
Чтобы предоставить доступ на основании пользовательских имен, у вас есть два варианта: вы можете непосредственно перечислить пользователей в тэге user вашего файла squidGuard.conf, или вы можете ввести имя файла (рекомендуется, если имеем дело с множеством имен) и использовать тэг userlist. В обоих случаях вы должны включить определения пользователя внутри определенного acl. Следующие два примера показывают, как использовать тэги user и userlist:
В этом примере пять пользователей группируются в источник department1. Это источник используется, чтобы предоставить или запретить доступ определенным категориям (смотрите определение acl после следующего примера).
Вы можете использовать числа в именах пользователей. К сожалению, в текущее время есть баг squidGuard, выдающий ошибки при использовании имен пользователей, состоящих полностью из чисел. В этом случае используйте тэг userlist (см. след. пример), чтобы урегулировать пользовательский доступ:
В этом примере конфигурация squidGuard указывает на файл, называемый здесь dep1users, где могут быть найдены пользователи. Расположение файла со списком пользователей связано с путем, который вы определили для параметра dbhome.
Файл со списком пользователей - это обычный текстовый файл в следующем формате:
и т.д.
Когда вы уже определили ваших пользователей, вы должны настроить, какой(ая) пользователь (группа) имеет доступ к какому назначению (destination). Это делается в части acl вашего конфигурационного файла squidGuard.conf:
В этом примере пользователь department1 может иметь доступ ко всем веб-сайтам, кроме тех, которые перечислены в категориях porn, hacking и warez. Все остальным пользователям доступ разрешен только к тем ресурсам, которые перечислены в категории white (белый список). Конечно же, вы можете определить назначения до установки acl. :-)
2. Использование LDAP.
Точно так же, как в примерах до этого, вы должны определить окружение src, где может быть найдена пользовательская информация. Вдобавок вы должны определить некоторые специфичные тэги LDAP: вы должны назвать верхний уровень дерева каталога LDAP и пароль для доступа к пользовательской информации (если только вы не используете анонимный режим (anonymous bind), который с точки зрения безопасности всегда не рекомендуется).
Существуют следующие LDAP-специфические тэги:
Примерная конфигурация:
Когда вы используете LDAP для аутентификации, убедитесь что параметры вашей строки ldapusersearch соответствуют пользовательским настройкам на вашем сервере LDAP. Если имена ваших пользователей не сохранены в "MemberUid", то "uid" вы должны соответственно адаптировать в вашей строке ldapusersearch . То же самое справедливо для значений, которые вы вводите для "objectclass". Вы, возможно, имеете что-то наподобие "Person" или "InetOrgPerson" вместо этого.
Если значение ldapusersearch не совпадает с вашими конфигурационными настройками, поиск завершится с ошибкой.
Иногда удобно разрешить разным пользователям различный тип доступа. SquidGuard имеет возможность указать, основываясь на имени пользователя, к каким ресурсам этот пользователь может иметь доступ.
Имеется два различных способа, как установить аутентификацию пользователя: на основе имени, предоставленном прокси-сервером squid, или используя роли LDAP (это подразумевает, что либо вы используете squidGuard 1.2.1 и выше, или имеете squidGuard, пропатченный вами с помощью LDAP-патчей Криса Фрея.
1. Аутентификация с помощью имен пользователей прокси-сервера squid
Начнем по порядку: чтобы сделать это, вы должны настроить ваш squid для аутентификации ваших пользователей. Простой способ добавить пользовательскую аутентификацию - использование старой утилиты ncsa_auth. Добавляя следующие три строки в ваш squid.conf, вы можете включить аутентификацию:
auth_param basic program /usr/libexec/squid/ncsa_auth \ /etc/squid/squid.passwd
acl password proxy_auth REQUIRED
http_access allow password
Пожалуйста, обратите внимание, что путь к вашему файлу паролей squid и к nsca_auth может отличаться в вашей системе. Тем не менее, вы можете изменить путь к вашему собственному файлу паролей на ваш собственный путь; nsca_auth имеет фиксированное месторасположение (используйте find или locate, чтобы получить корректный путь).
Имеются также другие значения аутентификации в squid. Дополнительные подробности смотрите на сайте прокси-сервера squid.
Чтобы предоставить доступ на основании пользовательских имен, у вас есть два варианта: вы можете непосредственно перечислить пользователей в тэге user вашего файла squidGuard.conf, или вы можете ввести имя файла (рекомендуется, если имеем дело с множеством имен) и использовать тэг userlist. В обоих случаях вы должны включить определения пользователя внутри определенного acl. Следующие два примера показывают, как использовать тэги user и userlist:
src department1 {
user maria josef susanna micheal george1
}
В этом примере пять пользователей группируются в источник department1. Это источник используется, чтобы предоставить или запретить доступ определенным категориям (смотрите определение acl после следующего примера).
Вы можете использовать числа в именах пользователей. К сожалению, в текущее время есть баг squidGuard, выдающий ошибки при использовании имен пользователей, состоящих полностью из чисел. В этом случае используйте тэг userlist (см. след. пример), чтобы урегулировать пользовательский доступ:
src department1 {
userlist dep1users
}
В этом примере конфигурация squidGuard указывает на файл, называемый здесь dep1users, где могут быть найдены пользователи. Расположение файла со списком пользователей связано с путем, который вы определили для параметра dbhome.
Файл со списком пользователей - это обычный текстовый файл в следующем формате:
user1
user2
user3
user4
user5
и т.д.
Когда вы уже определили ваших пользователей, вы должны настроить, какой(ая) пользователь (группа) имеет доступ к какому назначению (destination). Это делается в части acl вашего конфигурационного файла squidGuard.conf:
acl {
department1 {
pass !porn !hacking !warez all
redirect http://localhost/cgi/blocked?clientaddr=%a&clientuser=%i&clientgroup=%s&url=%u
}
default {
pass white none
redirect http://localhost/cgi/blocked?clientaddr=%a&clientuser=%i&clientgroup=%s&url=%u
}
}
В этом примере пользователь department1 может иметь доступ ко всем веб-сайтам, кроме тех, которые перечислены в категориях porn, hacking и warez. Все остальным пользователям доступ разрешен только к тем ресурсам, которые перечислены в категории white (белый список). Конечно же, вы можете определить назначения до установки acl. :-)
2. Использование LDAP.
Точно так же, как в примерах до этого, вы должны определить окружение src, где может быть найдена пользовательская информация. Вдобавок вы должны определить некоторые специфичные тэги LDAP: вы должны назвать верхний уровень дерева каталога LDAP и пароль для доступа к пользовательской информации (если только вы не используете анонимный режим (anonymous bind), который с точки зрения безопасности всегда не рекомендуется).
Существуют следующие LDAP-специфические тэги:
- ldapusersearch - Это ключевое слово входит в конфигурационный блок src и определяет URL LDAP для поиска неизвестного имени пользователя. Вы можете определить множество URL для LDAP в блоке источника src. Используйте '%s', чтобы определить имя пользователя в вашем URL для LDAP. Если поиск возвратит запись, пользователь считается "найденным", иначе проверяется следующий URL в блоке src. SquidGuard кэширует состояние "найден" для каждого поиска, даже когда имя пользователя не найдено. Кэш действителен в течение времени, которое задано параметром ldapcachetime (в сек.).
- ldapcachetime - это глобальное ключевое слово определяет число секунд для кэширования результатов поиска LDAP до соединения с сервером LDAP снова. Это ключевое слово глобально и должно находиться вне любых блоков src/dest/rule. Делая это значение достаточно низким, можно смоделировать сходную с реальностью группировку в LDAP без перезапуска squidguard. Рекомендованное значение: 300
- ldapbinddn - Глобальное ключевое слово, определяющее DN (Distinguished Name, уникальное имя), для того чтобы связаться с сервером LDAP.
- ldapbindpass - Пароль для связи с LDAP-сервером. Это глобальное ключевое слово.
- ldapprotover - Описывает версию протокола LDAP. Это глобальное ключевое слово. Используйте его, чтобы заставить squidGuard соединиться с LDAP-сервером, который имеет определенную версию протокола. Если вы не можете использовать определенную версию протокола, squidGuard перейдет в аварийный режим. Допустимые параметры: 2 или 3.
Примерная конфигурация:
ldapbinddn cn=root, dc=example, dc=com
ldapbindpass myultrasecretpassword
# ldap cache time in seconds
ldapcachetime 300
src my_users {
ldapusersearch ldap://ldap.example.com/cn=squidguardusers,ou=groups,dc=example,dc=com?memberUid?sub?(&(objectclass=posixGroup)(memberUid=%s))
}
Когда вы используете LDAP для аутентификации, убедитесь что параметры вашей строки ldapusersearch соответствуют пользовательским настройкам на вашем сервере LDAP. Если имена ваших пользователей не сохранены в "MemberUid", то "uid" вы должны соответственно адаптировать в вашей строке ldapusersearch . То же самое справедливо для значений, которые вы вводите для "objectclass". Вы, возможно, имеете что-то наподобие "Person" или "InetOrgPerson" вместо этого.
Если значение ldapusersearch не совпадает с вашими конфигурационными настройками, поиск завершится с ошибкой.
Ярлыки:
аутентификация,
LDAP,
ldapusersearch,
ncsa_auth,
Squid,
squidGuard
понедельник, 4 февраля 2008 г.
SquidGuard - примеры конфигурации
Сводка недоступна.
Нажмите эту ссылку, чтобы открыть запись.
Ярлыки:
конфигурация,
примеры,
Squid,
squidGuard
Подписаться на:
Сообщения (Atom)