25 фев 2011
Squid 5в1 Или как запустить десяток разных конфигов Squid.
Dmitrius Категория: Web-Мастеру » Уроки
У нас вы можете скачать бесплатно Squid 5в1 Или как запустить десяток разных конфигов Squid.

Данный материал предоставлен сайтом Skripter.info исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Squid 5в1 Или как запустить десяток разных конфигов Squid.


Не так давно передо мной встала задача установить 5 squid -ов на сервер при том что у каждого squida должен быть свой независиммый список разрешенных ip адресов.
Например: Squid1 пиринг + доступ на сайт однокласников
Squid2 пиринг + доступ на сайт в контакте
Squid3 пиринг + возможность качать с rutracker.org и.т.д.
Зная что в squid можно создать список ip адресов и прописать путь до файла в конфиге что б пользватели прокси ходили только по разрешенным ип адресам (даже если внешка на сервере открыта). Я не долго думая создал список ip и в конфиге прописал путь..... но увы облом squid напрочь отказывался так работать он прост напросто игнорировал этот список.

Привожу его пример для наглядности но он у меня не заработал:

visible_hostname proxy-server
https_port 3128
tcp_outgoing_address 178.124.129.1
cache_mem 4 MB
maximum_object_size 0 KB
maximum_object_size_in_memory 0 KB
high_memory_warning 70 MB
ipcache_size 24096

ftp_passive on
ftp_sanitycheck on

quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100%

logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
access_log /dev/null
cache_log /dev/null
cache_store_log /dev/null

dns_nameservers 82.209.240.241 82.209.243.241
hosts_file /etc/hosts

auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd
auth_param basic children 5
auth_param basic realm proxy-server cache
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl maxuser max_user_ip -s 2
acl all src 0.0.0.0/0.0.0.0
acl gst src 1.0.0.0/255.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl _iplist src "/etc/squid/ip.txt"
https_access allow _iplist

acl ncsa_users proxy_auth REQUIRED
acl Safe_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl Safe_ports port 280 # https-mgmt
acl Safe_ports port 488 # gss-https
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling https
acl CONNECT method CONNECT



https_access deny maxuser
https_access allow localhost
https_access allow ncsa_users
https_access deny CONNECT !Safe_ports
https_access allow ncsa_users
https_access allow allowed_iplist
https_access deny all



cache_effective_group proxy
coredump_dir /var/spool/squid
cache_effective_user proxy

client_persistent_connections off
server_persistent_connections off

cache_dir null /tmp


где acl _iplist src "/etc/squid/ip.txt" файл со списком Ip адресов.

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

И так как запусить десяток разных конфигов из одного squida!!!???....

Выполняем стандартную установку:

apt-get install squid  


по у молчанию наш squid установился в папку /etc/squid

а теперь начнем создавать наши конфиги:

удаляем стандартный конфиг

rm /etc/squid/squid.conf


Создадим наш первый конфиг squid.conf:

nano /etc/squid/squid.conf

за основу конфига можно взять здесь https://forum.besthost.by/viewtopic.php?t=944

А теперь доработаем его внесем новое правило после строки
acl localhost src 127.0.0.1/255.255.255.255

добавим

