LINUX.ORG.RU
ФорумAdmin

squid - https фильтрация

 , , , ,


2

1

Настроил squid по этой стать https://habrahabr.ru/post/272733/ Кальмар заработал, все фильтруется, но через время ко всем ресурсам https пропадает доступ. Куда смотреть ? squid.conf

#
# Recommended minimum configuration:
#

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/16    # RFC1918 possible internal network
acl vpnnet src 192.168.50.0/24  192.168.51.0/24  192.168.52.0/24  192.168.53.0/24  192.168.54.0/24  192.168.55.0/24  192.168.56.0/24  192.168.57.0/24  192.168.58.0/24
acl vipnet src 192.168.220.0/24 192.168.250.0/24 192.168.1.254
acl server src xxx.xxx.xxx.xxx/27
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
#acl localnet src fc00::/7       # RFC 4193 local private network range
#acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines

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

dns_nameservers 77.88.8.8
#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
#http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
#http_access deny CONNECT !SSL_ports
# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow server
http_access allow vpnnet
http_access allow vipnet
http_access allow localhost

# And finally deny all other access to this proxy
http_access deny all
# Deny requests to certain unsafe ports
#http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
#http_access deny CONNECT !SSL_ports

# Squid normally listens to port 3128
http_port 10.0.0.1:3128 intercept options=NO_SSLv3:NO_SSLv2
http_port 10.0.0.1:3130 options=NO_SSLv3:NO_SSLv2
https_port 10.0.0.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem

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 step1 at_step SslBump1
ssl_bump peek step1


ssl_bump terminate blocked !vipnet
ssl_bump splice all

sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
# Uncomment and adjust the following to add a disk cache directory.
cache_mem 1024 MB
#cache_dir ufs /var/spool/squid 100 16 256

cache_dir aufs /var/spool/squid 20000 49 256
maximum_object_size 61440 KB
minimum_object_size 3 KB
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

#
# Add any of your own refresh_pattern entries above these.
#
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

cache_swap_low 90
cache_swap_high 95
maximum_object_size_in_memory 512 KB
memory_replacement_policy lru
logfile_rotate 10

Ответ на: комментарий от vel

Здравствуйте, слышална форуме, что вы опытный человек в деле сетей. может поможете мнее. Вот пару строк из access.log

1484410613.223      0 192.168.51.182 TCP_DENIED/200 0 CONNECT 195.189.44.144:3129 - HIER_NONE/- -
1484410613.298      1 192.168.51.182 TCP_MISS/403 4149 POST http://91.108.56.169/api - ORIGINAL_DST/195.189.44.144 text/html
1484410613.735      0 192.168.51.182 TCP_DENIED/200 0 CONNECT 195.189.44.144:3129 - HIER_NONE/- -
1484410613.874      1 192.168.51.182 TCP_MISS/403 4149 POST http://91.108.56.169/api - ORIGINAL_DST/195.189.44.144 text/html
1484410614.244      0 192.168.51.182 TCP_DENIED/200 0 CONNECT 195.189.44.144:3129 - HIER_NONE/- -
1484410614.359      2 192.168.51.182 TCP_MISS/403 4149 POST http://91.108.56.169/api - ORIGINAL_DST/195.189.44.144 text/html
1484410618.057      1 192.168.51.182 TCP_MISS/403 4092 GET http://www.msftncsi.com/ncsi.txt - ORIGINAL_DST/195.189.44.144 text/html
1484410618.953      2 192.168.51.182 TCP_MISS/403 4152 POST http://149.154.175.50/api - ORIGINAL_DST/195.189.44.144 text/html
1484410619.966      1 192.168.51.182 TCP_MISS/403 4152 POST http://149.154.175.50/api - ORIGINAL_DST/195.189.44.144 text/html
1484410621.682      2 192.168.51.182 TCP_MISS/403 4152 POST http://149.154.167.51/api - ORIGINAL_DST/195.189.44.144 text/html

dispancer ()
Ответ на: комментарий от vel

Хотя с виртуалкой все в порядке

