Перейти до

Stargazer, прозрачный Squid, и воровство инета


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

Имею старгайзер, и след правила iptables

 

 

StartScript

....... -->>  начало
# Очищаем правила
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
....... -->> далее

 

и OnConnect

....... -->>  начало
iptables -t nat -A PREROUTING -p tcp -m multiport --destination-port 80,81,88,3128,8080,8000 -d ! ${server} -s ${client} -j REDIRECT --to-port 8080
....... -->> далее

 

при коннекте киентской проги человек попасть в инет не может :)

Добавляю в OnConnect строчку вида

iptables -t filter -A INPUT -s ${client} -p tcp --dport 8080 -j ACCEPT

Тогда юзер в сеть ходит. Траффик считает нормально...

 

НО

... когда он пишет у себя в браузере ходить через прокси, то ходит в инет по локальному траффику... :)

 

Что не так?

Ссылка на сообщение
Поделиться на других сайтах

всё так.... всё правильно и логично.....

 

только не понятно зачем нужно открывать 8080 если он не стучится к прокси напрямую....

 

если вы заворачиваете 80 порт на прокси, то вам нужно открывать только 80 порт....

Ссылка на сообщение
Поделиться на других сайтах

А у меня вообще феномен - настроил прозрачный прокси (инфо взял с www.opennet.ru) всё работает - только вот трафик стал не экономится, а наоборот (stargazer - что то недосчитывает) :bue:

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
всё так.... всё правильно и логично.....

 

только не понятно зачем нужно открывать 8080 если он не стучится к прокси напрямую....

 

если вы заворачиваете 80 порт на прокси, то вам нужно открывать только 80 порт....

Рассказываю, почему не только 80й порт, а много много чего ещё...

Находятся умные дядьки, которые прописывают шаровые прокси, которые находятся в сети обмена города. Сеть обмена города у меня в 2 раза дешевле, чем мир, отсюда имеем, что дядя начинает ходить везде в счёт местного траффика, в следствии чего я теряю денюшку :)

 

Касаемо правил...

Так что, избежать никак не получится??? не выйдет спрятать прозрачный прокси? :)

Это теперь Вася, Петя, Саша и Даша пишут у себя в браузере IP и порт прокси и сидят на шару?!?!

 

Каким макаром пепеписать правила?

 

P.S.: Забыл дописаить...

В StartScript

....... -->>  начало
# Политика по умолчанию DROP
# Запрет на входящий траффик на роутер ( на локальные процессы)
iptables -t filter -P INPUT DROP
# Запрет на промежуточный траффик через роутер
iptables -t filter -P FORWARD DROP
# Запрет на исходящий траффик из роутера (из локальных процессов)
iptables -t filter -P OUTPUT DROP 
....... -->> далее

Відредаговано Andrey Zentavr
Ссылка на сообщение
Поделиться на других сайтах

Что-то ты непонятно написал... Зачем прокси внутри города? Или это не твой? Если чужой, тогда должны юзеры платить только за доступ к этому прокси, т.е. $цена_траффика/2, а владелец прокси, конечно сам платит за инет, который через него юзают.

 

Если же просто необходим подсчет трафика который заворачивается на прозрачный прокси, то необходимо в рулесах прописать адрес и порт этого сервера, так чтобы он попадал под платное направление.

Ссылка на сообщение
Поделиться на других сайтах
Что-то ты непонятно написал... Зачем прокси внутри города? Или это не твой? Если чужой, тогда должны юзеры платить только за доступ к этому прокси, т.е. $цена_траффика/2, а владелец прокси, конечно сам платит за инет, который через него юзают.

 

Если же просто необходим подсчет трафика который заворачивается на прозрачный прокси, то необходимо в рулесах прописать адрес и порт этого сервера, так чтобы он попадал под платное направление.

Система какая... На одной машине (сетка развивается, серверов нету :) ) стоит биллинг + Прокся...