acl goodhost dst 1.0.0.0/8
acl goodhost dst 82.209.192.0/18
acl goodhost dst 86.57.128.0/17
acl goodhost dst 93.84.0.0/15
acl goodhost dst 178.120.0.0/13
acl goodhost dst 194.158.192.0/19
acl goodhost dst 194.226.120.0/22
acl goodhost dst 194.226.124.0/23
acl goodhost dst 193.232.248.0/22
acl goodhost dst 46.28.96.0/21
acl goodhost dst 46.53.128.0/17
acl goodhost dst 46.56.0.0/16
acl goodhost dst 46.191.0.0/17
acl goodhost dst 46.216.0.0/16
acl goodhost dst 77.74.32.0/21
acl goodhost dst 79.170.104.0/21
acl goodhost dst 79.98.48.0/21
acl goodhost dst 80.249.80.0/20
acl goodhost dst 80.94.160.0/20
acl goodhost dst 80.94.224.0/20
acl goodhost dst 81.25.32.0/20
acl goodhost dst 81.30.80.0/20
acl goodhost dst 84.201.224.0/20
acl goodhost dst 87.252.224.0/19
acl goodhost dst 91.149.128.0/18
acl goodhost dst 91.187.0.0/19
acl goodhost dst 93.125.0.0/17
acl goodhost dst 93.191.96.0/21
acl goodhost dst 95.128.64.0/21
acl goodhost dst 95.130.80.0/21
acl goodhost dst 109.126.128.0/18
acl goodhost dst 109.232.112.0/21
acl goodhost dst 178.154.0.0/17
acl goodhost dst 178.159.240.0/21
acl goodhost dst 178.163.128.0/17
acl goodhost dst 178.168.128.0/17
acl goodhost dst 178.172.128.0/17
acl goodhost dst 178.238.0.0/20
acl goodhost dst 193.17.173.0/24
acl goodhost dst 193.58.255.0/24
acl goodhost dst 193.151.40.0/22
acl goodhost dst 193.232.92.0/24
acl goodhost dst 195.50.0.0/19
acl goodhost dst 195.137.180.0/24
acl goodhost dst 195.222.64.0/19
acl goodhost dst 212.98.160.0/19
acl goodhost dst 213.184.224.0/19
acl goodhost dst 217.21.32.0/19
acl goodhost dst 217.23.112.0/20


Это список разрешенных подсетей по которым ваши юзеры смогут ходить в нет.

Далее разрешим исполнение этого правила

https_access allow goodhost  


но на этом ещо не все для того чтоб мы могли запускать несколько конфигов нужно внести ещо одну переменную
а именно указать отдельный pid файл.

PID (сокращение от англ. Process ID) — в системах класса UNIX — идентификатор процесса, уникальный номер, который система класса назначает каждому активному процессу.

Иначе при запуске второго конфига ваша ось пошлет вас лесом и у вас ни чего не выйдет.
Ищем в конфиге строку
cache_store_log /dev/null  


и после неё добавляем новую строку

pid_filename /var/run/squid.pid


В итоге у вас должен был получится такой конфиг:

visible_hostname proxy-server
https_port 3128
tcp_outgoing_address 178.124.129.1
cache_mem 4 MB
maximum_object_size 0 KB
maximum_object_size_in_memory 0 KB
high_memory_warning 70 MB
ipcache_size 24096

ftp_passive on
ftp_sanitycheck on

quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100%

logformat squid  %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
access_log      /dev/null
cache_log       /dev/null
cache_store_log /dev/null
pid_filename /var/run/squid.pid