1484467997.784     66 10.0.128.108 TCP_MISS/200 10160 GET http://adbetnet.advertserve.com/js/interactive1.js - ORIGINAL_DST/172.255.62.173 text/javascript
1484467997.798     82 10.0.128.108 TCP_MISS/200 1327 GET http://cdn.advertserve.com/images/adbetnet.advertserve.com/servlet/files/8038 - ORIGINAL_DST/205.185.216.42 image/png
1484467998.918     99 10.0.128.108 TCP_MISS/200 4768 GET http://cdn.seasonvar.ru/images/fav/favicon.ico - ORIGINAL_DST/178.236.137.156 image/x-icon

dispancer ()
Ответ на: комментарий от dispancer

access.log - это половина дела. В cache.log нужно смотреть - нет ли там чего-нибудь.

С openssl у меня пока только отрицательный результат - сколько времени работает, а потом начинает работать очень странно. Возможно нужно собирать с libressl

vel ★★★★★ ()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

был собран по статье указаной выше. Вопрос правильно ли я делаю что использую один и тут же сертификат для двух разных сетей «https_port 10.0.0.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem» Т.е. «„https_port 192.168.0.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem“ ?

dispancer ()
Ответ на: комментарий от vel

cache.log

2017/01/15 12:15:51| '/usr/share/squid/errors/ru-ru/ERR_ACCESS_DENIED': (2) No such file or directory
2017/01/15 12:15:51| WARNING: Error Pages Missing Language: ru-ru
2017/01/15 12:15:51| WARNING: Forwarding loop detected for:
GET /favicon.ico HTTP/1.1
Host: ya.ru
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Accept: image/webp,image/*,*/*;q=0.8
Referer: http://ya.ru/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Via: 1.1 pain (squid/3.5.8)
X-Forwarded-For: 192.168.250.60
Cache-Control: max-age=259200
Connection: keep-alive

dispancer ()
Ответ на: комментарий от dispancer

Не лишнее. Оно же у тебя не единственное.

«Forwarding loop detected for:» обычно возникает, когда запрос от самой прокси попадает в nat/redirect. Посмотри на другие правила в nat.

PS Ненавижу redirect! Только dnat с явным указанием адреса и порта.

vel ★★★★★ ()
Ответ на: комментарий от vel

только snat

