li$ergin Опубликовано: 4 квітня, 2006 Опубликовано: 4 квітня, 2006 Давно тема не подымалась что-то :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, то все работает, в том числе и в связке с СГ, то есть после авторизации... Почему - понятно. Почему прозрачный прокси не пускает - вот вопрос.
li$ergin Опубліковано: 4 квітня, 2006 Автор Опубліковано: 4 квітня, 2006 )) Отсутствует доступ в интернет с клиенстких машин...
li$ergin Опубліковано: 4 квітня, 2006 Автор Опубліковано: 4 квітня, 2006 Да, линукс мне еще учить и учить. Прошу подсказки. Когда смотрю таблицу НАТ, вижу следующее: REDIRECT tcp -- 192.168.0.0/24 anywhere tcp dpt:http redirports 3128 Не тут ли собака порылась, не вижу порта 80? Подскажите, плиз, исходников от ядра нет, просто если дело в невключеном редиректе, буду искать. CONFIG_IP_NF_TARGET_REDIRECT=m (строчка из конфига) Премного благодарен! Удачи!
vop Опубліковано: 5 квітня, 2006 Опубліковано: 5 квітня, 2006 REDIRECT tcp -- 192.168.0.0/24 anywhere tcp dpt:http redirports 3128 Не тут ли собака порылась, не вижу порта 80? dpt:http
li$ergin Опубліковано: 5 квітня, 2006 Автор Опубліковано: 5 квітня, 2006 Спасибо, ужеразобрался через iptables -t nat -L -n. Да, еще один симптом. Когда в настройках прокси клиентского браузера рисую порт 80 - интернет у клиента есть. Но трафик СГ тем не менее считает локальный и все... При этом по прежнему, с отключением доступа через прокси в клиенстком браузере, интернет по прежнему не работает, при этом сообщение "Could not locate remote server" выскакивает просто моментально... Подскажите, хотя бы, куда копать... Удачи!
Sergek Опубліковано: 6 квітня, 2006 Опубліковано: 6 квітня, 2006 я об этом спрашивал тут http://local.com.ua/forum/index.php?showtopic=3989&hl= , но в конце концов отказался от этого гемора со сквидом!
li$ergin Опубліковано: 6 квітня, 2006 Автор Опубліковано: 6 квітня, 2006 Fly48, как решилась проблема? Поделитесь, если не жаль. Сейчас поставил более старую версию сквида, пытаюсь запустить через него... Товарищи, а есть ли какая команда вроде top для процессов, только для сети. Очень помогло бы поглядеть, где же эти пакеты тормозятся... Спасибо. Удачи!
_Dron_ Опубліковано: 6 квітня, 2006 Опубліковано: 6 квітня, 2006 А шлюз у тебя на клиентах прописан? может просто не знают куда идтить или знают, но надо не туда
keshaLG Опубліковано: 6 квітня, 2006 Опубліковано: 6 квітня, 2006 .....только для сети. Очень помогло бы поглядеть, где же эти пакеты тормозятся... 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 Опубліковано: 7 квітня, 2006 Автор Опубліковано: 7 квітня, 2006 keshaLG, большая просьба глянуть мой первый пост и сказать, что я забыл, почему не работает. Принцип работы через прозрачный прокси вроде бы вполне понятен. Хочу все-таки начать с самого начала. Порамблил, погуглил и поапортил, но ничего толкового найти не смог, возможно, искал плохо или просто немного подустал. Прихожу к мысли, что ни сквид, ни старгейзер тут ни при чем, может дело в другом? Уже бы давно попробовал ядро из исходников собрать, да вот нет у меня их и достать не предвидется. Тем не менее, в конфиге все опции, которые требуются выставлены "@=m" Товарищи, подскажите, Как настроить общий выход в интернет без использования прокси. Можно ли это сделать используя только iptables. Как быть, если айпишник провайдер дает через dhcp. Большое спасибо! Удачи! Да, у меня eth0 смотрит в локальную сеть, запросы от клиентских машин приходят, имена резолвятся... Но, не работает.... Попробовал squid 2.5 stable 6, ведет себя несколько по другому, но все равно не цепляется...
li$ergin Опубліковано: 8 квітня, 2006 Автор Опубліковано: 8 квітня, 2006 Ну, наконец-то!!! Можно немного вздохнуть, завелось практически все. Грабли рассказываю. Во-первых, и это, наверное самое главное, при каждом изменении настроек файрвола связанным с таблицей нат надо перегружать сеть. Заодно и рассказывает что не так с натом (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 Опубліковано: 8 квітня, 2006 Опубліковано: 8 квітня, 2006 Для того чтобы считало трафик сквида в инет в рулесах напиши: 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 Опубліковано: 8 квітня, 2006 Автор Опубліковано: 8 квітня, 2006 (відредаговано) Для того чтобы считало трафик сквида в инет в рулесах напиши: 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 Так политика запрещено по умолчанию, или я чего-то пока не понимаю? Удачи! А, дошло! Да, спасибо, так и сделаю. В скриптах же юзеру добавляется доступ ко всему. Відредаговано 8 квітня, 2006 li$ergin
li$ergin Опубліковано: 12 квітня, 2006 Автор Опубліковано: 12 квітня, 2006 Опять очень нужна ваша помощь. Новую ветку не хочу открывать, дабы воздух зря не портить :loop: . Дело вот в чем. Поставил frox, настроил, работает. Работать-то работает, но трафик считает как локальный. В тэйблзах стоит редирект 21-го порта на 2121 на котором висит фрокс, настроенный на работу со сквидом. Со сквидом фишка такая прокатила, не пойму вообще в какую сторону рыть. Направте на путь истинный, плиз. Заранее спасибо, удачи!
XoRe Опубліковано: 13 квітня, 2006 Опубліковано: 13 квітня, 2006 2li$ergin: делаешь прозрачный фтп-прокси? Побольше данных плиз.
li$ergin Опубліковано: 13 квітня, 2006 Автор Опубліковано: 13 квітня, 2006 Может, немного неточно рассказал. Софтина 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 Опубліковано: 13 квітня, 2006 Опубліковано: 13 квітня, 2006 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 Опубліковано: 14 квітня, 2006 Автор Опубліковано: 14 квітня, 2006 Спасибо за участие, 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 Опубліковано: 17 травня, 2006 Опубліковано: 17 травня, 2006 По делу, принцип следующий: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 Опубліковано: 9 червня, 2006 Опубліковано: 9 червня, 2006 (відредаговано) Значит так в 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 Відредаговано 11 червня, 2006 Vasilich
keshaLG Опубліковано: 11 червня, 2006 Опубліковано: 11 червня, 2006 Огромное спасибо keshaLG не за что, переправляю его создателю STG
egor2fsys Опубліковано: 11 червня, 2006 Опубліковано: 11 червня, 2006 по идее СТГ считает пакеты ДО редиректа. поэтому наверно стоит сделать в правилах так: <IP адрес твоего сервера>:21 и тут в какое направление считать 0.0.0.0:21 и тут направление - МИР
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас