The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"freebsd+pf+squid. проблема со squid"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Firewall, Фильтрация пакетов / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"freebsd+pf+squid. проблема со squid"  +/
Сообщение от Strannik_S (ok) on 24-Авг-17, 09:02 
здравствуйте. так случилось что админа в организации не стало, а меня воткнули на его место. С freebsd я новичек, знаю только азы. помер HDD на сервере. Конечно заменил, установил freebsd с пересборкой ядра +pf+squid+openvpn. все работает кроме сквида. уже 2 недели пытаюсь найти решение в интернете да на форумах но пока безуспешно.
pf успешно направляет на squid, а что дальше происходит не пойму.
если оставляю http_port 3128, то на локальной машине с использованием прокси все работает
ставлю прозрачное проксирование http_port 3128 intercept и тишина. http ресурсы недоступны.
конфиги pf u squid удалось вытащить со старой системы. Возможно на новой версии freebsd u squid изменился синтаксис или какие команды..
uname -a
FreeBSD proxy 11.1-RELEASE FreeBSD 11.1-RELEASE #0: Sat Aug 19 15:52:29 MSK 2017     strannik@proxy:/usr/obj/usr/src/sys/GENERIC1  amd64
# squid -v
Squid Cache: Version 3.5.26
и странно что не могу поставить squid 3.5.8, доступен только 3.5.26
squid
acl localnet src 192.168.2.0/24
acl localnet_21 src 10.0.0.0/16
acl localnet_22 src 10.1.22.0/24
acl localnet_23 src 10.1.23.0/24
acl localnet_24 src 10.1.24.0/24
acl localnet_39 src 10.1.39.0/24
acl localnet_40 src 10.1.40.0/24

# Порт SSL для подключений по HTTPS-протоколу
acl SSL_ports port 443

# Список портов, к которым разрешен доступ через прокси-сервер по протоколу HTTP
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
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
#acl RestrictedDomains dstdomain "/usr/local/etc/squid/AccessLists/url_block.txt"
#acl RestrictedDomains2 dstdomain "/usr/local/etc/squid/AccessLists/url_block_2.txt"
#acl white url_regex -i "/usr/local/etc/squid/AccessLists/white.txt"


acl AdDomains url_regex -i "/usr/local/etc/squid/AccessLists/url_porno.txt"

http_access allow manager localhost
http_access allow localnet_21 manager
http_access deny manager

# Запретить доступ к портам, отсутствующим в списке выше
http_access deny !Safe_ports
# Запретить метод CONNECT не на SSL-порт
http_access deny CONNECT !SSL_ports

http_access deny AdDomains
# запрещаем доступ к листу 1
http_access deny RestrictedDomains

# открываем этим подсетям доступ ко всему остальному
http_access allow localnet
http_access allow localnet_21
http_access allow localnet_22
http_access allow localnet_24
#http_access allow localnet_39
#http_access allow localnet_40

#закрываем доступ к листу 2
http_access deny RestrictedDomains2

# остальное делаем доступно для подсетей ниже
#http_access allow localnet_22
http_access allow localnet_23
http_access allow localnet_40

# Последнее правило, блокирует все, что не было разрешено выше
http_access deny all


icp_access allow localnet
icp_access allow localnet_21
icp_access allow localnet_22
icp_access allow localnet_23
icp_access allow localnet_24
icp_access allow localnet_39
icp_access allow localnet_40

icp_access deny all


http_port 3129
http_port 3128 intercept
#http_port 127.0.0.1:3128 options=NO_SSLv3:NO_SSLv2
#hierarchy_stoplist cgi-bin ?

always_direct allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER

delay_pools 2

#ограничение по скорости
delay_class 1 2
delay_parameters 1 -1/-1 256000/128000   #2mb/s
delay_access 1 allow localnet
delay_access 1 allow localnet_21
delay_access 1 allow localnet_22
delay_access 1 allow localnet_23
delay_access 1 allow localnet_24
delay_access 1 allow localnet_39
delay_access 1 allow localnet_40

delay_access 1 deny all

delay_class 2 2
delay_parameters 2 1280000/1280000 256000/256000
#delay_access 2 allow localnet_50
#delay_access 1 allow localnet_34
delay_access 2 deny all

delay_initial_bucket_level 50

forwarded_for transparent
via off
cache_mem 256 MB
maximum_object_size_in_memory 64 KB
memory_replacement_policy lru
cache_replacement_policy lru

cache_dir ufs /usr/local/squid/cache  4000 16 256
store_dir_select_algorithm least-load

maximum_object_size  8 MB
cache_swap_low 90
cache_swap_high 95
logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

access_log /usr/local/squid/log/access.log squid
cache_log /usr/local/squid/log/cache.log
cache_store_log /usr/local/squid/log/store.log
pid_filename /var/run/squid/squid.pid

