Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В

..pdf
Скачиваний:
96
Добавлен:
24.05.2014
Размер:
3.66 Mб
Скачать

Глава 25. SquidGuard – программное обеспечение для настройки Squid

341

weekly

* 00:00-09:00

# Нерабочее время после полуночи

 

weekly

* 19:15-24:00

# Нерабочее время до полуночи

 

weekly

{sa}# В

год

 

date

*.01.01 # Новый

 

date

*.02.01 # Новый

год

 

date

*.07.01

# Рождество

 

date

*.14.02

# День святого Валентина

 

date

*.23.02 # День защитника Отечества

 

...

*.31.12

# Новый

год

 

date

 

}

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

В разделе Source group declarations описываются группы источников, обращающихся к Web-ресурсам, например локальная сеть:

src|source name within|outside time_space_name { specification

specification

...

specification

} else { specification specification

...

specification

}

где:

src или source – зарезервированное слово, используемое в качестве признака начала описания группы источников, обращающихся к Web-ресурсам (используйте только одно слово – src или source – на ваше усмотрение);

name – имя описания группы источников;

within или outside – используется для задания отношения группы источников к временным интервалам, соответственно, в течение интервала, или вне его;

time_space_name – имя описания временных интервалов; speсification – описание источников.

В рассматриваемом примере конфигурационного файла /etc/squid/squidGuard.conf запись: src internal {

ip 192.168.1.1/24

определяет локальную сеть с возможным диапазоном IP-адресов 192.168.1.1- 192.168.1.254. IP-адреса группы источников могут задаваться в различных форматах:

cписок IP-адресов:

ip 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.100

сеть с указанием маски:

192.168.1.1/24

192.168.1.0/255.255.255.0

диапазон IP-адресов:

192.168.1.1-192.168.1.54

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

domain – для описания доменов или группы доменов, например: domain und

user – для описания групп пользователей, например:

user root drwalbr karlnext

Списки IP-адресов и пользователей могут размещаться в отдельных файлах, для описания этих файлов используются строки вида:

iplist filename;

userlist filename;

где:

342 Часть 6. Программное обеспечение для организации шлюза

iplist и userlist – зарезервированные слова, предназначенные для описания содержания файла список IP-адресов или пользователей соответственно;

filename – имя файла.

IP-адреса и имена пользователей должны размещаться по одному в каждой строке файла.

В разделе Destination group declarations описываются IP-дреса и имена доменов, доступ к которым должен блокироваться:

dest|destination name within|outside time_space_name { specification

specification

...

specification

} else { specification specification

...

specification

}

где:

dest или destination – зарезервированное слово, используемое в качестве признака начала описания группы ресурсов, доступ к которым должен быть запрещен (используйте только одно слово – dest или destination – на ваше усмотрение);

name – имя ресурсов, доступ к которым должен быть запрещен;

within или outside – используется для задания отношения группы ресурсов к временным интервалам, соответственно, в течение интервала, или вне его;

time_space_name – имя описания временных интервалов,

specification – описание ресурсов.

В рассматриваемом примере конфигурационного файла /etc/squid/squidGuard.conf запись:

dest ads {

 

domainlist

ads/domains

urllist

ads/urls

}

 

dest aggressive {

 

domainlist

aggressive/domains

urllist

aggressive/urls

}

 

dest audio-video {

 

domainlist

audio-video/domains

urllist

audio-video/urls

}

 

dest drugs {

 

domainlist

drugs/domains

urllist

drugs/urls

}

 

dest gambling {

 

domainlist

gambling/domains

urllist

gambling/urls

}

 

dest hacking {

 

domainlist

hacking/domains

urllist

hacking/urls

}

 

dest mail {

 

domainlist

mail/domains

}

 

dest porn {

 

domainlist

porn/domains

urllist

porn/urls

expressionlist

porn/expressions

}

 

Глава 25. SquidGuard – программное обеспечение для настройки Squid

343

dest proxy {

 

 

domainlist

proxy/domains

 

urllist

proxy/urls

 

}

 

 

dest violence {

 

 

domainlist

violence/domains

 

urllist

violence/urls

 

}

 

 

dest varez {

 

 

domainlist

warez/domains

 

urllist

warez/urls

 

}

 

 

определяет список, содержащий 11 типов ресурсов.

Так, например, тип ресурсов с именем porn, описанный c помощью: dest porn {

domainlist porn/domains urllist porn/urls expressionlist porn/expressions

}

указывает на то, что:

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

/var/spool/squid/squidGuard/porn/domains;

список блокируемых URL – в файле /var/spool/squid/squidGuard/porn/urls/;

список регулярных выражений, описывающих список блокируемых URL в файле

/var/spool/squid/squidGuard/porn/expressions.

Вы имеете возможность, редактируя файлы domains, urls и expressions, определять новые блокируемые домены и URL. Используя конструкции вида:

dest my_block_list {

domainlist my_block_list/domains urllist my_block_list/urls expressionlist my_block_list/expressions

}

и собственные файлы my_block_list/domains, my_block_list/urls и my_block_list/expressions, вы имеете возможность настройки блокировки любых нежелательных Web-ресурсов.

ЗАМЕЧАНИЕ Список регулярных выражений, описывающих блокируемые URL, содержащихся в фай-

ле /var/spool/squid/squidGuard/porn/expressions, иногда мешает просмотру совершенно легитим-

ных Web-ресурсов. Поэтому авторы рекомендуют подвергнуть этот файл детальной ревизии с учетом замечаний, поступающих от пользователей вашей сети. В крайнем случае этот файл можно удалить вместе с со-

ответствующей строкой /etc/squid/squidGuard.conf.

Если вы не желаете запрещать доступ к ресурсам из некоторых списков, например, содержащихся в каталоге warez, удалите или закомментируйте в файле /etc/squid/squidGuard.conf следующие строки:

dest warez {

domainlist warez/domains urllist warez/urls

}

Вразделе Rewrite rule group declarations описываются настройки переадресации запросов к локальным копиям часто запрашиваемых Web-ресурсов.

Авторы не рекомендуют использовать настройки этого раздела, так как это может привести к ошибкам и существенному снижению производительности шлюза.

Вразделе Access Control Lists осуществляется объединение всех сделанных ранее описаний:

acl {

sourcegroupname [within|outside timespacename] { pass [!]destgroupname [...]

[redirect [301:|302:]new_url]

344 Часть 6. Программное обеспечение для организации шлюза

}

sourcegroupname within|outside timespacename { pass [!]destgroupname [...]

[redirect [301:|302:]new_url] } else {

pass [!]destgroupname [...] [redirect [301:|302:]new_url]

}

...

default [within|outside timespacename] { pass [!]destgroupname [...]

redirect [301:|302:]new_url }[ else {

pass [!]destgroupname [...] redirect [301:|302:]new_url

]

}

где:

acl – зарезервированное слово, обозначающее начало списка контроля доступа (свода правил блокирования и переадресации запросов к Web-ресурсам);

sourcegroupname - имя группы источников запросов; timespacename – имя группы временных интервалов;

pass – подраздел, в котором определяются правила пропуска и блокировки запросов; destgroupname – имя группы блокируемых ресурсов;

redirect – подраздел, в котором определяется параметры переадресации заблокированного запро-

са;

new_url – URL, на который осуществляется переадресация;

default – подраздел, в котором определяются правила для всех запросов, не определенных в предыдущих подразделах.

В рассматриваемом примере файла /etc/squid/squidGuard.conf: acl {

internal within workhours {

pass !ads !aggressive !audio-video !drugs !gambling !hacking !mail !porn !proxy !violence !warez

all

}

#Запрет и переадресация всех остальных запросов default {

pass none

redirect redirect http://bastion.und/cgibin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup= %s&targetgroup=%t&url=%u

}

}

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

Запросы к ресурсам, определенным в файлах фильтров переадресуются на http://bastion.und/cgibin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup=%s& targetgroup=%t&url=%u.

ЗАМЕЧАНИЕ В файле нельзя определять или использовать более одного блока acl

SquidGuard.conf.

Примеры конфигурационного файла /etc/squid/squidGuard.conf для более сложных случаев рассмотрены в документации http://www.squidguard.org/config/.

Шаг 2

Глава 25. SquidGuard – программное обеспечение для настройки Squid

345

В используемый вами файл /etc/squid/squid.conf добавьте строки, выделенные жирным шрифтом:

#Установите номер порта, на котором Squid ожидает запросы HTTP-клиентов.

#Значение по умолчанию 3128

http_port 3128

#Обеспечьте корректную работу Squid c браузерами, некорректно

#поддерживающими SSL

ssl_unclean_shutdown on

#Установите номер порта, на котором Squid принимает и получает запросы

#с других прокси-серверов. Установив значение порта, равное 0, вы #повысите производительность вашей системы

icp_port 0

#Установите запрет кэширования некоторого типа объектов.

#В данном случае – файлов, находящихся в каталоге cgi-bin. acl QUERY urlpath_regex cgi-bin \?

no_cache deny QUERY

#Определите объем памяти, выделяемый под кэширование In-Transit objects, #Hot Objects,Negative-Cached objects (примерно 1/3 от общего объема #опе-

ративной памяти). Оптимальное значение для системы с памятью