Зачем прокся? экономим траффик однако.. будь то местный, будь мировой.

Что я хочу сделать?

Весь транзитный траффик который идёт в интернет, должен посчитатся по соответствующену направлению (так и есть, всё корректно считается), потом завернутся на мой же прокси и идти дальше.

как я это делаю? с помощью прозрачного проксирования. Но не хочу, чтобы юзверь явно у себя прописал в настройках браузера соответствующий адрес и порт и ходил через мой прокси в инет, и это ему считалось бы как локальный траффик. Я не хочу, чтобы он явно ходил через проксю, т.е. нужно сделать так, чтобы он её СОВСЕМ не видел.

Можно конечно порт подставить на подсчёт... Это уже в крайнем случае...

Хотелось бы настроить iptables таким образом, чтобы сквид был только прозрачным, но напрямую коннекты (явные коннекты) были запрещены.

Ссылка на сообщение
Поделиться на других сайтах
А у меня вообще феномен - настроил прозрачный прокси (инфо взял с www.opennet.ru) всё работает - только вот трафик стал не экономится, а наоборот (stargazer - что то недосчитывает)  :bue:

а не забыл ли ты прописать в rules строчку

TCP_UDP сеть/маска:прот прокси направление

пример

TCP_UDP 192.168.0.0/24:3128 DIR0

Ссылка на сообщение
Поделиться на других сайтах

стоит учесть грабли

при прозрачном проксировании 80 порта, к примеру,

если дир0 - локалка - нулл

дир1 - Украина

дир2 - мир

то если человек юзает проксю на 3128 порту украинскую - ему старгейзер посчитает правильно, как украинский трафик

есличеловек юзает проксю на 80 порту - он может прописать ЛЮБОЙ сайт, ЛЮБОЙ ИП И 80 ПОРТ -- его будет пускат на проксю по укр трафику.. (если это укр сайт)

---

А теперь то что касается жлобства и непонимание админов

Если человек юзает чью-то проксю, допустим украинскую, когда укр трафик раз в 10 дешевле мира - это лично его дело

и ненадо тут ляля что админ теряет деньги..

Ссылка на сообщение
Поделиться на других сайтах

кстати это решаеться фаерволом

разрешить использовать только свой прокси :)

и некто ничего не теряет

+ меньше вероятности что пользователи хулиганить в нете будут

Ссылка на сообщение
Поделиться на других сайтах
кстати это решаеться фаерволом

разрешить использовать только свой прокси :)

и некто ничего не теряет

+ меньше вероятности что пользователи хулиганить в нете будут

Решается может и просто, зато не правомочно :)

По сути не имеем права ограничивать доступ к какому либо хосту в украине, будь то прокся или порно :(

Ссылка на сообщение
Поделиться на других сайтах
кстати это решаеться фаерволом

разрешить использовать только свой прокси :)

и некто ничего не теряет

+ меньше вероятности что пользователи хулиганить в нете будут

во-первых пользователь тебя нах пошлет...

во-вторых - это неправомерно как грит Ден

 

дальше по списку - прокся может быть и на 80 порту.. и т.д.

Ссылка на сообщение
Поделиться на других сайтах

Эх, хлопцы... Видно недопоняли меня вы...

У меня когда юзер пишет ручками, что В ЛЮБОЕНАПРАВЛЕНИЕ нужно ходить через 10.1.1.1:8000, стг считает весь траффик как локальный, а прокся его в инет пускает...

Видимо единственное правило - в рулсах прописать учёт этого порта как мировой траффик... Ибо не знаю, как иптаблсами закрутить...

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

 

ЗЫ: У меня дома после грозы сетка вывалилась, так за 2 дня написал веб-морду на стг для пользователя... Куда и как ходит, всё такое... Парсит файлы из каталога и генерирует статистику... Сейчас сижу тестирую.

Ссылка на сообщение
Поделиться на других сайтах

или чего-то я не понял или у меня работает не оно :)

 