Chain PREROUTING (policy ACCEPT 194 packets, 47489 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      133  6908 DNAT       tcp  --  *      *       10.0.0.0/16          0.0.0.0/0            tcp dpt:443 to:195.189.44.144:3129
2        0     0 DNAT       tcp  --  *      *       192.168.50.0/24      0.0.0.0/0            tcp dpt:443 to:195.189.44.144:3129
3        0     0 DNAT       tcp  --  *      *       192.168.51.0/24      0.0.0.0/0            tcp dpt:443 to:195.189.44.144:3129
4        0     0 DNAT       tcp  --  *      *       192.168.52.0/24      0.0.0.0/0            tcp dpt:443 to:195.189.44.144:3129
5        0     0 DNAT       tcp  --  *      *       192.168.53.0/24      0.0.0.0/0            tcp dpt:443 to:195.189.44.144:3129
6        0     0 DNAT       tcp  --  *      *       192.168.54.0/24      0.0.0.0/0            tcp dpt:443 to:195.189.44.144:3129
7        0     0 DNAT       tcp  --  *      *       192.168.55.0/24      0.0.0.0/0            tcp dpt:443 to:195.189.44.144:3129
8        0     0 DNAT       tcp  --  *      *       192.168.56.0/24      0.0.0.0/0            tcp dpt:443 to:195.189.44.144:3129
9        0     0 DNAT       tcp  --  *      *       192.168.57.0/24      0.0.0.0/0            tcp dpt:443 to:195.189.44.144:3129
10       0     0 DNAT       tcp  --  *      *       192.168.58.0/24      0.0.0.0/0            tcp dpt:443 to:195.189.44.144:3129
11      16   832 DNAT       tcp  --  *      *       10.0.0.0/16          0.0.0.0/0            tcp dpt:80 to:195.189.44.144:3128
12       0     0 DNAT       tcp  --  *      *       192.168.50.0/24      0.0.0.0/0            tcp dpt:80 to:195.189.44.144:3128
13       0     0 DNAT       tcp  --  *      *       192.168.51.0/24      0.0.0.0/0            tcp dpt:80 to:195.189.44.144:3128
14       0     0 DNAT       tcp  --  *      *       192.168.52.0/24      0.0.0.0/0            tcp dpt:80 to:195.189.44.144:3128
15       0     0 DNAT       tcp  --  *      *       192.168.53.0/24      0.0.0.0/0            tcp dpt:80 to:195.189.44.144:3128
16       0     0 DNAT       tcp  --  *      *       192.168.54.0/24      0.0.0.0/0            tcp dpt:80 to:195.189.44.144:3128
17       0     0 DNAT       tcp  --  *      *       192.168.55.0/24      0.0.0.0/0            tcp dpt:80 to:195.189.44.144:3128
18       0     0 DNAT       tcp  --  *      *       192.168.56.0/24      0.0.0.0/0            tcp dpt:80 to:195.189.44.144:3128
19       0     0 DNAT       tcp  --  *      *       192.168.57.0/24      0.0.0.0/0            tcp dpt:80 to:195.189.44.144:3128
20       0     0 DNAT       tcp  --  *      *       192.168.58.0/24      0.0.0.0/0            tcp dpt:80 to:195.189.44.144:3128

Chain INPUT (policy ACCEPT 238 packets, 14869 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 427 packets, 29082 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 448 packets, 58020 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 SNAT       all  --  *      *       192.168.50.0/24      0.0.0.0/0            to:195.189.44.144
2        0     0 SNAT       all  --  *      *       192.168.58.0/24      0.0.0.0/0            to:195.189.44.144
3        0     0 SNAT       all  --  *      *       192.168.57.0/24      0.0.0.0/0            to:195.189.44.144
4        0     0 SNAT       all  --  *      *       192.168.56.0/24      0.0.0.0/0            to:195.189.44.144
5        0     0 SNAT       all  --  *      *       192.168.55.0/24      0.0.0.0/0            to:195.189.44.144
6        0     0 SNAT       all  --  *      *       192.168.54.0/24      0.0.0.0/0            to:195.189.44.144
7        0     0 SNAT       all  --  *      *       192.168.53.0/24      0.0.0.0/0            to:195.189.44.144
8        0     0 SNAT       all  --  *      *       192.168.52.0/24      0.0.0.0/0            to:195.189.44.144
9        0     0 SNAT       all  --  *      *       192.168.51.0/24      0.0.0.0/0            to:195.189.44.144

dispancer ()
Ответ на: комментарий от vel

правильно ли я настроил iptables?

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
2        0     0 ACCEPT     all  --  eth1   *       0.0.0.0/0            0.0.0.0/0
3        0     0 ACCEPT     tcp  --  *      *       10.0.0.0/16          0.0.0.0/0            tcp dpt:3128
4        0     0 ACCEPT     tcp  --  *      *       195.189.44.128/27    195.189.44.144       tcp dpt:3128
5        0     0 ACCEPT     tcp  --  *      *       192.168.0.0/16       195.189.44.144       tcp dpt:3128
6        0     0 ACCEPT     tcp  --  *      *       10.0.0.0/16          0.0.0.0/0            tcp dpt:3129
7        0     0 ACCEPT     tcp  --  *      *       195.189.44.128/27    195.189.44.144       tcp dpt:3129
8        0     0 ACCEPT     tcp  --  *      *       192.168.0.0/16       195.189.44.144       tcp dpt:3129
9        0     0 ACCEPT     tcp  --  *      *       192.168.0.0/16       195.189.44.144       tcp dpt:80
10       0     0 ACCEPT     tcp  --  *      *       195.189.44.128/27    195.189.44.144       tcp dpt:80
11       0     0 ACCEPT     tcp  --  *      *       192.168.0.0/16       195.189.44.144       tcp dpt:443
12       0     0 ACCEPT     tcp  --  *      *       195.189.44.128/27    195.189.44.144       tcp dpt:443
13       0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3128
14       0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:3128
15       0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3129
16       0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:3129
17       0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3130
18       0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:3130
19       0     0 ACCEPT     tcp  --  *      *       192.168.0.0/16       0.0.0.0/0            tcp dpt:22
20      12   864 ACCEPT     tcp  --  *      *       195.189.44.128/27    0.0.0.0/0            tcp dpt:22
21       0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
22       0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:22
23       0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
24       0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0
2        0     0 ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
3        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            10.0.0.0/16
4        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.50.0/24
5        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.51.0/24
6        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.52.0/24
7        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.53.0/24
8        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.54.0/24
9        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.55.0/24
10       0     0 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.56.0/24
11       0     0 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.57.0/24
12       0     0 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.58.0/24
13       0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 7 packets, 1000 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     all  --  *      eth1    0.0.0.0/0            0.0.0.0/0

dispancer ()
Ответ на: комментарий от vel

извените за флуд, но ни в этом ли грабли «acl server src xxx.xxx.xxx.xxx/27» а кальмар то в этом диапазоне

dispancer ()
Ответ на: комментарий от dispancer

У тебя в логах «ORIGINAL_DST/195.189.44.144» значит под правила DNAT они не подходят - это хорошо.

У тебя в запросе адрес 192.168.250.60 и для него есть строка в ACL, но нет строки в nat, значит клиент явно указал использовать прокси, но в squid-3.x для прозрачного проксирования и обычного режима требуются разные http_port.

А сквид 3.5.8 ? Я бы обновил его на 3.5.23 и посмотрел бы на результат. 3.5.8 это было оочень давно.

vel ★★★★★ ()
Ответ на: комментарий от vel

да 3.5.8, т.е. проделать все тоже самое только с 3.5.23? да, нету, я для примера показывал, для 50.0 тоже самое было

2017/01/15 21:25:15| '/usr/share/squid/errors/ru-ru/ERR_ACCESS_DENIED': (2) No such file or directory
2017/01/15 21:25:15| WARNING: Error Pages Missing Language: ru-ru
2017/01/15 21:25:18| WARNING: Forwarding loop detected for:
GET / HTTP/1.1
Host: tree.tv
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: https://www.google.com.ua/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Via: 1.1 pain (squid/3.5.8)
X-Forwarded-For: 192.168.52.33
Cache-Control: max-age=259200
Connection: keep-alive

dispancer ()
Ответ на: комментарий от dispancer

Я бы обновился до 3.5.23, проверил работоспособность https-прокси в обычном режиме и только после этого настраивал прозрачный режим.

Если эта проблема возникает на любом запросе, значит проблема в конфигурации сквида, а если оно появляется через какое-то время - то это скорее всего баг сквида.

vel ★★★★★ ()
Ответ на: комментарий от vel

Меня сбило с толку, что при поиске в гугле естт доступ, ситуация такая , сквид не дает доступ на все сайты, кроме локального, кроме гуглка, хотя опятьже я смог зайти на ютуб , но допучтим не могу зайти на яндекс, на все остальные сайты , на http пишет доступ запрещен , а на https - error ssl. Я ж в гугле ввел запрос, ну работает и хорошо, а потом глубже капнул. Вопрос тогда посему в посдети для вируталок 10.0.0.0/16 все идепльно? Буду пробовать. спасибо

dispancer ()
Ответ на: комментарий от vel

Спасибо за внимание. Буду пробовать как сказали вы с другой версией и потом отпишусь

dispancer ()
Ответ на: комментарий от vel

переделка не удалась, 3.5.23 не пропатчился и не собрался а 3.5.8

 root@debian:/etc/squid# squid -k reconfigure
2017/01/16 21:17:46| WARNING: (B) '::/0' is a subnetwork of (A) '::/0'
2017/01/16 21:17:46| WARNING: because of this '::/0' is ignored to keep splay tree searching predictable
2017/01/16 21:17:46| WARNING: You should probably remove '::/0' from the ACL named 'all'
2017/01/16 21:17:46| aclIpParseIpData: WARNING: Netmask masks away part of the specified IP in '192.168.220/24'
2017/01/16 21:17:46| aclIpParseIpData: WARNING: Netmask masks away part of the specified IP in '192.168.250/24'
2017/01/16 21:17:46| WARNING: (B) '192.168.0.0/24' is a subnetwork of (A) '192.168.0.0/24'
2017/01/16 21:17:46| WARNING: because of this '192.168.0.0/24' is ignored to keep splay tree searching predictable
2017/01/16 21:17:46| WARNING: You should probably remove '192.168.0.0/24' from the ACL named 'VIP'

dispancer ()
Ответ на: комментарий от vel
acl all src all
#acl localhost src 127.0.0.0/8
#acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
acl vpn src 192.168.50.0/24 192.168.51.0/24 192.168.52.0/24 192.168.53.0/24 192.168.54.0/24 192.168.55.0/24 192.168.56.0/24 192.168.57.0/24 192.168.58.0/24
acl VIP src 192.168.220/24 192.168.250/24
#acl all src all
dispancer ()
Ответ на: комментарий от vel

acl all src all закоментировал, заработало «4) Подобрались к компиляции самого Squid'a. а) Качаем последний самый работающий снэпшот Squid'a: wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.8.tar.gz

Распакуем: tar -xf squid-3.5.8.tar.gz cd squid-3.5.8

б) Качаем патч для bio.cc, и патчим: wget -O bug-4330-put_cipher_by_char-t1.patch http://bugs.squid-cache.org/attachment.cgi?id=3216 patch -p0 -i bug-4330-put_cipher_by_char-t1.patch » patching file src/ssl/bio.cc »

