Làm thế nào để thiết lập máy khách cho proxy mực trong suốt?


9

Chi tiết máy chủ

Squid Transparent Proxy Version: 3.3.8
OS: Ubuntu Server 14.04
Server IP: 192.168.1.3

Tập tin cấu hình mực

(không bao gồm nhận xét bằng grep)

root@ubuntu:~# grep -v '^$\|^\s*\#' /etc/squid3/squid.conf
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 mylocalnetwork src 192.168.1.0/24
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access allow mylocalnetwork
http_access deny manager
http_access allow localhost
http_access deny all
http_port 3128 transparent
cache_mem 8 MB
maximum_object_size_in_memory 32 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir aufs /opt/squid/cache 10000 14 256
maximum_object_size 128000 KB
cache_swap_low 95
cache_swap_high 99
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:       1440    20% 10080
refresh_pattern ^gopher:    1440    0%  1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern -i \.(gif|png|jp?g|ico|bmp|tiff?)$ 10080 95% 43200
refresh_pattern -i \.(rpm|cab|deb|exe|msi|msu|zip|tar|xz|bz|bz2|lzma|gz|tgz|rar|bin|7z|doc?|xls?|ppt?|pdf|nth|psd|sis)$ 10080 90% 43200
refresh_pattern -i \.(avi|iso|wav|mid|mp?|mpeg|mov|3gp|wm?|swf|flv|x-flv|axd)$ 43200 95% 432000
refresh_pattern -i \.(html|htm|css|js)$ 1440 75% 40320
refresh_pattern -i \.index.(html|htm)$ 0 75% 10080
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 1440 90% 10080
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100
store_avg_object_size 13 KB
visible_hostname localhost

Nhật ký mực

-------------------------------------------------------------
-----------------------------------------------------------
----------------------------------------------------------
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| Loaded Icons.
2014/07/03 22:11:57| HTCP Disabled.
2014/07/03 22:11:57| Pinger socket opened on FD 13
2014/07/03 22:11:57| Squid plugin modules loaded: 0
2014/07/03 22:11:57| Adaptation support is off.
2014/07/03 22:11:57| Accepting NAT intercepted HTTP Socket connections at local=0.0.0.0:3128 remote=[::] FD 11 flags=41
2014/07/03 22:11:57| Done reading /opt/squid/cache swaplog (2 entries)
2014/07/03 22:11:57| Finished rebuilding storage from disk.
2014/07/03 22:11:57|         2 Entries scanned
2014/07/03 22:11:57|         0 Invalid entries.
2014/07/03 22:11:57|         0 With invalid flags.
2014/07/03 22:11:57|         2 Objects loaded.
2014/07/03 22:11:57|         0 Objects expired.
2014/07/03 22:11:57|         0 Objects cancelled.
2014/07/03 22:11:57|         0 Duplicate URLs purged.
2014/07/03 22:11:57|         0 Swapfile clashes avoided.
2014/07/03 22:11:57|   Took 0.08 seconds ( 24.94 objects/sec).
2014/07/03 22:11:57| Beginning Validation Procedure
2014/07/03 22:11:57|   Completed Validation Procedure
2014/07/03 22:11:57|   Validated 2 Entries
2014/07/03 22:11:57|   store_swap_size = 12.00 KB
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| pinger: Initialising ICMP pinger ...
2014/07/03 22:11:57| pinger: ICMP socket opened.
2014/07/03 22:11:57| pinger: ICMPv6 socket opened
2014/07/03 22:11:57| Pinger exiting.
2014/07/03 22:11:58| storeLateRelease: released 0 objects

Quy tắc Iptables

(sử dụng giao diện đơn "eth0" trong thời gian hiện tại)

iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.3:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

Cấu hình máy khách

Vấn đề là tôi không thể truy cập internet trên các máy khách của mình với IP của Squid là Cổng & DNS chính, như được hiển thị bên dưới.

Trên máy khách Ubuntu

auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.3

dns-nameservers 192.168.1.3

Trên máy khách Windows

nhập mô tả hình ảnh ở đây

Khi tôi thay đổi DNS trên máy khách Ubuntu thành dns-nameservers 192.168.1.1& máy khách Windows thành cùng một ip của bộ định tuyến 192.168.1.1thay vì ip mực (192.168.1.3), thì tôi có thể truy cập internet trên cả hai. Đây có thể không phải là cách để làm vì trang có thể được hiển thị trực tiếp từ bộ định tuyến và có thể không phải từ máy chủ mực bằng bộ đệm (tất nhiên tôi có thể thấy các bản ghi được tạo trong /var/log/squid3/cache.log). Tôi cũng nhận thấy bộ định tuyến của mình nhấp nháy cho các trang đã được truy cập, điều này có thể có nghĩa là nó sẽ gửi yêu cầu qua internet thay vì tìm nạp từ bộ đệm mực.

