The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
freebsd+pf+squid. проблема со squid, !*! Strannik_S, 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


  • freebsd+pf+squid. проблема со squid, !*! Strannik_S, 09:47 , 24-Авг-17 (1)
    поубирал из конфига кучу сетей чтоб не мешались.
    еще момент: 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

  • freebsd+pf+squid. проблема со squid, !*! eRIC, 10:16 , 24-Авг-17 (2)
    • freebsd+pf+squid. проблема со squid, !*! Strannik_S, 14:30 , 24-Авг-17 (3)
      > 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 так же пуст

      • freebsd+pf+squid. проблема со squid, !*! eRIC, 20:59 , 24-Авг-17 (4)
        > 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

        • freebsd+pf+squid. проблема со squid, !*! Strannik_S, 22:29 , 24-Авг-17 (5)
          >> 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.




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

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