Настройка Squid (возможности) для начинающих!

Добрый день! Сегодня я Вам расскажу о прокси-сервере под Linux. На сегодняшний день наиболее популярным прокси-сервером в ОС (Операционной Системе) Linux, является Squid, именно поэтому хочу рассказать о настройке данного опенсорсного программного продукта для Linux.

Squid (он же «кальмар» с англ. языка) — программный продукт, являющийся кеширующим прокси-сервером для таких протоколов, как HTTP, FTP, Gopher и HTTPS (если настроите). Данный продукт является опенсорсным, а значит программа с открытым исходным кодом (распространяется по лицензии GNU GPL).

Настройка прокси сервера Squid в Linux

Открываем и редактируем файл: /etc/squid/squid.conf. Довольно часто бывают случаю, когда неопытные пользователи могут не правильно его отредактировать, в этом случае посмотреть файл можно здесь: /usr/share/doc/squid/examples/squid.conf

После внесения изменений перезапускаем сервис: #sudo service squid restart

Ну и собственно говоря привожу некоторые возможности SQUID (с детальным описанием). Про другие возможности можно почитать выполнив команду man squid или sudo less /etc/squid/squid.conf после установки самой программы squid.

# Указываем порт работы SQUID. Этот же порт необходимо использовать для настройки
# доступа клиентов, для которых собственно мы и настраиваем наш прокси-сервер.
http_port 3128

# Порт ICP для использования Вашего SQUID как родительский прокси.
# "1" - включить, "0" - #отключить.
icp_port 0

#Не кешировать скрипты.
#Если у вас появиться желание кешировать, меняете, deny на allow.
acl QUERY urlpath_regex cgi-bin
no_cache deny QUERY

# Объем "быстрого" кеширования в ОЗУ сервера, для веб-страниц и других действий
# веб-клиентов, которые в данный момент пользуются  прокси.
cache_mem 54 MB

# Формат хранения кеша SQUID - ufs. Размер кеша: 100мб.
# Остальные две цифры - количество каталогов и подкаталогов, которые будут
# использоватся для хранения данных.
cache_dir ufs /var/spool/squid 100 16 256

# Путь к log-файлу доступа SQUID.
# В нем хранится статистика использования SUID, по ip-адрессам.
cache_access_log /var/log/squid/access.log

#Путь к log-файлу запуска и действий программы SQUID и процессов.
cache_log /var/log/squid/cache.log

# Путь к log-файлу store.
cache_store_log /var/log/squid/store.log

# Параметр, который определяет тип rotate лгово, которые выполняются командой
# "squid -k rotate". Команду желательно использовать для формирования отчетов.
logfile_rotate 10

# Email Администратора сервера для оповещения серьезных ошибок:
cache_mgr admin@mail.ua

# Параметры для работы з FTP-серверами.
# Анонимный пользователь к FTP
ftp_user anonymous@

# SQUID формирует страницу с папками на ftp.
# Этот параметр - максимальное количество символов в названиях,
# которые покажет прокси-сервер, длинее названия он просто обрежет.
ftp_list_width 32

# Пасивнsй режим FTP.
# Если Ваш фаервол не разрешает использовать сквиду пасивный конект,
# необходимо установить значение off.
ftp_passive on

# Проверка FTP
ftp_sanitycheck on
# Адреса DNS-серверов, которые будет использовать SQUID
#(к примеру у меня первичный и вторичный 10.7.1.23 10.7.1.24).
dns_nameservers

Доступ к сквиду с использованием логина/пароля.(*)

# Чтобы пользоваться  такой аутентификацией для начала необходимо выполнить команду в
# терминале: htpasswd -c /etc/squid/passwd username , ключ -с необходимо использовать
# только при первом запуске, для создания файла, иначе затрете файл. Далее дописываем строки:

#auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd

# адрес /usr/lib/squid/ncsa_auth может быть другим, в зависимости от вашего дистрибутива.
# Это для Ubuntu 9.10.

#auth_param basic realm Office proxy-caching web server
# Squid proxy-caching web server - слова при авторизации, можете сменить на что захотите.
# Описываем группу логинов, которым будет доступный коннект к сквиду.
# Для работы необходимо обязательно выполнить указания (*).
#acl users proxy_auth user1 user2
#acl allusers proxy_auth REQUIRED

Списки контроля доступа ACL — Access List

# Тип записи такой:
# acl название_группы src ip-адреса_или_диапазон_адрес/маска_подсети. Далее доступ этим группам
# мы будем либо разрешать, либо запрещать с помощью http_access.
# Например доступ группе office, ip которого к примеру 10.120.4.162,
# маска подсети можно не задовать, так как задается группа с одного ip-адреса.
# acl office src 10.120.4.162/255.255.255.255

