Страница 1 из 1
запретить ходить мимо прокси.
Добавлено: 2009-11-17 16:46:12
qwertykma
Добрый день!
Есть желание запретить ходить всем мимо прокси. Но есть несколько "избранных" которые должны ходить мимо прокси, при этом нет желания делать "прозрачное" проксирование. Как я хочу сделать:
1. разделить сеть на две подсети: 192.168.1.0/26, т.о. я получу адреса от .1 до 62
и настроить ipfw т.о:
Код: Выделить всё
ipfw add 1 allow ip from 192.168.1.0/26 to any
ipfw add 2 deny ip from 192.168.1.0/24 to any 80,8080 via rl0
(rl0 - внутренная сетевушка)
Я думаю так, что пакет из сети с ай-пи с 1 по 62 попадет под первое правило и пройдет, а если ай-пи с 64 до 254 он попадет под второе правило, и не сможет будет завернут, а через прокси ,т.е. 3128 - всегда пожалуйста.
Сервер рабочий, ставить эксперименты м.б. черевато боком, поэтому если есть явные "косяки" в моим измышления - укажите, буду благодарен.
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-17 17:04:04
Amadeus
А зачем изобретать велосипед?
Не проше ли закрыть во вне всем 80 порт, пустить всех через прокси, а избранным
Код: Выделить всё
ipfw add 00010 allow ip from any to IP
ipfw add 00010 allow ip from IP to any
?
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-17 17:07:47
qwertykma
Amadeus писал(а):А зачем изобретать велосипед?
Не проше ли закрыть во вне всем 80 порт, пустить всех через прокси, а избранным
Код: Выделить всё
ipfw add 00010 allow ip from any to IP
ipfw add 00010 allow ip from IP to any
?
поэтому и спросил, много умов лучше одного

т.е. вместо IP я должен подставить 192.168.1.0/26?
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-17 17:08:53
ivan__
qwertykma писал(а):
ipfw add 1 allow ip from 192.168.1.0/26 to any
ipfw add 2 deny ip from 192.168.1.0/24 to any 80,8080 via rl0 (rl0 - внутренная сетевушка)
Так делать нельзя. Проще пропустить "избранных" по ip, а остальным все запретить. И не на внутреннем а на внешнем интерфейсе.
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-17 17:11:42
Amadeus
Нет
Код: Выделить всё
ipfw add 00010 allow ip from 192.168.1.1 (адрес клиента) to any
ipfw add 00020 allow ip from any to 192.168.1.1 (адрес клиента)
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-17 17:15:31
qwertykma
т.е. по одному ай-пи. А если их 20 ПК то мне проще сделать "прозрачный" прокси.
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-17 17:16:46
Amadeus
20 избраных ип?:)
сквида как поднята? если к примеру самс стоит делаешь отдельный шаблон со снятыми всеми ограничениями,
В этом случае, сквид выступает только для кеширования. Ничего не запрешается
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-17 17:20:47
qwertykma
точнее 21

