The OpenNET Project / Index page

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



"прозрачный squid + роутер"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Настройка Squid, Tor и прокси серверов (Прозрачный proxy)
Изначальное сообщение [ Отслеживать ]

"прозрачный squid + роутер"  +/
Сообщение от garcia (ok), 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

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

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

Оглавление

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

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

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

> прописал

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

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

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

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

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

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

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

3. "прозрачный squid + роутер"  +/
Сообщение от Аноним (1), 04-Янв-19, 11:47 
> Прописывал все правила на роутере, но похоже чего-то не хватает

Вестимо

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, если источник НЕ..."

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

4. "прозрачный squid + роутер"  +/
Сообщение от garcia (ok), 04-Янв-19, 11:56 
>> Прописывал все правила на роутере, но похоже чего-то не хватает
> Вестимо
> 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

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

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

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

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

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

6. "прозрачный squid + роутер"  +/
Сообщение от garcia (ok), 04-Янв-19, 13:18 
>> поэтому я использую правило
>>
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

или нет?

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

7. "прозрачный squid + роутер"  +/
Сообщение от Аноним (1), 04-Янв-19, 14:36 
> значит по доке все делаю правильно
>
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

...

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

8. "прозрачный squid + роутер"  +/
Сообщение от garcia (ok), 04-Янв-19, 17:20 
>> значит по доке все делаю правильно
>>
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


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

9. "прозрачный squid + роутер"  +/
Сообщение от garcia (ok), 04-Янв-19, 18:24 
по tcpdump вижу что пакеты проходят на прокси, т.е. правила файервола работают, но почему он отдает 403, если в конфиге
acl localnet src 109.0.0.0/24
http_access allow localnet
разрешена сеть
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "прозрачный squid + роутер"  +/
Сообщение от garcia (ok), 04-Янв-19, 22:37 
если я меняю
http_port 3128 intercept

на
http_port 3128 accel vhost allow-direct

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

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

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

11. "прозрачный squid + роутер"  +/
Сообщение от stalker37email (ok), 04-Янв-19, 23:02 
> если я меняю
>
http_port 3128 intercept

> на
>
http_port 3128 accel vhost allow-direct

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

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

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

12. "прозрачный squid + роутер"  +/
Сообщение от garcia (ok), 04-Янв-19, 23:23 
>> если я меняю
>>
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 недействительный сертификат

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

13. "прозрачный squid + роутер"  +/
Сообщение от garcia (ok), 05-Янв-19, 21:05 
при добавлении правил на роутере
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

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

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


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

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




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

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