LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В
..pdfГлава 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-клиента