А Сертифицированный инженер Linux Foundationквалифицированный профессионал, который имеет опыт установки, управления и устранения неполадок сетевых служб в Linux. систем и отвечает за проектирование, внедрение и текущее обслуживание общесистемной архитектуры.
Представляем программу сертификации Linux Foundation.
В Часть 1 В этой серии мы показали, как установить squid, кэширующий прокси-сервер для веб-клиентов. Пожалуйста, прочтите этот пост (ссылка приведена ниже), прежде чем продолжить, если вы еще не установили squid в своей системе.
В этой статье мы покажем вам, как настроить прокси-сервер Squid для предоставления или ограничения доступа в Интернет, а также как настроить http-клиент или веб-браузер для использования этого прокси-сервера.
Операционная система: Debian Wheezy 7.5. IP-адрес: 192.168.0.15. Имя хоста: dev2.gabrielcanepa.com.ar.
Операционная система: Ubuntu 12.04. IP-адрес: 192.168.0.104 Имя хоста: ubuntuOS.gabrielcanepa.com.ar.
Операционная система: CentOS-7.0-1406. IP-адрес: 192.168.0.17 Имя хоста: dev1.gabrielcanepa.com.ar.
Давайте вспомним, что, говоря простым языком, веб-прокси-сервер является посредником между одним (или несколькими) клиентскими компьютерами и определенным сетевым ресурсом, наиболее распространенным из которых является доступ в Интернет. Другими словами, прокси-сервер подключен на одной стороне напрямую к Интернету (или к маршрутизатору, который подключен в Интернет), а с другой стороны - в сеть клиентских компьютеров, которые будут получать доступ к Всемирной паутине через Это.
Вы можете спросить, зачем мне добавлять еще одно программное обеспечение в свою сетевую инфраструктуру?
1. Squid хранит файлы из предыдущих запросов, чтобы ускорить будущие передачи. Например, предположим client1 загрузки CentOS-7.0-1406-x86_64-DVD.iso из Интернета. Когда client2 запрашивает доступ к тому же файлу, squid может передать файл из своего кеша вместо того, чтобы загружать его снова из Интернета. Как вы можете догадаться, вы можете использовать эту функцию для ускорения передачи данных в сети компьютеров, которым требуются частые обновления.
2. ACL (Списки контроля доступа) позволяют нам ограничивать доступ к веб-сайтам и / или контролировать доступ для каждого пользователя. Вы можете ограничить доступ, например, по дню недели, времени суток или домену.
3. Обход веб-фильтров стало возможным благодаря использованию веб-прокси, к которому выполняются запросы и который возвращает запрошенный контент клиенту, вместо того, чтобы клиент запрашивал его напрямую в Интернет.
Например, предположим, что вы вошли в систему client1 и хотите получить доступ www.facebook.com через маршрутизатор вашей компании. Поскольку сайт может быть заблокирован политиками вашей компании, вы можете вместо этого подключиться к веб-прокси-серверу и запросить доступ к www.facebook.com. Затем удаленный контент снова возвращается к вам через веб-прокси-сервер в обход политики блокировки маршрутизатора вашей компании.
Схема управления доступом веб-прокси-сервера Squid состоит из двух разных компонентов:
Основной файл конфигурации Squid: /etc/squid/squid.conf, который ~5000 строк, так как он включает в себя как директивы конфигурации, так и документацию. По этой причине мы создадим новый squid.conf файл, содержащий только те строки, которые включают директивы конфигурации для нашего удобства, без пустых или закомментированных строк. Для этого мы будем использовать следующие команды.
# mv /etc/squid/squid.conf /etc/squid/squid.conf.bkp.
А потом,
# grep -Eiv '(^ # | ^ $)' /etc/squid/squid.conf.bkp ИЛИ # grep -ve ^ # -ve ^ $ /etc/squid/squid.conf.bkp> / etc / squid / squid.conf.
Теперь откройте только что созданный squid.conf файл и найдите (или добавьте) следующие ACL элементы и списки доступа.
acl localhost src 127.0.0.1/32. acl localnet SRC 192.168.0.0/24.
Две приведенные выше строки представляют собой базовый пример использования ACL элементы.
Две строки ниже список доступа правила и представляют собой явную реализацию ACL директивы, упомянутые ранее. В двух словах они указывают, что http доступ должен быть предоставлен, если запрос исходит из локальной сети (локальная сеть) или из localhost. В частности, каковы разрешенные адреса локальной сети или локального хоста? Ответ: те, которые указаны в директивах localhost и localnet.
http_access разрешить локальную сеть. http_access разрешить localhost.
На этом этапе вы можете перезапустить Кальмар чтобы применить ожидающие изменения.
# перезапуск службы squid [дистрибутивы Upstart / sysvinit] # systemctl restart squid.service [дистрибутивы на основе systemd]
а затем настройте клиентский браузер в локальной сети (192.168.0.104 в нашем случае) для доступа в Интернет через ваш прокси следующим образом.
1. Перейти к Редактировать меню и выберите Предпочтения вариант.
2. Нажмите на Передовой, затем на Сеть вкладка, и, наконец, на Настройки…
3. Проверять Ручная настройка прокси и войдите в айпи адрес прокси-сервера и порт где он прослушивает соединения.
Примечание По умолчанию Squid прослушивает порт. 3128, но вы можете изменить это поведение, отредактировав список доступа правило, которое начинается с http_port (по умолчанию читается http_port 3128).
4. Нажмите хорошо чтобы применить изменения, и все готово.
Теперь вы можете проверить, что ваш локальный сетевой клиент получает доступ к Интернету через ваш прокси-сервер, как показано ниже.
1. В своем клиенте откройте Терминал и введите,
# IP-адрес show eth0 | grep -Ei '(inet. * eth0)'
Эта команда отобразит текущий айпи адрес вашего клиента (192.168.0.104 на следующем изображении).
2. В вашем клиенте используйте веб-браузер, чтобы открыть любой заданный веб-сайт (www.tecmint.com в таком случае).
3. На сервере запустите.
# хвост -f /var/log/squid/access.log.
и вы будете видеть в реальном времени запросы, обрабатываемые через Кальмар.
Теперь предположим, что вы хотите явно запретить доступ к этому конкретному IP-адресу клиента, сохранив при этом доступ для остальной части локальной сети.
1. Определите новый ACL директиву следующим образом (я назвал ее ubuntuOS но вы можете называть его как хотите).
acl ubuntuOS src 192.168.0.104.
2. Добавить ACL директива к доступ к локальной сети список, который уже существует, но с восклицательным знаком перед ним. Это означает, "Разрешить доступ в Интернет для клиентов, соответствующих директиве ACL локальной сети, за исключением того, который соответствует директиве ubuntuOS”.
http_access разрешить localnet! ubuntuOS.
3. Теперь нам нужно перезапустить Squid, чтобы изменения вступили в силу. Затем, если мы попытаемся перейти на какой-либо сайт, мы обнаружим, что доступ запрещен.
Чтобы ограничить доступ к Squid по домену, мы будем использовать dstdomain ключевое слово в ACL директиву, как показано ниже.
acl запрещенный dstdomain "/ etc / squid / запрещено_домены"
Где запрещенные_домены - это простой текстовый файл, содержащий домены, к которым мы хотим запретить доступ.
Наконец, мы должны предоставить доступ к Squid для запросов, не соответствующих указанной выше директиве.
http_access разрешить локальную сеть! запрещено.
Или, может быть, мы захотим разрешить доступ к этим сайтам только в определенное время дня (С 10:00 до 11:00) только на Понедельник (м), Среда (С), и Пятница (F).
acl someDays time MWF 10: 00-11: 00. http_access разрешить запретить некоторые дни. http_access deny запрещено.
В противном случае доступ к этим доменам будет заблокирован.
Squid поддерживает несколько механизмов аутентификации (Basic, NTLM, Digest, SPNEGO и Oauth) и помощников (база данных SQL, LDAP, NIS, NCSA и многие другие). В этом руководстве мы будем использовать обычную аутентификацию с NCSA.
Добавьте следующие строки в свой /etc/squid/squid.conf файл.
auth_param основная программа / usr / lib / squid / ncsa_auth / etc / squid / passwd. auth_param basic credentialsttl 30 минут. auth_param базовая чувствительность к регистру на. auth_param basic realm Squid-прокси-кэширующий веб-сервер для серии Tecmint LFCE. acl ncsa proxy_auth ТРЕБУЕТСЯ. http_access разрешить ncsa.
Примечание: В CentOS 7, плагин NCSA для squid можно найти в /usr/lib64/squid/basic_nsca_auth, поэтому измените соответственно в строке выше.
Несколько уточнений:
Выполните следующую команду, чтобы создать файл и добавить учетные данные для пользователя. гаканепа (опустить -c отметьте, если файл уже существует).
# htpasswd -c / etc / squid / passwd gacanepa.
Откройте веб-браузер на клиентском компьютере и попробуйте перейти на любой заданный сайт.
Если аутентификация прошла успешно, доступ к запрошенному ресурсу предоставляется. В противном случае в доступе будет отказано.
Одной из отличительных особенностей Squid является возможность кэширования ресурсов, запрашиваемых из Интернета, на диск, чтобы ускорить будущие запросы этих объектов тем же клиентом или другими.
Добавьте следующие директивы в свой squid.conf файл.
каталог_кеша ufs / var / cache / squid 1000 16 256. maximum_object_size 100 МБ. шаблон_обновления. * \. (mp4 | iso) 2880.
Несколько пояснений к вышеуказанным директивам.
Первый и второй 2880 - это нижний и верхний пределы, соответственно, того, как долго объекты без явного срока действия будут считаться недавними и, следовательно, будут обслуживаться кешем, тогда как 0% - это процент возраста объектов (время с момента последнего изменения), при котором каждый объект без явного срока действия будет считаться недавним.
Первый клиент (IP 192.168.0.104) загружает 71 МБ .mp4 файл за 2 минуты 52 секунды.
Второй клиент (IP 192.168.0.17) скачивает тот же файл за 1,4 секунды!
Это потому, что файл был доставлен из Кеш кальмара (указано TCP_HIT / 200) во втором случае, в отличие от первого, когда он был загружен непосредственно из Интернета (представлен TCP_MISS / 200).
В УДАРИТЬ и СКУЧАТЬ ключевые слова вместе с 200 http код ответа, указывает, что файл был успешно обслужен оба раза, но кеш был HIT и пропущен соответственно. Когда запрос не может быть обработан кешем по какой-либо причине, Squid пытается обслужить его из Интернета.
В этой статье мы обсудили, как настроить Прокси-сервер для веб-кеширования Squid. Вы можете использовать прокси-сервер для фильтрации содержимого по выбранным критериям, а также для уменьшения задержки (поскольку идентичные входящие запросы обслуживаются из кеша, который находится ближе к клиенту, чем веб-сервер, который фактически обслуживает контент, что приводит к более быстрому передача данных) и сетевой трафик (уменьшение используемой полосы пропускания, что экономит ваши деньги, если вы платите за движение).
Вы можете сослаться на Веб-сайт Squid для получения дополнительной документации (не забудьте также проверить вики), но не стесняйтесь обращаться к нам, если у вас есть какие-либо вопросы или комментарии. Мы будем более чем рады услышать от вас!