iptables -t nat -A PREROUTING -p tcp -s $2 -d ! 192.168.0.0/16 --dport 80 -j REDIRECT --to-ports 3128
echo $2 >> /opt/squid/users
/opt/squid/sbin/squid -k reconfigure

 

это в онконнекте стоит

а в рулесах я считаю TCP 192.168.0.1:3128 DIR2

и сквид берет данные кому можно в инет из файла /opt/squid/users

в котором, как известно находятся ИПы пользователей

 

squid.conf

http_port 3128

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
maximum_object_size 20096 KB
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
refresh_pattern ^ftp:           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 stg_users src "/var/stargazer/squid/squid"
http_access allow stg_users

never_direct allow all
cache_peer 193.109.128.41 parent 3180 3130

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

банально

Ссылка на сообщение
Поделиться на других сайтах

Я так и сделал, прописал в рулсах траффик на шлюз и порт как на мир...

В сквиде ручками забил все ИПы 10,1,1,0/24 + привязка по арпу...

Ссылка на сообщение
Поделиться на других сайтах

Простите, но это ботство, имхо.

1. в squid написать не

http_port 3128

а

http_port 127.0.0.1:3128

И ещё должны быть директивы

httpd_accel_host virtual

httpd_accel_port 80

httpd_accel_with_proxy on

httpd_accel_uses_host_header on

 

Таким образом к проксе будет просто нельзя подцепиться больше ниоткуда.

Как я понимаю, это именно то, что нужно автору темы.

 

2. Фаерволом закрыть доступ к порту отовсюду кроме 127.0.0.1.

Я думаю, в правилах фаервола уже есть правила, разрешающие все для внутреннего интерфейса, так что проблем с этим не будет.

 

Это на всякий случай.

 

3. Если человек юзает прокси сервера в интернете - это его дело.

За исключением случая, когда провайдер платит за пользование этой проксЁй.

Тогда можно или закрыть её фаерволом, или прописать её в рулесах stg, как глобальную.

Т.е. написать что-то типа

TCP 111.222.333.444:3128 DIR2, где DIR2 - это направление, отвечающее за глобал.

Кстати советую разобраться со всеми проксями, за пользование которыми вы платите.

С остальными проксями можно разобраться по желанию.

 

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

Ссылка на сообщение
Поделиться на других сайтах
Простите, но это ботство, имхо.

1. в squid написать не

http_port 3128

а

http_port 127.0.0.1:3128

 

......

приписано на 10.1.1.1:3128

Как на 127,0,0,1 заворачивать?

Ссылка на сообщение
Поделиться на других сайтах
ЗЫ: У меня дома после грозы сетка вывалилась, так за 2 дня написал веб-морду на стг для пользователя... Куда и как ходит, всё такое... Парсит файлы из каталога и генерирует статистику... Сейчас сижу тестирую.

Поделись плиз, как раз в тему...

Ссылка на сообщение
Поделиться на других сайтах
Простите, но это ботство, имхо.

1. в squid написать не

http_port 3128

а

http_port 127.0.0.1:3128

 

......

приписано на 10.1.1.1:3128

Как на 127,0,0,1 заворачивать?

ipfw add 100 fwd 127.0.0.1,3128 tcp from 10.144.97.0/24 to any 80 out xmit rl0

10.144.97.0/24 - трафик с сети которую надо завернуть на сквид для кеша

80 - хттп порт, добавь другие если надо через кому без пробелов

out xmit rl0 - трафик, который уходит через внешний интерфейс

-----

правило перед натом

в сквиде acl all 0.0.0.0/0.0.0.0

http_access allow all

Незабываем писать то, что XoRe написал

------

есть минус - как исправить пока незнаю

заключается вот в чем:

Если человек укажет проксю proxy.in.ua:3128 - ему будет считать как укр трафик - тут все правильно