dns_nameservers 82.209.240.241 82.209.243.241
hosts_file /etc/hosts

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm proxy-server cache
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl maxuser max_user_ip -s 2
acl all src 0.0.0.0/0.0.0.0
acl gst src 1.0.0.0/255.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl goodhost dst 1.0.0.0/8
acl goodhost dst 82.209.192.0/18
acl goodhost dst 86.57.128.0/17
acl goodhost dst 93.84.0.0/15
acl goodhost dst 178.120.0.0/13
acl goodhost dst 194.158.192.0/19
acl goodhost dst 194.226.120.0/22
acl goodhost dst 194.226.124.0/23
acl goodhost dst 193.232.248.0/22
acl goodhost dst 46.28.96.0/21
acl goodhost dst 46.53.128.0/17
acl goodhost dst 46.56.0.0/16
acl goodhost dst 46.191.0.0/17
acl goodhost dst 46.216.0.0/16
acl goodhost dst 77.74.32.0/21
acl goodhost dst 79.170.104.0/21
acl goodhost dst 79.98.48.0/21
acl goodhost dst 80.249.80.0/20
acl goodhost dst 80.94.160.0/20
acl goodhost dst 80.94.224.0/20
acl goodhost dst 81.25.32.0/20
acl goodhost dst 81.30.80.0/20
acl goodhost dst 84.201.224.0/20
acl goodhost dst 87.252.224.0/19
acl goodhost dst 91.149.128.0/18
acl goodhost dst 91.187.0.0/19
acl goodhost dst 93.125.0.0/17
acl goodhost dst 93.191.96.0/21
acl goodhost dst 95.128.64.0/21
acl goodhost dst 95.130.80.0/21
acl goodhost dst 109.126.128.0/18
acl goodhost dst 109.232.112.0/21
acl goodhost dst 178.154.0.0/17
acl goodhost dst 178.159.240.0/21
acl goodhost dst 178.163.128.0/17
acl goodhost dst 178.168.128.0/17
acl goodhost dst 178.172.128.0/17
acl goodhost dst 178.238.0.0/20
acl goodhost dst 193.17.173.0/24
acl goodhost dst 193.58.255.0/24
acl goodhost dst 193.151.40.0/22
acl goodhost dst 193.232.92.0/24
acl goodhost dst 195.50.0.0/19
acl goodhost dst 195.137.180.0/24
acl goodhost dst 195.222.64.0/19
acl goodhost dst 212.98.160.0/19
acl goodhost dst 213.184.224.0/19
acl goodhost dst 217.21.32.0/19
acl goodhost dst 217.23.112.0/20


acl ncsa_users proxy_auth REQUIRED
acl Safe_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl Safe_ports port 280 # https-mgmt
acl Safe_ports port 488 # gss-https
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling https
acl CONNECT method CONNECT

https_access deny maxuser  
https_access allow ncsa_users
https_access deny CONNECT !Safe_ports
https_access allow ncsa_users
https_access allow localhost
https_access allow goodhost
https_access deny all


      
cache_effective_group proxy
coredump_dir /var/spool/squid
cache_effective_user proxy

client_persistent_connections off
server_persistent_connections off

cache_dir null /tmp


Теперь создадим файл, в котором будут хранится логины и соответственно пароли прокси-аккаунтов командой:

touch /etc/squid/passwd


С первым конфигом поконченно приступим к созданию второго конфига

nano /etc/squid/squid1.conf


Если вы втором конфиге вы хотите добавить новые ip адреса то просто добавте строку
acl goodhost dst xxx.xxx.xxx.xxx
где - xxx.xxx.xxx.xxx новый Ip адрес и.т.д.

что ещо нужно изменить в кофиге ????

Ип адрес 178.124.129.2
порт например 3129
Pid файл должен выглядеть так
pid_filename /var/run/squid1.pid


Теперь создадим второй файл, в котором будут хранится логины и соответственно пароли прокси-аккаунтов командой:
touch /etc/squid/passwd1


и незабудте его указать в конфиге

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd1


В итоге у вас должен был получится такой конфиг :

visible_hostname proxy-server
https_port 3129
tcp_outgoing_address 178.124.129.2
cache_mem 4 MB
maximum_object_size 0 KB
maximum_object_size_in_memory 0 KB
high_memory_warning 70 MB
ipcache_size 24096

ftp_passive on
ftp_sanitycheck on

quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100%

logformat squid  %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
access_log      /dev/null
cache_log       /dev/null
cache_store_log /dev/null
pid_filename /var/run/squid1.pid