dispancer ()
Ответ на: комментарий от vel

ну, я его проигнорировал, и потом в момент сборки он ругнулся на этот файл. попробую завтра еще. Спасибо за советы)

dispancer ()
Ответ на: комментарий от dispancer

Я сегодня пол-дня убил на проверку работоспособности хабравского рецепта на сквиде 4.0.17. Нашел замечательные грабли с внешними ACL :)

Принципиально - работает. Длительного тестирования под нагрузкой пока не проводил.

vel ★★★★★ ()
Ответ на: комментарий от vel

ну у вас опыту по более, спасибо что помогаете таким зеленым как я)

dispancer ()
Ответ на: комментарий от vel

Вот что пишет при make

libtool: compile:  g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../../include -isystem /usr/include/mit-krb5 -isystem /usr/include/mit-krb5 -I/usr/include/libxml2 -D_FORTIFY_SOURCE=2 -I/usr/include/libxml2 -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -pipe -D_REENTRANT -m64 -I/usr/local/include -I/usr/include/p11-kit-1 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -std=c++11 -c bio.cc  -fPIC -DPIC -o .libs/bio.o
bio.cc: In member function ‘bool Ssl::Bio::sslFeatures::parseV3Hello(const unsigned char*, size_t)’:
bio.cc:1052:47: error: ‘TLS_method’ was not declared in this scope
         const SSL_METHOD *method = TLS_method();
                                               ^
