The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
прозрачный squid + роутер, !*! garcia, 03-Янв-19, 19:29  [смотреть все]
уже есть настроенный прозрачный прокси squid, есть роутер EdgeOSEdgeRouter
хочу сделать схему
все компьютеры сети -> роутер -> squid

squid - 109.0.0.110
router - 109.0.0.1
тестовая винда - 109.0.0.8
пробую эту доку
http://tldp.org/HOWTO/TransparentProxy-6.html

если на винде прописываю шлюз - 109.0.0.110, то все работает, без правил файервола, но надо настроить что бы работало через роутер - 109.0.0.1

прописал

iptables -t nat -A PREROUTING -i eth0 ! -s 109.0.0.110 -p tcp --dport 80 -j DNAT --to 109.0.0.110:3128
iptables -t nat -A POSTROUTING -o eth0 -s 109.0.0.8/32 -d 109.0.0.110/32 -j SNAT --to 109.0.0.1
iptables -A FORWARD -s 109.0.0.8/32 -d 109.0.0.110/32 -i eth0 -o eth0 -p tcp --dport 3128 -j ACCEPT

пробую на тестовой винде (109.0.0.8) открыть сайт - доступ запрещен, на винде шлюз стоит 109.0.0.1, в логах на squid

1546203601.533      0 109.0.0.110 TCP_MISS/403 4857 GET http://myip.ru/ - HIER_NONE/- text/html
1546203601.533      1 109.0.0.1 TCP_MISS/403 4977 GET http://myip.ru/ - ORIGINAL_DST/109.0.0.110 text/html

конфиг squid.conf, версия - squid-3.5.27

# You should use the same dns resolver on squid and all clients
dns_nameservers 127.0.0.1

# acls
acl localnet src 109.0.0.0/24        # RFC1918 possible internal network
acl localnet src 192.168.1.0/24 # RFC1918 possible internal network
acl localnet src 192.168.10.0/24        # RFC1918 possible internal network

acl SSL_ports port 443
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 blocked_http dstdomain "/etc/squid/blocked_sites.txt"

# http access
http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost manager
http_access deny manager

http_access deny blocked_http

http_access allow localnet
http_access allow localhost
http_access deny all

http_port 3128 intercept
https_port 3129 intercept  ssl-bump connection-auth=off cert=/etc/squid/squidCA.pem
http_port 3130

always_direct allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER

acl blocked ssl::server_name "/etc/squid/blocked_https.txt"
acl whitelist src "/etc/squid/whitelist_ip.txt"
ssl_bump splice whitelist
acl step1 at_step SslBump1
ssl_bump peek step1

ssl_bump terminate blocked
ssl_bump splice all

sslcrtd_program /opt/source/squid-3.5.27/src/ssl/ssl_crtd -s /var/lib/ssl_db -M 4MB
sslcrtd_children 8 startup=1 idle=1

acl YOUTUBE ssl::server_name .googlevideo.com
delay_pools 1
delay_class 1 2
delay_parameters 1 -1/-1 5120/5120
delay_access 1 allow YOUTUBE

coredump_dir /var/spool/squid
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
cache_dir aufs /var/spool/squid 20000 49 256
maximum_object_size 61440 KB
minimum_object_size 3 KB

cache_swap_low 90
cache_swap_high 95
maximum_object_size_in_memory 512 KB
memory_replacement_policy lru
logfile_rotate 4