Tôi vẫn không thỏa hiệp. Nếu tôi vẫn có thể truy cập các trang đã truy cập trên máy khách của mình từ bộ đệm đã tắt internet, tôi sẽ hài lòng.

Quy trình cấu hình máy khách cho Squid suốt Proxy là gì?, Có ai hướng dẫn tôi không?

Cập nhật 1

root@ubuntu:~# iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:192.168.1.3:3128
    0     0 REDIRECT   tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 3128

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

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

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      eth0    192.168.1.0/24       0.0.0.0/0

Cập nhật 2

Nó hoạt động trên phiên bản trước Ubuntu 10.04(lucid)với phiên bản mực Squid Cache: Version 2.7.STABLE7và bên dưới là tệp cấu hình mực hoạt động và tôi có thể truy cập internet trên máy khách khi cổng & DNS của máy khách được đặt thành ip của lucid:

root@lucid:~# grep -v '^$\|^\s*\#' /etc/squid/squid.conf
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
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 mynet src 192.168.1.0/24    # RFC1918 possible internal network
acl SSL_ports port 443      # https
acl SSL_ports port 563      # snews
acl SSL_ports port 873      # rsync
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 Safe_ports port 631     # cups
acl Safe_ports port 873     # rsync
acl Safe_ports port 901     # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow mynet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
cache_mem 8 MB
maximum_object_size_in_memory 32 KB
cache_dir ufs /var/spool/squid 2000 16 256
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp:       1440    20% 10080
refresh_pattern ^gopher:    1440    0%  1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
refresh_pattern (Release|Package(.gz)*)$    0   20% 2880
refresh_pattern .       0   20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
offline_mode on
coredump_dir /var/spool/squid

Tôi không chắc tại sao nó không hoạt động Ubuntu 14.04với phiên bản Squid Squid Cache: Version 3.3.8. Tôi chắc chắn thiếu một số cài đặt trong phiên bản mới của mực hoặc trong bản mới.


1
Tôi có thể nói rõ, nhưng không phải toàn bộ cấu hình proxy trong suốt mà bạn KHÔNG cấu hình máy khách?
HBruijn

Không, chỉ đề cập đến cấu hình máy chủ nếu nó có thể gỡ lỗi tốt hơn!.
dùng53864

Tôi không hiểu làm thế nào để cấu hình khách hàng mực. Tôi không thể truy cập internet trên máy khách khi tôi sử dụng ip của mực (192.168.1.3) làm cổng và máy chủ dns chính. Tôi nghĩ rằng đây là cách thích hợp để cấu hình khách hàng!
dùng53864

Không có cảnh báo hoặc thông báo lỗi từ squid3 -k parse, tất cả đều sạch sẽ.
dùng53864

đầu ra của lệnh này là gì: "iptables -t nat -L -n -v"?
TBI Infotech

Câu trả lời:


11

Tôi không chắc chắn, nhưng vui lòng xem qua danh sách kiểm tra này:

Chỉnh sửa tệp squid.conf và thay đổi dòng sau để bật chế độ proxy trong suốt:

http_port 3128

to

http_port 3128 intercept

dịch vụ mực khởi động lại dịch vụ mực tải lại