# А для группы ip-адресов (10.120.4.160-10.120.4.168) той же сети, также маску подсети,
# можно не задавать. Указывать маску полной формой или короткой - эт уже как Вам угодно. :)

# acl office src 10.120.4.160-10.120.4.168/255.255.255.255

# Для некоторых подсетей:
#     Диапозон адресов                 Полный                     Короткий
#10.0.0.1-10.254.254.254         10.0.0.0/255.0.0.0               10.0.0.0/8
#192.168.0.1-192.168.0.254    192.168.0.0/255.255.255.0        192.168.0.0/24
#192.168.20.1-192.168.20.254 192.168.20.0/255.255.255.0       192.168.20.0/24
#192.168.0.1-192.168.254.254 192.168.20.0/255.255.0.0         192.168.20.0/16

# acl podsetb src 10.0.0.0/8
# описали в правилах всю подсеть, диапазон которой 10.0.0.1-10.254.254.254

# Наш сервер - ему также необходим доступ.
acl server src xxx.xxx.xxx.xxx

# Группа office2 - компьютеры, которые будут иметь право коннектится к серверу.
acl office2 src 10.120.4.162/8 10.120.4.160-10.120.4.168/8

#Описываем, когда это необходимо, лист доступа с мак-адресами,
# где xx:xx:xx:xx:xx:xx - необходимый мак-адрес.(**)
#acl mac_adress arp xx:xx:xx:xx:xx:xx

# Описываем ACL-правила для доменных имен. Например, у Вас появилось желание
# забанить кому-то доступ к социальным сетям или каким-то онлайн играм.(***)
acl social_networks dstdomain .vkontakte.ru .odnoklassniki.ru .facebook.com .twitter.com .myspace.com

# Установка ACL для группы all (тоесть для любой существующей сети). Оставляем без изменений.
acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

# Адреса localhost, у всех одинаковые.
acl localhost src 127.0.0.1/255.255.255.255

# Списки доступа ACL для портов.

# Почтовый SMTP порт
acl Safe_ports port 25

# http
acl Safe_ports port 80

# ftp
acl Safe_ports port 21

# https, snews (они же SSL-порты)
acl Safe_ports port 443 563

# multiling http
acl Safe_ports port 777
acl Safe_ports port 5222

# bittorent_port
acl Safe_ports port 6881
acl CONNECT method CONNECT

Разрешаем/запрещаем доступ тому, кого мы описали выше в ACL-групах

# Когда кто-то будет соединятся, сразу будет запрашивать логин и пароль,
# не обращая внимание на другие правила группы office2 и другие
# то есть разрешение читаются последовательно и при необходимом программа завершает чтение разрешений.
# Если Вы хотите, чтобы разрешение было в нескольким группах, то записываем следующим образом
# так: http_access allow users office2 (будет коннектить все из группы с логином и паролем)
http_access allow server
http_access deny !Safe_ports
#http_access deny social_networks #закрыли доступ к социальным сетям. Если необходимо раскомментируйте (***).
#http_access allow users #раскомментируйте, если необходимо (*)
#http_access allow mac_adress #раскомментируйте (**)
#http_access allow podsetb #когда описывали подсеть.
http_access allow zal
http_access deny all
# Разрешаем/запрещаем ICP-доступ всем пользователям. В конкретном случае, запрещено.
icp_access deny all
Похожие заметки
    Последние заметки
    Если вам понравилась статья, вы можете подписаться на RSS или e-mail рассылку. Для получения обновлений по электронной почте, введите ваш e-mail адрес в эту форму (доставка от SmartResponder):

    6 комментариев

    1. Евгений Москаленко,
      1

      Ну если Вы живете в общаге, или дома стоит свитч. От него тянется utp кабель в разные сетевые карты, тогда и появляется необходимость раздавать одну сеть и интернет на все компьютеры. Я частенько пользуюсь данным прокси-сервером!

    2. Бабай,
      2

      А зачем он нужен, два года на линукс и не видел необходимости/пока/

    3. Бабай,
      3

      А ведь верно, была у нас такая вещь, когда инет был еще дорогим, локалка по моему называется. И кстати у него стояла Федора. Один комп и штук 15 по моему было присосок.

    4. Евгений Москаленко,
      4

      Ну я им раздаю интернет друзьям, семье. Но на сколько мне известно им пользуются и в более масштабных целях, так как под него можно поднять и LAMP и он кеширует и делает много чего интересного! :)

    5. Master-It,
      5

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

    6. Евгений Москаленко,
      6

      Да штука кульная Squid, вот только настройка Линукса, задача не из легких. :)

    Оставить комментарий