Оглавление Оглавление 1
Вид материала | Документы |
- Кожич Павел Павлович Минск 2010 г Оглавление Оглавление 2 Применение информационных, 302.47kb.
- Оглавление оглавление, 63.5kb.
- Оглавление Оглавление, 259.29kb.
- Ланин Борис Евсеевич Оглавление Оглавление 1 лекция, 810.53kb.
- Оглавление: Оглавление:, 350.3kb.
- Октябрьской Революции Краснознаменной академии (ввиа) имени профессора Н. Е. Жуковского, 1685.68kb.
- Караваева Елена Леонидовна г. Светлый 2008 г. Оглавление оглавление 2 пояснительная, 130.81kb.
- Винарский Владимир Афанасьевич ассистент Шешко Сергей Михайлович Минск 2008 г. Оглавление, 156.88kb.
- Коледа Виктор Антонович, ст преподаватель Пол Кожич Минск 2010 г. Оглавление Оглавление, 340.48kb.
- Обуховский Виктор Степанович, ассистент Позняков Андрей Михайлович Минск 2006 г оглавление, 266.12kb.
Упражнения
Упражнение 1 :
- Настройте в Apache виртуальные сервера, определяемые по имени
- Настройте в Apache виртуальные сервера, определяемые по IP-адресу
- Установите и настройте модуль SSL для web-сервера Apache
-
Решения
Решение 1 :
- Следуйте инструкциям из этой главы
Установка прокси-сервера
- Ключевые файлы, термины и утилиты:
- Ключевые файлы, термины и утилиты:
squid.conf
acl
http_access
-
Настройка Squid
Вступление
Squid – это кэширующий прокси-сервер для систем на базе Unix.
Он может выступать в качестве прозрачного прокси-сервера, поддерживает кэширование протоколов HTTP, FTP и других, а так же SSL и SNMP. Squid может настраиваться с помощью гибких списков контроля доступа (ACL). Он даже умеет кэшировать DNS-запросы.
Прокси-сервер Squid может существенно увеличить скорость web-серфинга, кроме того его можно использовать вместе с утилитами вроде SquidGuard для фильтрации URL.
HTTP прокси может работать двумя способами:
- нормальная работа
Адрес прокси-сервера и его порт устанавливаются в настройках web-браузера.
- прозрачный прокси-сервер
Брандмауэр или маршрутизатор перенаправляет весь HTTP-трафик (или трафик данных, передаваемых по другим протоколам) на прокси-сервер.
В случае прозрачного прокси-сервера существуют два разных случая:
- Squid на маршрутизаторе
- Squid установлен на отдельном от маршрутизатора компьютере.
Настройка
Основной файл настройки – это /etc/squid/squid.conf.
Он содержит огромнейшее число параметров, большая часть которых установлена по умолчанию. Squid прокси прекрасно работает в таком режиме.
Вам необходимо установить параметр visible_hostname, или Squid не запустится.
visible_hostname test.domain.org
Для запуска Squid выполните следующую команду:
[root@test root]# /etc/init.d/squid start
init_cache_dir /var/spool/squid... Starting squid: [ OK ]
[root@test root]#
Списки контроля доступа (Access Control Lists)
Списки контроля доступа (ACLs) позволяют вам ограничить доступ к прокси-серверу.
Общий формат ACL правила такой:
# acl название_правила тип_правила строка_1 строка_2 ...
Примеры различных типов правил ACL:
# acl aclname src ip-address/netmask ... (clients IP address)
# (IP-адрес клиента)
# acl aclname src addr1-addr2/netmask ... (range of addresses)
# (диапазон IP-адресов)
# acl aclname dst ip-address/netmask ... (URL host's IP address)
# (IP-адрес хоста, к которому обращается клиент)
# acl aclname myip ip-address/netmask ... (local socket IP address)
# (локальный IP-адрес)
#
# acl aclname srcdomain .foo.com ... # reverse lookup, client IP
# (домен, определяется по IP клиента)
# acl aclname dstdomain .foo.com ... # Destination server from URL
# (имя сервера)
# acl aclname srcdom_regex [-i] xxx ... # regex matching client name
# (регулярное выражение, применяемое к домену клиента)
# acl aclname dstdom_regex [-i] xxx ... # regex matching server
# (регулярное выражение, применяемое к имени сервера)
# # For dstdomain and dstdom_regex a reverse lookup is tried if a IP
# # based URL is used. The name "none" is used if the reverse lookup
# # fails.
# # ( Если установлены правила dstdomain и dstdom_regex, а клиент
# # запрашивает ресурс по его IP-адресу, то прокси-сервер
# # выполняет поиск DNS-имени по IP. Если поиск оказывается
# # безуспешным, то используется имя "none". )
#
# acl aclname time [day-abbrevs] [h1:m1-h2:m2]
# day-abbrevs:
# S - Sunday
# M - Monday
# T - Tuesday
# W - Wednesday
# H - Thursday
# F – Friday
etc...
Примеры ACL:
acl all src 0.0.0.0/0.0.0.0
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
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
Затем мы определяем параметр http_access, используя названия ACL:
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
Эти строки определяют, что можно и что нельзя делать в процессе использования этого сервера как прокси.
Еще один пример ограничения доступа (полезный) :
acl our_networks src 192.168.0.0/24
http_access allow our_networks
Прозрачный прокси-сервер Squid, установленный на маршрутизаторе
Нам нужно перенаправить весь web-трафик (всё, что поступает на 80 порт) на стандартный порт Squid (3128).
Это можно сделать с помощью следующих правил iptables:
[root@test root]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
[root@test root]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3128
[root@test root]#
Здесь eth0 выступает в качестве интерфейса, через который клиенты обращаются к маршрутизатору.
Прозрачный прокси-сервер Squid, установленный на отдельном компьютере
Если Squid запущен на отдельном компьютере, то мы должны указать межсетевому экрану или маршрутизатору на необходимость перенаправления обращения к сервисам на компьютер, на котором установлен Squid:
Добавьте следующие правила iptables на межсетевом экране или маршрутизаторе:
[root@test root]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.42:3128
[root@test root]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to 192.168.0.42:3128
[root@test root]#
Здесь eth0 выступает в качестве интерфейса, через который клиенты обращаются к маршрутизатору, а 192.168.0.42 - это IP-адрес прокси-сервера.