The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Связка ipfw+natd+squid - форвард не прошёл, !*! SPIDERL33T, 12-Сен-06, 15:58  [смотреть все]
Здравствуйте, уважаемые.

Столкнулся с проблемой - не могу настроить ipfw с прозрачным прокси SQUID и nat`ом

Что хочу:
Чтобы из внутренней сети компы шли в интернет через Сквид, но чтобы в настройках браузера пользователь не делал каких-либо изменений.
------------------------------
Делаю для проверки NAT`а:

$ipfw add 10 divert natd all from any to any via {внешний фэйс}
$ipfw add 40 pass all from any to any

Все бегает - сайты открываются

============================
Далее делаю форвард на прокси:
$ipfw add 10 divert natd all from any to any via {внешний фэйс}
$ipfw add 20 fwd 127.0.0.1,3128 tcp from any to any http via {внутренний фэйс}
$ipfw add 30 deny tcp from {внутренняя сеть} to any http via {внутренний фэйс}  
$ipfw add 40 pass all from any to any

Пытаюсь открыть в браузере сайт - облом.
В настройках браузера вручную прописываю прокси - сайты начинают открываться.

Т.е., как я понимаю, "id 20" огнестенки не срабатывает?
===================
Ядро собирал со следующими параметрами:
options IPFIREWALL
options IPFIREWALL_VERBOSE_LIMIT=10
options IPDIVERT
options IPFIREWALL_FORWARD
options DUMMYNET
===================
SQUID собран из портов

===================
Конфиг SQUID:
===================
http_port 192.168.100.5:3128
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 64 MB
cache_dir ufs /usr/local/squid/cache 3072 16 256
cache_access_log /usr/local/squid/logs/access.log
cache_log /usr/local/squid/logs/cache.log
cache_store_log /usr/local/squid/logs/store.log
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive on
refresh_pattern ^ftp:         &n... 1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
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 CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
acl LMT src "/usr/local/etc/squid/LMT"
http_access allow LMT
http_access deny all
http_reply_access allow all
icp_access allow all
visible_hostname CHAOSGATE
httpd_accel_port 80
httpd_accel_single_host off
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
error_directory /usr/local/etc/squid/errors/Russian-1251
httpd_accel_host virtual
===============================

Перед тем, как сообщить, что ошибка у меня в DNA и что я ламо до мозга костей, убедительно прошу дать нормальный развёрнутый ответ. Посылать в Гугль и на х... не надо. Маны тоже читаю.

Помогите разобраться.

Заранее благодарен.

  • Связка ipfw+natd+squid - форвард не прошёл, !*! Dilmas, 16:21 , 12-Сен-06 (1)
    1) Никак не найдешь ошибку?
    1. $ipfw add 20 fwd 127.0.0.1,3128 tcp from any to any http via {внутренний фэйс}
    2. http_port 192.168.100.5:3128
    Замени строку 1 на:
    $ipfw add 20 fwd 192.168.100.5,3128 tcp from any to any http via {внутренний фэйс}
    2) авторизация работать не будет.
    • Связка ipfw+natd+squid - форвард не прошёл, !*! SPIDERL33T, 16:31 , 12-Сен-06 (2)
      >1) Никак не найдешь ошибку?
      >1. $ipfw add 20 fwd 127.0.0.1,3128 tcp from any to any http
      >via {внутренний фэйс}
      >2. http_port 192.168.100.5:3128
      >Замени строку 1 на:
      >$ipfw add 20 fwd 192.168.100.5,3128 tcp from any to any http via
      >{внутренний фэйс}
      >2) авторизация работать не будет.

      "Масло маслянное" =)

      Изменение 127.0.0.1 на 192.168.100.5 не даёт ровным счётом ничего.
      Попробовал - тоже самое.

      Кстати, ОС стоит - FreeBSD 6.1. Это если у кого-то вопрос о версии операционки возникнет =)

      • Связка ipfw+natd+squid - форвард не прошёл, !*! alex3, 16:47 , 12-Сен-06 (3)

        >Кстати, ОС стоит - FreeBSD 6.1. Это если у кого-то вопрос о
        >версии операционки возникнет =)

        А попробуй пересобрать ядро с добавленной опцией Forward_extended - как-то так... Я когда с 5-ки переходил - у меня форвард вообще не работал пока эту опцию в ядро не добавил. Кто знает, может этот бубен и тебе поможет.

        • Связка ipfw+natd+squid - форвард не прошёл, !*! alex3, 16:55 , 12-Сен-06 (4)
          Еще вариант, может пакет у тебя на форварде циклится, сквид ведь тоже на http порт обращается....
          Может стоит попробовать что-то вроде:
          $ipfw add 10 fwd 192.168.100.5,3128 tcp from not me to any http via {внутренний фэйс}
          $ipfw add 20 deny tcp from {внутренняя сеть} to any http via {внутренний фэйс}  
          $ipfw add 30 divert natd all from any to any via {внешний фэйс}
          $ipfw add 40 pass all from any to any
          • Связка ipfw+natd+squid - форвард не прошёл, !*! SPIDERL33T, 12:28 , 13-Сен-06 (5)
            >Еще вариант, может пакет у тебя на форварде циклится, сквид ведь тоже
            >на http порт обращается....
            >Может стоит попробовать что-то вроде:
            >$ipfw add 10 fwd 192.168.100.5,3128 tcp from not me to any http
            >via {внутренний фэйс}
            >$ipfw add 20 deny tcp from {внутренняя сеть} to any http via
            >{внутренний фэйс}
            >$ipfw add 30 divert natd all from any to any via {внешний
            >фэйс}
            >$ipfw add 40 pass all from any to any

            Тоже самое.
            Если в браузере прокси прописать - всё бегает.
            Если оставить автоматику - ничего не работает.

            А мне надо, чтобы прозрачно работало.

            • Связка ipfw+natd+squid - форвард не прошёл, !*! SPIDERL33T, 16:40 , 13-Сен-06 (6)
              >>Еще вариант, может пакет у тебя на форварде циклится, сквид ведь тоже
              >>на http порт обращается....
              >>Может стоит попробовать что-то вроде:
              >>$ipfw add 10 fwd 192.168.100.5,3128 tcp from not me to any http
              >>via {внутренний фэйс}
              >>$ipfw add 20 deny tcp from {внутренняя сеть} to any http via
              >>{внутренний фэйс}
              >>$ipfw add 30 divert natd all from any to any via {внешний
              >>фэйс}
              >>$ipfw add 40 pass all from any to any
              >
              >Тоже самое.
              >Если в браузере прокси прописать - всё бегает.
              >Если оставить автоматику - ничего не работает.
              >
              >А мне надо, чтобы прозрачно работало.

              Всем спасибо за внимание.
              С проблемой разобрался.
              ============================
              вот как у меня заработало:

              $ipfw add 10 fwd 192.168.100.5,3128 tcp from ${localnetwok}/24 to any http via ${внутренний фэйс}
              $ipfw add 20 deny tcp from ${внутренняя сеть} to any http via ${внутренний фэйс}
              $ipfw add 30 divert natd all from any to any via ${внешний фэйс}
              $ipfw add 40 pass all from any to any
              ============================




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

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