#512 МБайт –170.

cache_mem 170 MB

#Определите политику очистки кэша. cache_replacement_policy heap GDSF

memory_replacement_policy heap GDSF

#Определите формат представления данных в кэше (DISKD), каталог,

#в котором он размещается (/var/spool/squid), объем дискового #пространства, #(1250 МБайт), количество подкаталогов первого и второго уровня в

#каталоге /var/spool/squid.

cache_dir diskd /var/spool/squid 1250 16 256

#Запретите создание файла, в котором регистрируется удаление и помещение

#объектов кэш. Авторам неизвестны утилиты, предназначенные для обработки

#информации, содержащейся в этих файлах.

cache_store_log none

#Разрешите запись в файлы регистрации доменных имен вместо IP-адресов.

#Использование этой возможности облегчает анализ файлов регистрации,

#но снижает производительность шлюза.

log_fqdn on

#Разрешите использование squidGuard redirect_program /usr/bin/squidGuard

redirect_children 5

#Разрешите создание файлов регистрации SQUID в формате Apache.

#Анализ этих файлов возможен с помощью стандартных утилит, #предназначенных

#для анализа файлов регистрации Apache, например Webalizer.

emulate_httpd_log on

#Определите элементы списков контроля доступа (ACL elements).

#Определите имя элемента ACL и параметры для локальной сети.

acl localnet src 192.168.1.0/255.255.255.0

#Определите имя элемента ACL и параметры локального хоста.

acl localhost src 127.0.0.1/255.255.255.255

#Определите имена элементов ACL и номера SSL и безопасных портов. acl SSL_ports port 443 563

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

#Определите имя элемента ACL для метода CONNECT.

acl CONNECT method CONNECT

#Определите имя элемента ACL для метода PURGE(очистка кэша).

acl all src 0.0.0.0/0.0.0.0

#Создайте Access List (правила доступа для всех элементов ACL).

#Squid воспринимает правила в том порядке, в котором они встречаются в

#/etc/squid/squid.conf.

#Разрешите доступ пользователей из локальной сети и с локальной системы. http_access allow localnet

http_access allow localhost

346

Часть 6. Программное обеспечение для организации шлюза

#Разрешите очистку кэша с локальной системы.

http_access allow PURGE localhost

#Запретите обращение к небезопасным портам.

http_access deny !Safe_ports

#Запретите обращение к портам, не используемым SSL, с помощью метода

#CONNECT

http_access deny CONNECT !SSL_ports

#Запретите метод CONNECT.

http_access deny CONNECT

#Запретите очистку кэша со всех систем.

http_access deny PURGE

#Запретите доступ для всех хостов.

http_access deny all

#Укажите e-mail администратора.

cache_mgr administrator@domen.ru

#Эти опции повышают безопасность системы за счет запуска #Squid от имени пользователя squid группы squid

cache_effective_user squid cache_effective_group squid

logfile_rotate 0

#Запретите обмен с другими прокси-серверами.

log_icp_queries off

#Задайте пароль, используемый утилитой администрирования прокси-сервера #cachemgr через Web-интерфейс (если вы собираетесь ее использовать).

#cachemgr_passwd $ecretnoe_Sl0vo all

#Включите поддержку ускорения записи файлов регистрации buffered_logs on

Те же строки должны быть вставлены и в случае использования конфигурационного файла /etc/squid/squid.conf с поддержкой аутентификации пользователей.

Шаг 3

В файле /var/www/cgi-bin/squidGuard.cgi укажите имя системы, на которой установлены

Squid и SquidGuard. Для этого строку:

$proxy

=

"proxy.your-domain";

замените на:

 

"bastion.und";

$proxy

=

а строку:

$proxymaster = "operator\@your-domain";

замените на:

$proxymaster = "administrator\@domain.ru";

ЗАМЕЧАНИЕ Использование скрипта squidGuard.cgi имеет смысл только на этапе отладки вновь

установленного шлюза. Выдаваемые им сообщения о причинах отказа в доступе к Webресурсам могут быть использованы для корректировки фильтров. После отладки, с целью сокращения загрузки Web-сервера, переадресацию лучше осуществлять на статическую html-страницу информационно-воспитательного содержания.

Запуск и тестирование SquidGuard

Шаг 1 Перезапустите Squid:

[root@bastion /]# /etc/init.d/squid restart

Останавливается squid:

[ОК]

Запускается squid:

[ОК]

Шаг 2

Проверьте доступность URL, на который осуществляется переадресация.

Шаг 3

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

Шаг 4

Глава 25. SquidGuard – программное обеспечение для настройки Squid

347

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

Шаг 5

Вслучае необходимости проведите соответствующую корректировку фильтров, после чего перейдите

кшагу 1.

Оптимизация SquidGuard

Каждый раз при обработке запроса к внешним Web-ресурсам из локальной сети SquidGuard должен просматривать достаточно большое количество текстовых файлов. Если процесс настройки фильтров на вашей системе завершен, то имеет смысл преобразовать текстовые файлы в файлы баз данных, что позволит повысить производительность шлюза.

