Перейти до

Рекомендованные сообщения

Опубликовано:

Давно тема не подымалась что-то :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, то все работает, в том числе и в связке с СГ, то есть после авторизации... Почему - понятно. Почему прозрачный прокси не пускает - вот вопрос.

Опубліковано:

Да, линукс мне еще учить и учить. Прошу подсказки. Когда смотрю таблицу НАТ, вижу следующее:

 

REDIRECT tcp -- 192.168.0.0/24 anywhere tcp dpt:http redirports 3128

 

Не тут ли собака порылась, не вижу порта 80? Подскажите, плиз, исходников от ядра нет, просто если дело в невключеном редиректе, буду искать.

CONFIG_IP_NF_TARGET_REDIRECT=m (строчка из конфига)

 

Премного благодарен!

Удачи!

Опубліковано:

Спасибо, ужеразобрался через iptables -t nat -L -n.

Да, еще один симптом. Когда в настройках прокси клиентского браузера рисую порт 80 - интернет у клиента есть. Но трафик СГ тем не менее считает локальный и все... При этом по прежнему, с отключением доступа через прокси в клиенстком браузере, интернет по прежнему не работает, при этом сообщение "Could not locate remote server" выскакивает просто моментально... Подскажите, хотя бы, куда копать...

Удачи!

Опубліковано:

Fly48, как решилась проблема? Поделитесь, если не жаль.

Сейчас поставил более старую версию сквида, пытаюсь запустить через него...

 

Товарищи, а есть ли какая команда вроде top для процессов, только для сети. Очень помогло бы поглядеть, где же эти пакеты тормозятся...

 

Спасибо.

Удачи!

Опубліковано:
.....только для сети. Очень помогло бы поглядеть, где же эти пакеты тормозятся...

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)

в этом случае получаю: кто онлайн - прозначно проксируется, кто оффлайн - страница ошибки, где написано, что неавторизованный ты)

Опубліковано:

keshaLG, большая просьба глянуть мой первый пост и сказать, что я забыл, почему не работает. Принцип работы через прозрачный прокси вроде бы вполне понятен.

Хочу все-таки начать с самого начала. Порамблил, погуглил и поапортил, но ничего толкового найти не смог, возможно, искал плохо или просто немного подустал.

Прихожу к мысли, что ни сквид, ни старгейзер тут ни при чем, может дело в другом? Уже бы давно попробовал ядро из исходников собрать, да вот нет у меня их и достать не предвидется. Тем не менее, в конфиге все опции, которые требуются выставлены "@=m"

Товарищи, подскажите,

Как настроить общий выход в интернет без использования прокси. Можно ли это сделать используя только iptables.

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

 

Большое спасибо!

 

Удачи!

 

Да, у меня eth0 смотрит в локальную сеть, запросы от клиентских машин приходят, имена резолвятся... Но, не работает.... Попробовал squid 2.5 stable 6, ведет себя несколько по другому, но все равно не цепляется...

Опубліковано:

Ну, наконец-то!!!

Можно немного вздохнуть, завелось практически все.

Грабли рассказываю.

Во-первых, и это, наверное самое главное, при каждом изменении настроек файрвола связанным с таблицей нат надо перегружать сеть. Заодно и рассказывает что не так с натом (MASQUERADE: no route: Rusty's brain broke - что это значит - без малейшего понятия...).

В настройках сквида нужно включить cache_peer, адрес машины-шлюза, порт хттп , 0-й порт для ицп. always_ newer_direct-ы все выключил, с ними не работало, может проехал в настройке. Знаю, это было в форуме, и Den_LocalNet (кроме того, спасибо тебе за скрипт обновления и нормализации списка украинских сетей) об этом писал, но когда сперва пробовал - не выходило, и решил, что не надо этого делать. НАДО!

 

Теперь есть проблема. Как-то очень медленно сайты стали открываться. Точнее не открываться, а искать адрес. Не могу понять, что за дрянь... Копаю ДНС, но там вроде все хорошо.

 

И еще одна проблема. Не получается сделать так, чтоб нельзя было на 3128 порт зайти, в этом случае весь трафик считается как локальный, что, по сути катастрофа. Ставил в сквидовых настрйках http_port 127.0.0.1:3128, пробовал ставить "внутренний адрес машины-шлюза":3128. В первом случае интернет вообще не работает, во втором проблема не решается.

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

 

В любом случае, авторам огромнейшее спасибо за программу, а всем отвечавшим за поддержку и терпение!

 

Удачи!

Опубліковано:

Для того чтобы считало трафик сквида в инет в рулесах напиши:

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

Опубліковано: (відредаговано)
Для того чтобы считало трафик сквида в инет в рулесах напиши:

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

 

Так политика запрещено по умолчанию, или я чего-то пока не понимаю?

 

Удачи!

 

А, дошло! Да, спасибо, так и сделаю. В скриптах же юзеру добавляется доступ ко всему.

Відредаговано li$ergin
Опубліковано:

Опять очень нужна ваша помощь. Новую ветку не хочу открывать, дабы воздух зря не портить :loop: .

 

Дело вот в чем. Поставил frox, настроил, работает.

Работать-то работает, но трафик считает как локальный. В тэйблзах стоит редирект 21-го порта на 2121 на котором висит фрокс, настроенный на работу со сквидом. Со сквидом фишка такая прокатила, не пойму вообще в какую сторону рыть. Направте на путь истинный, плиз.

 

Заранее спасибо, удачи!

Опубліковано:

Может, немного неточно рассказал. Софтина 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, огромное спасибо за помощь и разъяснения (в другом посте).

Опубліковано:

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-й порт?

Опубліковано:

Спасибо за участие, 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

 

Удачи!

  • 1 month later...
Опубліковано:
По делу, принцип следующий:

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

  • 4 weeks later...
Опубліковано: (відредаговано)

Значит так

в 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

Відредаговано Vasilich
Опубліковано:

по идее СТГ считает пакеты ДО редиректа.

поэтому наверно стоит сделать в правилах так:

 

<IP адрес твоего сервера>:21 и тут в какое направление считать

0.0.0.0:21 и тут направление - МИР

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    • Немає користувачів, що переглядають цю сторінку.
×
×
  • Створити нове...