li$ergin 0 Опубликовано: 2006-04-04 11:40:27 Share Опубликовано: 2006-04-04 11:40:27 Давно тема не подымалась что-то :00: Уже 2 дня парюсь и просто ни в какую, оно то хорошо, учимся, но уже нервы подсдают. Исходные данные: ASPLinux 10, squid 2.5 stable 13, iptables 1.2.11, stargazer 2.4.8.6; клиентские машины: WinXP SP2. Конфиг сквида: http_port 3128 acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY cache_mem 12 MB cache_swap_low 90 cache_swap_high 95 maximum_object_size 16384 KB maximum_object_size_in_memory 16 KB ipcache_size 1024 ipcache_low 90 ipcache_high 95 fqdncache_size 1024 cache_replacement_policy lru memory_replacement_policy lru cache_dir ufs /usr/local/squid/var/cache 1500 16 256 cache_access_log /usr/local/squid/var/logs/access.log cache_log /usr/local/squid/var/logs/cache.log cache_effective_user squid cache_effective_group squid ftp_user genka@tn.ua ftp_list_width 64 ftp_passive on ftp_sanitycheck on hosts_file /etc/hosts unlinkd_program /usr/local/squid/libexec/unlinkd inger_program /usr/local/squid/libexec/pinger auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off wais_relay_host localhost wais_relay_port 0 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 negative_ttl 5 minutes positive_dns_ttl 6 hours negative_dns_ttl 1 minute range_offset_limit 0 KB forward_timeout 4 minutes connect_timeout 1 minute request_timeout 5 minutes persistent_request_timeout 1 minute half_closed_clients on pconn_timeout 120 seconds ident_timeout 10 seconds shutdown_lifetime 30 seconds 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 8443 acl Safe_ports port 80 # http acl Safe_ports port 8080 # Apache 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 Safe_ports port 2010 # ipis acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access deny to_localhost acl ukraine dst "/usr/local/squid/my/ua-ix.ip" acl TNwork dst "/usr/local/squid/my/users" acl TN src "/usr/local/squid/my/users" http_access allow TN http_access allow TNetwork http_access allow ukraine http_access allow !ukraine http_access deny all http_reply_access allow all icp_access allow all httpd_accel_host virtual httpd_accel_port 80 httpd_accel_single_host off httpd_accel_with_proxy on httpd_accel_uses_host_header on pipeline_prefetch on Скрипт инициализации файрвола. Ногами прошу пинать не сильно, открыл(?) все на свете, чтоб разобраться в нем ли проблема... #!/bin/bash /sbin/depmod -a /sbin/modprobe ip_conntrack /sbin/modprobe ip_tables /sbin/modprobe iptable_filter /sbin/modprobe iptable_mangle /sbin/modprobe iptable_nat /sbin/modprobe ipt_LOG /sbin/modprobe ipt_limit /sbin/modprobe ipt_MASQUERADE echo "1" > /proc/sys/net/ipv4/ip_dynaddr echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128 Конфиги старгазера не привожу, он у меня с непрозрачным прокси заводился, авторизовался, короче, все хорошо было кроме разделения трафика по направлениям, понятно почему. Исходя из этого, проблема, очевидно либо в файрволе либо в сквиде. Кстати говоря, я так понимаю, что если пакет дойдет до сквида и будет им обработан, даже если дальше его не пустят выходные цепочки файрвола, то он выдаст свою страничку об ошибке, верно? На виндовой машине получаю "невозможно соединится с удаленным сервером" Только что отключил СГ, все равно ничерта не работает. Так что вроде и не совсем по адресу, но есть большая просьба помочь... Спасибо! Удачи! PS. Кстати говоря, в такой конфигурации если настроить клиентский браузер, который на ХР, для использования прокси с портом 3128, то все работает, в том числе и в связке с СГ, то есть после авторизации... Почему - понятно. Почему прозрачный прокси не пускает - вот вопрос. Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубликовано: 2006-04-04 13:16:53 Share Опубликовано: 2006-04-04 13:16:53 А в чем, собственно, проблема? ) Ссылка на сообщение Поделиться на других сайтах
li$ergin 0 Опубликовано: 2006-04-04 13:39:26 Автор Share Опубликовано: 2006-04-04 13:39:26 )) Отсутствует доступ в интернет с клиенстких машин... Ссылка на сообщение Поделиться на других сайтах
li$ergin 0 Опубликовано: 2006-04-04 21:19:03 Автор Share Опубликовано: 2006-04-04 21:19:03 Да, линукс мне еще учить и учить. Прошу подсказки. Когда смотрю таблицу НАТ, вижу следующее: REDIRECT tcp -- 192.168.0.0/24 anywhere tcp dpt:http redirports 3128 Не тут ли собака порылась, не вижу порта 80? Подскажите, плиз, исходников от ядра нет, просто если дело в невключеном редиректе, буду искать. CONFIG_IP_NF_TARGET_REDIRECT=m (строчка из конфига) Премного благодарен! Удачи! Ссылка на сообщение Поделиться на других сайтах
vop 370 Опубликовано: 2006-04-05 17:23:41 Share Опубликовано: 2006-04-05 17:23:41 REDIRECT tcp -- 192.168.0.0/24 anywhere tcp dpt:http redirports 3128 Не тут ли собака порылась, не вижу порта 80? dpt:http Ссылка на сообщение Поделиться на других сайтах
li$ergin 0 Опубликовано: 2006-04-05 17:36:03 Автор Share Опубликовано: 2006-04-05 17:36:03 Спасибо, ужеразобрался через iptables -t nat -L -n. Да, еще один симптом. Когда в настройках прокси клиентского браузера рисую порт 80 - интернет у клиента есть. Но трафик СГ тем не менее считает локальный и все... При этом по прежнему, с отключением доступа через прокси в клиенстком браузере, интернет по прежнему не работает, при этом сообщение "Could not locate remote server" выскакивает просто моментально... Подскажите, хотя бы, куда копать... Удачи! Ссылка на сообщение Поделиться на других сайтах
Sergek 123 Опубликовано: 2006-04-06 05:23:03 Share Опубликовано: 2006-04-06 05:23:03 я об этом спрашивал тут http://local.com.ua/forum/index.php?showtopic=3989&hl= , но в конце концов отказался от этого гемора со сквидом! Ссылка на сообщение Поделиться на других сайтах
li$ergin 0 Опубликовано: 2006-04-06 20:17:44 Автор Share Опубликовано: 2006-04-06 20:17:44 Fly48, как решилась проблема? Поделитесь, если не жаль. Сейчас поставил более старую версию сквида, пытаюсь запустить через него... Товарищи, а есть ли какая команда вроде top для процессов, только для сети. Очень помогло бы поглядеть, где же эти пакеты тормозятся... Спасибо. Удачи! Ссылка на сообщение Поделиться на других сайтах
_Dron_ 0 Опубликовано: 2006-04-06 22:08:24 Share Опубликовано: 2006-04-06 22:08:24 А шлюз у тебя на клиентах прописан? может просто не знают куда идтить или знают, но надо не туда Ссылка на сообщение Поделиться на других сайтах
keshaLG 5 Опубликовано: 2006-04-06 22:19:55 Share Опубликовано: 2006-04-06 22:19:55 .....только для сети. Очень помогло бы поглядеть, где же эти пакеты тормозятся... TCPdump ) По делу, принцип следующий: 1. перенаправить все запросы сети 80-го порт на скуид (прозрачное проксирование, документации куча!) 2. расказать скуиду, кто может (имеет право, т.е. авторизованные юзера в стг - ОНЛАЙН) - директива в squid.conf: acl allowed_hosts src "/var/stargazer/online.users" где /var/stargazer/online.users должен иметь такое формат записи: 127.0.0.1/255.255.255.255 192.168.1.1/255.255.255.255 192.168.1.31/255.255.255.255 (содержимое его - генерю скриптами: OnConnect, OnDisconnect) в этом случае получаю: кто онлайн - прозначно проксируется, кто оффлайн - страница ошибки, где написано, что неавторизованный ты) Ссылка на сообщение Поделиться на других сайтах
li$ergin 0 Опубликовано: 2006-04-07 18:57:33 Автор Share Опубликовано: 2006-04-07 18:57:33 keshaLG, большая просьба глянуть мой первый пост и сказать, что я забыл, почему не работает. Принцип работы через прозрачный прокси вроде бы вполне понятен. Хочу все-таки начать с самого начала. Порамблил, погуглил и поапортил, но ничего толкового найти не смог, возможно, искал плохо или просто немного подустал. Прихожу к мысли, что ни сквид, ни старгейзер тут ни при чем, может дело в другом? Уже бы давно попробовал ядро из исходников собрать, да вот нет у меня их и достать не предвидется. Тем не менее, в конфиге все опции, которые требуются выставлены "@=m" Товарищи, подскажите, Как настроить общий выход в интернет без использования прокси. Можно ли это сделать используя только iptables. Как быть, если айпишник провайдер дает через dhcp. Большое спасибо! Удачи! Да, у меня eth0 смотрит в локальную сеть, запросы от клиентских машин приходят, имена резолвятся... Но, не работает.... Попробовал squid 2.5 stable 6, ведет себя несколько по другому, но все равно не цепляется... Ссылка на сообщение Поделиться на других сайтах
li$ergin 0 Опубликовано: 2006-04-08 11:21:43 Автор Share Опубликовано: 2006-04-08 11:21:43 Ну, наконец-то!!! Можно немного вздохнуть, завелось практически все. Грабли рассказываю. Во-первых, и это, наверное самое главное, при каждом изменении настроек файрвола связанным с таблицей нат надо перегружать сеть. Заодно и рассказывает что не так с натом (MASQUERADE: no route: Rusty's brain broke - что это значит - без малейшего понятия...). В настройках сквида нужно включить cache_peer, адрес машины-шлюза, порт хттп , 0-й порт для ицп. always_ newer_direct-ы все выключил, с ними не работало, может проехал в настройке. Знаю, это было в форуме, и Den_LocalNet (кроме того, спасибо тебе за скрипт обновления и нормализации списка украинских сетей) об этом писал, но когда сперва пробовал - не выходило, и решил, что не надо этого делать. НАДО! Теперь есть проблема. Как-то очень медленно сайты стали открываться. Точнее не открываться, а искать адрес. Не могу понять, что за дрянь... Копаю ДНС, но там вроде все хорошо. И еще одна проблема. Не получается сделать так, чтоб нельзя было на 3128 порт зайти, в этом случае весь трафик считается как локальный, что, по сути катастрофа. Ставил в сквидовых настрйках http_port 127.0.0.1:3128, пробовал ставить "внутренний адрес машины-шлюза":3128. В первом случае интернет вообще не работает, во втором проблема не решается. Если кто может что сказать по существу проблем - буду очень благодарен. В любом случае, авторам огромнейшее спасибо за программу, а всем отвечавшим за поддержку и терпение! Удачи! Ссылка на сообщение Поделиться на других сайтах
Slava 1 Опубликовано: 2006-04-08 15:54:12 Share Опубликовано: 2006-04-08 15:54:12 Для того чтобы считало трафик сквида в инет в рулесах напиши: TCP адрес_сервера:3128 DIR1 UDP адрес_сервера:3128 DIR1 это при условии что у тебя инет на направлении DIR1 а если хочеш чтоб на прокси ходили только как на прозрачный и доступ на порт прокси напрямую был закрыт то в правила фаервола добавь: iptables -t filter -A INPUT -d адрес_сервера -p tcp --dport 3128 -j DROP iptables -t filter -A OUTPUT -d адрес_сервера -p tcp --dport 3128 -j DROP Ссылка на сообщение Поделиться на других сайтах
li$ergin 0 Опубликовано: 2006-04-08 18:14:52 Автор Share Опубликовано: 2006-04-08 18:14:52 (изменено) Для того чтобы считало трафик сквида в инет в рулесах напиши: TCP адрес_сервера:3128 DIR1 UDP адрес_сервера:3128 DIR1 Логично, спасибо. Юзеров уже предупредил, что приму меры, то есть трафик с прямого к сквиду обращения будет считаться как зарубежный, пусть боятся и ручками шаловливыми в настройки не лазят, им с виндовз это не обязательно ))) в правила фаервола добавь:iptables -t filter -A INPUT -d адрес_сервера -p tcp --dport 3128 -j DROP iptables -t filter -A OUTPUT -d адрес_сервера -p tcp --dport 3128 -j DROP Так политика запрещено по умолчанию, или я чего-то пока не понимаю? Удачи! А, дошло! Да, спасибо, так и сделаю. В скриптах же юзеру добавляется доступ ко всему. Изменено 2006-04-08 18:15:48 пользователем li$ergin Ссылка на сообщение Поделиться на других сайтах
li$ergin 0 Опубликовано: 2006-04-12 07:35:42 Автор Share Опубликовано: 2006-04-12 07:35:42 Опять очень нужна ваша помощь. Новую ветку не хочу открывать, дабы воздух зря не портить :loop: . Дело вот в чем. Поставил frox, настроил, работает. Работать-то работает, но трафик считает как локальный. В тэйблзах стоит редирект 21-го порта на 2121 на котором висит фрокс, настроенный на работу со сквидом. Со сквидом фишка такая прокатила, не пойму вообще в какую сторону рыть. Направте на путь истинный, плиз. Заранее спасибо, удачи! Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубликовано: 2006-04-13 12:36:39 Share Опубликовано: 2006-04-13 12:36:39 2li$ergin: делаешь прозрачный фтп-прокси? Побольше данных плиз. Ссылка на сообщение Поделиться на других сайтах
li$ergin 0 Опубликовано: 2006-04-13 14:02:23 Автор Share Опубликовано: 2006-04-13 14:02:23 Может, немного неточно рассказал. Софтина Frox - ФТП прокси, который умеет общаться с другим прокси. Висит на порту 2121, соответственно в файрволе все что приходит на 21-й порт заворачивается на 2121-й где его уже ждет фрокс, он же в свою очередь, взаимодействует со сквидом. Не помню где прочитал рекомендации делать именно так (может, в старых сообщениях этого форума), но когда пытался просто завернуть 21-й ТСП и 22-й УДП на сквид - не работало. Вообще, дико прошу прощения, ибо сам гусь. Только что посмотрел конфиги тотал командера - явно стоит обращение к прокси, понятно чего как локаль считает. Удивительно то, что порт 3128 закрыт в файрволе, тем не менее доступ есть. Так что вопрос несколько поменялся Строчки из скрипта, который запускается при загрузке и служит для инициализации файрвола. iptables -A INPUT -p tcp -s 192.168.0.0/24 --sport 3128 -j DROP iptables -A FORWARD -p tcp -s 192.168.0.0/24 --sport 3128 -j DROP iptables -A FORWARD -p tcp -d 192.168.0.0/24 --dport 3128 -j DROP iptables -A INPUT -p tcp -d 192.168.0.0/24 --dport 3128 -j DROP Впрочем, вопрос не совсем по теме, просто буду очень признателен за помощь XoRe, огромное спасибо за помощь и разъяснения (в другом посте). Ссылка на сообщение Поделиться на других сайтах
Slava 1 Опубликовано: 2006-04-13 19:42:23 Share Опубликовано: 2006-04-13 19:42:23 iptables -A INPUT -p tcp -s 192.168.0.0/24 --sport 3128 -j DROP iptables -A FORWARD -p tcp -s 192.168.0.0/24 --sport 3128 -j DROP iptables -A FORWARD -p tcp -d 192.168.0.0/24 --dport 3128 -j DROP iptables -A INPUT -p tcp -d 192.168.0.0/24 --dport 3128 -j DROP вот это не совсем правильно для того чтобы закрыть потр 3128 нужно писать IP адрес сервра а не подсеть если адрес сервера 192.168.0.1 то достаточно правила iptables -A INPUT -p tcp -s 192.168.0.1 --dport 3128 -j DROP после того как выполниш это набери nmap 192.168.0.1 iptables -A FORWARD -p tcp -s 192.168.0.0/24 --sport 3128 -j DROP iptables -A FORWARD -p tcp -d 192.168.0.0/24 --dport 3128 -j DROP это я так понял ты запрещаеш клиентам ходит через любые другие прокси... покажи как заворачиваеш 21-й на 2121-й порт? Ссылка на сообщение Поделиться на других сайтах
li$ergin 0 Опубликовано: 2006-04-14 06:55:08 Автор Share Опубликовано: 2006-04-14 06:55:08 Спасибо за участие, Slava. вот это не совсем правильно для того чтобы закрыть потр 3128 нужно писать IP адрес сервра а не подсеть Да, я то уж посчитал, что расчехлился с файрволом. Какая разница, закрывать порт на(с) одну машину или весь диапазон? это я так понял ты запрещаеш клиентам ходит через любые другие прокси... Да. Одна машина в сети все время бомбит сервер какими-то непонятными запросами, большинство из которых фигачат на ДНСы, причем не мои и моего провайдера, а куда-то далеко-далеко )). Пока не могу на него воздействовать - закрываю файрволом все на свете. покажи как заворачиваеш 21-й на 2121-й порт? iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 -i eth0 --dport 21 -j REDIRECT --to-ports 2121 Удачи! Ссылка на сообщение Поделиться на других сайтах
Vasilich 0 Опубликовано: 2006-05-17 08:41:59 Share Опубликовано: 2006-05-17 08:41:59 По делу, принцип следующий:1. перенаправить все запросы сети 80-го порт на скуид (прозрачное проксирование, документации куча!) 2. расказать скуиду, кто может (имеет право, т.е. авторизованные юзера в стг - ОНЛАЙН) - директива в squid.conf: acl allowed_hosts src "/var/stargazer/online.users" где /var/stargazer/online.users должен иметь такое формат записи: 127.0.0.1/255.255.255.255 192.168.1.1/255.255.255.255 192.168.1.31/255.255.255.255 (содержимое его - генерю скриптами: OnConnect, OnDisconnect) в этом случае получаю: кто онлайн - прозначно проксируется, кто оффлайн - страница ошибки, где написано, что неавторизованный ты) Выложи этот скрипт глянуть.. очень интересно... Как в OnConnect я доганяю, а как в OnDisconnect? И еще вопросик, при стандартных скриптах fw (iptables) по умолчанию все запрещаеться, а прокси должно выпускать на www порты, как выпустить прокси если он на шлюзе? че-то ни че не получаеться... типо так работает iptables -t filter -A INPUT -p tcp -d $server --sport 80 -j ACCEPT iptables -t filter -A FORWARD -p tcp -d $server --sport 80 -j ACCEPT iptables -t filter -A FORWARD -p tcp -s $server --dport 80 -j ACCEPT iptables -t filter -A OUTPUT -p tcp -s $server --dport 80 -j ACCEPT если $server - внешний ip Ссылка на сообщение Поделиться на других сайтах
Vasilich 0 Опубликовано: 2006-06-09 14:27:51 Share Опубликовано: 2006-06-09 14:27:51 (изменено) Значит так в OnConnect дописываем echo "$IP/255.255.255.255">> /var/stargazer/online.users а в OnDisconnect while [ -a /var/tmp/stgusers.tmp ]; do { sleep 1 && continue }; done cat /var/stargazer/online.users | grep -v $2/255.255.255.255 >> /var/tmp/stgusers.tmp rm -f /var/stargazer/online.users >/dev/null 2>/dev/null mv /var/tmp/stgusers.tmp /var/stargazer/online.users >/dev/null 2>/dev/null /usr/sbin/squid -k reconfigure >/dev/null 2>/dev/null в squid.conf acl mmm src "/var/stragazer/online.users" http_access allow mmm Огромное спасибо keshaLG Изменено 2006-06-11 10:23:00 пользователем Vasilich Ссылка на сообщение Поделиться на других сайтах
keshaLG 5 Опубликовано: 2006-06-11 14:56:47 Share Опубликовано: 2006-06-11 14:56:47 Огромное спасибо keshaLG не за что, переправляю его создателю STG Ссылка на сообщение Поделиться на других сайтах
egor2fsys 5 Опубликовано: 2006-06-11 17:37:48 Share Опубликовано: 2006-06-11 17:37:48 по идее СТГ считает пакеты ДО редиректа. поэтому наверно стоит сделать в правилах так: <IP адрес твоего сервера>:21 и тут в какое направление считать 0.0.0.0:21 и тут направление - МИР Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас