The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Настройка Squid и других прокси серверов (Прозрачный proxy)
Изначальное сообщение [ Отслеживать ]

"Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1."  +/
Сообщение от adanbaev email(ok) on 03-Июн-11, 18:21 
Господа, третий день копаюсь. Уже не в силах, решил обратиться на этот сайт.
Проблемы:
1) Не получается организовать прозрачный прокси. В настройках squid.conf прописываю transparent - не получается. Версия Squid 3.1
2) не понятно, работает NAT или нет. (Насколько я понял, Squid обрабатывает только http-запросы, все остальное должно нат-ом транслироваться...Аська, skype и остальные не подключаются)

Конфигурационные файлы:
squid.conf


http_port 3128 transparent
icp_port 3130
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin?
no_cache deny QUERY
cache_mem 32 MB
maximum_object_size 2000 KB
maximum_object_size_in_memory 1000 KB
cache_dir ufs /usr/local/squid/cache 2000 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_mgr root@domain.kg
visible_hostname proxy
tcp_outgoing_address 111.111.111.222
refresh_pattern ^ftp:         &n... 1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320
acl manager proto cache_object
acl localnet77 src 192.168.77.0/32
acl localnet0 src 192.168.0.0/32
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
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 Icq_port port 5190          # icq
acl Irc_port port 6667          # irc
acl MSN_port port 1863          # msn messager
acl CONNECT method CONNECT
acl cad77 src 192.168.77.5-192.168.77.100
acl cad0 src 192.168.0.1-192.168.0.99
acl stop_files url_regex -i .mp3$ .vqf$ .rpm$ .avi$ .mpeg$ .rm$ .raw$ .wav$ .mov$ .ogg$
acl StopWWW dstdomain "/usr/local/etc/squid/stopWWW.acl"
http_access deny stop_files
http_access deny StopWWW
http_access allow cad77
http_access allow cad0
http_access allow CONNECT Icq_port
http_access allow localnet77 Icq_port
http_access allow localnet0 Icq_port
http_access allow CONNECT Irc_port
http_access allow localnet77 Irc_port
http_access allow localnet0 Irc_port
http_access allow CONNECT MSN_port
http_access allow localnet77 MSN_port
http_access allow localnet0 MSN_port
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_reply_access allow all
icp_access allow all
icon_directory /usr/local/etc/squid/icons
coredump_dir /usr/local/squid/cache

конфигурация файла rc.firewall

#!/bin/sh
fwcmd="/sbin/ipfw"
LanOut="nfe0"      
LanIn0="rl0"        
LanIn77="tl0"      
IpOut="111.111.111.222"
IpIn0="192.168.0.100"
IpIn77="192.168.77.1"
NetMask="32"  
NetIn0="192.168.0.0"
NetIn77="192.168.77.0"
${fwcmd} -f flush
${fwcmd} add check-state
${fwcmd} add allow ip from any to any via lo0
${fwcmd} add deny ip from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any
${fwcmd} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${fwcmd} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
#${fwcmd} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${fwcmd} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
${fwcmd} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
${fwcmd} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
${fwcmd} add deny icmp from any to any frag
${fwcmd} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${fwcmd} add deny log icmp from any to 255.255.255.255 out via ${LanOut}
${fwcmd} add fwd ${IpIn0},3128 tcp from ${NetIn0}/${NetMask} to any 80 via ${LanOut}
${fwcmd} add fwd ${IpIn77},3128 tcp from ${NetIn77}/${NetMask} to any 80 via ${LanOut}
${fwcmd} add fwd ${IpIn0},2121 tcp from ${NetIn0}/${NetMask} to any 21 via ${LanOut}
${fwcmd} add fwd ${IpIn77},2121 tcp from ${NetIn77}/${NetMask} to any 21 via ${LanOut}

${fwcmd} add divert natd ip from ${NetIn0}/${NetMask} to any out via ${LanOut}
${fwcmd} add divert natd ip from ${NetIn77}/${NetMask} to any out via ${LanOut}