bio.cc: In member function ‘bool Ssl::Bio::sslFeatures::parseV23Hello(const unsigned char*, size_t)’:
bio.cc:1153:47: error: ‘TLS_method’ was not declared in this scope
         const SSL_METHOD *method = TLS_method();
                                               ^
Makefile:917: ошибка выполнения рецепта для цели «bio.lo»
make[3]: *** [bio.lo] Ошибка 1
make[3]: выход из каталога «/root/squid-3.5.23/src/ssl»
Makefile:7291: ошибка выполнения рецепта для цели «all-recursive»
make[2]: *** [all-recursive] Ошибка 1
make[2]: выход из каталога «/root/squid-3.5.23/src»
Makefile:6152: ошибка выполнения рецепта для цели «all»
make[1]: *** [all] Ошибка 2
make[1]: выход из каталога «/root/squid-3.5.23/src»
Makefile:581: ошибка выполнения рецепта для цели «all-recursive»
make: *** [all-recursive] Ошибка 1

dispancer ()

я бы не советовал

dns_nameservers 77.88.8.8

Тут следует написать адрес DNS сервера, которым пользуются машины за сквидом в локалке. Тогда не будет тормозов и глюков с доступом к сайтам с несколькими IP (гугль, майл-ру и т.п.).

bigov ()
Ответ на: комментарий от dispancer

ну это полезно, если адрес источника запросов не должен определяться таблицей мартутизации. «ip ro get» дает ответ с какого адресу будет отправлен пакет.