Шаг 1 Преобразуйте текстовые файлы в файлы баз данных:

[root@bastion /]# cd /var/spool/squid/squidGuard [root@bastion squidGuard]# /usr/bin/squidGuard –C ads/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C ads/urls

[root@bastion squidGuard]# /usr/bin/squidGuard –C aggressive/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C aggressive/urls [root@bastion squidGuard]# /usr/bin/squidGuard –C audio-video/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C audio-video/urls [root@bastion squidGuard]# /usr/bin/squidGuard –C drugs/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C drugs/urls [root@bastion squidGuard]# /usr/bin/squidGuard –C gambling/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C gambling/urls [root@bastion squidGuard]# /usr/bin/squidGuard –C hacking/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C hacking/urls [root@bastion squidGuard]# /usr/bin/squidGuard –C mail/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C porn/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C porn/urls [root@bastion squidGuard]# /usr/bin/squidGuard –C proxy/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C proxy/urls [root@bastion squidGuard]# /usr/bin/squidGuard –C violence/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C violence/urls [root@bastion squidGuard]# /usr/bin/squidGuard –C warez/domains [root@bastion squidGuard]# /usr/bin/squidGuard –C warez/urls

ЗАМЕЧАНИЕ Файл /var/spool/squid/squidGuard/expressions не может быть преобразован в файл баз данных.

Шаг 2

Отредактируйте файл /etc/squid/squidGuard:

#Path declarations

#Укажите путь к корневому каталогу с фильтрами.

dbhome /var/spool/squid/squidGuard

#Укажите путь к корневому каталогу с файлами регистрации. logdir /var/log/squid/squidGuard

#Time space declarations

#В данном примере доступ разрешен по рабочим дням с 09:00 до 18:15 time workhours {

weekly mtwhf 09:00 - 19:15

}

#Source group declarations

# Описание локальной сети. src internal {

ip

192.168.1.1/24

}

 

 

#Destination group

declarations

#Описание ресурсов

доступ, к которым запрещен.

dest ads {

 

 

domainlist

ads/domains.db

348

Часть 6. Программное обеспечение для организации шлюза

urllist

ads/urls.db

}

 

dest aggressive {

 

domainlist

aggressive/domains.db

urllist

aggressive/urls.db

}

 

dest audio-video {

 

domainlist

audio-video/domains.db

urllist

audio-video/urls.db

}

 

dest drugs {

 

domainlist

drugs/domains.db

urllist

drugs/urls.db

}

 

dest gambling {

 

domainlist

gambling/domains.db

urllist

gambling/urls.db

}

 

dest hacking {

 

domainlist

hacking/domains.db

urllist

hacking/urls.db

}

 

dest mail {

 

domainlist

mail/domains.db

}

 

dest porn {

 

domainlist

porn/domains.db

urllist

porn/urls.db

expressionlist

porn/expressions

}

 

dest proxy {

 

domainlist

proxy/domains.db

urllist

proxy/urls.db

}

 

dest violence {

 

domainlist

violence/domains.db

urllist

violence/urls.db

}

 

dest varez {

 

domainlist

warez/domains.db

urllist

warez/urls.db

}

#Rewrite rule group declarations

#Авторы не рекомендуют использовать этот раздел.

#Access Control Lists

#Списки контроля доступа (ACCESS CONTROL LISTS)

#

#Разрешите доступ со всех машин в локальной сети

#в рабочие дни и рабочее время

#ко всем ресурсам, кроме перечисленных в фильтре. acl {

internal within workhours {

pass !ads !aggressive !audio-video !drugs !gambling !hacking !mail !porn !proxy !violence !warez

all

}

#Запрет и переадресация всех остальных запросов. default {

pass none

redirect redirect http://bastion.und/cgibin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup= %s&targetgroup=%t&url=%u

Глава 25. SquidGuard – программное обеспечение для настройки Squid

349

}

}

Шаг 3

Протестируйте работоспособность SquidGuard в соответствии с вышеприведенными рекомендациями.

350

Часть 6. Программное обеспечение для организации шлюза

Глава 26

Виртуальные частные сети, VPN

В этой главе:

1. VPN-cервер FreeS/WAN

2.Ограничения и допущения

3.Пакеты

4.Компиляция, оптимизация и инсталляция FreeS/WAN

5.Конфигурирование FreeS/WAN

6.Тестирование FreeS/WAN

7.Подключение к MS WINDOWS NT VPN-серверу c помощью PPTP-клиента

8.Ограничения и допущения

9.Пакеты

10. Инсталляция MPPE и PPTP-клиента

11. Конфигурирование PPTP-клиента

12. Тестирование подключения к MS WINDOWS NT VPN-серверу c помощью PPTP-клиента

Соседние файлы в предмете Информатика