strip_query_terms off
refresh_pattern ^ftp:         &n... 1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

# По умолчанию, приоритет отдается протоколу IPv6, что может привести к ошибкам соединения, если IPv6 недоступен
dns_v4_first on
shutdown_lifetime 1 seconds

visible_hostname proxy.orlyonok.local
check_hostnames on
coredump_dir /usr/local/squid/cache


Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "freebsd+pf+squid. проблема со squid"  +/
Сообщение от Strannik_S (ok) on 24-Авг-17, 09:47 
поубирал из конфига кучу сетей чтоб не мешались.
еще момент: squid ругался на строку hierarchy_stoplist cgi-bin ?
я её закоментировал и добавил
always_direct allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
не уверен что правильно.
ниже конфиг pf
\#-------------------------Интерфейсы-------------------------#
prov="re2"

#Cisco
int_5="re0"

#Интерфейсы ПК
int_16="re1"

#-------------------------Адреса-------------------------#
srvprov="188.128.х.х"

srv_5="10.5.1.44"

#Адреса интерфейсов ПК
srv_16="192.168.2.6"


#-------------------------Подсети-------------------------#
#Обобщенные подсети для ПК и WiFi
lan_pk="10.0.0.0/8"

#OpenVPN
lan_vpn="10.2.0.0/24"
lan_vpnEv="12.0.1.0/24"
lan_vpnOHO="10.3.0.0/16"

#Cisco
lan_5="10.5.1.0/24"

#Подсети ПК  
table <lan_r> {10.1.22.0/24, !10.1.22.10, !10.1.22.11, !10.1.22.20, !10.1.22.56,  10.1.23.0/24, 10.1.24.0/24, 10.1.39.0/24, 10.1.40.0/24}
table <lan_all> {10.1.22.0/24, 10.1.23.0/24, 10.1.24.0/24, 10.1.25.0/24, 10.1.26.0/24, 10.1.27.0/24, 10.1.28.0/24, 10.1.29.0/24, 10.1.30.0/24, 10.1.31.0/24, 10.1.32.0/24, 10.1.33.0/24, 10.1.34.0/24, 10.1.35.0/24, 10.1.36.0/24, 10.1.37.0/24, 10.1.38.0/24, 10.1.40.0/24, 10.1.41.0/24, 10.1.42.0/24, 10.1.43.0/24, 10.1.44.0/24, 10.1.45.0/24, 10.1.46.0/24, 10.1.47.0/24, 10.1.48.0/24, 10.1.49.0/24, 10.1.52.0/24, 10.1.53.0/24, 10.54.0.0/16, 10.20.30.0/24}

lan_16="192.168.2.0/24"
lan_21="10.0.0.0/16"
lan_22="10.1.22.0/24"
lan_23="10.1.23.0/24"
lan_24="10.1.24.0/24"
lan_39="10.1.39.0/24"
lan_40="10.1.40.0/24"
#-------------------------Порты-------------------------#
port_tcp="{21, 22, 25, 53, 80, 81, 88, 110, 123, 143, 443, 445, 465, 587, 993, 1051, 1540, 1541, 1560:1591, 3110, 3128, 3129, 3000, 3333, 3389, 3690, 5051, 5222, 5938, 7779, 8080, 8090, 9000, 13000, 13005}
port_udp="{22, 25, 53, 67, 68, 110, 123, 1184, 3000:3003, 3110, 7000, 7779, 8000:8150, 9000:9150}"
port_proxy="{80}"
port_ext="{1024, 1184, 3690}"
port_video="{4444, 4445}"

#-------------------------Адреса халявщиков)-------------------------#
#Открываем все порты
ip_allp="{192.168.2.22, 192.168.2.28, 10.1.22.10, 10.1.22.11, 10.1.22.49, 10.1.22.51, 10.1.22.55, 10.1.22.56, 10.1.22.61, 10.1.22.66, 10.1.22.70, 10.1.22.71, 10.1.22.75, 10.1.22.90, 10.1.22.101, 10.1.22.102}
#для тех кто не на прокси
ip_np="{10.1.32.2, 10.1.32.3, 10.1.45.10, 10.1.22.10, 10.1.22.11, 10.1.22.49, 10.1.22.51, 10.1.22.55, 10.1.22.56}

#-------------------------Дополнительные макросы-------------------------#
#Разрешенные типы icmp сообщений
allowed_icmp_types="{echoreq, unreach}"

#Cписок немаршрутизируемых адресов
non_route_nets_inet="{127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 0.0.0.0/8, 240.0.0.0/4}"

#-------------------------Сам файерволл-------------------------#
#DDOS secure)
set block-policy drop

#Не проверяем на локальной петле
set skip on lo0