${fwcmd} add divert natd ip from any to ${IpOut} in via ${LanOut}

${fwcmd} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${fwcmd} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
#${fwcmd} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${fwcmd} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
${fwcmd} add deny ip from 169.254.0.0/16 to any out via ${LanOut}

${fwcmd} add deny ip from 224.0.0.0/4 to any out via ${LanOut}
${fwcmd} add deny ip from 240.0.0.0/4 to any out via ${LanOut}

${fwcmd} add allow tcp from any to any established
${fwcmd} add allow ip from ${IpOut} to any out xmit ${LanOut}
${fwcmd} add allow udp from any 53 to any via ${LanOut}
${fwcmd} add allow udp from any to any 53 via ${LanOut}
${fwcmd} add allow udp from any to any 123 via ${LanOut}
${fwcmd} add allow tcp from any to ${IpOut} 21 via ${LanOut}
${fwcmd} add allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
${fwcmd} add allow icmp from any to any icmptypes 0,8,11
${fwcmd} add allow tcp from any to ${IpOut} 80 via ${LanOut}
${fwcmd} add allow tcp from any to ${IpOut} 25 via ${LanOut}
${fwcmd} add allow tcp from any to ${IpOut} 22 via ${LanOut}
${fwcmd} add allow tcp from any to ${IpOut} 143 via ${LanOut}
${fwcmd} add allow tcp from any to ${IpOut} 110 via ${LanOut}
${fwcmd} add allow tcp from any to any via ${LanIn0}
${fwcmd} add allow tcp from any to any via ${LanIn77}
${fwcmd} add allow udp from any to any via ${LanIn0}
${fwcmd} add allow udp from any to any via ${LanIn77}
${fwcmd} add allow icmp from any to any via ${LanIn0}
${fwcmd} add allow icmp from any to any via ${LanIn77}
${fwcmd} add deny ip from any to any


Ну и, собственно, настройки rc.conf

firewall_enable="YES"
firewall_type="/etc/rc.firewall"
firewall_logging="YES"
natd_enable="YES"
natd_interface="nfe0"
defaultrouter="111.111.111.221"
gateway_enable="YES"
hostname="xxx.kg"
ifconfig_nfe0="inet 111.111.111.222  netmask 255.255.255.252"
ifconfig_rl0="inet 192.168.0.100  netmask 255.255.255.0"
ifconfig_tl0="inet 192.168.77.1  netmask 255.255.255.0"
keymap="ru.koi8-r"
moused_enable="YES"
sshd_enable="YES"
named_enable="YES"
named_uid="bind"
named_chrootdir=""
named_flags="-s"
mysql_enable="YES"
apache22_enable="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
postfix_enable="YES"
dovecot_enable="YES"
frox_enable="YES"
squid_enable="YES"
clamav_clamd_enable="YES"
spamd_enable="YES"
clamsmtpd_enable="YES"

Буду признателен за любую помощь!
Ответить | Правка | Cообщить модератору

Оглавление

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


1. "Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1."  +/
Сообщение от antonim on 03-Июн-11, 20:54 
>[оверквотинг удален]
> sendmail_msp_queue_enable="NO"
> postfix_enable="YES"
> dovecot_enable="YES"
> frox_enable="YES"
> squid_enable="YES"
> clamav_clamd_enable="YES"
> spamd_enable="YES"
> clamsmtpd_enable="YES"
>
> Буду признателен за любую помощь!

Э-эээ брат, как говорится много букаф-ф, звиняй, ни асилил.
Первое, что бросилось в глаза - конфиг сквида старый, с прежней версии.
В кальмаре 3.1 прозрачность задается уже по-другому, вот так:
http_port               127.0.0.1:3128 intercept
Ключевое слово - intercept
Если ставил из портов, то должен быть минимальный конфиг /usr/local/etc/squid/squid.conf.default
Кароче, /usr/local/etc/squid/squid.conf.documented в руки

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

2. "Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1."  +/
Сообщение от reader (ok) on 03-Июн-11, 21:35 
acl localnet77 src 192.168.77.0/32
acl localnet0 src 192.168.0.0/32