dns_nameservers 82.209.240.241 82.209.243.241
hosts_file /etc/hosts

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd1
auth_param basic children 5
auth_param basic realm proxy-server cache
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl maxuser max_user_ip -s 2
acl all src 0.0.0.0/0.0.0.0
acl gst src 1.0.0.0/255.0.0.0
acl goodhost dst 1.0.0.0/8
acl goodhost dst 82.209.192.0/18
acl goodhost dst 86.57.128.0/17
acl goodhost dst 93.84.0.0/15
acl goodhost dst 178.120.0.0/13
acl goodhost dst 194.158.192.0/19
acl goodhost dst 194.226.120.0/22
acl goodhost dst 194.226.124.0/23
acl goodhost dst 193.232.248.0/22
acl goodhost dst 46.28.96.0/21
acl goodhost dst 46.53.128.0/17
acl goodhost dst 46.56.0.0/16
acl goodhost dst 46.191.0.0/17
acl goodhost dst 46.216.0.0/16
acl goodhost dst 77.74.32.0/21
acl goodhost dst 79.170.104.0/21
acl goodhost dst 79.98.48.0/21
acl goodhost dst 80.249.80.0/20
acl goodhost dst 80.94.160.0/20
acl goodhost dst 80.94.224.0/20
acl goodhost dst 81.25.32.0/20
acl goodhost dst 81.30.80.0/20
acl goodhost dst 84.201.224.0/20
acl goodhost dst 87.252.224.0/19
acl goodhost dst 91.149.128.0/18
acl goodhost dst 91.187.0.0/19
acl goodhost dst 93.125.0.0/17
acl goodhost dst 93.191.96.0/21
acl goodhost dst 95.128.64.0/21
acl goodhost dst 95.130.80.0/21
acl goodhost dst 109.126.128.0/18
acl goodhost dst 109.232.112.0/21
acl goodhost dst 178.154.0.0/17
acl goodhost dst 178.159.240.0/21
acl goodhost dst 178.163.128.0/17
acl goodhost dst 178.168.128.0/17
acl goodhost dst 178.172.128.0/17
acl goodhost dst 178.238.0.0/20
acl goodhost dst 193.17.173.0/24
acl goodhost dst 193.58.255.0/24
acl goodhost dst 193.151.40.0/22
acl goodhost dst 193.232.92.0/24
acl goodhost dst 195.50.0.0/19
acl goodhost dst 195.137.180.0/24
acl goodhost dst 195.222.64.0/19
acl goodhost dst 212.98.160.0/19
acl goodhost dst 213.184.224.0/19
acl goodhost dst 217.21.32.0/19
acl goodhost dst 217.23.112.0/20


acl ncsa_users proxy_auth REQUIRED
acl Safe_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl Safe_ports port 280 # https-mgmt
acl Safe_ports port 488 # gss-https
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling https
acl CONNECT method CONNECT

https_access deny maxuser  
https_access allow ncsa_users
https_access deny CONNECT !Safe_ports
https_access allow ncsa_users
https_access allow goodhost
https_access deny all


      
cache_effective_group proxy
coredump_dir /var/spool/squid
cache_effective_user proxy

client_persistent_connections off
server_persistent_connections off

cache_dir null /tmp


И.т.д. по аналогии создаете нужное количество конфигов

Далее squid мы будем запускать первый конфиг командой

squid -f /etc/squid/squid.conf


Второй конфиг командой

squid -f /etc/squid/squid1.conf


И.т.д. если вы запустили squid а после этого внесли изменеия в конфиг и хотите применить новый конфиг не останваливая squid выполните команду

squid -k reconfigure /etc/squid/squid.conf

или
squid -k reconfigure /etc/squid/squid1.conf

и.т.д.

Ну на этом вроде все если возникунут вопросы пишите их в этом топике. 8)

Удачи вам в построении ваших идей.









Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
vitalik-slonim | 26 февраля 2011 00:17
  • Группа: Посетители |
  • Комментарий: 1 (ссылка)

Чтоб заходили на внешние сайты через прокси нужна внешка??? Вопрос конечно нубный, но все же лучше быть увереным!!!

p.a.v.e.l. | 26 февраля 2011 09:50
  • Группа: Посетители |
  • Комментарий: 2 (ссылка)

Цитата: vitalik-slonim
Чтоб заходили на внешние сайты через прокси нужна внешка?

конечно, да!

pherum | 2 марта 2011 21:23
  • Группа: Посетители |
  • Комментарий: 3 (ссылка)

извиняйте за тупость, но с этим диапозоном IP адресов, которые приведены в конфиге качать будет только из байнета или из внешки тоже?

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

и ещё один вопросик. как в этот список добавить сервис ICQ , но чтобы при этом передача файлов была запрещена?

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.