Если этой опции нет, то адрес определяется правилами и таблицей машрутизации и для большинства случаев это корректно.

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

в tcp_outgoing_address можно использовать ACL и например для доступа к локальным доменам можно использовать один адрес, а для остальных - другой.

vel ★★★★★ ()
Ответ на: комментарий от dispancer

В слакваре нет apt-get :)

пересобирал, но опции не менял, только версию обновлял.

vel ★★★★★ ()
Ответ на: комментарий от dispancer

А ошибка при сборке у тебя с libressl ? А какая версия ?

squid-3.5.23 собрался с libressl-2.5.0 без вопросов. сама libressl поставлена в /usr/local/libressl

так там же libressl-2.1.6.tar.gz

хм, я пока вижу только openssl-1.0.2j

vel ★★★★★ ()
Ответ на: комментарий от vel

Vel, нужна ваша помощь, когда на виртуалке настроил сквид, проверил на подсети виртуалке. Работает, переписал правила iptables, под нужды рабочей обстановки, добавил нужные acl, и в итоге в access.log, cache.log пусто, а в браузере тайм-аут , почему так происходит?

dispancer ()
Ответ на: комментарий от dispancer

1 ) при явном обращении к сквиду все работает ?

2) без сквида - работает ? Просто в режиме роутера с nat без редиректа на прокси ?

пока не будет работать 1 и 2 дальше нет смысла двигаться

если access.log пустой - значит клиент не может обратиться к прокси: нет необходимых разрешающих правил в iptables или DNAT/REDIRECT направляет пакеты не на тот адрес/порт который слушает прокси.

Учти, что для обращения к прокси и для прозрачного режима должны быть разные порты.

tcpdump на роутере может дать подсказки.

vel ★★★★★ ()
Ответ на: комментарий от vel

в том то и дела , есть порты открыты server 1 - squid

-A INPUT -i lo -j ACCEPT
-A POSTROUTING -s 192.168.50.0/24 -j SNAT --to-source 195.189.44.144
-A POSTROUTING -s 192.168.58.0/24 -j SNAT --to-source 195.189.44.144
-A POSTROUTING -s 192.168.57.0/24 -j SNAT --to-source 195.189.44.144
-A POSTROUTING -s 192.168.56.0/24 -j SNAT --to-source 195.189.44.144
-A POSTROUTING -s 192.168.55.0/24 -j SNAT --to-source 195.189.44.144
-A POSTROUTING -s 192.168.54.0/24 -j SNAT --to-source 195.189.44.144
-A POSTROUTING -s 192.168.53.0/24 -j SNAT --to-source 195.189.44.144
-A POSTROUTING -s 192.168.52.0/24 -j SNAT --to-source 195.189.44.144
-A POSTROUTING -s 192.168.51.0/24 -j SNAT --to-source 195.189.44.144
-A POSTROUTING -s 192.168.220.0/24 -j SNAT --to-source 195.189.44.144

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -s 195.189.44.128/27 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -s 195.189.44.128/27 -p tcp -m tcp --dport 3129 -j ACCEPT
-A INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 3129 -j ACCEPT
server 2
-A PREROUTING ! -d 192.168.0.0/16 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.250.244:3128
-A PREROUTING ! -d 192.168.0.0/16 -p tcp -m multiport --dports 443 -j DNAT --to-destination 192.168.250.244:3129

dispancer ()
Ответ на: комментарий от dispancer

Кхм. Когда прокся и роутер разные машины, то заворачивать трафик не всегда просто, особенно если адрес прокси в той же сети, что и клиент - трафик от прокси до клиента не проходит через роутер и DNAT не работает.

Нужно либо делать двойной нат (ненавижу!), либо выделить для прокси-сервера подсеть (vlan), тогда трафик от клиента до прокси и назад будет проходить через роутер и все будет работать.

vel ★★★★★ ()
Ответ на: комментарий от vel