в чем может быть проблема?

  • прозрачный squid + роутер, !*! Аноним, 10:32 , 04-Янв-19 (1)
    > если на винде прописываю шлюз - 109.0.0.110, то все работает, без правил
    > файервола, но надо настроить что бы работало через роутер - 109.0.0.1

    Ну так на роутере и смотрите port forwarding...

    > прописал

    Где прописал? На сквиде, на роутере - раскрасьте сами...

    > в чем может быть проблема?

    В роутере, очевидно, раз без него все работает как надо...

    • прозрачный squid + роутер, !*! garcia, 10:44 , 04-Янв-19 (2)
      >> если на винде прописываю шлюз - 109.0.0.110, то все работает, без правил
      >> файервола, но надо настроить что бы работало через роутер - 109.0.0.1
      > Ну так на роутере и смотрите port forwarding...
      >> прописал
      > Где прописал? На сквиде, на роутере - раскрасьте сами...
      >> в чем может быть проблема?
      > В роутере, очевидно, раз без него все работает как надо...

      Прописывал все правила на роутере, но похоже чего-то не хватает

      • прозрачный squid + роутер, !*! Аноним, 11:47 , 04-Янв-19 (3)
        > Прописывал все правила на роутере, но похоже чего-то не хватает

        Вестимо

        iptables -t nat -A PREROUTING -i eth0 ! -s 109.0.0.110 -p tcp --dport 80 -j DNAT --to 109.0.0.110:3128

        в грубом переводе "прероутинг на интерфейсе eth0, если НЕ источник..."

        и

        iptables -t nat -A PREROUTING -i eth0 -s ! 109.0.0.110 -p tcp --dport 80 -j DNAT --to 109.0.0.110:3128

        в грубом переводе "прероутинг на интерфейсе eth0, если источник НЕ..."

        • прозрачный squid + роутер, !*! garcia, 11:56 , 04-Янв-19 (4)
          >> Прописывал все правила на роутере, но похоже чего-то не хватает
          > Вестимо
          > iptables -t nat -A PREROUTING -i eth0 ! -s 109.0.0.110 -p tcp
          > --dport 80 -j DNAT --to 109.0.0.110:3128
          > в грубом переводе "прероутинг на интерфейсе eth0, если НЕ источник..."
          > и
          > iptables -t nat -A PREROUTING -i eth0 -s ! 109.0.0.110 -p tcp
          > --dport 80 -j DNAT --to 109.0.0.110:3128
          > в грубом переводе "прероутинг на интерфейсе eth0, если источник НЕ..."

          iptables -t nat -A PREROUTING -i eth0 -s ! 109.0.0.110 -p tcp --dport 80 -j DNAT --to 109.0.0.110:3128
          Bad argument `109.0.0.110'
          Try `iptables -h' or 'iptables --help' for more information.

          iptables -h
          [!] --source    -s address[/mask][...]
                                          source specification

          поэтому я использую правило

          iptables -t nat -A PREROUTING -i eth0 ! -s 109.0.0.110 -p tcp --dport 80 -j DNAT --to 109.0.0.110:3128

          или я что-то делаю не так?
          • прозрачный squid + роутер, !*! Аноним, 13:03 , 04-Янв-19 (5)
            > поэтому я использую правило
            >
            iptables -t nat -A PREROUTING -i eth0 ! -s 109.0.0.110 -p tcp 
            > --dport 80 -j DNAT --to 109.0.0.110:3128

            > или я что-то делаю не так?

            или я что-то путаю, но отрицание обычно всегда ставилось перед значением, а не перед опцией. В доке, на которую ссылаешься, именно так.

            • прозрачный squid + роутер, !*! garcia, 13:18 , 04-Янв-19 (6)
              >> поэтому я использую правило
              >>
              iptables -t nat -A PREROUTING -i eth0 ! -s 109.0.0.110 -p tcp 
              >> --dport 80 -j DNAT --to 109.0.0.110:3128

              >> или я что-то делаю не так?
              > или я что-то путаю, но отрицание обычно всегда ставилось перед значением, а
              > не перед опцией. В доке, на которую ссылаешься, именно так.

              значит по доке все делаю правильно

              iptables -t nat -I PREROUTING -i eth0 ! -s 109.0.0.110 -p tcp --dport 80 -j DNAT --to 109.0.0.110:3128

              или нет?

              • прозрачный squid + роутер, !*! Аноним, 14:36 , 04-Янв-19 (7)
                > значит по доке все делаю правильно
                >
                iptables -t nat -I PREROUTING -i eth0 ! -s 109.0.0.110 -p tcp 
                > --dport 80 -j DNAT --to 109.0.0.110:3128

                > или нет?

                В доке-то как раз

                iptables -t nat -A PREROUTING -i eth0 -s ! squid-box -p tcp --dport 80 -j DNAT --to squid-box:3128

                ...

                • прозрачный squid + роутер, !*! garcia, 17:20 , 04-Янв-19 (8)
                  >> значит по доке все делаю правильно
                  >>
                  iptables -t nat -I PREROUTING -i eth0 ! -s 109.0.0.110 -p tcp 
                  >> --dport 80 -j DNAT --to 109.0.0.110:3128

                  >> или нет?
                  > В доке-то как раз
                  > iptables -t nat -A PREROUTING -i eth0 -s ! squid-box -p tcp
                  > --dport 80 -j DNAT --to squid-box:3128
                  > ...

                  так такое правило по доке не проходит

                  iptables -t nat -A PREROUTING -i eth0 -s ! 109.0.0.110 -p tcp --dport 80 -j DNAT --to 109.0.0.110:3128
                  Bad argument `109.0.0.110'
                  Try `iptables -h' or 'iptables --help' for more information.

                  по хелпу надо перенести ! перед -s


  • прозрачный squid + роутер, !*! garcia, 18:24 , 04-Янв-19 (9)
    по tcpdump вижу что пакеты проходят на прокси, т.е. правила файервола работают, но почему он отдает 403, если в конфиге
    acl localnet src 109.0.0.0/24
    http_access allow localnet
    разрешена сеть
    • прозрачный squid + роутер, !*! garcia, 22:37 , 04-Янв-19 (10)
      если я меняю
      http_port 3128 intercept

      на
      http_port 3128 accel vhost allow-direct

      то http начинает загружаться

      но если открываю https, то пишет не действительный сертификат и подставляется сертификат сервера прокси, как это обойти?

      • прозрачный squid + роутер, !*! stalker37, 23:02 , 04-Янв-19 (11)
        > если я меняю
        >
        http_port 3128 intercept

        > на
        >
        http_port 3128 accel vhost allow-direct

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

        Убрать перехват SSL?

        • прозрачный squid + роутер, !*! garcia, 23:23 , 04-Янв-19 (12)
          >> если я меняю
          >>
          http_port 3128 intercept

          >> на
          >>
          http_port 3128 accel vhost allow-direct

          >> то http начинает загружаться
          >> но если открываю https, то пишет не действительный сертификат и подставляется сертификат
          >> сервера прокси, как это обойти?
          > Убрать перехват SSL?

          почему если я меняю на винде шлюз на прокси, то все работает в режимах
          http_port 3128 intercept
          https_port 3129 intercept  ssl-bump connection-auth=off cert=/etc/squid/squidCA.pem

          а если настраиваю маршрутизацию с роутера на прокси, то по http - 403, а по https недействительный сертификат

  • прозрачный squid + роутер, !*! garcia, 21:05 , 05-Янв-19 (13)
    при добавлении правил на роутере
    iptables -t nat -I PREROUTING -i eth0 -s 109.0.0.8 -p tcp --dport 80 -j DNAT --to 109.0.0.110:3128
    iptables -t nat -I PREROUTING -i eth0 -s 109.0.0.8 -p tcp --dport 443 -j DNAT --to 109.0.0.110:3129
    iptables -t nat -I POSTROUTING -o eth0 -s 109.0.0.8 -d 109.0.0.110 -j SNAT --to 109.0.0.1

    правила на прокси сервере

    *nat
    :PREROUTING ACCEPT [314:20555]
    :INPUT ACCEPT [313:20511]
    :OUTPUT ACCEPT [844:60999]
    :POSTROUTING ACCEPT [2:130]
    -A PREROUTING -s 109.0.0.0/24 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129
    -A PREROUTING -s 109.0.0.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
    -A PREROUTING -s 192.168.10.0/24 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129
    -A PREROUTING -s 192.168.10.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
    -A PREROUTING -s 192.168.1.0/24 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129
    -A PREROUTING -s 192.168.1.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
    -A POSTROUTING -s 109.0.0.0/24 -j SNAT --to-source 109.0.0.110
    -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 109.0.0.110
    -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 109.0.0.110
    COMMIT
    *filter
    :INPUT ACCEPT [340:18626]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [1809:273786]
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -s 109.0.0.0/24 -j ACCEPT
    -A INPUT -s 192.168.1.0/24 -j ACCEPT
    -A INPUT -s 192.168.10.0/24 -j ACCEPT
    -A INPUT -j LOG
    -A INPUT -p tcp -m multiport --dports 3128:3130 -j DROP
    -A FORWARD -s 109.0.0.0/24 -p udp -m multiport --dports 80,443 -j DROP
    COMMIT

    при открытии на винде какого-нибудь сайта по http, в cache.log

    kid1| WARNING: Forwarding loop detected for:
    GET / HTTP/1.1^M
    Upgrade-Insecure-Requests: 1^M
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36^M
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8^M
    Accept-Encoding: gzip, deflate^M
    Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7^M
    Via: 1.1 proxy.server (squid/3.5.27)^M
    X-Forwarded-For: 109.0.0.1^M
    Cache-Control: max-age=259200^M
    Connection: keep-alive^M
    Host: myip.ru^M
    ^M

    kid1| WARNING: Forwarding loop detected for:
    GET /favicon.ico HTTP/1.1^M
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36^M
    Accept: image/webp,image/apng,image/*,*/*;q=0.8^M
    Referer: http://myip.ru/^M
    Accept-Encoding: gzip, deflate^M
    Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7^M
    Via: 1.1 proxy.server (squid/3.5.27)^M
    X-Forwarded-For: 109.0.0.1^M
    Cache-Control: max-age=259200^M
    Connection: keep-alive^M
    Host: myip.ru^M

    в access.log

    1546711344.892      0 109.0.0.110 TCP_MISS/403 4514 GET http://myip.ru/ - HIER_NONE/- text/html
    1546711344.893      0 109.0.0.1 TCP_MISS/403 4634 GET http://myip.ru/ - ORIGINAL_DST/109.0.0.110 text/html
    1546711344.913      0 109.0.0.110 TCP_MISS/403 4479 GET http://myip.ru/favicon.ico - HIER_NONE/- text/html
    1546711344.913      0 109.0.0.1 TCP_MISS/403 4599 GET http://myip.ru/favicon.ico - ORIGINAL_DST/109.0.0.110 text/html

    > WARNING: Forwarding loop detected for

    из-за чего это может быть? и как это можно исправить, что бы все заработало




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

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