а если человек укажет gameinside.com:80 - ему будет считать как украинский трафик, но ходить он сможет КУДА УГОДНО, хоть в украину, хоть в слова гейминсайд всунуть еще десяток любых букв, хоть в мир...

Ссылка на сообщение
Поделиться на других сайтах

2Andrey Zentavr: во фряхе так, как описал spr1te.

В линуксе, насколько я понимаю, ты сам написал, как:

OnConnect

 

CODE

 

....... -->> начало

iptables -t nat -A PREROUTING -p tcp -m multiport --destination-port 80,81,88,3128,8080,8000 -d ! ${server} -s ${client} -j REDIRECT --to-port 8080

....... -->> далее

 

или как описал Фостер

iptables -t nat -A PREROUTING -p tcp -s $2 -d ! 192.168.0.0/16 --dport 80 -j REDIRECT --to-ports 3128

 

2spr1te: опа... спасибо, не знал. Буду думать, как закрыть сие чудо.

Ссылка на сообщение
Поделиться на других сайтах
Простите, но это ботство, имхо.

1. в squid написать не

http_port 3128

а

http_port 127.0.0.1:3128

 

......

приписано на 10.1.1.1:3128

Как на 127,0,0,1 заворачивать?

ipfw add 100 fwd 127.0.0.1,3128 tcp from 10.144.97.0/24 to any 80 out xmit rl0

10.144.97.0/24 - трафик с сети которую надо завернуть на сквид для кеша

80 - хттп порт, добавь другие если надо через кому без пробелов

out xmit rl0 - трафик, который уходит через внешний интерфейс

-----

правило перед натом

в сквиде acl all 0.0.0.0/0.0.0.0

http_access allow all

Незабываем писать то, что XoRe написал

------

есть минус - как исправить пока незнаю

заключается вот в чем:

Если человек укажет проксю proxy.in.ua:3128 - ему будет считать как укр трафик - тут все правильно

а если человек укажет gameinside.com:80 - ему будет считать как украинский трафик, но ходить он сможет КУДА УГОДНО, хоть в украину, хоть в слова гейминсайд всунуть еще десяток любых букв, хоть в мир...

добавлю что правило с форвардом надо до диверта ставить, иначе мимо пойдут...

Ссылка на сообщение
Поделиться на других сайтах

Ну не знаю товарищи, сделал так:

- Добавил в рулесы порт прокси в направление инета;

- drop поумолчанию все что идет на 3128;

- в OnConnect добавляю правило ACCEPT к 3128 для авторизированного пользователя, ну и соответственно редирект с 80 на 3128;

- в OnDisconnect убиваю редирект и правило ACCEPT все работает как и должно...

Таким образом, даже если юзер припишет у себя прокси, то все равно трафик будет считать как внешний мир, а нет так завернется таблесами

Ссылка на сообщение
Поделиться на других сайтах

Могу сказать, как это работает на FreeBSD

При прозрачном проксировании пакет от машины клиента идет на 80 порт сайта microsoft.com.

Пакет попадает в сетевуху шлюза, учитывается счетчиком stg (через фряшный фильтр bpf) и только после этого идет на обработку фаервола.

Фаервол этот пакет запихивает себе-же на 3128 порт и на адрес 3128.

Прокся посылает от себя запрос на 80 порт сайта microsoft.com.

Следовательно:

1. 3128 порт не должен быть доступен для компьютеров локальной сетки.

Его можно и нужно закрыть фаерволом.

3128 порт системы должен быть доступен самой системе.

И я думаю, что в 100% случаев он доступен самой системе.

 

2. В рулесы добавлять никакой порт не надо.

Его надо вообще закрыть фаерволом.

В онконнект надо добавить только редирект.

 

3. (чисто теоретически) Если заметить, что пакет направляется на 3128 порт ПОСЛЕ подсчета его старгейзером, то можно понять, что старгейзер не знает, пойдет ли пакет на microsoft.com напрямую или через прозрачную проксю.

В этом весь смысл прозрачного проксирования.

Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити нове...