тут наверно подсети должны быть описаны, и это не 32 маска.

acl stop_files url_regex -i .mp3$ .vqf$ .rpm$ .avi$ .mpeg$ .rm$ .raw$ .wav$ .mov$ .ogg$
по моему тоже не правильно

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

4. "Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1."  +/
Сообщение от adanbaev (ok) on 04-Июн-11, 14:24 
> acl localnet77 src 192.168.77.0/32
> acl localnet0 src 192.168.0.0/32
> тут наверно подсети должны быть описаны, и это не 32 маска.

эти строки вообще удалил в новом конфиге.

> acl stop_files url_regex -i .mp3$ .vqf$ .rpm$ .avi$ .mpeg$ .rm$ .raw$ .wav$
> .mov$ .ogg$
> по моему тоже не правильно

Проверял, работает.

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

3. "Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1."  +/
Сообщение от adanbaev (ok) on 04-Июн-11, 14:23 
Спасибо за ответ!
Как вы и советовали, оставил конфигурацию скида по умолчанию, добавив несколько своих правил. Но остается вопрос открытым: прозрачность не срабатывает, у клиентов приходится указывать адрес прокси.
Кстати, аська работает через сквид. Что надо сделать, чтобы запросы аськи пошли через нат?
Спасибо!

Вот новый конфиг сквида:


acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
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 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
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_mgr root@domain.kg
visible_hostname proxy
acl cad77 src 192.168.77.5-192.168.77.100
acl cad0 src 192.168.0.1-192.168.0.99
acl stop_files url_regex -i .mp3$ .vqf$ rpm$ .avi$ .mpeg$ .rm$ .raw$ .wav$ .mov$ .ogg$ .exe$ .co
acl StopWWW dstdomain "/usr/local/etc/squid/stopWWW.acl"
http_access deny stop_files
http_access deny StopWWW
http_access allow cad77
http_access allow cad0
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128 intercept
hierarchy_stoplist cgi-bin ?
coredump_dir /var/squid/cache
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

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

5. "Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1."  +/
Сообщение от Aquarius (ok) on 04-Июн-11, 17:51 
> Спасибо за ответ!
> Как вы и советовали, оставил конфигурацию скида по умолчанию, добавив несколько своих
> правил. Но остается вопрос открытым: прозрачность не срабатывает, у клиентов приходится
> указывать адрес прокси.

а трафик на сквид направляется?

> Кстати, аська работает через сквид. Что надо сделать, чтобы запросы аськи пошли
> через нат?

сам нат?

>[оверквотинг удален]
> 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
>

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

6. "Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1."  +/
Сообщение от adanbaev (ok) on 04-Июн-11, 18:04 
> а трафик на сквид направляется?

Если указать прокси-сервер у клиентов, то - да, а если в клиентской машине указать "без прокси", то не видит. Хотел бы чтобы http проходил через прокси, а другие запросы перебросить НАТом.

>> Кстати, аська работает через сквид. Что надо сделать, чтобы запросы аськи пошли
>> через нат?
> сам нат?

Извините, не понял?

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

7. "Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1."  +/
Сообщение от Aquarius (ok) on 04-Июн-11, 19:14 
>> а трафик на сквид направляется?

ну так, а что это за безобразие:
${fwcmd} add fwd ${IpIn0},3128 tcp from ${NetIn0}/${NetMask} to any 80 via ${LanOut}
${fwcmd} add fwd ${IpIn77},3128 tcp from ${NetIn77}/${NetMask} to any 80 via ${LanOut}
почему
via ${LanOut}
а не
via ${LanIn}
или
in ${LanIn}
?

> Если указать прокси-сервер у клиентов, то - да, а если в клиентской
> машине указать "без прокси", то не видит. Хотел бы чтобы http
> проходил через прокси, а другие запросы перебросить НАТом.
>>> Кстати, аська работает через сквид. Что надо сделать, чтобы запросы аськи пошли
>>> через нат?
>> сам нат?
> Извините, не понял?

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

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

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




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

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