Почему прокси не очень работать, когда я его вешают на внешний интерфейс то есть не 192.168.250.244(eth1) и nat (eth0) , а 195.189.44.144(eth0) (Да , только один интерфейс)??? Клиенты тогда находятся в 192.168.0.0/16 уже ж? И кальмар тогда будет просто через себя пропускать дальше к шлюзу ? ... Как форточка ? Так по идее щас у нас , на сквиде 3.1.2)

dispancer ()
Ответ на: комментарий от dispancer

когда я его вешают на внешний интерфейс

это про «http_port» или про «tcp_outgoing_address» ? http_port на внешнем адресе - это очень отдельный случай (не твой)

Правила iptables на server1 - очень плохо написаны (то, что у тебя filter и nat вместе - это пустяки)

-A INPUT -s 195.189.44.128/27 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -s 195.189.44.128/27 -p tcp -m tcp --dport 3129 -j ACCEPT

Зачем это ? Ты соседям по внешней сети разрешил пользоваться твоей проксей ? Более логично

-A INPUT -i eth1 -p tcp -m multiport --dports 3128,3129 --j ACCEPT

nat/POSTROUTING SNAT у тебя применяется к пакетам идущих с сервера в локальную сеть 192.168.0.0/16. Ответы прокси сервера попадают в эти правила, а этого не должно быть!

Если внешний интерфейс - eth0, то правила должны быть вида

-t nat -A POSTROUTING -s 192.168.50.0/24 -o eth0 -j SNAT --to-source 195.189.44.144
Если у тебя есть куча сетей - освой ipset и число правил резко уменьшится и будет читаемо.

а в set local заносишь все свои сети, правило на nat будет одно

ipset create local hash:net
ipset add local 192.168.50.0/24
ipset add local 192.168.51.0/24
ipset add local 192.168.52.0/24
ipset add local 192.168.53.0/24
ipset add local 192.168.54.0/24
ipset add local 192.168.55.0/24
ipset add local 192.168.56.0/24
ipset add local 192.168.57.0/24
ipset add local 192.168.58.0/24
ipset add local 192.168.220.0/24
iptables -t nat -A POSTROUTING -m set --match-set local src -o eth0 -j SNAT --to-source 195.189.44.144
Этот набор можно использовать и в других правилах фильтрации, которые применимы только для локальных подсетей.

vel ★★★★★ ()
Ответ на: комментарий от vel

Спасибо Vel, буду разбираться, вчера удалось все таки собрать 3.5.23, с libressl 2.5.0, а libecap3 - взял с habra и все получилось

dispancer ()
Ответ на: комментарий от vel

Правила я копировал с уже существующего squid server, скажи , а почему вот не получилось сделать так же как и с текущим squid ? Поставить его на отдельную машину, разрешить входящий трафик?(и больше никаких правил на существующем squid нету , один интерфейс (внешней сети 195.189) и правила input открывающие порт 3128 , forward -j drop, output -j accept) Как тогда эта конфигурация работает ?

dispancer ()
Ответ на: комментарий от dispancer

У iptables есть схема обработки пакетов по ней можно понять что делают твои правила.

Помни, что для работы NAT (snat/dnat) необходимо чтобы все пакеты между клиентом и сервером проходили через маршрутизатор с NAT.

Нарисуй твою схему сети и попробуй понять как будут ходить пакеты туда и обратно.

vel ★★★★★ ()
Ответ на: комментарий от vel

На сервере , который используется в роли маршрутизатора ...нету правил SNAT , masqurade на подсеть которую надо посылать на прокси сервер ... по сути нету не на какую подсеть даже 220, и 250 , и потом далее пакеты уходит на шлюз и уже там происходит дальнейшая маршрутизация , исключая

-A PREROUTING ! -d 192.168.0.0/16 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 195.189.44.132:3129 
существующий прокси . Мы много говорили о прокси и о NAT , но вот на нашем сквиде я не настраивал route , вот роут существующего сервера squid
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
195.189.44.128  0.0.0.0         255.255.255.224 U         0 0          0 eth0
192.168.0.0     195.189.44.134  255.255.0.0     UG        0 0          0 eth0
0.0.0.0         195.189.44.129  0.0.0.0         UG        0 0          0 eth0
Правильно ли я понимаю , что пакеты приходят к серверу squid (server 1) и потом обратно машрутизируются на server 2

dispancer ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.