The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1., !*! adanbaev, 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"

Буду признателен за любую помощь!
  • Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1., !*! antonim, 20:54 , 03-Июн-11 (1)
    >[оверквотинг удален]
    > 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 в руки

    • Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1., !*! reader, 21:35 , 03-Июн-11 (2)
      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$
      по моему тоже не правильно

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

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


      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

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

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

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

        сам нат?

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

        • Проблема с прозрачным прокси-сервером Squid на FreeBSD 8.1., !*! adanbaev, 18:04 , 04-Июн-11 (6)
          > а трафик на сквид направляется?

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

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

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

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

            ну так, а что это за безобразие:
            ${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
            > проходил через прокси, а другие запросы перебросить НАТом.
            >>> Кстати, аська работает через сквид. Что надо сделать, чтобы запросы аськи пошли
            >>> через нат?
            >> сам нат?
            > Извините, не понял?




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

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