Thêm một mục vào bảng iptables NAT để chuyển tiếp lưu lượng truy cập vào trong giao diện bên trong (phía LAN) vào máy chủ Squid trên cổng 3128 (giả sử eth0 là giao diện bên trong có địa chỉ IP 192.168.1.3

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to (cont.) 192.168.1.3:3128

Bây giờ bạn có thể xem iptables, bảng bộ lọc mặc định và bảng nat bằng cách sử dụng các lệnh sau

iptables -L -t filter

iptables -L -t nat

Bây giờ bạn có thể thêm (chắp thêm) vào bảng bộ lọc iptable bằng các lệnh sau, để chấp nhận đầu vào trên cổng 3128 cho Squid

iptables -t bộ lọc -A INPUT -p tcp --dport 3128 -j CHẤP NHẬN

Cũng thử cái này

Bạn cần cả hai cổng 'chặn' và một 'proxy chuyển tiếp' trong cấu hình ngay cả khi bạn không sử dụng proxy chuyển tiếp:

http_port 3129

http_port 3128 chặn

Lưu ý : Tùy chọn "minh bạch" đã không được chấp nhận bởi tùy chọn "chặn" kể từ năm 2010.


Tôi đã thay đổi nó intercepttheo đề nghị của HBruijn. Các quy tắc Iptables nat đã được áp dụng và INPUT cho máy chủ proxy không bị chặn đối với bất kỳ cổng / nguồn nào, tất cả các gói đến được cho phép ngay bây giờ.
dùng53864

bạn có thể kiểm tra cổng 3129 thay vì 3128 như http_port 3129 chặn không?
TBI Infotech

@ user53864 kiểm tra câu trả lời được cập nhật
TBI Infotech

Tôi đã thử!, Không có may mắn, kết quả là như nhau. Tôi đã thử với cổng 3129 trong mực và cũng thay thế các quy tắc iptables bằng cổng mới. Tôi vẫn không thể truy cập internet trên máy khách của mình.
dùng53864

Sau khi thêm cả hai trong squid.conf, báo cáo nhật ký của mực là gì. http_port 3129 http_port 3128 chặn
TBI Infotech

1

Theo Squid WiKi, bạn có cài đặt sai trong tùy chọn http_port , với Squid 3.1+ và DNAT thì nên interceptthay thế transparent.

http_port 3128 intercept

Mặc dù đầu ra của nhật ký Mực của bạn dường như chỉ ra các ổ cắm bị chặn đang hoạt động.

Điều thứ hai là máy chủ Linux cần cho phép chuyển tiếp TCP-IP với sysctl net.ipv4.ip_forward=1


Tôi đã thay đổi cài đặt thành intercept, kết quả là tôi không thể truy cập internet trên máy khách với 192.168.1.3tư cách là cổng và dns chính. Có, chuyển tiếp TCP-IP được bật trong sysctl.conf.
dùng53864

Trên thực tế, cách thích hợp để thiết lập khách hàng mực là gì ?. DNS nên là IP của Squid (192.168.1.3) hay IP của bộ định tuyến chung (192.168.1.1)?
dùng53864

Thiết lập thông thường là bộ định tuyến / cổng mặc định mà khách hàng nhận được trong yêu cầu DHCP của họ có quy tắc chuyển hướng, chặn lưu lượng đi đến cổng TCP 80 và chuyển hướng các gói đó sang proxy trong suốt. Ở đó họ sẽ được xử lý và kết quả trả về cho khách hàng. DNS được sử dụng không thành vấn đề.
HBruijn

Vì vậy, nó chỉ nên hoạt động với cài đặt cổng tại máy khách, tôi vẫn không biết tại sao tôi không thể truy cập internet trên máy khách.
dùng53864

Tôi đã cập nhật bài viết của mình!
dùng53864

1

Lỗi: No forward-proxy ports configure(trong /var/log/squid3/cache.log)

Đọc Wiki .

Theo kinh nghiệm của tôi, proxy minh bạch cần cổng NAT vào squid.conf(cả hai)

 http_port 3128
 http_port 8080 intercept

0

Sau khi chỉ thêm "chặn" vào tùy chọn http_port, tôi vẫn gặp sự cố kết hợp với chế độ chuyển hướng iptables, nếu máy khách được định cấu hình để sử dụng proxy:

"LRI: Không có cổng proxy chuyển tiếp được định cấu hình." và "CẢNH BÁO: Vòng lặp chuyển tiếp được phát hiện cho:"

Sau khi trải qua các tuyên bố trên, tôi sử dụng nó, như là kết quả tốt nhất bây giờ:

a) sử dụng mục nhập cổng kép trong squid.conf như thế này:

http_port 8080
http_port 3128 intercept

Điều này sẽ hiển thị cổng 8080 như cổng chuyển tiếp thông thường cho cấu hình phía máy khách và cung cấp cổng thứ hai để chuyển tiếp lưu lượng truy cập đến.

b) sử dụng quy tắc iptables như thế này:

iptables -A PREROUTING -t NAT -i $LAN_IF -p tcp --dport 80 -j REDIRECT --to-port 3128

Như thế này, bạn sẽ có một cổng proxy cổ điển (8080) để định cấu hình trên máy khách của mình và một cổng thực thi cho lưu lượng không được mã hóa.

Tại sao bạn nên làm điều này? Chà, nếu bạn không muốn lưu lượng truy cập HTTPS bỏ qua proxy (cần phải định cấu hình các máy khách thông thường) và nếu bạn muốn hỗ trợ, nhưng không muốn (hoặc không thể) định cấu hình, các thiết bị hoặc chương trình kém thông minh hơn.


Trên Raspbian (và có thể là những người khác) mà lệnh iptables đưa ra lỗi "iptables v1.4.21: không thể khởi tạo bảng iptables` NAT ': Bảng không tồn tại (bạn có cần phải insmod không?) Có lẽ iptables hoặc kernel của bạn cần được nâng cấp . ". Thay đổi "-t NAT" thành "-t nat" giải quyết điều này.
glennr

-1

Trong Ubuntu 14.04 Squid phiên bản proxy trong suốt: 3.3.8, bạn phải xóa trong suốt khỏi cấu hình http_port 3128, ý tôi là chỉ cần để lại

http_port 3128

không phải

http_port 3128 minh bạch

vì một số lý do không hoạt động


-2

với :

http_port 3128
http_port 8080 intercept

nó hoạt động

(Lỗi: Không có cổng proxy chuyển tiếp cấu hình trong /var/log/squid3/cache.log)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.