#Изменяем время для состояния установленного tcp соединения, которое по-умолчанию чересчур большое (24часа).
set timeout {frag 10, tcp.established 3600}

#Собирать пакеты перед отправкой
scrub in all

#Разрешаем ходить в инет через нат
nat on $prov inet from $lan_16 to any -> $prov  #2 диапазон с серверами

nat on $prov inet from $lan_21 to any -> $prov  #ОИТ
nat on $prov inet from $lan_22 to any -> $prov  #У
nat on $prov inet from $lan_23 to any -> $prov  #Гя
nat on $prov inet from $lan_24 to any -> $prov  #Г
nat on $prov inet from $lan_39 to any -> $prov  #В
nat on $prov inet from $lan_40 to any -> $prov  #Ф
#Перенаправляем на прокси
#rdr on $int_16 proto tcp from <lan_r> to any port $port_proxy -> $srv_16 port 3128
rdr on $int_16 proto tcp from $lan_39 to any port $port_proxy -> $srv_16 port 3128

rdr on $prov proto tcp from any to $srvprov port 3690 -> 10.0.0.255 port 3690

#-------------------------Правила фильтрации-------------------------#
# Блокируем всяких нехороших людей стандартный антиспуфинг средствами pf.
antispoof log quick for lo0
antispoof log quick for $int_16
antispoof log quick for $prov

#-------------------------Внешние настройки-------------------------#
#Блокируем все входящие на внешнем интерфейсе
block in on $prov

#Рубаем Мультикастовые рассылки (Данные, предназначенные для приемом группой машин. В отличие от unicast и broadcast)
block in on $prov from any to 240.0.0.0/4

#Блокируем приватные сети на внешний интерфейс
block drop in quick on $prov from $non_route_nets_inet to any
block drop out quick on $prov from any to $non_route_nets_inet

#Разрешаем пинги на внешний интерфейс
#pass in on $prov inet proto icmp all icmp-type $allowed_icmp_types
block in on $prov inet proto icmp all icmp-type $allowed_icmp_types
pass in on $prov inet proto icmp from {188.128.88.21, 87.226.226.242, 94.25.127.70} to $srvprov icmp-type $allowed_icmp_types

#Разрешаем открытые порты на внешнем интерфейсе
pass in on $prov inet proto {tcp, udp} from any to any port $port_ext flags S/SA keep state
pass in on $prov inet proto {tcp, udp} from any to any port $port_video flags S/SA keep state

#Разрешить все исходящие на внешнем интерфейсе
pass out on $prov keep state
#-------------------------VPN-------------------------#
#block on tun0 from {10.2.0.5, 10.2.0.6, 10.2.0.9, 10.2.0.10, 10.2.0.13, 10.2.0.14} to any
pass in log quick on tun0 from any to any keep state
pass out log quick on tun0 from any to any keep state
#-------------------------Внутренние настройки-------------------------#
# Блокируем все входящие на внутр. интерфейсе
block in on $int_16 all

#ICMP - Разрешаем пинговать
pass on $int_16 inet proto icmp all icmp-type $allowed_icmp_types
pass on $int_5 inet proto icmp all icmp-type $allowed_icmp_types

#Для ната
pass in on $int_5 inet proto {tcp, udp} from $lan_5 to any flags S/SA keep state
pass in on $int_16 inet proto {tcp, udp} from $lan_16 to any flags S/SA keep state
#!!
pass in on $int_16 inet proto {tcp, udp} from $lan_21 to any flags S/SA keep state
pass in on $int_16 inet proto {tcp, udp, gre} from $ip_allp to any keep state

#Temp squid
pass on $int_16 inet proto udp from any to any port 53 keep state
pass in on $int_16 inet proto tcp from $ip_np to any port 80 flags S/SA keep state

#pass in on $int_16 inet proto {tcp, udp} from <lan_all> to any port { 25, 53, 110, 443, 465, 995} flags S/SA keep state
pass in on $int_16 inet proto {tcp, udp} from <lan_all> to any port { 25, 53, 80, 110, 443, 465, 995} flags S/SA keep state
pass in on $int_16 inet proto {tcp, udp} from $lan_39 to any port { 25, 53, 110, 443, 465, 995} flags S/SA keep state

#Разрешаем открытые порты на внутр. интерфейсе
pass in on $int_16 inet proto tcp from $lan_pk to $srv_16 port $port_tcp flags S/SA keep state
pass in on $int_16 inet proto udp from $lan_pk to $srv_16 port $port_udp keep state

#NTop
pass in on $int_16 inet proto tcp from $lan_21 to $srv_16 port 3000 keep state

#-------------------------Маршрутизация между подсетями-------------------------#
#vpn
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_vpn to $lan_16 keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_vpnEv to $lan_16 keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_vpnOHO to $lan_16 keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_16 to $lan_vpn keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_16 to $lan_vpnEv keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_16 to $lan_vpnOHO keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_vpn to $lan_21 keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_21 to $lan_vpn keep state