Стольким людям нельзя ничего запрещать.
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-17 17:35:33
Amadeus
если ип 21, то лучше сделать отдельным ничего не запрешающим шаблоном, так как такое кол-во прямых доступов будет являтся основанием для еще 1 действия, привязки по макам.
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-17 19:45:52
reLax
Делается достаточно просто, на примере NTLM-авторизации + прозрачного прокси:
squid.conf
Код: Выделить всё
http_port 172.17.2.100:8080 transparent
...
auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=S-1-5-21-1390067357-1425521274-682003330-1249
auth_param ntlm children 30
auth_param ntlm keep_alive off
auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of=S-1-5-21-1390067357-1425521274-682003330-1249
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
...
acl NTLMauth proxy_auth REQUIRED
...
acl NAT src "/usr/local/etc/squid/NAT"
...
http_access allow NAT
http_access allow NTLMauth
...
http_access deny all
То есть делим на 2 части - кто идет без явного указания прокси и кто идет с явным указанием.
Файл
/usr/local/etc/squid/NAT содержит IP-адреса, кому разрешено использовать прозрачный прокси.
Или как сказал
Amadeus - можно использовать фильтр по MAC-адресам. В таком случае поменяется только эта строка, куда соответственно пишутся MAC-адреса:
Далее pf (ipfw я не использую). Помимо остальных правил разрешения/запрета трафика это основное:
Код: Выделить всё
rdr on $IntIf inet proto tcp from $IntIf:network to !$IntIf port 80 -> $IntIf port 8080
И следует учитывать, что, например HTTPS таким образом указать не удастся, придется разрешать в FW его отдельно.
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-17 21:36:23
reLax
Если нету авторизации на Squid. Ну еще тогда проще.
pf
Код: Выделить всё
table <HTTPOVERNAT> persist file "/etc/pf/httpovernat"
...
rdr on $IntIf inet proto tcp from <HTTPOVERNAT> to !$IntIf port 80 -> $IntIf port 8080
...
block return in log quick on $IntIf inet proto tcp from !<HTTPOVERNAT> to any port 80
...
block return log on $IntIf
...
и т.д. и т.п.
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-18 0:24:30
ivan__
qwertykma писал(а):т.е. по одному ай-пи. А если их 20 ПК то мне проще сделать "прозрачный" прокси.
Тогда создай таблицу с этими ip-шниками и рули с таблицей. Или раздай им ip последовательно и задай как переменную.
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-18 9:23:00
qwertykma
2 reLax Они вообще не должны попадать на прокси, иначе скандал.

Re: запретить ходить мимо прокси.
Добавлено: 2009-11-18 10:06:51
dmins
господи , что тут голову ломать не понимаю, просто банально в ipfw закрываешь 80порт. А нужных юзеров пропускаешь и нечего лишние таблицы со списками ипшников составлять, оно тебе надо? если можно все сделать в одном конфиге фаера.
Код: Выделить всё
add 4400 allow tcp from IP_юзера_которому можно по 80 to any in via fxp0
add 4500 allow tcp from IP_юзера_которому можно по 80 to any in via fxp0
add 5000 deny tcp from any to any 80 in via fxp0
где "fxp0" внутренний интерфейс.
и т.д 21 ipшник не проблема вбить, дело 2ух минут, зато без всяких паровозов. ну иМхо конечно!
Re: запретить ходить мимо прокси.
Добавлено: 2009-11-18 13:19:35
Shuba
dmins писал(а):господи , что тут голову ломать не понимаю, просто банально в ipfw закрываешь 80порт. А нужных юзеров пропускаешь и нечего лишние таблицы со списками ипшников составлять, оно тебе надо? если можно все сделать в одном конфиге фаера.
Код: Выделить всё
add 4400 allow tcp from IP_юзера_которому можно по 80 to any in via fxp0
add 4500 allow tcp from IP_юзера_которому можно по 80 to any in via fxp0
add 5000 deny tcp from any to any 80 in via fxp0
где "fxp0" внутренний интерфейс.
и т.д 21 ipшник не проблема вбить, дело 2ух минут, зато без всяких паровозов. ну иМхо конечно!
имхо как раз таблицей оптимальный вариант, конфиг фаера гораздо легче читаем будет
Вот у меня реализовано так:
Код: Выделить всё
# В /etc/inet_users находятся адреса компов, которым разрешён доступ в интернет через NAT
table <inet_comps> persist file "/etc/inet_comps"
...
nat on $ext_if inet proto { tcp, udp } from <inet_comps> to any -> $ext_if
Код: Выделить всё
[shuba@shluz ~]$ cat /etc/inet_comps
192.168.2.6 # Комп Алексея
192.168.0.200 # CallCentre
192.168.1.3 # Alex Home
192.168.2.50 # Рабочая лошадка