#lan 5
pass quick on $int_5 proto {icmp, gre, tcp, udp} from $lan_5 to $lan_5 keep state

pass out on $int_16 keep state
pass out on $int_5 keep state

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "freebsd+pf+squid. проблема со squid"  +/
Сообщение от eRIC (ok) on 24-Авг-17, 10:16 
pf правила где?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "freebsd+pf+squid. проблема со squid"  +/
Сообщение от Strannik_S (ok) on 24-Авг-17, 14:30 
> pf правила где?

выложил.
подключил 1 машину через сквид, дабы получить логи.
access.log остался пустым
cache.log помимо множества сообщений имеет ошибки от этой машины
2017/08/24 14:27:27 kid1| PF open failed: (13) Permission denied
2017/08/24 14:27:27 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=192.168.2.6:3128 remote=10.1.39.51:55945 FD 14 flags=33
2017/08/24 14:27:27 kid1| PF open failed: (13) Permission denied
2017/08/24 14:27:27 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=192.168.2.6:3128 remote=10.1.39.51:55947 FD 14 flags=33
2017/08/24 14:27:29 kid1| PF open failed: (13) Permission denied
2017/08/24 14:27:29 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=192.168.2.6:3128 remote=10.1.39.51:55957 FD 14 flags=33
2017/08/24 14:27:30| Pinger exiting.
2017/08/24 14:27:30 kid1| PF open failed: (13) Permission denied
2017/08/24 14:27:30 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=192.168.2.6:3128 remote=10.1.39.51:55959 FD 14 flags=33

чую что ответ на поверхности, но догадаться не могу, а знаний не хватает.

store.log так же пуст

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "freebsd+pf+squid. проблема со squid"  +/
Сообщение от eRIC (ok) on 24-Авг-17, 20:59 
> 2017/08/24 14:27:30 kid1| PF open failed: (13) Permission denied

в /etc/devfs.conf добавить права:

own pf root:squid
perm pf 0640

и перезагрузить /etc/rc.d/devfs restart

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "freebsd+pf+squid. проблема со squid"  +/
Сообщение от Strannik_S (ok) on 24-Авг-17, 22:29 
>> 2017/08/24 14:27:30 kid1| PF open failed: (13) Permission denied
> в /etc/devfs.conf добавить права:
> own pf root:squid
> perm pf 0640
> и перезагрузить /etc/rc.d/devfs restart

и побежали данные :) ох как я вам благодарен. большое большое спасибо. есть еще вопросик :)

PF states limit reached
на сервере часто выскакивает эта ошибка. пробовал увеличить
sysctl kern.ipc.nmbclusters=4073888
сначала эти сообщения пропали, но через пол дня появились вновь.
добавил в правило loader.conf, применил. все равно появляется примерно раз в 5 минут.
что с этим делать?
как я понял значение можно увеличивать вдвое, но система не принимает..ругается.
может ли быть так, что теперь, с нормальной работой сквида эти ошибки исчезнут?

и еще один момент, если вы не против,
squid ругался на строку hierarchy_stoplist cgi-bin ?
я её закоментировал и добавил
always_direct allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
не уверен что правильно.

и ещё, все в кучу, чтоб не захламлять тему, мне удалось установить из портов версию сквида 3.5.29, но как я понял новая версия 3.5.8 . Почему-то её поставить я не могу . порты обновлял перед сборкой ядра, после сборки ядра. Почему не доступно не пойму.
обновлял так portsnap fetch && portsnap extract && portsnap fetch && portsnap update
pkg update
pkg autoremove
после сборки проделал то же и получил ответ
Ports tree is already up to date.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "freebsd+pf+squid. проблема со squid"  +/
Сообщение от ALex_hha (ok) on 25-Авг-17, 13:20 
Где вы взяли 3.5.29? На офф сайте последняя версия 3.5.27 ;)
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "freebsd+pf+squid. проблема со squid"  +/
Сообщение от Strannik_S (ok) on 26-Авг-17, 07:53 
> Где вы взяли 3.5.29? На офф сайте последняя версия 3.5.27 ;)

прошу прощения. я совсем запутался :)
Squid Cache: Version 3.5.26
а в инете про 3.5.8 пишут.. или он не для freebsd?

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "freebsd+pf+squid. проблема со squid"  +/
Сообщение от ALex_hha (ok) on 27-Авг-17, 00:07 
>> Где вы взяли 3.5.29? На офф сайте последняя версия 3.5.27 ;)
> прошу прощения. я совсем запутался :)
> Squid Cache: Version 3.5.26
> а в инете про 3.5.8 пишут.. или он не для freebsd?

Ну исходники squid вроде мультиплатформенные.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру